{
  "ok": true,
  "tool": "bazaar.reindex_window",
  "mode": "plan-only",
  "generatedAt": "2026-06-22T09:24:31.387Z",
  "planHash": "sha256:0f8526bf928b81c1f37240ca89f8ab2560852b04fd1e89e0d126d36760605185",
  "target": {
    "baseUrl": "https://trust402.aztecbeacon.uk",
    "expectedPaidRoutes": 10,
    "indexedCount": 2,
    "missingCount": 8,
    "selectedCount": 8,
    "defaultEvidenceSource": "2026-06-21 CDP Bazaar route-level check for trust402.aztecbeacon.uk"
  },
  "currentEvidence": {
    "indexedResourceIds": [
      "trust.check_x402",
      "trust.compare_resources"
    ],
    "missingResourceIds": [
      "trust.score_resource",
      "trust.evaluate_origin",
      "seller.readiness",
      "procurement.plan",
      "procurement.quote",
      "monitor.snapshot",
      "monitor.badge",
      "reports.x402_diligence"
    ],
    "selectedRouteIds": [
      "trust.score_resource",
      "trust.evaluate_origin",
      "seller.readiness",
      "procurement.plan",
      "procurement.quote",
      "monitor.snapshot",
      "monitor.badge",
      "reports.x402_diligence"
    ]
  },
  "currentPolicy": {
    "tool": "policies.spend_status",
    "generatedAt": "2026-06-22T09:24:31.377Z",
    "liveProcurementReady": true,
    "proof402DelegationReady": true,
    "agentcashAutoRefillReady": true,
    "liveControls": {
      "maxPerCallUsd": 0.005,
      "maxPerJobUsd": 0.02,
      "dailyLimitUsd": 0.05,
      "spentTodayUsd": 0.015,
      "dailyRemainingUsd": 0.035,
      "allowedRegistriesCount": 3,
      "paymentProvider": "cdp-x402",
      "operatorApiKeyConfigured": true
    },
    "liveBlockerIds": []
  },
  "budget": {
    "routeByRouteOnly": true,
    "starterCapUsd": 0.05,
    "selectedMaxSpendUsd": 0.295,
    "starterBatchUsd": 0.145,
    "highCostBatchUsd": 0.15,
    "proofReserveUsdPerRoute": 0,
    "recommendedFirstRouteId": "trust.score_resource"
  },
  "batches": {
    "starter": {
      "purpose": "Run these first: small route-level settlement/evidence smokes, one route per temporary live window.",
      "routeCount": 7,
      "maxSpendUsd": 0.145,
      "routeIds": [
        "trust.score_resource",
        "trust.evaluate_origin",
        "seller.readiness",
        "procurement.plan",
        "procurement.quote",
        "monitor.snapshot",
        "monitor.badge"
      ]
    },
    "highCost": {
      "purpose": "Run only after separate approval because these routes exceed the small starter cap.",
      "routeCount": 1,
      "maxSpendUsd": 0.15,
      "routeIds": [
        "reports.x402_diligence"
      ]
    }
  },
  "routes": [
    {
      "id": "trust.score_resource",
      "method": "POST",
      "path": "/api/trust/score-resource",
      "endpoint": "https://trust402.aztecbeacon.uk/api/trust/score-resource",
      "purpose": "Score one x402 resource for trust, schema, price, discovery, and receipt readiness.",
      "batch": "starter",
      "price": {
        "advertised": 0.01,
        "maxUsd": 0.01,
        "routeWindowMaxUsd": 0.01
      },
      "currentPolicyFit": {
        "routeId": "trust.score_resource",
        "readyNow": false,
        "liveProcurementReady": true,
        "proof402ReadyIfNeeded": "not-required",
        "currentMaxPerCallUsd": 0.005,
        "currentMaxPerJobUsd": 0.02,
        "currentDailyRemainingUsd": 0.035,
        "currentPaymentProvider": "cdp-x402",
        "currentAllowlistCount": 3,
        "routeOrigin": "https://trust402.aztecbeacon.uk",
        "knownAllowlistContainsRouteOrigin": "not-exposed-by-public-policy",
        "blockers": []
      },
      "requiredTemporaryPolicyWindow": {
        "reason": "Current policy cannot safely run this route as-is; stage the generated one-route window first.",
        "vercelEnv": {
          "LIVE_SPEND_ENABLED": "true",
          "LIVE_PAYMENT_PROVIDER": "cdp-x402",
          "LIVE_MAX_PER_CALL_USD": "0.01",
          "LIVE_MAX_PER_JOB_USD": "0.01",
          "LIVE_DAILY_LIMIT_USD": "0.01",
          "LIVE_SPENT_TODAY_USD": "0",
          "LIVE_APPROVAL_THRESHOLD_USD": "0",
          "LIVE_ALLOWED_REGISTRIES": "https://trust402.aztecbeacon.uk",
          "PROOF402_BASE_URL": "https://proof402.vercel.app",
          "PROOF402_DELEGATION_MODE": "disabled",
          "PROOF402_MAX_SPEND_USD": "0",
          "AGENTCASH_AUTO_REFILL_APPROVED": "false",
          "AGENTCASH_AUTO_REFILL_ENABLED": "false",
          "AGENTCASH_AUTO_REFILL_PROVIDER": "",
          "AGENTCASH_AUTO_REFILL_THRESHOLD_USD": "0.50",
          "AGENTCASH_AUTO_REFILL_AMOUNT_USD": "1",
          "AGENTCASH_AUTO_REFILL_DAILY_CAP_USD": "2"
        },
        "requiredSecrets": [
          "TRUST402_OPERATOR_API_KEY",
          "CDP_API_KEY_ID",
          "CDP_API_KEY_SECRET",
          "CDP_WALLET_SECRET",
          "CDP_EVM_ACCOUNT_ADDRESS_OR_NAME"
        ],
        "localPolicyPatch": {
          "restrictions": {
            "trust402LiveProcurement": "approved-for-manual-smoke",
            "proof402Delegation": "disabled-until-separate-approval",
            "allowedOrigins": [
              "https://trust402.aztecbeacon.uk"
            ]
          },
          "limits": {
            "agentcashGlobalMaxAmountUsd": "0.01",
            "manualSmokeRemainingBudgetUsd": "0.01",
            "lastVerifiedBalanceUsd": "1",
            "minimumReserveUsd": "0.5",
            "autoRefill": {
              "enabled": false,
              "futureThresholdUsd": 0.5,
              "requiresExplicitProviderAndCap": true
            }
          }
        },
        "planHash": "sha256:667090c4b68701a23aef091b594ae268280c367029ff961cacd52cb131cca71c",
        "status": "ready-to-stage",
        "blockers": []
      },
      "commands": {
        "buyerPreflight": "npm run payment:buyer-preflight -- --provider=cdp-x402 --strict",
        "bridgePreflight": null,
        "providerPreflight": "npm run payment:buyer-preflight -- --provider=cdp-x402 --strict",
        "liveEvidenceSmoke": "npm run live:evidence-smoke -- https://trust402.aztecbeacon.uk --live --candidate-endpoint=https://trust402.aztecbeacon.uk/api/trust/score-resource --candidate-price=0.01 --max-total-usd=0.01 --live-spent-today-usd=0 --skip-proof",
        "postRouteCheck": "npm run bazaar:indexing:check:all -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --limit=20 --concurrency=8"
      },
      "directAgentcashFallback": {
        "purpose": "Operator-reviewed AgentCash MCP direct smoke for marketplace indexing evidence when the server-side live payment adapter is not configured yet.",
        "targetResource": {
          "id": "trust.score_resource",
          "endpoint": "https://trust402.aztecbeacon.uk/api/trust/score-resource",
          "method": "POST",
          "expectedPriceUsd": 0.01
        },
        "mcpTools": {
          "schemaCheck": "mcp__agentcash__check_endpoint_schema",
          "paidFetch": "mcp__agentcash__fetch"
        },
        "prerequisites": [
          "Read .local/trust402-agentcash-wallet.json and confirm the AgentCash Base wallet is the Trust402-reserved wallet.",
          "Open a one-shot local AgentCash policy window with manualSmokeRemainingBudgetUsd >= 0.01 and agentcashGlobalMaxAmountUsd >= 0.01.",
          "Get explicit operator approval for this exact paid AgentCash fetch before executing it."
        ],
        "safety": {
          "readOnlyPlan": true,
          "executesPayment": false,
          "directFetchPaysIfExecuted": true,
          "outOfBandAgentcashMcpCall": true,
          "doesNotProveRuntimePaymentAdapter": true,
          "privatePayloadAllowed": false,
          "includesPrivateKeyMaterial": false,
          "network": "base",
          "maxAmountUsd": 0.01,
          "sendsOnly": [
            "id",
            "endpoint",
            "priceUsd",
            "has402",
            "hasInputSchema",
            "hasOpenApi",
            "hasWellKnown",
            "receiptReady",
            "description"
          ]
        },
        "status": "operator-approval-required",
        "schemaCheck": {
          "description": "Safe schema observation. This should not pay because it only asks AgentCash to inspect the endpoint contract.",
          "input": {
            "url": "https://trust402.aztecbeacon.uk/api/trust/score-resource",
            "method": "POST",
            "body": {
              "id": "trust.check_x402",
              "endpoint": "https://trust402.aztecbeacon.uk/api/trust/check-x402",
              "priceUsd": 0.005,
              "has402": true,
              "hasInputSchema": true,
              "hasOpenApi": true,
              "hasWellKnown": true,
              "receiptReady": true,
              "description": "Trust402 x402 challenge probe for payment-flow readiness."
            }
          }
        },
        "fetch": {
          "description": "Paid AgentCash MCP call. Execute only after the local policy window and explicit operator approval are in place.",
          "input": {
            "url": "https://trust402.aztecbeacon.uk/api/trust/score-resource",
            "method": "POST",
            "body": {
              "id": "trust.check_x402",
              "endpoint": "https://trust402.aztecbeacon.uk/api/trust/check-x402",
              "priceUsd": 0.005,
              "has402": true,
              "hasInputSchema": true,
              "hasOpenApi": true,
              "hasWellKnown": true,
              "receiptReady": true,
              "description": "Trust402 x402 challenge probe for payment-flow readiness."
            },
            "maxAmount": 0.01,
            "paymentNetwork": "base",
            "paymentProtocol": "x402",
            "timeout": 30000
          }
        },
        "evidenceAfterSuccess": {
          "commands": [
            "npm run bazaar:indexing:check:all -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --limit=20",
            "npm run completion:audit -- https://trust402.aztecbeacon.uk",
            "npm run launch:monitor -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --strict"
          ],
          "vercelEnvIfCdpBazaarReportsAllIndexed": {
            "TRUST402_CDP_BAZAAR_ALL_RESOURCES_INDEXED": "true",
            "TRUST402_CDP_BAZAAR_CHECK_STATUS": "all-indexed",
            "TRUST402_CDP_BAZAAR_EXPECTED_RESOURCES": "10",
            "TRUST402_CDP_BAZAAR_INDEXED_RESOURCES": "10",
            "TRUST402_CDP_BAZAAR_MISSING_RESOURCES": "",
            "TRUST402_CDP_BAZAAR_EVIDENCE_REF": "<public-safe CDP Bazaar 10/10 check hash or run URL>"
          },
          "caveat": "This can help marketplace indexing evidence, but final live procurement still requires Trust402 runtime payment-adapter evidence."
        }
      },
      "safety": {
        "readOnlyPlan": true,
        "directAgentcashFallbackPaysIfExecuted": true,
        "runtimeCommandPaysIfExecuted": true,
        "privatePayloadAllowed": false,
        "proofIncluded": false
      }
    },
    {
      "id": "trust.evaluate_origin",
      "method": "POST",
      "path": "/api/trust/evaluate-origin",
      "endpoint": "https://trust402.aztecbeacon.uk/api/trust/evaluate-origin",
      "purpose": "Evaluate a full origin/domain and its x402 discovery posture.",
      "batch": "starter",
      "price": {
        "advertised": 0.02,
        "maxUsd": 0.02,
        "routeWindowMaxUsd": 0.02
      },
      "currentPolicyFit": {
        "routeId": "trust.evaluate_origin",
        "readyNow": false,
        "liveProcurementReady": true,
        "proof402ReadyIfNeeded": "not-required",
        "currentMaxPerCallUsd": 0.005,
        "currentMaxPerJobUsd": 0.02,
        "currentDailyRemainingUsd": 0.035,
        "currentPaymentProvider": "cdp-x402",
        "currentAllowlistCount": 3,
        "routeOrigin": "https://trust402.aztecbeacon.uk",
        "knownAllowlistContainsRouteOrigin": "not-exposed-by-public-policy",
        "blockers": []
      },
      "requiredTemporaryPolicyWindow": {
        "reason": "Current policy cannot safely run this route as-is; stage the generated one-route window first.",
        "vercelEnv": {
          "LIVE_SPEND_ENABLED": "true",
          "LIVE_PAYMENT_PROVIDER": "cdp-x402",
          "LIVE_MAX_PER_CALL_USD": "0.02",
          "LIVE_MAX_PER_JOB_USD": "0.02",
          "LIVE_DAILY_LIMIT_USD": "0.02",
          "LIVE_SPENT_TODAY_USD": "0",
          "LIVE_APPROVAL_THRESHOLD_USD": "0",
          "LIVE_ALLOWED_REGISTRIES": "https://trust402.aztecbeacon.uk",
          "PROOF402_BASE_URL": "https://proof402.vercel.app",
          "PROOF402_DELEGATION_MODE": "disabled",
          "PROOF402_MAX_SPEND_USD": "0",
          "AGENTCASH_AUTO_REFILL_APPROVED": "false",
          "AGENTCASH_AUTO_REFILL_ENABLED": "false",
          "AGENTCASH_AUTO_REFILL_PROVIDER": "",
          "AGENTCASH_AUTO_REFILL_THRESHOLD_USD": "0.50",
          "AGENTCASH_AUTO_REFILL_AMOUNT_USD": "1",
          "AGENTCASH_AUTO_REFILL_DAILY_CAP_USD": "2"
        },
        "requiredSecrets": [
          "TRUST402_OPERATOR_API_KEY",
          "CDP_API_KEY_ID",
          "CDP_API_KEY_SECRET",
          "CDP_WALLET_SECRET",
          "CDP_EVM_ACCOUNT_ADDRESS_OR_NAME"
        ],
        "localPolicyPatch": {
          "restrictions": {
            "trust402LiveProcurement": "approved-for-manual-smoke",
            "proof402Delegation": "disabled-until-separate-approval",
            "allowedOrigins": [
              "https://trust402.aztecbeacon.uk"
            ]
          },
          "limits": {
            "agentcashGlobalMaxAmountUsd": "0.02",
            "manualSmokeRemainingBudgetUsd": "0.02",
            "lastVerifiedBalanceUsd": "1",
            "minimumReserveUsd": "0.5",
            "autoRefill": {
              "enabled": false,
              "futureThresholdUsd": 0.5,
              "requiresExplicitProviderAndCap": true
            }
          }
        },
        "planHash": "sha256:0267c709b84540c820a8224c60037b1f32f0e267da27e4f71e7a21799e2fae74",
        "status": "ready-to-stage",
        "blockers": []
      },
      "commands": {
        "buyerPreflight": "npm run payment:buyer-preflight -- --provider=cdp-x402 --strict",
        "bridgePreflight": null,
        "providerPreflight": "npm run payment:buyer-preflight -- --provider=cdp-x402 --strict",
        "liveEvidenceSmoke": "npm run live:evidence-smoke -- https://trust402.aztecbeacon.uk --live --candidate-endpoint=https://trust402.aztecbeacon.uk/api/trust/evaluate-origin --candidate-price=0.02 --max-total-usd=0.02 --live-spent-today-usd=0 --skip-proof",
        "postRouteCheck": "npm run bazaar:indexing:check:all -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --limit=20 --concurrency=8"
      },
      "directAgentcashFallback": {
        "purpose": "Operator-reviewed AgentCash MCP direct smoke for marketplace indexing evidence when the server-side live payment adapter is not configured yet.",
        "targetResource": {
          "id": "trust.evaluate_origin",
          "endpoint": "https://trust402.aztecbeacon.uk/api/trust/evaluate-origin",
          "method": "POST",
          "expectedPriceUsd": 0.02
        },
        "mcpTools": {
          "schemaCheck": "mcp__agentcash__check_endpoint_schema",
          "paidFetch": "mcp__agentcash__fetch"
        },
        "prerequisites": [
          "Read .local/trust402-agentcash-wallet.json and confirm the AgentCash Base wallet is the Trust402-reserved wallet.",
          "Open a one-shot local AgentCash policy window with manualSmokeRemainingBudgetUsd >= 0.02 and agentcashGlobalMaxAmountUsd >= 0.02.",
          "Get explicit operator approval for this exact paid AgentCash fetch before executing it."
        ],
        "safety": {
          "readOnlyPlan": true,
          "executesPayment": false,
          "directFetchPaysIfExecuted": true,
          "outOfBandAgentcashMcpCall": true,
          "doesNotProveRuntimePaymentAdapter": true,
          "privatePayloadAllowed": false,
          "includesPrivateKeyMaterial": false,
          "network": "base",
          "maxAmountUsd": 0.02,
          "sendsOnly": [
            "origin"
          ]
        },
        "status": "operator-approval-required",
        "schemaCheck": {
          "description": "Safe schema observation. This should not pay because it only asks AgentCash to inspect the endpoint contract.",
          "input": {
            "url": "https://trust402.aztecbeacon.uk/api/trust/evaluate-origin",
            "method": "POST",
            "body": {
              "origin": "https://trust402.aztecbeacon.uk"
            }
          }
        },
        "fetch": {
          "description": "Paid AgentCash MCP call. Execute only after the local policy window and explicit operator approval are in place.",
          "input": {
            "url": "https://trust402.aztecbeacon.uk/api/trust/evaluate-origin",
            "method": "POST",
            "body": {
              "origin": "https://trust402.aztecbeacon.uk"
            },
            "maxAmount": 0.02,
            "paymentNetwork": "base",
            "paymentProtocol": "x402",
            "timeout": 30000
          }
        },
        "evidenceAfterSuccess": {
          "commands": [
            "npm run bazaar:indexing:check:all -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --limit=20",
            "npm run completion:audit -- https://trust402.aztecbeacon.uk",
            "npm run launch:monitor -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --strict"
          ],
          "vercelEnvIfCdpBazaarReportsAllIndexed": {
            "TRUST402_CDP_BAZAAR_ALL_RESOURCES_INDEXED": "true",
            "TRUST402_CDP_BAZAAR_CHECK_STATUS": "all-indexed",
            "TRUST402_CDP_BAZAAR_EXPECTED_RESOURCES": "10",
            "TRUST402_CDP_BAZAAR_INDEXED_RESOURCES": "10",
            "TRUST402_CDP_BAZAAR_MISSING_RESOURCES": "",
            "TRUST402_CDP_BAZAAR_EVIDENCE_REF": "<public-safe CDP Bazaar 10/10 check hash or run URL>"
          },
          "caveat": "This can help marketplace indexing evidence, but final live procurement still requires Trust402 runtime payment-adapter evidence."
        }
      },
      "safety": {
        "readOnlyPlan": true,
        "directAgentcashFallbackPaysIfExecuted": true,
        "runtimeCommandPaysIfExecuted": true,
        "privatePayloadAllowed": false,
        "proofIncluded": false
      }
    },
    {
      "id": "seller.readiness",
      "method": "POST",
      "path": "/api/seller/readiness",
      "endpoint": "https://trust402.aztecbeacon.uk/api/seller/readiness",
      "purpose": "Check whether a seller endpoint is ready for marketplace discovery and autonomous buyers.",
      "batch": "starter",
      "price": {
        "advertised": 0.02,
        "maxUsd": 0.02,
        "routeWindowMaxUsd": 0.02
      },
      "currentPolicyFit": {
        "routeId": "seller.readiness",
        "readyNow": false,
        "liveProcurementReady": true,
        "proof402ReadyIfNeeded": "not-required",
        "currentMaxPerCallUsd": 0.005,
        "currentMaxPerJobUsd": 0.02,
        "currentDailyRemainingUsd": 0.035,
        "currentPaymentProvider": "cdp-x402",
        "currentAllowlistCount": 3,
        "routeOrigin": "https://trust402.aztecbeacon.uk",
        "knownAllowlistContainsRouteOrigin": "not-exposed-by-public-policy",
        "blockers": []
      },
      "requiredTemporaryPolicyWindow": {
        "reason": "Current policy cannot safely run this route as-is; stage the generated one-route window first.",
        "vercelEnv": {
          "LIVE_SPEND_ENABLED": "true",
          "LIVE_PAYMENT_PROVIDER": "cdp-x402",
          "LIVE_MAX_PER_CALL_USD": "0.02",
          "LIVE_MAX_PER_JOB_USD": "0.02",
          "LIVE_DAILY_LIMIT_USD": "0.02",
          "LIVE_SPENT_TODAY_USD": "0",
          "LIVE_APPROVAL_THRESHOLD_USD": "0",
          "LIVE_ALLOWED_REGISTRIES": "https://trust402.aztecbeacon.uk",
          "PROOF402_BASE_URL": "https://proof402.vercel.app",
          "PROOF402_DELEGATION_MODE": "disabled",
          "PROOF402_MAX_SPEND_USD": "0",
          "AGENTCASH_AUTO_REFILL_APPROVED": "false",
          "AGENTCASH_AUTO_REFILL_ENABLED": "false",
          "AGENTCASH_AUTO_REFILL_PROVIDER": "",
          "AGENTCASH_AUTO_REFILL_THRESHOLD_USD": "0.50",
          "AGENTCASH_AUTO_REFILL_AMOUNT_USD": "1",
          "AGENTCASH_AUTO_REFILL_DAILY_CAP_USD": "2"
        },
        "requiredSecrets": [
          "TRUST402_OPERATOR_API_KEY",
          "CDP_API_KEY_ID",
          "CDP_API_KEY_SECRET",
          "CDP_WALLET_SECRET",
          "CDP_EVM_ACCOUNT_ADDRESS_OR_NAME"
        ],
        "localPolicyPatch": {
          "restrictions": {
            "trust402LiveProcurement": "approved-for-manual-smoke",
            "proof402Delegation": "disabled-until-separate-approval",
            "allowedOrigins": [
              "https://trust402.aztecbeacon.uk"
            ]
          },
          "limits": {
            "agentcashGlobalMaxAmountUsd": "0.02",
            "manualSmokeRemainingBudgetUsd": "0.02",
            "lastVerifiedBalanceUsd": "1",
            "minimumReserveUsd": "0.5",
            "autoRefill": {
              "enabled": false,
              "futureThresholdUsd": 0.5,
              "requiresExplicitProviderAndCap": true
            }
          }
        },
        "planHash": "sha256:583d549a6786781ffd980f78b1f3128e30943baf6a744390e314b46a1e7c2540",
        "status": "ready-to-stage",
        "blockers": []
      },
      "commands": {
        "buyerPreflight": "npm run payment:buyer-preflight -- --provider=cdp-x402 --strict",
        "bridgePreflight": null,
        "providerPreflight": "npm run payment:buyer-preflight -- --provider=cdp-x402 --strict",
        "liveEvidenceSmoke": "npm run live:evidence-smoke -- https://trust402.aztecbeacon.uk --live --candidate-endpoint=https://trust402.aztecbeacon.uk/api/seller/readiness --candidate-price=0.02 --max-total-usd=0.02 --live-spent-today-usd=0 --skip-proof",
        "postRouteCheck": "npm run bazaar:indexing:check:all -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --limit=20 --concurrency=8"
      },
      "directAgentcashFallback": {
        "purpose": "Operator-reviewed AgentCash MCP direct smoke for marketplace indexing evidence when the server-side live payment adapter is not configured yet.",
        "targetResource": {
          "id": "seller.readiness",
          "endpoint": "https://trust402.aztecbeacon.uk/api/seller/readiness",
          "method": "POST",
          "expectedPriceUsd": 0.02
        },
        "mcpTools": {
          "schemaCheck": "mcp__agentcash__check_endpoint_schema",
          "paidFetch": "mcp__agentcash__fetch"
        },
        "prerequisites": [
          "Read .local/trust402-agentcash-wallet.json and confirm the AgentCash Base wallet is the Trust402-reserved wallet.",
          "Open a one-shot local AgentCash policy window with manualSmokeRemainingBudgetUsd >= 0.02 and agentcashGlobalMaxAmountUsd >= 0.02.",
          "Get explicit operator approval for this exact paid AgentCash fetch before executing it."
        ],
        "safety": {
          "readOnlyPlan": true,
          "executesPayment": false,
          "directFetchPaysIfExecuted": true,
          "outOfBandAgentcashMcpCall": true,
          "doesNotProveRuntimePaymentAdapter": true,
          "privatePayloadAllowed": false,
          "includesPrivateKeyMaterial": false,
          "network": "base",
          "maxAmountUsd": 0.02,
          "sendsOnly": [
            "origin",
            "id",
            "endpoint",
            "priceUsd",
            "has402",
            "hasInputSchema",
            "hasOpenApi",
            "hasWellKnown",
            "receiptReady",
            "description"
          ]
        },
        "status": "operator-approval-required",
        "schemaCheck": {
          "description": "Safe schema observation. This should not pay because it only asks AgentCash to inspect the endpoint contract.",
          "input": {
            "url": "https://trust402.aztecbeacon.uk/api/seller/readiness",
            "method": "POST",
            "body": {
              "origin": "https://trust402.aztecbeacon.uk",
              "id": "trust.check_x402",
              "endpoint": "https://trust402.aztecbeacon.uk/api/trust/check-x402",
              "priceUsd": 0.005,
              "has402": true,
              "hasInputSchema": true,
              "hasOpenApi": true,
              "hasWellKnown": true,
              "receiptReady": true,
              "description": "Trust402 x402 challenge probe for payment-flow readiness."
            }
          }
        },
        "fetch": {
          "description": "Paid AgentCash MCP call. Execute only after the local policy window and explicit operator approval are in place.",
          "input": {
            "url": "https://trust402.aztecbeacon.uk/api/seller/readiness",
            "method": "POST",
            "body": {
              "origin": "https://trust402.aztecbeacon.uk",
              "id": "trust.check_x402",
              "endpoint": "https://trust402.aztecbeacon.uk/api/trust/check-x402",
              "priceUsd": 0.005,
              "has402": true,
              "hasInputSchema": true,
              "hasOpenApi": true,
              "hasWellKnown": true,
              "receiptReady": true,
              "description": "Trust402 x402 challenge probe for payment-flow readiness."
            },
            "maxAmount": 0.02,
            "paymentNetwork": "base",
            "paymentProtocol": "x402",
            "timeout": 30000
          }
        },
        "evidenceAfterSuccess": {
          "commands": [
            "npm run bazaar:indexing:check:all -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --limit=20",
            "npm run completion:audit -- https://trust402.aztecbeacon.uk",
            "npm run launch:monitor -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --strict"
          ],
          "vercelEnvIfCdpBazaarReportsAllIndexed": {
            "TRUST402_CDP_BAZAAR_ALL_RESOURCES_INDEXED": "true",
            "TRUST402_CDP_BAZAAR_CHECK_STATUS": "all-indexed",
            "TRUST402_CDP_BAZAAR_EXPECTED_RESOURCES": "10",
            "TRUST402_CDP_BAZAAR_INDEXED_RESOURCES": "10",
            "TRUST402_CDP_BAZAAR_MISSING_RESOURCES": "",
            "TRUST402_CDP_BAZAAR_EVIDENCE_REF": "<public-safe CDP Bazaar 10/10 check hash or run URL>"
          },
          "caveat": "This can help marketplace indexing evidence, but final live procurement still requires Trust402 runtime payment-adapter evidence."
        }
      },
      "safety": {
        "readOnlyPlan": true,
        "directAgentcashFallbackPaysIfExecuted": true,
        "runtimeCommandPaysIfExecuted": true,
        "privatePayloadAllowed": false,
        "proofIncluded": false
      }
    },
    {
      "id": "procurement.plan",
      "method": "POST",
      "path": "/api/procurement/plan",
      "endpoint": "https://trust402.aztecbeacon.uk/api/procurement/plan",
      "purpose": "Create a bounded spend plan without spending money.",
      "batch": "starter",
      "price": {
        "advertised": 0.02,
        "maxUsd": 0.02,
        "routeWindowMaxUsd": 0.02
      },
      "currentPolicyFit": {
        "routeId": "procurement.plan",
        "readyNow": false,
        "liveProcurementReady": true,
        "proof402ReadyIfNeeded": "not-required",
        "currentMaxPerCallUsd": 0.005,
        "currentMaxPerJobUsd": 0.02,
        "currentDailyRemainingUsd": 0.035,
        "currentPaymentProvider": "cdp-x402",
        "currentAllowlistCount": 3,
        "routeOrigin": "https://trust402.aztecbeacon.uk",
        "knownAllowlistContainsRouteOrigin": "not-exposed-by-public-policy",
        "blockers": []
      },
      "requiredTemporaryPolicyWindow": {
        "reason": "Current policy cannot safely run this route as-is; stage the generated one-route window first.",
        "vercelEnv": {
          "LIVE_SPEND_ENABLED": "true",
          "LIVE_PAYMENT_PROVIDER": "cdp-x402",
          "LIVE_MAX_PER_CALL_USD": "0.02",
          "LIVE_MAX_PER_JOB_USD": "0.02",
          "LIVE_DAILY_LIMIT_USD": "0.02",
          "LIVE_SPENT_TODAY_USD": "0",
          "LIVE_APPROVAL_THRESHOLD_USD": "0",
          "LIVE_ALLOWED_REGISTRIES": "https://trust402.aztecbeacon.uk",
          "PROOF402_BASE_URL": "https://proof402.vercel.app",
          "PROOF402_DELEGATION_MODE": "disabled",
          "PROOF402_MAX_SPEND_USD": "0",
          "AGENTCASH_AUTO_REFILL_APPROVED": "false",
          "AGENTCASH_AUTO_REFILL_ENABLED": "false",
          "AGENTCASH_AUTO_REFILL_PROVIDER": "",
          "AGENTCASH_AUTO_REFILL_THRESHOLD_USD": "0.50",
          "AGENTCASH_AUTO_REFILL_AMOUNT_USD": "1",
          "AGENTCASH_AUTO_REFILL_DAILY_CAP_USD": "2"
        },
        "requiredSecrets": [
          "TRUST402_OPERATOR_API_KEY",
          "CDP_API_KEY_ID",
          "CDP_API_KEY_SECRET",
          "CDP_WALLET_SECRET",
          "CDP_EVM_ACCOUNT_ADDRESS_OR_NAME"
        ],
        "localPolicyPatch": {
          "restrictions": {
            "trust402LiveProcurement": "approved-for-manual-smoke",
            "proof402Delegation": "disabled-until-separate-approval",
            "allowedOrigins": [
              "https://trust402.aztecbeacon.uk"
            ]
          },
          "limits": {
            "agentcashGlobalMaxAmountUsd": "0.02",
            "manualSmokeRemainingBudgetUsd": "0.02",
            "lastVerifiedBalanceUsd": "1",
            "minimumReserveUsd": "0.5",
            "autoRefill": {
              "enabled": false,
              "futureThresholdUsd": 0.5,
              "requiresExplicitProviderAndCap": true
            }
          }
        },
        "planHash": "sha256:5c4caaaee67ee9975097fae211d84019cb2e4449df19e25059a3a3c33b8ba3d4",
        "status": "ready-to-stage",
        "blockers": []
      },
      "commands": {
        "buyerPreflight": "npm run payment:buyer-preflight -- --provider=cdp-x402 --strict",
        "bridgePreflight": null,
        "providerPreflight": "npm run payment:buyer-preflight -- --provider=cdp-x402 --strict",
        "liveEvidenceSmoke": "npm run live:evidence-smoke -- https://trust402.aztecbeacon.uk --live --candidate-endpoint=https://trust402.aztecbeacon.uk/api/procurement/plan --candidate-price=0.02 --max-total-usd=0.02 --live-spent-today-usd=0 --skip-proof",
        "postRouteCheck": "npm run bazaar:indexing:check:all -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --limit=20 --concurrency=8"
      },
      "directAgentcashFallback": {
        "purpose": "Operator-reviewed AgentCash MCP direct smoke for marketplace indexing evidence when the server-side live payment adapter is not configured yet.",
        "targetResource": {
          "id": "procurement.plan",
          "endpoint": "https://trust402.aztecbeacon.uk/api/procurement/plan",
          "method": "POST",
          "expectedPriceUsd": 0.02
        },
        "mcpTools": {
          "schemaCheck": "mcp__agentcash__check_endpoint_schema",
          "paidFetch": "mcp__agentcash__fetch"
        },
        "prerequisites": [
          "Read .local/trust402-agentcash-wallet.json and confirm the AgentCash Base wallet is the Trust402-reserved wallet.",
          "Open a one-shot local AgentCash policy window with manualSmokeRemainingBudgetUsd >= 0.02 and agentcashGlobalMaxAmountUsd >= 0.02.",
          "Get explicit operator approval for this exact paid AgentCash fetch before executing it."
        ],
        "safety": {
          "readOnlyPlan": true,
          "executesPayment": false,
          "directFetchPaysIfExecuted": true,
          "outOfBandAgentcashMcpCall": true,
          "doesNotProveRuntimePaymentAdapter": true,
          "privatePayloadAllowed": false,
          "includesPrivateKeyMaterial": false,
          "network": "base",
          "maxAmountUsd": 0.02,
          "sendsOnly": [
            "goal",
            "budgetUsd",
            "maxPaidCalls",
            "riskTolerance",
            "allowedRegistries",
            "requireProofReceipts"
          ]
        },
        "status": "operator-approval-required",
        "schemaCheck": {
          "description": "Safe schema observation. This should not pay because it only asks AgentCash to inspect the endpoint contract.",
          "input": {
            "url": "https://trust402.aztecbeacon.uk/api/procurement/plan",
            "method": "POST",
            "body": {
              "goal": "Plan a bounded Trust402 buyer workflow for marketplace indexing evidence.",
              "budgetUsd": 0.05,
              "maxPaidCalls": 2,
              "riskTolerance": "low",
              "allowedRegistries": [
                "https://api.cdp.coinbase.com/platform/v2/x402/discovery"
              ],
              "requireProofReceipts": true
            }
          }
        },
        "fetch": {
          "description": "Paid AgentCash MCP call. Execute only after the local policy window and explicit operator approval are in place.",
          "input": {
            "url": "https://trust402.aztecbeacon.uk/api/procurement/plan",
            "method": "POST",
            "body": {
              "goal": "Plan a bounded Trust402 buyer workflow for marketplace indexing evidence.",
              "budgetUsd": 0.05,
              "maxPaidCalls": 2,
              "riskTolerance": "low",
              "allowedRegistries": [
                "https://api.cdp.coinbase.com/platform/v2/x402/discovery"
              ],
              "requireProofReceipts": true
            },
            "maxAmount": 0.02,
            "paymentNetwork": "base",
            "paymentProtocol": "x402",
            "timeout": 30000
          }
        },
        "evidenceAfterSuccess": {
          "commands": [
            "npm run bazaar:indexing:check:all -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --limit=20",
            "npm run completion:audit -- https://trust402.aztecbeacon.uk",
            "npm run launch:monitor -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --strict"
          ],
          "vercelEnvIfCdpBazaarReportsAllIndexed": {
            "TRUST402_CDP_BAZAAR_ALL_RESOURCES_INDEXED": "true",
            "TRUST402_CDP_BAZAAR_CHECK_STATUS": "all-indexed",
            "TRUST402_CDP_BAZAAR_EXPECTED_RESOURCES": "10",
            "TRUST402_CDP_BAZAAR_INDEXED_RESOURCES": "10",
            "TRUST402_CDP_BAZAAR_MISSING_RESOURCES": "",
            "TRUST402_CDP_BAZAAR_EVIDENCE_REF": "<public-safe CDP Bazaar 10/10 check hash or run URL>"
          },
          "caveat": "This can help marketplace indexing evidence, but final live procurement still requires Trust402 runtime payment-adapter evidence."
        }
      },
      "safety": {
        "readOnlyPlan": true,
        "directAgentcashFallbackPaysIfExecuted": true,
        "runtimeCommandPaysIfExecuted": true,
        "privatePayloadAllowed": false,
        "proofIncluded": false
      }
    },
    {
      "id": "procurement.quote",
      "method": "POST",
      "path": "/api/procurement/quote",
      "endpoint": "https://trust402.aztecbeacon.uk/api/procurement/quote",
      "purpose": "Produce a concrete quote and approval payload for a multi-resource purchase path without spending.",
      "batch": "starter",
      "price": {
        "advertised": 0.04,
        "maxUsd": 0.04,
        "routeWindowMaxUsd": 0.04
      },
      "currentPolicyFit": {
        "routeId": "procurement.quote",
        "readyNow": false,
        "liveProcurementReady": true,
        "proof402ReadyIfNeeded": "not-required",
        "currentMaxPerCallUsd": 0.005,
        "currentMaxPerJobUsd": 0.02,
        "currentDailyRemainingUsd": 0.035,
        "currentPaymentProvider": "cdp-x402",
        "currentAllowlistCount": 3,
        "routeOrigin": "https://trust402.aztecbeacon.uk",
        "knownAllowlistContainsRouteOrigin": "not-exposed-by-public-policy",
        "blockers": []
      },
      "requiredTemporaryPolicyWindow": {
        "reason": "Current policy cannot safely run this route as-is; stage the generated one-route window first.",
        "vercelEnv": {
          "LIVE_SPEND_ENABLED": "true",
          "LIVE_PAYMENT_PROVIDER": "cdp-x402",
          "LIVE_MAX_PER_CALL_USD": "0.04",
          "LIVE_MAX_PER_JOB_USD": "0.04",
          "LIVE_DAILY_LIMIT_USD": "0.04",
          "LIVE_SPENT_TODAY_USD": "0",
          "LIVE_APPROVAL_THRESHOLD_USD": "0",
          "LIVE_ALLOWED_REGISTRIES": "https://trust402.aztecbeacon.uk",
          "PROOF402_BASE_URL": "https://proof402.vercel.app",
          "PROOF402_DELEGATION_MODE": "disabled",
          "PROOF402_MAX_SPEND_USD": "0",
          "AGENTCASH_AUTO_REFILL_APPROVED": "false",
          "AGENTCASH_AUTO_REFILL_ENABLED": "false",
          "AGENTCASH_AUTO_REFILL_PROVIDER": "",
          "AGENTCASH_AUTO_REFILL_THRESHOLD_USD": "0.50",
          "AGENTCASH_AUTO_REFILL_AMOUNT_USD": "1",
          "AGENTCASH_AUTO_REFILL_DAILY_CAP_USD": "2"
        },
        "requiredSecrets": [
          "TRUST402_OPERATOR_API_KEY",
          "CDP_API_KEY_ID",
          "CDP_API_KEY_SECRET",
          "CDP_WALLET_SECRET",
          "CDP_EVM_ACCOUNT_ADDRESS_OR_NAME"
        ],
        "localPolicyPatch": {
          "restrictions": {
            "trust402LiveProcurement": "approved-for-manual-smoke",
            "proof402Delegation": "disabled-until-separate-approval",
            "allowedOrigins": [
              "https://trust402.aztecbeacon.uk"
            ]
          },
          "limits": {
            "agentcashGlobalMaxAmountUsd": "0.04",
            "manualSmokeRemainingBudgetUsd": "0.04",
            "lastVerifiedBalanceUsd": "1",
            "minimumReserveUsd": "0.5",
            "autoRefill": {
              "enabled": false,
              "futureThresholdUsd": 0.5,
              "requiresExplicitProviderAndCap": true
            }
          }
        },
        "planHash": "sha256:09411b3b0d5f7a08d8b8ae96e09896b7ecce74e5595336661814668ff1e0d6b9",
        "status": "ready-to-stage",
        "blockers": []
      },
      "commands": {
        "buyerPreflight": "npm run payment:buyer-preflight -- --provider=cdp-x402 --strict",
        "bridgePreflight": null,
        "providerPreflight": "npm run payment:buyer-preflight -- --provider=cdp-x402 --strict",
        "liveEvidenceSmoke": "npm run live:evidence-smoke -- https://trust402.aztecbeacon.uk --live --candidate-endpoint=https://trust402.aztecbeacon.uk/api/procurement/quote --candidate-price=0.04 --max-total-usd=0.04 --live-spent-today-usd=0 --skip-proof",
        "postRouteCheck": "npm run bazaar:indexing:check:all -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --limit=20 --concurrency=8"
      },
      "directAgentcashFallback": {
        "purpose": "Operator-reviewed AgentCash MCP direct smoke for marketplace indexing evidence when the server-side live payment adapter is not configured yet.",
        "targetResource": {
          "id": "procurement.quote",
          "endpoint": "https://trust402.aztecbeacon.uk/api/procurement/quote",
          "method": "POST",
          "expectedPriceUsd": 0.04
        },
        "mcpTools": {
          "schemaCheck": "mcp__agentcash__check_endpoint_schema",
          "paidFetch": "mcp__agentcash__fetch"
        },
        "prerequisites": [
          "Read .local/trust402-agentcash-wallet.json and confirm the AgentCash Base wallet is the Trust402-reserved wallet.",
          "Open a one-shot local AgentCash policy window with manualSmokeRemainingBudgetUsd >= 0.04 and agentcashGlobalMaxAmountUsd >= 0.04.",
          "Get explicit operator approval for this exact paid AgentCash fetch before executing it."
        ],
        "safety": {
          "readOnlyPlan": true,
          "executesPayment": false,
          "directFetchPaysIfExecuted": true,
          "outOfBandAgentcashMcpCall": true,
          "doesNotProveRuntimePaymentAdapter": true,
          "privatePayloadAllowed": false,
          "includesPrivateKeyMaterial": false,
          "network": "base",
          "maxAmountUsd": 0.04,
          "sendsOnly": [
            "goal",
            "budgetUsd",
            "maxPaidCalls",
            "riskTolerance",
            "allowedRegistries",
            "requireProofReceipts",
            "candidates"
          ]
        },
        "status": "operator-approval-required",
        "schemaCheck": {
          "description": "Safe schema observation. This should not pay because it only asks AgentCash to inspect the endpoint contract.",
          "input": {
            "url": "https://trust402.aztecbeacon.uk/api/procurement/quote",
            "method": "POST",
            "body": {
              "goal": "Quote a bounded Trust402 buyer workflow for marketplace indexing evidence.",
              "budgetUsd": 0.08,
              "maxPaidCalls": 2,
              "riskTolerance": "low",
              "allowedRegistries": [
                "https://api.cdp.coinbase.com/platform/v2/x402/discovery"
              ],
              "requireProofReceipts": true,
              "candidates": [
                {
                  "id": "proof402.notarize",
                  "endpoint": "https://proof402.vercel.app/api/proof/notarize",
                  "priceUsd": 0.005,
                  "has402": true,
                  "hasInputSchema": true,
                  "hasOpenApi": true,
                  "hasWellKnown": true,
                  "receiptReady": true,
                  "description": "Proof402 paid notarization endpoint for hash-only proof receipts."
                },
                {
                  "id": "trust.check_x402",
                  "endpoint": "https://trust402.aztecbeacon.uk/api/trust/check-x402",
                  "priceUsd": 0.005,
                  "has402": true,
                  "hasInputSchema": true,
                  "hasOpenApi": true,
                  "hasWellKnown": true,
                  "receiptReady": true,
                  "description": "Trust402 x402 challenge probe for payment-flow readiness."
                }
              ]
            }
          }
        },
        "fetch": {
          "description": "Paid AgentCash MCP call. Execute only after the local policy window and explicit operator approval are in place.",
          "input": {
            "url": "https://trust402.aztecbeacon.uk/api/procurement/quote",
            "method": "POST",
            "body": {
              "goal": "Quote a bounded Trust402 buyer workflow for marketplace indexing evidence.",
              "budgetUsd": 0.08,
              "maxPaidCalls": 2,
              "riskTolerance": "low",
              "allowedRegistries": [
                "https://api.cdp.coinbase.com/platform/v2/x402/discovery"
              ],
              "requireProofReceipts": true,
              "candidates": [
                {
                  "id": "proof402.notarize",
                  "endpoint": "https://proof402.vercel.app/api/proof/notarize",
                  "priceUsd": 0.005,
                  "has402": true,
                  "hasInputSchema": true,
                  "hasOpenApi": true,
                  "hasWellKnown": true,
                  "receiptReady": true,
                  "description": "Proof402 paid notarization endpoint for hash-only proof receipts."
                },
                {
                  "id": "trust.check_x402",
                  "endpoint": "https://trust402.aztecbeacon.uk/api/trust/check-x402",
                  "priceUsd": 0.005,
                  "has402": true,
                  "hasInputSchema": true,
                  "hasOpenApi": true,
                  "hasWellKnown": true,
                  "receiptReady": true,
                  "description": "Trust402 x402 challenge probe for payment-flow readiness."
                }
              ]
            },
            "maxAmount": 0.04,
            "paymentNetwork": "base",
            "paymentProtocol": "x402",
            "timeout": 30000
          }
        },
        "evidenceAfterSuccess": {
          "commands": [
            "npm run bazaar:indexing:check:all -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --limit=20",
            "npm run completion:audit -- https://trust402.aztecbeacon.uk",
            "npm run launch:monitor -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --strict"
          ],
          "vercelEnvIfCdpBazaarReportsAllIndexed": {
            "TRUST402_CDP_BAZAAR_ALL_RESOURCES_INDEXED": "true",
            "TRUST402_CDP_BAZAAR_CHECK_STATUS": "all-indexed",
            "TRUST402_CDP_BAZAAR_EXPECTED_RESOURCES": "10",
            "TRUST402_CDP_BAZAAR_INDEXED_RESOURCES": "10",
            "TRUST402_CDP_BAZAAR_MISSING_RESOURCES": "",
            "TRUST402_CDP_BAZAAR_EVIDENCE_REF": "<public-safe CDP Bazaar 10/10 check hash or run URL>"
          },
          "caveat": "This can help marketplace indexing evidence, but final live procurement still requires Trust402 runtime payment-adapter evidence."
        }
      },
      "safety": {
        "readOnlyPlan": true,
        "directAgentcashFallbackPaysIfExecuted": true,
        "runtimeCommandPaysIfExecuted": true,
        "privatePayloadAllowed": false,
        "proofIncluded": false
      }
    },
    {
      "id": "monitor.snapshot",
      "method": "POST",
      "path": "/api/monitor/snapshot",
      "endpoint": "https://trust402.aztecbeacon.uk/api/monitor/snapshot",
      "purpose": "Run a one-shot x402 payment-flow and trust drift snapshot without storing history.",
      "batch": "starter",
      "price": {
        "advertised": 0.015,
        "maxUsd": 0.015,
        "routeWindowMaxUsd": 0.015
      },
      "currentPolicyFit": {
        "routeId": "monitor.snapshot",
        "readyNow": false,
        "liveProcurementReady": true,
        "proof402ReadyIfNeeded": "not-required",
        "currentMaxPerCallUsd": 0.005,
        "currentMaxPerJobUsd": 0.02,
        "currentDailyRemainingUsd": 0.035,
        "currentPaymentProvider": "cdp-x402",
        "currentAllowlistCount": 3,
        "routeOrigin": "https://trust402.aztecbeacon.uk",
        "knownAllowlistContainsRouteOrigin": "not-exposed-by-public-policy",
        "blockers": []
      },
      "requiredTemporaryPolicyWindow": {
        "reason": "Current policy cannot safely run this route as-is; stage the generated one-route window first.",
        "vercelEnv": {
          "LIVE_SPEND_ENABLED": "true",
          "LIVE_PAYMENT_PROVIDER": "cdp-x402",
          "LIVE_MAX_PER_CALL_USD": "0.015",
          "LIVE_MAX_PER_JOB_USD": "0.015",
          "LIVE_DAILY_LIMIT_USD": "0.015",
          "LIVE_SPENT_TODAY_USD": "0",
          "LIVE_APPROVAL_THRESHOLD_USD": "0",
          "LIVE_ALLOWED_REGISTRIES": "https://trust402.aztecbeacon.uk",
          "PROOF402_BASE_URL": "https://proof402.vercel.app",
          "PROOF402_DELEGATION_MODE": "disabled",
          "PROOF402_MAX_SPEND_USD": "0",
          "AGENTCASH_AUTO_REFILL_APPROVED": "false",
          "AGENTCASH_AUTO_REFILL_ENABLED": "false",
          "AGENTCASH_AUTO_REFILL_PROVIDER": "",
          "AGENTCASH_AUTO_REFILL_THRESHOLD_USD": "0.50",
          "AGENTCASH_AUTO_REFILL_AMOUNT_USD": "1",
          "AGENTCASH_AUTO_REFILL_DAILY_CAP_USD": "2"
        },
        "requiredSecrets": [
          "TRUST402_OPERATOR_API_KEY",
          "CDP_API_KEY_ID",
          "CDP_API_KEY_SECRET",
          "CDP_WALLET_SECRET",
          "CDP_EVM_ACCOUNT_ADDRESS_OR_NAME"
        ],
        "localPolicyPatch": {
          "restrictions": {
            "trust402LiveProcurement": "approved-for-manual-smoke",
            "proof402Delegation": "disabled-until-separate-approval",
            "allowedOrigins": [
              "https://trust402.aztecbeacon.uk"
            ]
          },
          "limits": {
            "agentcashGlobalMaxAmountUsd": "0.015",
            "manualSmokeRemainingBudgetUsd": "0.015",
            "lastVerifiedBalanceUsd": "1",
            "minimumReserveUsd": "0.5",
            "autoRefill": {
              "enabled": false,
              "futureThresholdUsd": 0.5,
              "requiresExplicitProviderAndCap": true
            }
          }
        },
        "planHash": "sha256:1b2f9270e5162fce4155de46bac384f963a9c58f9831861e2c75c031b39fcb18",
        "status": "ready-to-stage",
        "blockers": []
      },
      "commands": {
        "buyerPreflight": "npm run payment:buyer-preflight -- --provider=cdp-x402 --strict",
        "bridgePreflight": null,
        "providerPreflight": "npm run payment:buyer-preflight -- --provider=cdp-x402 --strict",
        "liveEvidenceSmoke": "npm run live:evidence-smoke -- https://trust402.aztecbeacon.uk --live --candidate-endpoint=https://trust402.aztecbeacon.uk/api/monitor/snapshot --candidate-price=0.015 --max-total-usd=0.015 --live-spent-today-usd=0 --skip-proof",
        "postRouteCheck": "npm run bazaar:indexing:check:all -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --limit=20 --concurrency=8"
      },
      "directAgentcashFallback": {
        "purpose": "Operator-reviewed AgentCash MCP direct smoke for marketplace indexing evidence when the server-side live payment adapter is not configured yet.",
        "targetResource": {
          "id": "monitor.snapshot",
          "endpoint": "https://trust402.aztecbeacon.uk/api/monitor/snapshot",
          "method": "POST",
          "expectedPriceUsd": 0.015
        },
        "mcpTools": {
          "schemaCheck": "mcp__agentcash__check_endpoint_schema",
          "paidFetch": "mcp__agentcash__fetch"
        },
        "prerequisites": [
          "Read .local/trust402-agentcash-wallet.json and confirm the AgentCash Base wallet is the Trust402-reserved wallet.",
          "Open a one-shot local AgentCash policy window with manualSmokeRemainingBudgetUsd >= 0.015 and agentcashGlobalMaxAmountUsd >= 0.015.",
          "Get explicit operator approval for this exact paid AgentCash fetch before executing it."
        ],
        "safety": {
          "readOnlyPlan": true,
          "executesPayment": false,
          "directFetchPaysIfExecuted": true,
          "outOfBandAgentcashMcpCall": true,
          "doesNotProveRuntimePaymentAdapter": true,
          "privatePayloadAllowed": false,
          "includesPrivateKeyMaterial": false,
          "network": "base",
          "maxAmountUsd": 0.015,
          "sendsOnly": [
            "endpoint",
            "method",
            "expectedPriceUsd"
          ]
        },
        "status": "operator-approval-required",
        "schemaCheck": {
          "description": "Safe schema observation. This should not pay because it only asks AgentCash to inspect the endpoint contract.",
          "input": {
            "url": "https://trust402.aztecbeacon.uk/api/monitor/snapshot",
            "method": "POST",
            "body": {
              "endpoint": "https://trust402.aztecbeacon.uk/api/trust/check-x402",
              "method": "POST",
              "expectedPriceUsd": 0.005
            }
          }
        },
        "fetch": {
          "description": "Paid AgentCash MCP call. Execute only after the local policy window and explicit operator approval are in place.",
          "input": {
            "url": "https://trust402.aztecbeacon.uk/api/monitor/snapshot",
            "method": "POST",
            "body": {
              "endpoint": "https://trust402.aztecbeacon.uk/api/trust/check-x402",
              "method": "POST",
              "expectedPriceUsd": 0.005
            },
            "maxAmount": 0.015,
            "paymentNetwork": "base",
            "paymentProtocol": "x402",
            "timeout": 30000
          }
        },
        "evidenceAfterSuccess": {
          "commands": [
            "npm run bazaar:indexing:check:all -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --limit=20",
            "npm run completion:audit -- https://trust402.aztecbeacon.uk",
            "npm run launch:monitor -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --strict"
          ],
          "vercelEnvIfCdpBazaarReportsAllIndexed": {
            "TRUST402_CDP_BAZAAR_ALL_RESOURCES_INDEXED": "true",
            "TRUST402_CDP_BAZAAR_CHECK_STATUS": "all-indexed",
            "TRUST402_CDP_BAZAAR_EXPECTED_RESOURCES": "10",
            "TRUST402_CDP_BAZAAR_INDEXED_RESOURCES": "10",
            "TRUST402_CDP_BAZAAR_MISSING_RESOURCES": "",
            "TRUST402_CDP_BAZAAR_EVIDENCE_REF": "<public-safe CDP Bazaar 10/10 check hash or run URL>"
          },
          "caveat": "This can help marketplace indexing evidence, but final live procurement still requires Trust402 runtime payment-adapter evidence."
        }
      },
      "safety": {
        "readOnlyPlan": true,
        "directAgentcashFallbackPaysIfExecuted": true,
        "runtimeCommandPaysIfExecuted": true,
        "privatePayloadAllowed": false,
        "proofIncluded": false
      }
    },
    {
      "id": "monitor.badge",
      "method": "POST",
      "path": "/api/monitor/badge",
      "endpoint": "https://trust402.aztecbeacon.uk/api/monitor/badge",
      "purpose": "Generate a one-shot Trust402 badge payload from a snapshot.",
      "batch": "starter",
      "price": {
        "advertised": 0.02,
        "maxUsd": 0.02,
        "routeWindowMaxUsd": 0.02
      },
      "currentPolicyFit": {
        "routeId": "monitor.badge",
        "readyNow": false,
        "liveProcurementReady": true,
        "proof402ReadyIfNeeded": "not-required",
        "currentMaxPerCallUsd": 0.005,
        "currentMaxPerJobUsd": 0.02,
        "currentDailyRemainingUsd": 0.035,
        "currentPaymentProvider": "cdp-x402",
        "currentAllowlistCount": 3,
        "routeOrigin": "https://trust402.aztecbeacon.uk",
        "knownAllowlistContainsRouteOrigin": "not-exposed-by-public-policy",
        "blockers": []
      },
      "requiredTemporaryPolicyWindow": {
        "reason": "Current policy cannot safely run this route as-is; stage the generated one-route window first.",
        "vercelEnv": {
          "LIVE_SPEND_ENABLED": "true",
          "LIVE_PAYMENT_PROVIDER": "cdp-x402",
          "LIVE_MAX_PER_CALL_USD": "0.02",
          "LIVE_MAX_PER_JOB_USD": "0.02",
          "LIVE_DAILY_LIMIT_USD": "0.02",
          "LIVE_SPENT_TODAY_USD": "0",
          "LIVE_APPROVAL_THRESHOLD_USD": "0",
          "LIVE_ALLOWED_REGISTRIES": "https://trust402.aztecbeacon.uk",
          "PROOF402_BASE_URL": "https://proof402.vercel.app",
          "PROOF402_DELEGATION_MODE": "disabled",
          "PROOF402_MAX_SPEND_USD": "0",
          "AGENTCASH_AUTO_REFILL_APPROVED": "false",
          "AGENTCASH_AUTO_REFILL_ENABLED": "false",
          "AGENTCASH_AUTO_REFILL_PROVIDER": "",
          "AGENTCASH_AUTO_REFILL_THRESHOLD_USD": "0.50",
          "AGENTCASH_AUTO_REFILL_AMOUNT_USD": "1",
          "AGENTCASH_AUTO_REFILL_DAILY_CAP_USD": "2"
        },
        "requiredSecrets": [
          "TRUST402_OPERATOR_API_KEY",
          "CDP_API_KEY_ID",
          "CDP_API_KEY_SECRET",
          "CDP_WALLET_SECRET",
          "CDP_EVM_ACCOUNT_ADDRESS_OR_NAME"
        ],
        "localPolicyPatch": {
          "restrictions": {
            "trust402LiveProcurement": "approved-for-manual-smoke",
            "proof402Delegation": "disabled-until-separate-approval",
            "allowedOrigins": [
              "https://trust402.aztecbeacon.uk"
            ]
          },
          "limits": {
            "agentcashGlobalMaxAmountUsd": "0.02",
            "manualSmokeRemainingBudgetUsd": "0.02",
            "lastVerifiedBalanceUsd": "1",
            "minimumReserveUsd": "0.5",
            "autoRefill": {
              "enabled": false,
              "futureThresholdUsd": 0.5,
              "requiresExplicitProviderAndCap": true
            }
          }
        },
        "planHash": "sha256:ec3cf8ec7adb7697d36d2a82be7739dd530e080b4449a3bbbd0ce1bdc65c4059",
        "status": "ready-to-stage",
        "blockers": []
      },
      "commands": {
        "buyerPreflight": "npm run payment:buyer-preflight -- --provider=cdp-x402 --strict",
        "bridgePreflight": null,
        "providerPreflight": "npm run payment:buyer-preflight -- --provider=cdp-x402 --strict",
        "liveEvidenceSmoke": "npm run live:evidence-smoke -- https://trust402.aztecbeacon.uk --live --candidate-endpoint=https://trust402.aztecbeacon.uk/api/monitor/badge --candidate-price=0.02 --max-total-usd=0.02 --live-spent-today-usd=0 --skip-proof",
        "postRouteCheck": "npm run bazaar:indexing:check:all -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --limit=20 --concurrency=8"
      },
      "directAgentcashFallback": {
        "purpose": "Operator-reviewed AgentCash MCP direct smoke for marketplace indexing evidence when the server-side live payment adapter is not configured yet.",
        "targetResource": {
          "id": "monitor.badge",
          "endpoint": "https://trust402.aztecbeacon.uk/api/monitor/badge",
          "method": "POST",
          "expectedPriceUsd": 0.02
        },
        "mcpTools": {
          "schemaCheck": "mcp__agentcash__check_endpoint_schema",
          "paidFetch": "mcp__agentcash__fetch"
        },
        "prerequisites": [
          "Read .local/trust402-agentcash-wallet.json and confirm the AgentCash Base wallet is the Trust402-reserved wallet.",
          "Open a one-shot local AgentCash policy window with manualSmokeRemainingBudgetUsd >= 0.02 and agentcashGlobalMaxAmountUsd >= 0.02.",
          "Get explicit operator approval for this exact paid AgentCash fetch before executing it."
        ],
        "safety": {
          "readOnlyPlan": true,
          "executesPayment": false,
          "directFetchPaysIfExecuted": true,
          "outOfBandAgentcashMcpCall": true,
          "doesNotProveRuntimePaymentAdapter": true,
          "privatePayloadAllowed": false,
          "includesPrivateKeyMaterial": false,
          "network": "base",
          "maxAmountUsd": 0.02,
          "sendsOnly": [
            "endpoint",
            "method",
            "expectedPriceUsd"
          ]
        },
        "status": "operator-approval-required",
        "schemaCheck": {
          "description": "Safe schema observation. This should not pay because it only asks AgentCash to inspect the endpoint contract.",
          "input": {
            "url": "https://trust402.aztecbeacon.uk/api/monitor/badge",
            "method": "POST",
            "body": {
              "endpoint": "https://trust402.aztecbeacon.uk/api/trust/check-x402",
              "method": "POST",
              "expectedPriceUsd": 0.005
            }
          }
        },
        "fetch": {
          "description": "Paid AgentCash MCP call. Execute only after the local policy window and explicit operator approval are in place.",
          "input": {
            "url": "https://trust402.aztecbeacon.uk/api/monitor/badge",
            "method": "POST",
            "body": {
              "endpoint": "https://trust402.aztecbeacon.uk/api/trust/check-x402",
              "method": "POST",
              "expectedPriceUsd": 0.005
            },
            "maxAmount": 0.02,
            "paymentNetwork": "base",
            "paymentProtocol": "x402",
            "timeout": 30000
          }
        },
        "evidenceAfterSuccess": {
          "commands": [
            "npm run bazaar:indexing:check:all -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --limit=20",
            "npm run completion:audit -- https://trust402.aztecbeacon.uk",
            "npm run launch:monitor -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --strict"
          ],
          "vercelEnvIfCdpBazaarReportsAllIndexed": {
            "TRUST402_CDP_BAZAAR_ALL_RESOURCES_INDEXED": "true",
            "TRUST402_CDP_BAZAAR_CHECK_STATUS": "all-indexed",
            "TRUST402_CDP_BAZAAR_EXPECTED_RESOURCES": "10",
            "TRUST402_CDP_BAZAAR_INDEXED_RESOURCES": "10",
            "TRUST402_CDP_BAZAAR_MISSING_RESOURCES": "",
            "TRUST402_CDP_BAZAAR_EVIDENCE_REF": "<public-safe CDP Bazaar 10/10 check hash or run URL>"
          },
          "caveat": "This can help marketplace indexing evidence, but final live procurement still requires Trust402 runtime payment-adapter evidence."
        }
      },
      "safety": {
        "readOnlyPlan": true,
        "directAgentcashFallbackPaysIfExecuted": true,
        "runtimeCommandPaysIfExecuted": true,
        "privatePayloadAllowed": false,
        "proofIncluded": false
      }
    },
    {
      "id": "reports.x402_diligence",
      "method": "POST",
      "path": "/api/reports/x402-diligence",
      "endpoint": "https://trust402.aztecbeacon.uk/api/reports/x402-diligence",
      "purpose": "Produce a full diligence report for an x402 endpoint or origin with hash-ready evidence.",
      "batch": "highCost",
      "price": {
        "advertised": {
          "min": 0.08,
          "max": 0.15
        },
        "maxUsd": 0.15,
        "routeWindowMaxUsd": 0.15
      },
      "currentPolicyFit": {
        "routeId": "reports.x402_diligence",
        "readyNow": false,
        "liveProcurementReady": true,
        "proof402ReadyIfNeeded": "not-required",
        "currentMaxPerCallUsd": 0.005,
        "currentMaxPerJobUsd": 0.02,
        "currentDailyRemainingUsd": 0.035,
        "currentPaymentProvider": "cdp-x402",
        "currentAllowlistCount": 3,
        "routeOrigin": "https://trust402.aztecbeacon.uk",
        "knownAllowlistContainsRouteOrigin": "not-exposed-by-public-policy",
        "blockers": []
      },
      "requiredTemporaryPolicyWindow": {
        "reason": "Current policy cannot safely run this route as-is; stage the generated one-route window first.",
        "vercelEnv": {
          "LIVE_SPEND_ENABLED": "true",
          "LIVE_PAYMENT_PROVIDER": "cdp-x402",
          "LIVE_MAX_PER_CALL_USD": "0.15",
          "LIVE_MAX_PER_JOB_USD": "0.15",
          "LIVE_DAILY_LIMIT_USD": "0.15",
          "LIVE_SPENT_TODAY_USD": "0",
          "LIVE_APPROVAL_THRESHOLD_USD": "0",
          "LIVE_ALLOWED_REGISTRIES": "https://trust402.aztecbeacon.uk",
          "PROOF402_BASE_URL": "https://proof402.vercel.app",
          "PROOF402_DELEGATION_MODE": "disabled",
          "PROOF402_MAX_SPEND_USD": "0",
          "AGENTCASH_AUTO_REFILL_APPROVED": "false",
          "AGENTCASH_AUTO_REFILL_ENABLED": "false",
          "AGENTCASH_AUTO_REFILL_PROVIDER": "",
          "AGENTCASH_AUTO_REFILL_THRESHOLD_USD": "0.50",
          "AGENTCASH_AUTO_REFILL_AMOUNT_USD": "1",
          "AGENTCASH_AUTO_REFILL_DAILY_CAP_USD": "2"
        },
        "requiredSecrets": [
          "TRUST402_OPERATOR_API_KEY",
          "CDP_API_KEY_ID",
          "CDP_API_KEY_SECRET",
          "CDP_WALLET_SECRET",
          "CDP_EVM_ACCOUNT_ADDRESS_OR_NAME"
        ],
        "localPolicyPatch": {
          "restrictions": {
            "trust402LiveProcurement": "approved-for-manual-smoke",
            "proof402Delegation": "disabled-until-separate-approval",
            "allowedOrigins": [
              "https://trust402.aztecbeacon.uk"
            ]
          },
          "limits": {
            "agentcashGlobalMaxAmountUsd": "0.15",
            "manualSmokeRemainingBudgetUsd": "0.15",
            "lastVerifiedBalanceUsd": "1",
            "minimumReserveUsd": "0.5",
            "autoRefill": {
              "enabled": false,
              "futureThresholdUsd": 0.5,
              "requiresExplicitProviderAndCap": true
            }
          }
        },
        "planHash": "sha256:46339a0528f2b2f048477521a2410014eeb089bdfaabf6afb111fd44647ca850",
        "status": "ready-to-stage",
        "blockers": []
      },
      "commands": {
        "buyerPreflight": "npm run payment:buyer-preflight -- --provider=cdp-x402 --strict",
        "bridgePreflight": null,
        "providerPreflight": "npm run payment:buyer-preflight -- --provider=cdp-x402 --strict",
        "liveEvidenceSmoke": "npm run live:evidence-smoke -- https://trust402.aztecbeacon.uk --live --candidate-endpoint=https://trust402.aztecbeacon.uk/api/reports/x402-diligence --candidate-price=0.15 --max-total-usd=0.15 --live-spent-today-usd=0 --skip-proof",
        "postRouteCheck": "npm run bazaar:indexing:check:all -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --limit=20 --concurrency=8"
      },
      "directAgentcashFallback": {
        "purpose": "Operator-reviewed AgentCash MCP direct smoke for marketplace indexing evidence when the server-side live payment adapter is not configured yet.",
        "targetResource": {
          "id": "reports.x402_diligence",
          "endpoint": "https://trust402.aztecbeacon.uk/api/reports/x402-diligence",
          "method": "POST",
          "expectedPriceUsd": 0.15
        },
        "mcpTools": {
          "schemaCheck": "mcp__agentcash__check_endpoint_schema",
          "paidFetch": "mcp__agentcash__fetch"
        },
        "prerequisites": [
          "Read .local/trust402-agentcash-wallet.json and confirm the AgentCash Base wallet is the Trust402-reserved wallet.",
          "Open a one-shot local AgentCash policy window with manualSmokeRemainingBudgetUsd >= 0.15 and agentcashGlobalMaxAmountUsd >= 0.15.",
          "Get explicit operator approval for this exact paid AgentCash fetch before executing it."
        ],
        "safety": {
          "readOnlyPlan": true,
          "executesPayment": false,
          "directFetchPaysIfExecuted": true,
          "outOfBandAgentcashMcpCall": true,
          "doesNotProveRuntimePaymentAdapter": true,
          "privatePayloadAllowed": false,
          "includesPrivateKeyMaterial": false,
          "network": "base",
          "maxAmountUsd": 0.15,
          "sendsOnly": [
            "origin",
            "endpoint",
            "method",
            "expectedPriceUsd"
          ]
        },
        "status": "operator-approval-required",
        "schemaCheck": {
          "description": "Safe schema observation. This should not pay because it only asks AgentCash to inspect the endpoint contract.",
          "input": {
            "url": "https://trust402.aztecbeacon.uk/api/reports/x402-diligence",
            "method": "POST",
            "body": {
              "origin": "https://trust402.aztecbeacon.uk",
              "endpoint": "https://trust402.aztecbeacon.uk/api/trust/check-x402",
              "method": "POST",
              "expectedPriceUsd": 0.005
            }
          }
        },
        "fetch": {
          "description": "Paid AgentCash MCP call. Execute only after the local policy window and explicit operator approval are in place.",
          "input": {
            "url": "https://trust402.aztecbeacon.uk/api/reports/x402-diligence",
            "method": "POST",
            "body": {
              "origin": "https://trust402.aztecbeacon.uk",
              "endpoint": "https://trust402.aztecbeacon.uk/api/trust/check-x402",
              "method": "POST",
              "expectedPriceUsd": 0.005
            },
            "maxAmount": 0.15,
            "paymentNetwork": "base",
            "paymentProtocol": "x402",
            "timeout": 30000
          }
        },
        "evidenceAfterSuccess": {
          "commands": [
            "npm run bazaar:indexing:check:all -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --limit=20",
            "npm run completion:audit -- https://trust402.aztecbeacon.uk",
            "npm run launch:monitor -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --strict"
          ],
          "vercelEnvIfCdpBazaarReportsAllIndexed": {
            "TRUST402_CDP_BAZAAR_ALL_RESOURCES_INDEXED": "true",
            "TRUST402_CDP_BAZAAR_CHECK_STATUS": "all-indexed",
            "TRUST402_CDP_BAZAAR_EXPECTED_RESOURCES": "10",
            "TRUST402_CDP_BAZAAR_INDEXED_RESOURCES": "10",
            "TRUST402_CDP_BAZAAR_MISSING_RESOURCES": "",
            "TRUST402_CDP_BAZAAR_EVIDENCE_REF": "<public-safe CDP Bazaar 10/10 check hash or run URL>"
          },
          "caveat": "This can help marketplace indexing evidence, but final live procurement still requires Trust402 runtime payment-adapter evidence."
        }
      },
      "safety": {
        "readOnlyPlan": true,
        "directAgentcashFallbackPaysIfExecuted": true,
        "runtimeCommandPaysIfExecuted": true,
        "privatePayloadAllowed": false,
        "proofIncluded": false
      }
    }
  ],
  "protocol": [
    "Run npm run bazaar:indexing:check:all -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --limit=20 --concurrency=8 and confirm the route is still missing.",
    "Pick exactly one route from batches.starter.routeIds unless a separate high-cost approval exists.",
    "Stage only that route's requiredTemporaryPolicyWindow.vercelEnv values in Vercel production.",
    "Run the route's provider preflight command, then run liveEvidenceSmoke only during the approved spend window.",
    "Immediately restore/close the live window using closeWindowEnv or the previous Vercel env snapshot.",
    "Re-run the Bazaar check. CDP indexing can be async, so record the evidence hash and recheck later if still missing.",
    "Recommended first route: trust.score_resource"
  ],
  "closeWindowEnv": {
    "LIVE_SPEND_ENABLED": "false",
    "LIVE_MAX_PER_CALL_USD": "0",
    "LIVE_MAX_PER_JOB_USD": "0",
    "LIVE_DAILY_LIMIT_USD": "0",
    "LIVE_SPENT_TODAY_USD": "0",
    "LIVE_ALLOWED_REGISTRIES": "",
    "PROOF402_DELEGATION_MODE": "disabled",
    "PROOF402_MAX_SPEND_USD": "0",
    "TRUST402_LIVE_EVIDENCE_SMOKE_APPROVED": "false"
  },
  "safety": {
    "readOnly": true,
    "executesPayment": false,
    "mutatesVercelEnv": false,
    "mutatesLocalPolicy": false,
    "sendsPaymentHeaders": false,
    "includesSecrets": false,
    "oneRoutePerWindow": true,
    "closeWindowAfterEveryRoute": true,
    "proofDisabledByDefault": true,
    "requiresExplicitApprovalBeforeLiveSpend": true
  },
  "nextActions": [
    "Review this read-only plan and choose the first starter route.",
    "Get explicit live spend approval for that exact route id and price before running the generated liveEvidenceSmoke command.",
    "After every route, run npm run bazaar:indexing:check:all -- https://trust402.aztecbeacon.uk --timeout-ms=10000 --limit=20 --concurrency=8.",
    "Proof402 is intentionally skipped for reindex smokes to keep spend focused on Bazaar settlement evidence."
  ]
}