{
  "$schema": "https://wauldo.com/.well-known/agent-manifest.schema.json",
  "name": "wauldo",
  "display_name": "Wauldo",
  "version": "1.5.0",
  "description": "Verification & orchestration runtime for AI agents. Every agent answer is fact-checked against real sources with a numerical support_score (0-1) measuring claim grounding. Multi-step pipelines orchestrated as observable state machines with bounded execution and persisted run history.",
  "homepage": "https://wauldo.com",
  "documentation": "https://wauldo.com/docs",
  "contact": {
    "support": "contact@wauldo.com",
    "security": "security@wauldo.com",
    "privacy": "privacy@wauldo.com"
  },
  "auth": {
    "type": "bearer",
    "header": "Authorization",
    "key_format": "tig_live_*",
    "rapidapi_alias": {
      "type": "rapidapi",
      "header": "x-rapidapi-key",
      "host_header": "x-rapidapi-host",
      "host": "smart-rag-api.p.rapidapi.com"
    },
    "obtain_key_url": "https://wauldo.com/pricing",
    "scopes": [
      "fact_check",
      "rag.upload",
      "rag.query",
      "agents.create",
      "agents.run",
      "guard"
    ]
  },
  "endpoints": {
    "base_url": "https://api.wauldo.com",
    "openapi": "https://api.wauldo.com/api-docs/openapi.json",
    "swagger_ui": "https://api.wauldo.com/swagger-ui/",
    "tools_schema": "https://api.wauldo.com/v1/agents/schema",
    "fact_check": "https://api.wauldo.com/v1/fact-check",
    "agents_create": "https://api.wauldo.com/v1/agents",
    "agents_run": "https://api.wauldo.com/v1/agents/{agent_id}/runs",
    "agents_revisions_create": "https://api.wauldo.com/v1/agents/{agent_id}/revisions",
    "agents_revisions_list": "https://api.wauldo.com/v1/agents/{agent_id}/revisions",
    "agents_revision_get": "https://api.wauldo.com/v1/agents/{agent_id}/revisions/{rev}",
    "agents_active_revision": "https://api.wauldo.com/v1/agents/{agent_id}/active-revision",
    "tasks": "https://api.wauldo.com/v1/tasks/{task_id}",
    "rag_upload": "https://api.wauldo.com/v1/upload",
    "rag_query": "https://api.wauldo.com/v1/query",
    "chat": "https://api.wauldo.com/api/chat",
    "guard": "https://api.wauldo.com/v1/guard",
    "webhooks": "https://api.wauldo.com/v1/webhooks",
    "webhooks_dlq": "https://api.wauldo.com/v1/webhooks/dlq",
    "workflows": "https://api.wauldo.com/v1/workflows",
    "workflows_runs_create": "https://api.wauldo.com/v1/workflows/{workflow_id}/runs",
    "workflows_runs_get": "https://api.wauldo.com/v1/workflows/{workflow_id}/runs/{execution_id}",
    "tasks_share": "https://api.wauldo.com/v1/tasks/{task_id}/share",
    "runs_public": "https://wauldo.com/r/{share_id}"
  },
  "agent_mode": {
    "header": "X-Agent-Client",
    "user_agent_prefixes": [
      "ClaudeCode/",
      "Cursor/",
      "Continue/",
      "Aider/",
      "Cline/"
    ],
    "env_vars_detected": [
      "WAULDO_AGENT",
      "CLAUDE_CODE",
      "CURSOR_AGENT"
    ],
    "behavior": {
      "json_only": true,
      "structured_errors": true,
      "explicit_cursors": true,
      "auto_confirm_safe_ops": true
    }
  },
  "capabilities": {
    "fact_check": {
      "description": "Single-shot fact-check of any text. Extracts claims, verifies against Wikipedia + web sources, returns verdict (SAFE / CONFLICT / UNVERIFIED) with per-claim support and source URLs.",
      "modes": [
        "lexical",
        "hybrid",
        "semantic"
      ],
      "average_latency_seconds": 4,
      "p99_latency_seconds": 12
    },
    "agent_runtime": {
      "description": "Deploy custom agents via wauldo.toml + agents.md. Each run is verified end-to-end. Supports inline custom_preset (AgentContractV2) for runtime workflow definition. Every change to custom_preset mints an immutable revision (SHA-256, monotone rev counter) — rollback or promote any past revision in O(1) via PATCH /v1/agents/:id/active-revision.",
      "presets": [
        "general_task",
        "rag_data_engineer",
        "rust_backend_architect",
        "security_auditor"
      ],
      "tools_native": [
        "wikipedia",
        "web_search",
        "arxiv",
        "datetime",
        "calculator",
        "rss_feed",
        "file_operations",
        "sql_query",
        "router",
        "scheduler",
        "social_poster",
        "analytics_fetcher",
        "pricing_manager"
      ],
      "tools_env_gated": [
        "github",
        "email_smtp",
        "slack_webhook"
      ]
    },
    "verification_pipeline": {
      "description": "Deterministic 3-step pipeline (extract → verify_parallel → format) for fact-check workloads. Activated via metadata.pipeline_kind=fact_check_split on the deployed agent.",
      "average_latency_seconds": 4
    },
    "rag": {
      "description": "Tenant-isolated RAG. Upload documents (PDF, MD, code), query with auto-retrieve, every answer fact-checked. Hybrid retrieval, multilingual fact-checker.",
      "max_upload_mb": 100
    },
    "memory_namespaces": [
      "short_term",
      "long_term",
      "entity",
      "contextual"
    ],
    "mcp": {
      "supported": true,
      "description": "Model Context Protocol server. Exposes Wauldo as MCP-callable. Also bridges external MCP servers via mcp.json config.",
      "transport": "stdio",
      "config_env_var": "MCP_CONFIG_PATH"
    },
    "cost_tags": {
      "description": "Per-agent cost allocation tags declared in wauldo.toml. Surfaces in Prometheus counters wauldo_llm_cost_by_tag_micro_usd_total + wauldo_llm_tokens_by_tag_total.",
      "tag_keys": [
        "team",
        "env",
        "project",
        "billing"
      ],
      "value_regex": "^[a-zA-Z0-9._-]{1,32}$",
      "invalid_value_fallback": "default"
    },
    "webhooks": {
      "description": "Tenant-scoped event subscriptions with at-least-once delivery, exponential backoff, per-destination circuit breaker, and persistent DLQ.",
      "events": [
        "task.completed",
        "task.failed",
        "task.cancelled",
        "verification.alert",
        "recommendation.new"
      ],
      "signature": {
        "algorithm": "HMAC-SHA256",
        "header": "X-Wauldo-Signature",
        "format": "sha256=<hex>",
        "signed_payload": "raw response body"
      },
      "delivery": {
        "retries_max": 5,
        "backoff_initial_ms": 1000,
        "backoff_max_ms": 60000,
        "circuit_breaker_threshold": 5,
        "circuit_breaker_cooldown_seconds": 60
      },
      "ssrf_protection": "private IP ranges + IPv6 loopback / link-local / ULA / IPv4-mapped rejected at registration AND DLQ retry"
    },
    "workflows": {
      "description": "Sequential multi-step state-machine runtime. Author pipelines as Task / Choice / Wait / Pass / Fail / Succeed states with explicit transitions. Validated at create time (DFS cycle detection, transition target check, strict operator enum). Runtime executes async with bounded wall clock and persists every transition for full audit.",
      "state_types": [
        "Task",
        "Choice",
        "Wait",
        "Pass",
        "Fail",
        "Succeed"
      ],
      "task_resource_format": "tool:<name>",
      "task_resource_supported": [
        "tool"
      ],
      "task_resource_planned": [
        "agent"
      ],
      "choice_operators": [
        "eq",
        "neq",
        "gt",
        "lt",
        "contains"
      ],
      "jsonpath_subset": [
        "$",
        "$.field",
        "$.a.b.c",
        "$.arr[0]",
        "$.users[0].name"
      ],
      "execution_caps": {
        "wall_clock_seconds": 60,
        "wait_seconds_max": 60,
        "state_transitions_max": 200,
        "runs_per_tenant_max": 5000
      },
      "endpoints": {
        "create": "POST /v1/workflows",
        "list": "GET /v1/workflows",
        "get": "GET /v1/workflows/{workflow_id}",
        "delete": "DELETE /v1/workflows/{workflow_id}",
        "start_run": "POST /v1/workflows/{workflow_id}/runs",
        "get_run": "GET /v1/workflows/{workflow_id}/runs/{execution_id}"
      },
      "run_status_enum": [
        "running",
        "succeeded",
        "failed",
        "timed_out"
      ],
      "max_per_tenant": 100
    },
    "shareable_runs": {
      "description": "Publish any verified run as a public URL. Strict-whitelist payload (verdict, claims, sources, journal phase names + durations, prompt, agent name) — never custom_preset / wauldo_toml / system prompt / tool args. Unguessable 128-bit share id ; X-Robots-Tag: noindex,nofollow by default.",
      "endpoints": {
        "publish": "POST /v1/tasks/{task_id}/share",
        "read": "GET  /v1/runs/{share_id}",
        "unpublish": "DELETE /v1/tasks/{task_id}/share"
      },
      "ttl_days_free": 30,
      "ttl_paid": "no expiration",
      "max_per_tenant": 1000,
      "id_format": "r_<32 hex>",
      "id_entropy_bits": 128,
      "idempotent": true
    },
    "openai_middleware": {
      "description": "Drop-in wrapper for the OpenAI Python SDK. with_verification(client) attaches a .wauldo namespace to every chat.completions.create() response (verdict, support_score, halluc_rate, claims_count). Async auto-detected, streaming pass-through, fail-open on Wauldo errors.",
      "package": "wauldo[openai]",
      "min_version": "0.14.0",
      "min_openai_version": "1.0",
      "supported_modes": [
        "lexical",
        "hybrid",
        "semantic"
      ]
    }
  },
  "runbooks": {
    "supported": false,
    "planned": true,
    "format": "yaml"
  },
  "verification": {
    "verdict_enum": [
      "SAFE",
      "UNCERTAIN",
      "PARTIAL",
      "CONFLICT",
      "UNVERIFIED",
      "BLOCK",
      "INSUFFICIENT_CLAIMS"
    ],
    "support_score_range": [
      0.0,
      1.0
    ],
    "fact_check_modes": [
      "lexical",
      "hybrid",
      "semantic"
    ],
    "claim_status_enum": [
      "supported",
      "contradicted",
      "unverified"
    ]
  },
  "sdks": {
    "python": {
      "package": "wauldo",
      "registry": "https://pypi.org/project/wauldo/",
      "install": "pip install wauldo",
      "latest_version": "0.17.0",
      "clients": ["HttpClient", "AgentsClient", "WorkflowsClient", "MemoryClient", "HistoryClient"],
      "capabilities": ["agents", "workflows", "memory", "history", "share", "openai_middleware"]
    },
    "typescript": {
      "package": "wauldo",
      "registry": "https://www.npmjs.com/package/wauldo",
      "install": "npm install wauldo",
      "latest_version": "0.13.0",
      "clients": ["HttpClient", "AgentsClient", "WorkflowsClient", "HistoryClient"],
      "capabilities": ["agents", "workflows", "memory", "history", "share"]
    },
    "rust": {
      "package": "wauldo",
      "registry": "https://crates.io/crates/wauldo",
      "install": "cargo add wauldo",
      "latest_version": "0.13.0",
      "clients": ["HttpClient", "AgentsClient", "WorkflowsClient", "MemoryClient", "HistoryClient"],
      "capabilities": ["agents", "workflows", "memory", "history", "share"]
    }
  },
  "ide_integrations": {
    "vscode": {
      "extension_id": "wauldo.wauldo-code",
      "marketplace_url": "https://marketplace.visualstudio.com/items?itemName=wauldo.wauldo-code"
    }
  },
  "rate_limits": {
    "free_trial": {
      "requests_per_30d": 500,
      "fact_checks_per_24h": 10
    },
    "pro": {
      "requests_per_30d": 10000,
      "concurrent_agents": 10
    },
    "enterprise": {
      "contact": "contact@wauldo.com"
    }
  },
  "compliance": {
    "data_residency": "US (us-east-1)",
    "gdpr_dpa_available": true,
    "tenant_isolation": "strict",
    "soc2_status": "in_progress"
  },
  "links": {
    "leaderboard": "https://wauldo.com/leaderboard",
    "pricing": "https://wauldo.com/pricing",
    "studio": "https://wauldo.com/studio",
    "github": "https://github.com/wauldoai",
    "twitter": "https://twitter.com/wauldoAI",
    "linkedin": "https://www.linkedin.com/company/wauldo/"
  }
}
