{
  "ok": true,
  "protocol": "Model Context Protocol",
  "transport": "streamable-http",
  "endpoint": "https://agent-output-verification-a2a.vassiliy-lakhonin.workers.dev/mcp/agent",
  "legacy_payment_endpoint": "https://agent-output-verification-a2a.vassiliy-lakhonin.workers.dev/mcp",
  "fleet_directory": "https://agent-output-verification-a2a.vassiliy-lakhonin.workers.dev/.well-known/fleet.json",
  "invocation": {
    "method": "POST",
    "content_type": "application/json",
    "accept": [
      "application/json",
      "text/event-stream"
    ]
  },
  "supports_sse_get": false,
  "supported_protocol_versions": [
    "2026-07-28",
    "2025-11-25",
    "2025-06-18",
    "2025-03-26"
  ],
  "server_card": "https://agent-output-verification-a2a.vassiliy-lakhonin.workers.dev/.well-known/mcp/server-card.json",
  "tools": [
    {
      "name": "agent_output_verification",
      "description": "Lint caller-provided claim evidence for relay-readiness review. Returns a review-only verdict with per-claim findings, orphaned evidence references, and owner actions. It does not fetch or validate the cited sources; verify_before_relay is the ceiling, never permission to relay, and human review is required for every verdict. Required tool arguments: claims, evidence. Extract claims from the answer and attach the actual source text, evidence_ids, and matching quotes. If evidence is unavailable, report that gap; do not invent sources or treat the result as permission to relay. Illustrative example arguments (synthetic; replace with your own data): {\"claims\":[{\"claim_id\":\"c1\",\"claim\":\"The example record says registration is active.\",\"support_level\":\"direct\",\"evidence_ids\":[\"e1\"],\"supporting_quotes\":[{\"evidence_id\":\"e1\",\"quote\":\"Registration active\"}]}],\"evidence\":[{\"evidence_id\":\"e1\",\"name\":\"Synthetic registry excerpt\",\"source_type\":\"official_document\",\"content\":\"Registration active\"}]}. This product offers two free trial attempts at /v1/agent-output/trial; shared networks share the allowance and daily capacity is limited. Evaluation on paid endpoints requires a signed Base USDC payment for the exact request, or Pro access. Discovery is free. Keep the original request and X-Payment-Signature for result recovery within 24 hours. Current prices: https://agent-output-verification-a2a.vassiliy-lakhonin.workers.dev/.well-known/x402. Do not pay automatically. Evidence triage only: no factual-truth verification, no legal, compliance, sanctions, or financial advice. Human review is required before any commercial action.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/evidence-audit.schema.json",
        "title": "EvidenceAudit",
        "description": "Claim-level evidence audit. Each important claim should be traceable to specific evidence with an explicit support level, uncertainty hook, and risk-if-wrong note. Use the `audit-claims` CLI command or `audit_claims` MCP tool to validate.",
        "x-schema-version": "1",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "claims",
          "evidence"
        ],
        "properties": {
          "topic": {
            "type": "string"
          },
          "claims": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/$defs/claim"
            }
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/evidence_item"
            }
          },
          "unsupported_claims": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Important claims the analyst could not back with evidence."
          }
        },
        "$defs": {
          "claim": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "claim_id",
              "claim",
              "support_level"
            ],
            "properties": {
              "claim_id": {
                "type": "string",
                "minLength": 1
              },
              "claim": {
                "type": "string",
                "minLength": 1
              },
              "claim_type": {
                "type": "string",
                "enum": [
                  "regulatory_change",
                  "regulatory_gap",
                  "sanctions_event",
                  "geopolitical_event",
                  "market_event",
                  "industry_response",
                  "corporate_disclosure",
                  "capability_claim"
                ],
                "description": "Taxonomy label for the claim. regulatory_change: law or regulation adopted, amended, or enforced. regulatory_gap: identified absence or weakness in existing regulation. sanctions_event: sanctions designation, evasion, or enforcement action. geopolitical_event: political decision or conflict development. market_event: price move, trade flow, or commercial development. industry_response: industry adaptation or corporate strategy shift. corporate_disclosure: company filing, statement, or announcement. capability_claim: assertion about technical or operational capability."
              },
              "evidence_ids": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "support_level": {
                "type": "string",
                "enum": [
                  "direct",
                  "partial",
                  "weak",
                  "unsupported"
                ]
              },
              "uncertainty": {
                "type": "string",
                "description": "What the analyst is unsure about, even if the claim is supported."
              },
              "risk_if_wrong": {
                "type": "string",
                "description": "Decision-level cost if this claim turns out to be wrong."
              },
              "supporting_quotes": {
                "type": "array",
                "description": "Optional span-level grounding: the specific quote(s) in cited evidence that back this claim. Records which span supports the claim, not just which document. Each entry's evidence_id should be one of this claim's evidence_ids. audit-claims checks the structural link only (flags span_orphans where it is not); it does NOT verify the quote text appears in the source — that is verify-quotes' job. Neither verifies factual truth.",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "evidence_id",
                    "quote"
                  ],
                  "properties": {
                    "evidence_id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "quote": {
                      "type": "string",
                      "minLength": 1
                    }
                  }
                }
              }
            }
          },
          "evidence_item": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "evidence_id",
              "source_type"
            ],
            "properties": {
              "evidence_id": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "source_type": {
                "type": "string",
                "description": "e.g. official_document, regulator_announcement, news, analyst_report, primary_data, illustrative_placeholder."
              },
              "freshness": {
                "type": "string"
              },
              "supports": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "limits": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "content": {
                "type": "string",
                "description": "Optional source text extract. When present, supporting_quotes are corroborated by matching their text against this content; without a content field, caller-declared quotes count as unverified assertions."
              },
              "text": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              },
              "body": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              },
              "excerpt": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              },
              "quote": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              },
              "snippet": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              },
              "summary": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              },
              "full_text": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              }
            }
          }
        }
      },
      "_meta": {
        "com.agenda/readiness": {
          "schema_version": 1,
          "required_arguments": [
            "claims",
            "evidence"
          ],
          "example_arguments": {
            "claims": [
              {
                "claim_id": "c1",
                "claim": "The example record says registration is active.",
                "support_level": "direct",
                "evidence_ids": [
                  "e1"
                ],
                "supporting_quotes": [
                  {
                    "evidence_id": "e1",
                    "quote": "Registration active"
                  }
                ]
              }
            ],
            "evidence": [
              {
                "evidence_id": "e1",
                "name": "Synthetic registry excerpt",
                "source_type": "official_document",
                "content": "Registration active"
              }
            ]
          },
          "example_is_synthetic": true,
          "next_step": "Extract claims from the answer and attach the actual source text, evidence_ids, and matching quotes. If evidence is unavailable, report that gap; do not invent sources or treat the result as permission to relay.",
          "expected_output_fields": [
            "verdict",
            "trust_signal",
            "readiness_score",
            "readiness_label",
            "claim_count",
            "grounded_claim_count",
            "unsafe_claims",
            "weak_claims",
            "unsupported_statements",
            "evidence_gaps",
            "owner_actions",
            "watch_next",
            "human_review_required",
            "not_advice_notice",
            "limitations"
          ],
          "access": {
            "authentication": "none",
            "base_call_price": "paid",
            "billing_mode": "pay_per_call",
            "discovery_is_free": true,
            "quota_per_hour": null,
            "quota_enforcement": "best_effort",
            "pricing_url": "https://agent-output-verification-a2a.vassiliy-lakhonin.workers.dev/.well-known/x402",
            "free_trial": {
              "endpoint": "/v1/agent-output/trial",
              "agent_profile": "agent_output_verification",
              "tool": "agent_output_verification",
              "evaluation_kind": "evidence_review",
              "attempts_per_network": 2,
              "daily_service_limit": 1000,
              "payment_required": false,
              "scope": "Two attempts per network address per product for this trial campaign; shared networks share the allowance. Daily capacity is shared across all products.",
              "paid_endpoint": "/v1/agent-output/verification",
              "paid_transport": "rest",
              "paid_price_usdc": 0.05
            },
            "on_quota_exceeded": "Wait for the next UTC hour or review optional paid access; do not pay automatically.",
            "payment_integration": "Legacy transaction-hash integration; standard x402 interoperability is not certified."
          }
        }
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/agent-output-verification-response.schema.json",
        "title": "AgentOutputVerificationResponse",
        "description": "Structured verdict for whether one agent's claim-backed output is ready for a consuming agent to relay or act on. Wraps a claim-level evidence audit (evidence-audit.schema.json) and returns a machine-actionable relay verdict, weak/unsafe claim triage, evidence gaps, and owner actions. Schema-level and structural only: it does not verify that any claim or quote is factually true, does not fetch or validate cited sources, and does not authorize an action or provide legal, compliance, sanctions, financial, or investment advice.",
        "x-schema-version": "1",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "verdict",
          "trust_signal",
          "readiness_score",
          "readiness_label",
          "claim_count",
          "grounded_claim_count",
          "unsafe_claims",
          "weak_claims",
          "unsupported_statements",
          "evidence_gaps",
          "owner_actions",
          "watch_next",
          "human_review_required",
          "not_advice_notice",
          "limitations"
        ],
        "properties": {
          "verdict": {
            "type": "string",
            "enum": [
              "allow_relay",
              "verify_before_relay",
              "block_unsafe_claims",
              "not_decision_ready",
              "insufficient_information"
            ],
            "description": "Machine-actionable relay verdict. verify_before_relay: claims are declared-supported and structurally consistent; the pack is caller-declared and never externally verified here, so this is the best possible routing and human review is mandatory. block_unsafe_claims: at least one claim is marked unsupported or cites evidence that is not present. not_decision_ready / insufficient_information: not enough structured claim material to verdict, or no claim cites evidence present in the supplied pack. allow_relay is reserved and never issued from caller-declared packs: this gate performs no external verification, so nothing it returns may be read as relay-ready. A declared support_level is a caller assertion, not a verified fact: it counts only where the claim cites an evidence_id the caller actually supplied."
          },
          "trust_signal": {
            "type": "string",
            "enum": [
              "low",
              "medium",
              "medium_high",
              "high",
              "unknown"
            ]
          },
          "readiness_score": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100,
            "description": "Heuristic 0-100 score over declared evidence structure, capped below the review_ready band (max 84) because caller-declared packs are never externally verified here. Only claims that cite an evidence_id present in the supplied evidence contribute to it; a claim whose declared support_level nothing in the pack corroborates weighs nothing. Not approval, clearance, or factual verification."
          },
          "readiness_label": {
            "type": "string",
            "enum": [
              "insufficient_information",
              "not_decision_ready",
              "partial",
              "review_ready"
            ]
          },
          "claim_count": {
            "type": "integer",
            "minimum": 0
          },
          "grounded_claim_count": {
            "type": "integer",
            "minimum": 0,
            "description": "Number of claims with at least one supporting quote whose normalized text appears in the cited evidence item's content fields. A quote that is only declared, with no matching evidence content, does not count."
          },
          "unsafe_claims": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "claim_id",
                "reason"
              ],
              "properties": {
                "claim_id": {
                  "type": "string",
                  "minLength": 1
                },
                "claim": {
                  "type": "string"
                },
                "reason": {
                  "type": "string",
                  "minLength": 1
                }
              }
            },
            "description": "Claims that must not be relayed as fact: marked unsupported, or citing evidence_ids absent from the supplied evidence."
          },
          "weak_claims": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "claim_id"
              ],
              "properties": {
                "claim_id": {
                  "type": "string",
                  "minLength": 1
                },
                "claim": {
                  "type": "string"
                }
              }
            },
            "description": "Claims declared with weak support that should be strengthened before relay."
          },
          "unsupported_statements": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Statements the producing agent itself flagged as unsupported (from evidence-audit unsupported_claims)."
          },
          "evidence_gaps": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "owner_actions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Concrete fixes the producing agent should make before the output is relayed."
          },
          "watch_next": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "human_review_required": {
            "type": "boolean",
            "description": "True for any verdict other than allow_relay: a human should review before the consuming agent acts."
          },
          "not_advice_notice": {
            "type": "string",
            "minLength": 1
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "score_scope": {
            "const": "declared_evidence_structure_only"
          },
          "factual_verification_performed": {
            "const": false
          }
        }
      }
    },
    {
      "name": "pre_action_check",
      "description": "Route a caller-controlled action to continue, request_evidence, require_approval, or stop using supplied claim evidence, risk tier, policy checks, and an optional external approval reference. Resubmit the same run_id after adding evidence or approval. The caller remains responsible for enforcement. Required tool arguments: run_id, actor, requested_action, target, risk_tier, claims, evidence. Before an action, supply the actor, intended action, target, risk tier, actual claim evidence, and any required approval reference. Missing evidence requires collection; do not invent it or treat the result as authorization. Illustrative example arguments (synthetic; replace with your own data): {\"run_id\":\"synthetic-readiness-001\",\"actor\":{\"id\":\"example-agent\",\"type\":\"ai_agent\",\"operator\":\"Example owner\"},\"requested_action\":\"prepare a supplier recommendation for review\",\"target\":{\"id\":\"example-supplier\",\"type\":\"counterparty\"},\"risk_tier\":\"low\",\"claims\":[{\"claim_id\":\"c1\",\"claim\":\"The example record says registration is active.\",\"support_level\":\"direct\",\"evidence_ids\":[\"e1\"],\"supporting_quotes\":[{\"evidence_id\":\"e1\",\"quote\":\"Registration active\"}]}],\"evidence\":[{\"evidence_id\":\"e1\",\"name\":\"Synthetic registry excerpt\",\"source_type\":\"official_document\",\"content\":\"Registration active\"}]}. This product offers two free trial attempts at /v1/agent-output/trial; shared networks share the allowance and daily capacity is limited. Evaluation on paid endpoints requires a signed Base USDC payment for the exact request, or Pro access. Discovery is free. Keep the original request and X-Payment-Signature for result recovery within 24 hours. Current prices: https://agent-output-verification-a2a.vassiliy-lakhonin.workers.dev/.well-known/x402. Do not pay automatically. Evidence triage only: no factual-truth verification, no legal, compliance, sanctions, or financial advice. Human review is required before any commercial action.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/pre-action-check-request.schema.json",
        "title": "PreActionCheckRequest",
        "description": "Caller-supplied action context and claim evidence for deterministic pre-action routing. The check can continue, request evidence, require human approval, or stop. It does not authenticate the actor, verify factual truth, enforce the decision, or authorize the action.",
        "x-schema-version": "1",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "run_id",
          "actor",
          "requested_action",
          "target",
          "risk_tier",
          "claims",
          "evidence"
        ],
        "properties": {
          "run_id": {
            "type": "string",
            "minLength": 1,
            "description": "Caller-generated correlation identifier. Resubmit the same run_id after adding evidence or approval."
          },
          "actor": {
            "$ref": "#/$defs/actor"
          },
          "requested_action": {
            "type": "string",
            "minLength": 1
          },
          "target": {
            "$ref": "#/$defs/target"
          },
          "risk_tier": {
            "type": "string",
            "enum": [
              "low",
              "medium",
              "high",
              "critical"
            ]
          },
          "claims": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/$defs/claim"
            }
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/evidence_item"
            }
          },
          "unsupported_claims": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "policy_context": {
            "$ref": "#/$defs/policy_context"
          },
          "approval": {
            "$ref": "#/$defs/approval"
          }
        },
        "$defs": {
          "actor": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "type"
            ],
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "type": {
                "type": "string",
                "enum": [
                  "ai_agent",
                  "automation",
                  "api_client",
                  "human_delegated_agent",
                  "unknown",
                  "other"
                ]
              },
              "operator": {
                "type": "string",
                "minLength": 1
              }
            }
          },
          "target": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "type"
            ],
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "type": {
                "type": "string",
                "minLength": 1
              }
            }
          },
          "claim": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "claim_id",
              "claim",
              "support_level"
            ],
            "properties": {
              "claim_id": {
                "type": "string",
                "minLength": 1
              },
              "claim": {
                "type": "string",
                "minLength": 1
              },
              "claim_type": {
                "type": "string",
                "enum": [
                  "regulatory_change",
                  "regulatory_gap",
                  "sanctions_event",
                  "geopolitical_event",
                  "market_event",
                  "industry_response",
                  "corporate_disclosure",
                  "capability_claim"
                ]
              },
              "evidence_ids": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "support_level": {
                "type": "string",
                "enum": [
                  "direct",
                  "partial",
                  "weak",
                  "unsupported"
                ]
              },
              "uncertainty": {
                "type": "string"
              },
              "risk_if_wrong": {
                "type": "string"
              },
              "supporting_quotes": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "evidence_id",
                    "quote"
                  ],
                  "properties": {
                    "evidence_id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "quote": {
                      "type": "string",
                      "minLength": 1
                    }
                  }
                }
              }
            }
          },
          "evidence_item": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "evidence_id",
              "source_type"
            ],
            "properties": {
              "evidence_id": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "source_type": {
                "type": "string",
                "minLength": 1
              },
              "freshness": {
                "type": "string"
              },
              "supports": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "limits": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "content": {
                "type": "string",
                "description": "Optional source text extract. supporting_quotes corroborate only by matching their text against evidence content fields; without one, quotes are caller assertions."
              },
              "text": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              },
              "body": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              },
              "excerpt": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              },
              "quote": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              },
              "snippet": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              },
              "summary": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              },
              "full_text": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              }
            }
          },
          "policy_context": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "profile": {
                "type": "string",
                "enum": [
                  "default",
                  "agentic_interaction_trust"
                ]
              },
              "checks": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "check_id",
                    "status"
                  ],
                  "properties": {
                    "check_id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "passed",
                        "needs_evidence",
                        "failed"
                      ]
                    },
                    "evidence_gap": {
                      "type": "string",
                      "minLength": 1
                    }
                  }
                }
              }
            }
          },
          "approval": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "status"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "not_requested",
                  "approved",
                  "rejected"
                ]
              },
              "reference": {
                "type": "string",
                "minLength": 1,
                "description": "Opaque caller-held reference to an external approval record."
              }
            }
          }
        }
      },
      "_meta": {
        "com.agenda/readiness": {
          "schema_version": 1,
          "required_arguments": [
            "run_id",
            "actor",
            "requested_action",
            "target",
            "risk_tier",
            "claims",
            "evidence"
          ],
          "example_arguments": {
            "run_id": "synthetic-readiness-001",
            "actor": {
              "id": "example-agent",
              "type": "ai_agent",
              "operator": "Example owner"
            },
            "requested_action": "prepare a supplier recommendation for review",
            "target": {
              "id": "example-supplier",
              "type": "counterparty"
            },
            "risk_tier": "low",
            "claims": [
              {
                "claim_id": "c1",
                "claim": "The example record says registration is active.",
                "support_level": "direct",
                "evidence_ids": [
                  "e1"
                ],
                "supporting_quotes": [
                  {
                    "evidence_id": "e1",
                    "quote": "Registration active"
                  }
                ]
              }
            ],
            "evidence": [
              {
                "evidence_id": "e1",
                "name": "Synthetic registry excerpt",
                "source_type": "official_document",
                "content": "Registration active"
              }
            ]
          },
          "example_is_synthetic": true,
          "next_step": "Before an action, supply the actor, intended action, target, risk tier, actual claim evidence, and any required approval reference. Missing evidence requires collection; do not invent it or treat the result as authorization.",
          "expected_output_fields": [
            "decision_id",
            "run_id",
            "policy_version",
            "decision",
            "reason_code",
            "blocking_gaps",
            "evidence_requests",
            "approval_required",
            "human_review_required",
            "verification",
            "not_authorization_notice",
            "limitations"
          ],
          "access": {
            "authentication": "none",
            "base_call_price": "paid",
            "billing_mode": "pay_per_call",
            "discovery_is_free": true,
            "quota_per_hour": null,
            "quota_enforcement": "best_effort",
            "pricing_url": "https://agent-output-verification-a2a.vassiliy-lakhonin.workers.dev/.well-known/x402",
            "free_trial": {
              "endpoint": "/v1/agent-output/trial",
              "agent_profile": "agent_output_verification",
              "tool": "agent_output_verification",
              "evaluation_kind": "evidence_review",
              "attempts_per_network": 2,
              "daily_service_limit": 1000,
              "payment_required": false,
              "scope": "Two attempts per network address per product for this trial campaign; shared networks share the allowance. Daily capacity is shared across all products.",
              "paid_endpoint": "/v1/agent-output/verification",
              "paid_transport": "rest",
              "paid_price_usdc": 0.05
            },
            "on_quota_exceeded": "Wait for the next UTC hour or review optional paid access; do not pay automatically.",
            "payment_integration": "Legacy transaction-hash integration; standard x402 interoperability is not certified."
          }
        }
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/pre-action-check-response.schema.json",
        "title": "PreActionCheckResponse",
        "description": "Deterministic routing result for a caller-controlled action boundary. The response reports readiness; the caller remains responsible for enforcement, authentication, authorization, approval storage, and the action itself.",
        "x-schema-version": "1",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "decision_id",
          "run_id",
          "policy_version",
          "decision",
          "reason_code",
          "blocking_gaps",
          "evidence_requests",
          "approval_required",
          "human_review_required",
          "verification",
          "not_authorization_notice",
          "limitations"
        ],
        "properties": {
          "decision_id": {
            "type": "string",
            "minLength": 1
          },
          "run_id": {
            "type": "string",
            "minLength": 1
          },
          "policy_version": {
            "type": "string",
            "const": "pre-action-check.v1"
          },
          "decision": {
            "type": "string",
            "enum": [
              "continue",
              "request_evidence",
              "require_approval",
              "stop"
            ]
          },
          "reason_code": {
            "type": "string",
            "enum": [
              "evidence_ready",
              "evidence_gaps",
              "unsafe_claims",
              "policy_check_failed",
              "approval_required_for_risk",
              "approval_rejected"
            ]
          },
          "blocking_gaps": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "evidence_requests": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "approval_required": {
            "type": "boolean"
          },
          "human_review_required": {
            "type": "boolean"
          },
          "verification": {
            "type": "object",
            "additionalProperties": true,
            "required": [
              "verdict",
              "evidence_gaps",
              "owner_actions"
            ]
          },
          "policy_checks": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "check_id",
                "status"
              ],
              "properties": {
                "check_id": {
                  "type": "string",
                  "minLength": 1
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "passed",
                    "needs_evidence",
                    "failed"
                  ]
                },
                "evidence_gap": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          "receipt_status": {
            "type": "string",
            "enum": [
              "signed",
              "unavailable"
            ],
            "description": "Present on decision_check. unavailable fails the signed Gate path closed."
          },
          "receipt": {
            "description": "Short-lived readiness receipt attached by decision_check. The legacy pre_action_check response omits it.",
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "format",
                  "token",
                  "receipt_id",
                  "issued_at",
                  "expires_at",
                  "request_hash",
                  "action_hash",
                  "verification_tool"
                ],
                "properties": {
                  "format": {
                    "type": "string",
                    "const": "agenda-readiness-receipt+jws"
                  },
                  "token": {
                    "type": "string",
                    "pattern": "^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$"
                  },
                  "receipt_id": {
                    "type": "string",
                    "minLength": 1
                  },
                  "issued_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "expires_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "request_hash": {
                    "type": "string",
                    "pattern": "^sha256:[a-f0-9]{64}$"
                  },
                  "action_hash": {
                    "type": "string",
                    "pattern": "^sha256:[a-f0-9]{64}$"
                  },
                  "verification_tool": {
                    "type": "string",
                    "const": "decision_verify"
                  }
                }
              }
            ]
          },
          "not_authorization_notice": {
            "type": "string",
            "minLength": 1
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    {
      "name": "decision_policies_list",
      "description": "List the bounded readiness policies exposed by the hosted decision Gate, including the decision and verification tools, possible outcomes, positive outcome, input schema, receipt lifetime, and exact machine-readable request/action hash binding. No arguments are required. Follow inputSchema; this tool does not require a prior evidence packet unless the schema asks for one. Illustrative example arguments (synthetic; replace with your own data): {}. Base call: free. No account or authentication is required for this deployment. A best-effort quota of 50 calls per client IP/profile/UTC hour applies; quota exhaustion returns HTTP 429. Wait for the next hour or review optional paid access. Optional paid features are separate; do not pay automatically. Current offerings: https://agent-output-verification-a2a.vassiliy-lakhonin.workers.dev/.well-known/x402. Evidence triage only: no factual-truth verification, no legal, compliance, sanctions, or financial advice. Human review is required before any commercial action.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/decision-policies-list-request.schema.json",
        "title": "DecisionPoliciesListRequest",
        "description": "Empty request for the hosted decision-gate policy catalog.",
        "x-schema-version": "1",
        "type": "object",
        "additionalProperties": false
      },
      "_meta": {
        "com.agenda/readiness": {
          "schema_version": 1,
          "required_arguments": [],
          "example_arguments": {},
          "example_is_synthetic": true,
          "next_step": "Follow inputSchema; this tool does not require a prior evidence packet unless the schema asks for one.",
          "expected_output_fields": [
            "policies",
            "receipt_format",
            "binding",
            "not_authorization_notice"
          ],
          "access": {
            "authentication": "none",
            "base_call_price": "free",
            "billing_mode": "freemium",
            "discovery_is_free": true,
            "quota_per_hour": 50,
            "quota_enforcement": "best_effort",
            "pricing_url": "https://agent-output-verification-a2a.vassiliy-lakhonin.workers.dev/.well-known/x402",
            "free_trial": {
              "endpoint": "/v1/agent-output/trial",
              "agent_profile": "agent_output_verification",
              "tool": "agent_output_verification",
              "evaluation_kind": "evidence_review",
              "attempts_per_network": 2,
              "daily_service_limit": 1000,
              "payment_required": false,
              "scope": "Two attempts per network address per product for this trial campaign; shared networks share the allowance. Daily capacity is shared across all products.",
              "paid_endpoint": "/v1/agent-output/verification",
              "paid_transport": "rest",
              "paid_price_usdc": 0.05
            },
            "on_quota_exceeded": "Wait for the next UTC hour or review optional paid access; do not pay automatically.",
            "payment_integration": "Legacy transaction-hash integration; standard x402 interoperability is not certified."
          }
        }
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/decision-policies-list-response.schema.json",
        "title": "DecisionPoliciesListResponse",
        "description": "Stable catalog of readiness policies exposed by the hosted decision gate.",
        "x-schema-version": "1",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "policies",
          "receipt_format",
          "binding",
          "not_authorization_notice"
        ],
        "properties": {
          "policies": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "policy_id",
                "policy_version",
                "decision_tool",
                "verify_tool",
                "input_schema",
                "decisions",
                "positive_decision",
                "receipt_ttl_seconds"
              ],
              "properties": {
                "policy_id": {
                  "type": "string",
                  "const": "pre-action-check.v1"
                },
                "policy_version": {
                  "type": "string",
                  "const": "pre-action-check.v1"
                },
                "decision_tool": {
                  "type": "string",
                  "const": "decision_check"
                },
                "verify_tool": {
                  "type": "string",
                  "const": "decision_verify"
                },
                "input_schema": {
                  "type": "string",
                  "format": "uri"
                },
                "decisions": {
                  "type": "array",
                  "prefixItems": [
                    {
                      "const": "continue"
                    },
                    {
                      "const": "request_evidence"
                    },
                    {
                      "const": "require_approval"
                    },
                    {
                      "const": "stop"
                    }
                  ],
                  "items": false
                },
                "positive_decision": {
                  "type": "string",
                  "const": "continue"
                },
                "receipt_ttl_seconds": {
                  "type": "integer",
                  "const": 300
                }
              }
            }
          },
          "receipt_format": {
            "type": "string",
            "const": "agenda-readiness-receipt+jws"
          },
          "binding": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "request_hash",
              "action_hash"
            ],
            "properties": {
              "request_hash": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "algorithm",
                  "canonicalization",
                  "input"
                ],
                "properties": {
                  "algorithm": {
                    "const": "SHA-256"
                  },
                  "canonicalization": {
                    "const": "RFC8785-JCS"
                  },
                  "input": {
                    "const": "complete_request"
                  }
                }
              },
              "action_hash": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "algorithm",
                  "canonicalization",
                  "fields"
                ],
                "properties": {
                  "algorithm": {
                    "const": "SHA-256"
                  },
                  "canonicalization": {
                    "const": "RFC8785-JCS"
                  },
                  "fields": {
                    "type": "array",
                    "prefixItems": [
                      {
                        "const": "actor"
                      },
                      {
                        "const": "requested_action"
                      },
                      {
                        "const": "target"
                      },
                      {
                        "const": "risk_tier"
                      }
                    ],
                    "items": false
                  }
                }
              },
              "unicode_normalization": {
                "const": "none"
              }
            }
          },
          "not_authorization_notice": {
            "type": "string",
            "minLength": 1
          }
        }
      }
    },
    {
      "name": "decision_check",
      "description": "Run pre_action_check and attach a short-lived ES256 readiness receipt bound to the exact request and action hashes. The receipt is evidence of this Gate result, not authorization. Require decision_verify to return gate_passed before using it in an enforcement path. Required tool arguments: run_id, actor, requested_action, target, risk_tier, claims, evidence. Supply claim evidence and configure the deployment's ES256 signing key; without it the receipt is unavailable. A receipt is not authorization. Illustrative example arguments (synthetic; replace with your own data): {\"run_id\":\"synthetic-readiness-001\",\"actor\":{\"id\":\"example-agent\",\"type\":\"ai_agent\",\"operator\":\"Example owner\"},\"requested_action\":\"prepare a supplier recommendation for review\",\"target\":{\"id\":\"example-supplier\",\"type\":\"counterparty\"},\"risk_tier\":\"low\",\"claims\":[{\"claim_id\":\"c1\",\"claim\":\"The example record says registration is active.\",\"support_level\":\"direct\",\"evidence_ids\":[\"e1\"],\"supporting_quotes\":[{\"evidence_id\":\"e1\",\"quote\":\"Registration active\"}]}],\"evidence\":[{\"evidence_id\":\"e1\",\"name\":\"Synthetic registry excerpt\",\"source_type\":\"official_document\",\"content\":\"Registration active\"}]}. This product offers two free trial attempts at /v1/agent-output/trial; shared networks share the allowance and daily capacity is limited. Evaluation on paid endpoints requires a signed Base USDC payment for the exact request, or Pro access. Discovery is free. Keep the original request and X-Payment-Signature for result recovery within 24 hours. Current prices: https://agent-output-verification-a2a.vassiliy-lakhonin.workers.dev/.well-known/x402. Do not pay automatically. Evidence triage only: no factual-truth verification, no legal, compliance, sanctions, or financial advice. Human review is required before any commercial action.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/pre-action-check-request.schema.json",
        "title": "PreActionCheckRequest",
        "description": "Caller-supplied action context and claim evidence for deterministic pre-action routing. The check can continue, request evidence, require human approval, or stop. It does not authenticate the actor, verify factual truth, enforce the decision, or authorize the action.",
        "x-schema-version": "1",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "run_id",
          "actor",
          "requested_action",
          "target",
          "risk_tier",
          "claims",
          "evidence"
        ],
        "properties": {
          "run_id": {
            "type": "string",
            "minLength": 1,
            "description": "Caller-generated correlation identifier. Resubmit the same run_id after adding evidence or approval."
          },
          "actor": {
            "$ref": "#/$defs/actor"
          },
          "requested_action": {
            "type": "string",
            "minLength": 1
          },
          "target": {
            "$ref": "#/$defs/target"
          },
          "risk_tier": {
            "type": "string",
            "enum": [
              "low",
              "medium",
              "high",
              "critical"
            ]
          },
          "claims": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/$defs/claim"
            }
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/$defs/evidence_item"
            }
          },
          "unsupported_claims": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "policy_context": {
            "$ref": "#/$defs/policy_context"
          },
          "approval": {
            "$ref": "#/$defs/approval"
          }
        },
        "$defs": {
          "actor": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "type"
            ],
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "type": {
                "type": "string",
                "enum": [
                  "ai_agent",
                  "automation",
                  "api_client",
                  "human_delegated_agent",
                  "unknown",
                  "other"
                ]
              },
              "operator": {
                "type": "string",
                "minLength": 1
              }
            }
          },
          "target": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "type"
            ],
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "type": {
                "type": "string",
                "minLength": 1
              }
            }
          },
          "claim": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "claim_id",
              "claim",
              "support_level"
            ],
            "properties": {
              "claim_id": {
                "type": "string",
                "minLength": 1
              },
              "claim": {
                "type": "string",
                "minLength": 1
              },
              "claim_type": {
                "type": "string",
                "enum": [
                  "regulatory_change",
                  "regulatory_gap",
                  "sanctions_event",
                  "geopolitical_event",
                  "market_event",
                  "industry_response",
                  "corporate_disclosure",
                  "capability_claim"
                ]
              },
              "evidence_ids": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "support_level": {
                "type": "string",
                "enum": [
                  "direct",
                  "partial",
                  "weak",
                  "unsupported"
                ]
              },
              "uncertainty": {
                "type": "string"
              },
              "risk_if_wrong": {
                "type": "string"
              },
              "supporting_quotes": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "evidence_id",
                    "quote"
                  ],
                  "properties": {
                    "evidence_id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "quote": {
                      "type": "string",
                      "minLength": 1
                    }
                  }
                }
              }
            }
          },
          "evidence_item": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "evidence_id",
              "source_type"
            ],
            "properties": {
              "evidence_id": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "source_type": {
                "type": "string",
                "minLength": 1
              },
              "freshness": {
                "type": "string"
              },
              "supports": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "limits": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "content": {
                "type": "string",
                "description": "Optional source text extract. supporting_quotes corroborate only by matching their text against evidence content fields; without one, quotes are caller assertions."
              },
              "text": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              },
              "body": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              },
              "excerpt": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              },
              "quote": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              },
              "snippet": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              },
              "summary": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              },
              "full_text": {
                "type": "string",
                "description": "Alias content field; treated like 'content' for quote corroboration."
              }
            }
          },
          "policy_context": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "profile": {
                "type": "string",
                "enum": [
                  "default",
                  "agentic_interaction_trust"
                ]
              },
              "checks": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "check_id",
                    "status"
                  ],
                  "properties": {
                    "check_id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "passed",
                        "needs_evidence",
                        "failed"
                      ]
                    },
                    "evidence_gap": {
                      "type": "string",
                      "minLength": 1
                    }
                  }
                }
              }
            }
          },
          "approval": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "status"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "not_requested",
                  "approved",
                  "rejected"
                ]
              },
              "reference": {
                "type": "string",
                "minLength": 1,
                "description": "Opaque caller-held reference to an external approval record."
              }
            }
          }
        }
      },
      "_meta": {
        "com.agenda/readiness": {
          "schema_version": 1,
          "required_arguments": [
            "run_id",
            "actor",
            "requested_action",
            "target",
            "risk_tier",
            "claims",
            "evidence"
          ],
          "example_arguments": {
            "run_id": "synthetic-readiness-001",
            "actor": {
              "id": "example-agent",
              "type": "ai_agent",
              "operator": "Example owner"
            },
            "requested_action": "prepare a supplier recommendation for review",
            "target": {
              "id": "example-supplier",
              "type": "counterparty"
            },
            "risk_tier": "low",
            "claims": [
              {
                "claim_id": "c1",
                "claim": "The example record says registration is active.",
                "support_level": "direct",
                "evidence_ids": [
                  "e1"
                ],
                "supporting_quotes": [
                  {
                    "evidence_id": "e1",
                    "quote": "Registration active"
                  }
                ]
              }
            ],
            "evidence": [
              {
                "evidence_id": "e1",
                "name": "Synthetic registry excerpt",
                "source_type": "official_document",
                "content": "Registration active"
              }
            ]
          },
          "example_is_synthetic": true,
          "next_step": "Supply claim evidence and configure the deployment's ES256 signing key; without it the receipt is unavailable. A receipt is not authorization.",
          "expected_output_fields": [
            "decision_id",
            "run_id",
            "policy_version",
            "decision",
            "reason_code",
            "blocking_gaps",
            "evidence_requests",
            "approval_required",
            "human_review_required",
            "verification",
            "not_authorization_notice",
            "limitations"
          ],
          "access": {
            "authentication": "none",
            "base_call_price": "paid",
            "billing_mode": "pay_per_call",
            "discovery_is_free": true,
            "quota_per_hour": null,
            "quota_enforcement": "best_effort",
            "pricing_url": "https://agent-output-verification-a2a.vassiliy-lakhonin.workers.dev/.well-known/x402",
            "free_trial": {
              "endpoint": "/v1/agent-output/trial",
              "agent_profile": "agent_output_verification",
              "tool": "agent_output_verification",
              "evaluation_kind": "evidence_review",
              "attempts_per_network": 2,
              "daily_service_limit": 1000,
              "payment_required": false,
              "scope": "Two attempts per network address per product for this trial campaign; shared networks share the allowance. Daily capacity is shared across all products.",
              "paid_endpoint": "/v1/agent-output/verification",
              "paid_transport": "rest",
              "paid_price_usdc": 0.05
            },
            "on_quota_exceeded": "Wait for the next UTC hour or review optional paid access; do not pay automatically.",
            "payment_integration": "Legacy transaction-hash integration; standard x402 interoperability is not certified."
          }
        }
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/pre-action-check-response.schema.json",
        "title": "PreActionCheckResponse",
        "description": "Deterministic routing result for a caller-controlled action boundary. The response reports readiness; the caller remains responsible for enforcement, authentication, authorization, approval storage, and the action itself.",
        "x-schema-version": "1",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "decision_id",
          "run_id",
          "policy_version",
          "decision",
          "reason_code",
          "blocking_gaps",
          "evidence_requests",
          "approval_required",
          "human_review_required",
          "verification",
          "not_authorization_notice",
          "limitations"
        ],
        "properties": {
          "decision_id": {
            "type": "string",
            "minLength": 1
          },
          "run_id": {
            "type": "string",
            "minLength": 1
          },
          "policy_version": {
            "type": "string",
            "const": "pre-action-check.v1"
          },
          "decision": {
            "type": "string",
            "enum": [
              "continue",
              "request_evidence",
              "require_approval",
              "stop"
            ]
          },
          "reason_code": {
            "type": "string",
            "enum": [
              "evidence_ready",
              "evidence_gaps",
              "unsafe_claims",
              "policy_check_failed",
              "approval_required_for_risk",
              "approval_rejected"
            ]
          },
          "blocking_gaps": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "evidence_requests": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "approval_required": {
            "type": "boolean"
          },
          "human_review_required": {
            "type": "boolean"
          },
          "verification": {
            "type": "object",
            "additionalProperties": true,
            "required": [
              "verdict",
              "evidence_gaps",
              "owner_actions"
            ]
          },
          "policy_checks": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "check_id",
                "status"
              ],
              "properties": {
                "check_id": {
                  "type": "string",
                  "minLength": 1
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "passed",
                    "needs_evidence",
                    "failed"
                  ]
                },
                "evidence_gap": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          },
          "receipt_status": {
            "type": "string",
            "enum": [
              "signed",
              "unavailable"
            ],
            "description": "Present on decision_check. unavailable fails the signed Gate path closed."
          },
          "receipt": {
            "description": "Short-lived readiness receipt attached by decision_check. The legacy pre_action_check response omits it.",
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "format",
                  "token",
                  "receipt_id",
                  "issued_at",
                  "expires_at",
                  "request_hash",
                  "action_hash",
                  "verification_tool"
                ],
                "properties": {
                  "format": {
                    "type": "string",
                    "const": "agenda-readiness-receipt+jws"
                  },
                  "token": {
                    "type": "string",
                    "pattern": "^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$"
                  },
                  "receipt_id": {
                    "type": "string",
                    "minLength": 1
                  },
                  "issued_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "expires_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "request_hash": {
                    "type": "string",
                    "pattern": "^sha256:[a-f0-9]{64}$"
                  },
                  "action_hash": {
                    "type": "string",
                    "pattern": "^sha256:[a-f0-9]{64}$"
                  },
                  "verification_tool": {
                    "type": "string",
                    "const": "decision_verify"
                  }
                }
              }
            ]
          },
          "not_authorization_notice": {
            "type": "string",
            "minLength": 1
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    {
      "name": "decision_verify",
      "description": "Verify a signed readiness receipt against the caller's expected request and action hashes. Returns gate_passed only for a valid, unexpired, exactly bound continue decision. This does not authorize or perform the action. Required tool arguments: receipt, expected_request_hash, expected_action_hash. First obtain a real signed receipt from decision_check. Compute expected_request_hash and expected_action_hash from your own intended request/action; do not copy bindings blindly from the receipt. Never fabricate a receipt. This product offers two free trial attempts at /v1/agent-output/trial; shared networks share the allowance and daily capacity is limited. Evaluation on paid endpoints requires a signed Base USDC payment for the exact request, or Pro access. Discovery is free. Keep the original request and X-Payment-Signature for result recovery within 24 hours. Current prices: https://agent-output-verification-a2a.vassiliy-lakhonin.workers.dev/.well-known/x402. Do not pay automatically. Evidence triage only: no factual-truth verification, no legal, compliance, sanctions, or financial advice. Human review is required before any commercial action.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/decision-receipt-verify-request.schema.json",
        "title": "DecisionReceiptVerifyRequest",
        "description": "A signed readiness receipt plus the request and action hashes expected by the enforcing caller.",
        "x-schema-version": "1",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "receipt",
          "expected_request_hash",
          "expected_action_hash"
        ],
        "properties": {
          "receipt": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$"
          },
          "expected_request_hash": {
            "type": "string",
            "pattern": "^sha256:[a-f0-9]{64}$",
            "description": "SHA-256 JCS hash computed from the enforcing caller's own copy of the complete request; do not copy it blindly from the receipt response."
          },
          "expected_action_hash": {
            "type": "string",
            "pattern": "^sha256:[a-f0-9]{64}$",
            "description": "SHA-256 JCS hash computed from the enforcing caller's own actor, requested_action, target, and risk_tier object."
          }
        }
      },
      "_meta": {
        "com.agenda/readiness": {
          "schema_version": 1,
          "required_arguments": [
            "receipt",
            "expected_request_hash",
            "expected_action_hash"
          ],
          "example_arguments": null,
          "example_is_synthetic": true,
          "example_from_tool": "decision_check",
          "next_step": "First obtain a real signed receipt from decision_check. Compute expected_request_hash and expected_action_hash from your own intended request/action; do not copy bindings blindly from the receipt. Never fabricate a receipt.",
          "expected_output_fields": [
            "signature_valid",
            "binding_matches",
            "expired",
            "gate_passed",
            "reason_code",
            "receipt",
            "not_authorization_notice"
          ],
          "access": {
            "authentication": "none",
            "base_call_price": "paid",
            "billing_mode": "pay_per_call",
            "discovery_is_free": true,
            "quota_per_hour": null,
            "quota_enforcement": "best_effort",
            "pricing_url": "https://agent-output-verification-a2a.vassiliy-lakhonin.workers.dev/.well-known/x402",
            "free_trial": {
              "endpoint": "/v1/agent-output/trial",
              "agent_profile": "agent_output_verification",
              "tool": "agent_output_verification",
              "evaluation_kind": "evidence_review",
              "attempts_per_network": 2,
              "daily_service_limit": 1000,
              "payment_required": false,
              "scope": "Two attempts per network address per product for this trial campaign; shared networks share the allowance. Daily capacity is shared across all products.",
              "paid_endpoint": "/v1/agent-output/verification",
              "paid_transport": "rest",
              "paid_price_usdc": 0.05
            },
            "on_quota_exceeded": "Wait for the next UTC hour or review optional paid access; do not pay automatically.",
            "payment_integration": "Legacy transaction-hash integration; standard x402 interoperability is not certified."
          }
        }
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "outputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/decision-receipt-verify-response.schema.json",
        "title": "DecisionReceiptVerifyResponse",
        "description": "Verification result for a signed readiness receipt. gate_passed is not authorization.",
        "x-schema-version": "1",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "signature_valid",
          "binding_matches",
          "expired",
          "gate_passed",
          "reason_code",
          "receipt",
          "not_authorization_notice"
        ],
        "properties": {
          "signature_valid": {
            "type": "boolean"
          },
          "binding_matches": {
            "type": "boolean"
          },
          "expired": {
            "type": "boolean"
          },
          "gate_passed": {
            "type": "boolean"
          },
          "reason_code": {
            "type": "string",
            "enum": [
              "valid_continue_receipt",
              "decision_not_continue",
              "binding_mismatch",
              "receipt_expired",
              "invalid_signature",
              "invalid_receipt_format",
              "signing_key_unavailable"
            ]
          },
          "receipt": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "receipt_id",
                  "decision_id",
                  "run_id",
                  "policy_version",
                  "decision",
                  "reason_code",
                  "request_hash",
                  "action_hash",
                  "issued_at",
                  "expires_at",
                  "issuer",
                  "not_authorization"
                ],
                "properties": {
                  "receipt_id": {
                    "type": "string",
                    "minLength": 1
                  },
                  "decision_id": {
                    "type": "string",
                    "minLength": 1
                  },
                  "run_id": {
                    "type": "string",
                    "minLength": 1
                  },
                  "policy_version": {
                    "type": "string",
                    "const": "pre-action-check.v1"
                  },
                  "decision": {
                    "type": "string",
                    "enum": [
                      "continue",
                      "request_evidence",
                      "require_approval",
                      "stop"
                    ]
                  },
                  "reason_code": {
                    "type": "string",
                    "minLength": 1
                  },
                  "request_hash": {
                    "type": "string",
                    "pattern": "^sha256:[a-f0-9]{64}$"
                  },
                  "action_hash": {
                    "type": "string",
                    "pattern": "^sha256:[a-f0-9]{64}$"
                  },
                  "issued_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "expires_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "issuer": {
                    "type": "string",
                    "format": "uri"
                  },
                  "not_authorization": {
                    "type": "boolean",
                    "const": true
                  }
                }
              }
            ]
          },
          "not_authorization_notice": {
            "type": "string",
            "minLength": 1
          }
        }
      }
    }
  ],
  "liveness": "ok"
}