{
      "tool_id": "art-151-agent-obo-mandate-validator",
      "tool_version": "1.0.0",
      "display_name": "Agent On-Behalf-Of (OBO) Mandate Validator",
      "mcp_name": "validate_agent_obo_mandate",
      "mandate_type": "compliance_mandate",
      "wave": 27,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-151-agent-obo-mandate-validator.html",
      "description": "Validate an agent on-behalf-of (OBO) mandate: subject (the user being represented), bounded scope array, intent string, and a non-expired validity window (caller-supplied now_unix, no clock reads). Mismatch or expiry returns REFUSE. Aligns with the AP2 mandate-chain pattern (art-01). Consumes scope-revocation audit (art-150), feeds task lifecycle validator (art-152). Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-151-agent-obo-mandate-validator.html#manifest",
      "consumes": [
        "art-150-mcp-tool-scope-revocation-auditor"
      ],
      "feeds": [
        "art-152-mcp-task-lifecycle-validator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:3e6402dbb86314d81a2323ad9509ad6ea85359eeaed521b4442a944f53a4ad54","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "IDOXI+XePpJWKmj6iWUHbi9iYOvUjhYK6dIaV8SFMKgKLGBWTjZwc/NoIIQH7RK6+V1TFqljqnXhekziIXkb5QuWwD0i6INOVPH4zSLtSWFAOFlkJaSRwB0/0ulIYQTzI6i3z/7Z+rjqkmzCiOR9TIbL7tY4Ye/RZgiiscctLS4ZCyU6uZocdF5D8lqDK2EIc8+z5xQN9T4DkD0H2DOtCCocVMn7nWz1NmM+cgV7Ap5qkoku1ivFL5n6TstV+dlUCnu92hNaLIwPJAR5agRmoQOWunw2hq+xzbnJqx9AtskuOCxDsusrTa12NZ/VA4DqpIcBJODiGZXF19Cm3ouPbQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:132e5aaab12c312f864cf53a616693c8bd1b4ba66a3813c9e3db812d4b04bc40",
          "output": {
            "gaps": [],
            "has_intent": true,
            "has_scope": true,
            "has_subject": true,
            "not_expired": true,
            "verdict": "ACCEPT"
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    }
