{
  "capabilities": {
    "extendedAgentCard": false,
    "pushNotifications": false,
    "stateTransitionHistory": false,
    "streaming": false
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "description": "Now part of GAIP Witness (agreed terms, delivery, receipts, disputes and evidence). It stays callable here with the same tools; see https://www.gaipagents.com/agents/witness. Records a buyer-owned public service request and checks the observed disposition through Broker, Witness and Trust evidence.",
  "documentationUrl": "https://www.gaipagents.com/agents/buyer-assurance",
  "gaip": {
    "agentId": "buyer-assurance",
    "authority": "PUBLIC_NON_PERSONAL_ZERO_PRICE_BOUNDED_NO_SPEND_NO_PAYMENT_NO_CONTRACT",
    "automaticEvidenceCredit": false,
    "discovery": {
      "aiCatalog": "https://www.gaipagents.com/.well-known/ai-catalog.json",
      "listingKit": "https://www.gaipagents.com/v1/free/discovery/listing-kit",
      "llms": "https://www.gaipagents.com/llms.txt",
      "llmsFull": "https://www.gaipagents.com/llms-full.txt",
      "mcpServerCard": "https://www.gaipagents.com/mcp/server-card",
      "openapi": "https://www.gaipagents.com/openapi.json",
      "products": "https://www.gaipagents.com/v1/free/products"
    },
    "distributionBundle": "https://www.gaipagents.com/v1/distribution/agents/buyer-assurance",
    "durableReceiptRequiredBeforeSuccess": true,
    "howToCall": {
      "a2a": "POST JSON-RPC message/send (A2A 0.3) or SendMessage (A2A 1.0) to https://www.gaipagents.com/a2a/buyer-assurance. Put the tool name (underscores, e.g. \"assurance_prepare\") in message.metadata.gaip_tool and the input object in one data part (0.3: {\"kind\": \"data\", \"data\": {...}}; 1.0: {\"data\": {...}} with role ROLE_USER). Without gaip_tool the data part must match one of this agent's tools. Text parts are never converted into a task.",
      "allowedTools": [
        "assurance_prepare",
        "assurance_complete",
        "assurance_verify"
      ],
      "example": {
        "id": 1,
        "jsonrpc": "2.0",
        "method": "message/send",
        "params": {
          "message": {
            "kind": "message",
            "messageId": "example-1",
            "metadata": {
              "gaip_tool": "assurance_prepare"
            },
            "parts": [
              {
                "data": {
                  "checks": [
                    {
                      "allowed": [
                        200
                      ],
                      "id": "http_status_in"
                    },
                    {
                      "id": "json_parses"
                    }
                  ],
                  "counterparty_id": "example-weather-agent",
                  "explicit_read_only_consent": true,
                  "service_url": "https://weather.example.com/forecast.json",
                  "task_class": "weather_forecast"
                },
                "kind": "data"
              }
            ],
            "role": "user"
          }
        }
      },
      "mcp": "POST tools/call to https://www.gaipagents.com/mcp/agents/buyer-assurance",
      "primaryTool": "assurance_prepare"
    },
    "legal": {
      "corrections": "https://www.gaipagents.com/corrections",
      "methodology": "https://www.gaipagents.com/methodology",
      "privacyPolicy": "https://www.gaipagents.com/privacy",
      "status": "DRAFT_PENDING_LEGAL_REVIEW",
      "termsOfService": "https://www.gaipagents.com/terms"
    },
    "mcpServerCard": "https://www.gaipagents.com/mcp/agents/buyer-assurance/server-card",
    "mcpUrl": "https://www.gaipagents.com/mcp/agents/buyer-assurance",
    "priceGbp": 0,
    "product": {
      "foldedInto": "witness",
      "kind": "PRODUCT",
      "listed": false,
      "productId": "witness",
      "productName": "Witness \u00b7 Deals \u00b7 Sign-offs",
      "role": "FOLDED",
      "roleLabel": "folded in, still callable",
      "status": "PUBLIC_FREE",
      "url": "https://www.gaipagents.com/v1/free/products#witness"
    }
  },
  "iconUrl": "https://www.gaipagents.com/assets/agents/buyer-assurance.svg",
  "name": "GAIP Buyer Assurance Agent",
  "preferredTransport": "JSONRPC",
  "protocolVersion": "1.0",
  "provider": {
    "organization": "GAIP",
    "url": "https://www.gaipagents.com"
  },
  "securityRequirements": [],
  "securitySchemes": {},
  "skills": [
    {
      "description": "Use this when you, the buyer, chose a public service and want its delivery checked end to end. Pass `service_url`, `checks` and explicit_read_only_consent=true. GAIP preflights it and records your checks; returns a `terms_id` for assurance_complete. Input: required service_url, checks, explicit_read_only_consent; optional counterparty_id, data_classification, episode_id, task_class. A2A: send message/send with metadata.gaip_tool=\"assurance_prepare\" and one data part holding the input object; MCP: tools/call name \"assurance_prepare\" at https://www.gaipagents.com/mcp/agents/buyer-assurance.",
      "examples": [
        "{\"checks\": [{\"allowed\": [200], \"id\": \"http_status_in\"}, {\"id\": \"json_parses\"}], \"counterparty_id\": \"example-weather-agent\", \"explicit_read_only_consent\": true, \"service_url\": \"https://weather.example.com/forecast.json\", \"task_class\": \"weather_forecast\"}"
      ],
      "id": "assurance-prepare",
      "inputModes": [
        "application/json"
      ],
      "name": "Assurance Prepare",
      "outputModes": [
        "application/json"
      ],
      "tags": [
        "buyer",
        "delivery",
        "assurance"
      ]
    },
    {
      "description": "Use this when finishing a Buyer Assurance check. Pass the `terms_id` from assurance_prepare and mode PUBLIC_REPLAY (GAIP replays the service) or BUYER_SUBMITTED. Returns PASS / FAIL / UNKNOWN per check and a delivery receipt. Input: required terms_id, mode; optional body, body_sha256, content_type, data_classification, http_status. A2A: send message/send with metadata.gaip_tool=\"assurance_complete\" and one data part holding the input object; MCP: tools/call name \"assurance_complete\" at https://www.gaipagents.com/mcp/agents/buyer-assurance.",
      "examples": [
        "{\"chain\": [{\"agent_id\": \"buyer-assurance\", \"arguments\": {\"checks\": [{\"allowed\": [200], \"id\": \"http_status_in\"}, {\"id\": \"json_parses\"}], \"counterparty_id\": \"example-weather-agent\", \"explicit_read_only_consent\": true, \"service_url\": \"https://weather.example.com/forecast.json\", \"task_class\": \"weather_forecast\"}, \"keep_from_result\": \"terms_id and receipt_id\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/buyer-assurance\", \"step\": 1, \"tool\": \"assurance_prepare\"}, {\"agent_id\": \"buyer-assurance\", \"arguments\": {\"mode\": \"PUBLIC_REPLAY\", \"terms_id\": \"<terms_id from step 1 (assurance_prepare)>\"}, \"keep_from_result\": \"result\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/buyer-assurance\", \"step\": 2, \"tool\": \"assurance_complete\"}], \"note\": \"Run the steps in order; replace each angle-bracket value with the named field from the result of the named earlier step.\"}"
      ],
      "id": "assurance-complete",
      "inputModes": [
        "application/json"
      ],
      "name": "Assurance Complete",
      "outputModes": [
        "application/json"
      ],
      "tags": [
        "buyer",
        "delivery",
        "assurance"
      ]
    },
    {
      "description": "Use this when you hold a Buyer Assurance terms or delivery receipt_id and want to confirm it. Returns the retained record and its integrity proof (integrity only). Input: required receipt_id. A2A: send message/send with metadata.gaip_tool=\"assurance_verify\" and one data part holding the input object; MCP: tools/call name \"assurance_verify\" at https://www.gaipagents.com/mcp/agents/buyer-assurance.",
      "examples": [
        "{\"chain\": [{\"agent_id\": \"buyer-assurance\", \"arguments\": {\"checks\": [{\"allowed\": [200], \"id\": \"http_status_in\"}, {\"id\": \"json_parses\"}], \"counterparty_id\": \"example-weather-agent\", \"explicit_read_only_consent\": true, \"service_url\": \"https://weather.example.com/forecast.json\", \"task_class\": \"weather_forecast\"}, \"keep_from_result\": \"terms_id and receipt_id\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/buyer-assurance\", \"step\": 1, \"tool\": \"assurance_prepare\"}, {\"agent_id\": \"buyer-assurance\", \"arguments\": {\"receipt_id\": \"<receipt_id from step 1 (assurance_prepare)>\"}, \"keep_from_result\": \"result\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/buyer-assurance\", \"step\": 2, \"tool\": \"assurance_verify\"}], \"note\": \"Run the steps in order; replace each angle-bracket value with the named field from the result of the named earlier step.\"}"
      ],
      "id": "assurance-verify",
      "inputModes": [
        "application/json"
      ],
      "name": "Assurance Verify",
      "outputModes": [
        "application/json"
      ],
      "tags": [
        "buyer",
        "delivery",
        "assurance"
      ]
    }
  ],
  "supportedInterfaces": [
    {
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0",
      "url": "https://www.gaipagents.com/a2a/buyer-assurance"
    }
  ],
  "url": "https://www.gaipagents.com/a2a/buyer-assurance",
  "version": "1.0.0"
}