settld 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -3
- package/SETTLD_VERSION +1 -1
- package/bin/settld-mcp +2 -0
- package/bin/settld.js +71 -0
- package/conformance/kernel-v0/README.md +7 -0
- package/conformance/kernel-v0/run.mjs +292 -4
- package/docs/ACCESS.md +57 -0
- package/docs/ADOPTION_CHECKLIST.md +44 -0
- package/docs/ALERTS.md +198 -0
- package/docs/ARCHITECTURE.md +69 -0
- package/docs/ARCHITECTURE_FOUNDER_GUIDE.md +284 -0
- package/docs/ARTIFACTS.md +60 -0
- package/docs/CERTIFICATION_CHECKLIST.md +33 -0
- package/docs/CIRCLE_SANDBOX_E2E.md +152 -0
- package/docs/CONFIG.md +297 -0
- package/docs/CONTRACTS_APIS.md +23 -0
- package/docs/DEPRECATION.md +31 -0
- package/docs/DOMAIN_MODEL.md +92 -0
- package/docs/EVENT_ENVELOPE.md +53 -0
- package/docs/FINANCE_PACK_FORMAT.md +53 -0
- package/docs/INCIDENT_TAXONOMY.md +30 -0
- package/docs/JOB_STATE_MACHINE.md +66 -0
- package/docs/KERNEL_COMPATIBLE.md +60 -0
- package/docs/KERNEL_V0.md +40 -0
- package/docs/KEY_ROTATION.md +80 -0
- package/docs/LEDGER.md +82 -0
- package/docs/LIVENESS.md +76 -0
- package/docs/MVP_BUILD_ORDER.md +36 -0
- package/docs/ONCALL_PLAYBOOK.md +39 -0
- package/docs/OPERATIONS_SIGNING.md +20 -0
- package/docs/OVERVIEW.md +190 -0
- package/docs/PERF_BASELINE.md +85 -0
- package/docs/PRD.md +77 -0
- package/docs/QUICKSTART_KERNEL_V0.md +96 -0
- package/docs/QUICKSTART_MCP.md +377 -0
- package/docs/QUICKSTART_MCP_HOSTS.md +210 -0
- package/docs/QUICKSTART_POLICY_PACKS.md +65 -0
- package/docs/QUICKSTART_PRODUCE.md +61 -0
- package/docs/QUICKSTART_PROFILES.md +198 -0
- package/docs/QUICKSTART_RELEASE_VERIFY.md +39 -0
- package/docs/QUICKSTART_SDK.md +125 -0
- package/docs/QUICKSTART_SDK_PYTHON.md +111 -0
- package/docs/QUICKSTART_VERIFY.md +54 -0
- package/docs/QUICKSTART_X402_GATEWAY.md +317 -0
- package/docs/README.md +33 -0
- package/docs/RELEASE_CHECKLIST.md +182 -0
- package/docs/RELEASING.md +82 -0
- package/docs/REPO_SETTINGS.md +37 -0
- package/docs/RUNBOOK.md +86 -0
- package/docs/SKILLS.md +42 -0
- package/docs/SKILL_BUNDLE_FORMAT.md +48 -0
- package/docs/SLO.md +131 -0
- package/docs/SUMMARY.md +17 -0
- package/docs/SUPPORT.md +31 -0
- package/docs/THREAT_MODEL.md +36 -0
- package/docs/TRUST.md +59 -0
- package/docs/WORKFLOW.md +35 -0
- package/docs/X402_BATCH_SETTLEMENT.md +126 -0
- package/docs/blog/2026-02-14-your-ai-agent-just-spent-500-where-is-the-receipt.md +73 -0
- package/docs/examples/x402-provider-payout-registry.example.json +14 -0
- package/docs/gitbook/README.md +64 -0
- package/docs/gitbook/SETUP.md +25 -0
- package/docs/gitbook/SUMMARY.md +15 -0
- package/docs/gitbook/api-reference.md +73 -0
- package/docs/gitbook/closepacks.md +55 -0
- package/docs/gitbook/conformance.md +59 -0
- package/docs/gitbook/core-primitives.md +85 -0
- package/docs/gitbook/dispute-lifecycle.md +33 -0
- package/docs/gitbook/faq.md +21 -0
- package/docs/gitbook/guides.md +49 -0
- package/docs/gitbook/operations-runbook.md +36 -0
- package/docs/gitbook/quickstart.md +103 -0
- package/docs/gitbook/replay-and-audit.md +30 -0
- package/docs/gitbook/sdk-reference.md +35 -0
- package/docs/gitbook/security-model.md +58 -0
- package/docs/integrations/README.md +15 -0
- package/docs/integrations/github-actions-verify.yml +31 -0
- package/docs/integrations/github-actions.md +34 -0
- package/docs/integrations/openclaw/CLAWHUB_PUBLISH_CHECKLIST.md +65 -0
- package/docs/integrations/openclaw/PUBLIC_QUICKSTART.md +95 -0
- package/docs/integrations/openclaw/settld-mcp-skill/SKILL.md +69 -0
- package/docs/integrations/openclaw/settld-mcp-skill/mcp-server.example.json +12 -0
- package/docs/kernel-compatible/capabilities.json +36 -0
- package/docs/marketing/agent-commerce-substrate.md +78 -0
- package/docs/marketing/hn-repost-2026-02-17.md +102 -0
- package/docs/marketing/show-hn-post.md +45 -0
- package/docs/ops/ARTIFACT_VERIFICATION_STATUS.md +43 -0
- package/docs/ops/BILLING_WEBHOOK_REPLAY.md +105 -0
- package/docs/ops/CI_FLAKE_BUDGET.md +31 -0
- package/docs/ops/DISPUTE_FINANCE_RECONCILIATION_PACKET.md +56 -0
- package/docs/ops/GO_LIVE_GATE_S13.md +27 -0
- package/docs/ops/HOSTED_BASELINE_R2.md +129 -0
- package/docs/ops/KERNEL_V0_SHIP_GATE.md +69 -0
- package/docs/ops/LIGHTHOUSE_PRODUCTION_CLOSE.md +51 -0
- package/docs/ops/MCP_COMPATIBILITY_MATRIX.md +30 -0
- package/docs/ops/MINIMUM_PRODUCTION_TOPOLOGY.md +89 -0
- package/docs/ops/P0_BACKEND_PROGRESS.md +150 -0
- package/docs/ops/PAYMENTS_ALPHA_R5.md +105 -0
- package/docs/ops/PILOT_ONBOARDING_RUNBOOK.md +112 -0
- package/docs/ops/PRODUCTION_DEPLOYMENT_CHECKLIST.md +140 -0
- package/docs/ops/R1_SLOS.md +66 -0
- package/docs/ops/RELEASE_SIGNING_INCIDENT.md +58 -0
- package/docs/ops/SELF_SERVE_LAUNCH_AUTOMATION.md +89 -0
- package/docs/ops/THROUGHPUT_DRILL_10X.md +48 -0
- package/docs/ops/TRUST_CONFIG_WIZARD.md +60 -0
- package/docs/ops/X402_PILOT_WEEKLY_METRICS.md +76 -0
- package/docs/ops/tool-call-disputes-holdback.md +52 -0
- package/docs/pilot-kit/PILOT_PACKAGE_SCORECARD_X402.md +46 -0
- package/docs/pilot-kit/README.md +29 -0
- package/docs/pilot-kit/architecture-one-pager.md +48 -0
- package/docs/pilot-kit/buyer-email.txt +19 -0
- package/docs/pilot-kit/buyer-one-pager.md +31 -0
- package/docs/pilot-kit/gtm-pilot-playbook.md +182 -0
- package/docs/pilot-kit/offline-verify.md +33 -0
- package/docs/pilot-kit/procurement-one-pager.md +50 -0
- package/docs/pilot-kit/rfp-clause.md +46 -0
- package/docs/pilot-kit/roi-calculator-template.csv +2 -0
- package/docs/pilot-kit/security-qa.md +153 -0
- package/docs/pilot-kit/security-summary.md +35 -0
- package/docs/plans/2026-02-13-mcp-spike-design.md +113 -0
- package/docs/plans/2026-02-20-trust-os-v1-jira-backlog.md +348 -0
- package/docs/plans/2026-02-21-agent-economic-actor-operating-model.md +169 -0
- package/docs/plans/2026-02-21-trust-os-v1-strategy.md +241 -0
- package/docs/research/2026-02-21-agent-spend-host-landscape.md +57 -0
- package/docs/spec/AcceptanceCriteria.v1.md +17 -0
- package/docs/spec/AcceptanceEvaluation.v1.md +10 -0
- package/docs/spec/AgentEvent.v1.md +47 -0
- package/docs/spec/AgentIdentity.v1.md +62 -0
- package/docs/spec/AgentPassport.v1.md +95 -0
- package/docs/spec/AgentReputation.v1.md +59 -0
- package/docs/spec/AgentReputation.v2.md +52 -0
- package/docs/spec/AgentRun.v1.md +47 -0
- package/docs/spec/AgentRunSettlement.v1.md +52 -0
- package/docs/spec/AgentWallet.v1.md +43 -0
- package/docs/spec/AgreementDelegation.v1.md +109 -0
- package/docs/spec/ArbitrationCase.v1.md +67 -0
- package/docs/spec/ArbitrationOutcomeMapping.v1.md +62 -0
- package/docs/spec/ArbitrationVerdict.v1.md +60 -0
- package/docs/spec/BundleHeadAttestation.v1.md +32 -0
- package/docs/spec/CANONICAL_JSON.md +31 -0
- package/docs/spec/CRYPTOGRAPHY.md +61 -0
- package/docs/spec/ClosePack.v1.md +49 -0
- package/docs/spec/ClosePackManifest.v1.md +24 -0
- package/docs/spec/DelegationGrant.v1.md +90 -0
- package/docs/spec/DisputeCaseLifecycle.v1.md +51 -0
- package/docs/spec/DisputeOpenEnvelope.v1.md +43 -0
- package/docs/spec/ERRORS.md +76 -0
- package/docs/spec/ESCROW_NETTING_INVARIANTS.md +71 -0
- package/docs/spec/EvidenceIndex.v1.md +20 -0
- package/docs/spec/ExecutionIntent.v1.md +90 -0
- package/docs/spec/FinancePackBundleManifest.v1.md +24 -0
- package/docs/spec/FundingHold.v1.md +60 -0
- package/docs/spec/GovernancePolicy.v1.md +34 -0
- package/docs/spec/GovernancePolicy.v2.md +30 -0
- package/docs/spec/INVARIANTS.md +389 -0
- package/docs/spec/InteractionDirectionMatrix.v1.md +30 -0
- package/docs/spec/InvoiceBundleManifest.v1.md +24 -0
- package/docs/spec/InvoiceClaim.v1.md +11 -0
- package/docs/spec/MONEY_RAIL_STATE_MACHINE.md +58 -0
- package/docs/spec/MarketplaceAcceptance.v2.md +46 -0
- package/docs/spec/MarketplaceOffer.v2.md +54 -0
- package/docs/spec/MeteringReport.v1.md +18 -0
- package/docs/spec/OperatorAction.v1.md +90 -0
- package/docs/spec/PRODUCER_ERRORS.md +42 -0
- package/docs/spec/PolicyDecision.v1.md +83 -0
- package/docs/spec/PricingMatrix.v1.md +20 -0
- package/docs/spec/PricingMatrixSignatures.v1.md +30 -0
- package/docs/spec/PricingMatrixSignatures.v2.md +29 -0
- package/docs/spec/ProduceCliOutput.v1.md +46 -0
- package/docs/spec/ProofBundleManifest.v1.md +24 -0
- package/docs/spec/README.md +109 -0
- package/docs/spec/REFERENCE_IMPLEMENTATIONS.md +29 -0
- package/docs/spec/REFERENCE_VERIFIER_BEHAVIOR.md +68 -0
- package/docs/spec/REMOTE_SIGNER.md +66 -0
- package/docs/spec/ReleaseIndex.v1.md +32 -0
- package/docs/spec/ReleaseIndexSignatures.v1.md +17 -0
- package/docs/spec/ReleaseTrust.v1.md +13 -0
- package/docs/spec/ReleaseTrust.v2.md +26 -0
- package/docs/spec/RemoteSignerRequest.v1.md +21 -0
- package/docs/spec/RemoteSignerResponse.v1.md +16 -0
- package/docs/spec/ReputationEvent.v1.md +63 -0
- package/docs/spec/RevocationList.v1.md +28 -0
- package/docs/spec/SIGNER_PROVIDER_PLUGIN.md +32 -0
- package/docs/spec/STRICTNESS.md +68 -0
- package/docs/spec/SUPPLY_CHAIN.md +33 -0
- package/docs/spec/SettlementAdjustment.v1.md +45 -0
- package/docs/spec/SettlementDecisionRecord.v1.md +48 -0
- package/docs/spec/SettlementDecisionRecord.v2.md +53 -0
- package/docs/spec/SettlementDecisionReport.v1.md +44 -0
- package/docs/spec/SettlementKernel.v1.md +59 -0
- package/docs/spec/SettlementReceipt.v1.md +63 -0
- package/docs/spec/SlaDefinition.v1.md +24 -0
- package/docs/spec/SlaEvaluation.v1.md +12 -0
- package/docs/spec/THREAT_MODEL.md +113 -0
- package/docs/spec/TOOL_PROVENANCE.md +30 -0
- package/docs/spec/TRUST_ANCHORS.md +84 -0
- package/docs/spec/TenantSettings.v1.md +90 -0
- package/docs/spec/TenantSettings.v2.md +99 -0
- package/docs/spec/TimestampProof.v1.md +25 -0
- package/docs/spec/ToolCallAgreement.v1.md +34 -0
- package/docs/spec/ToolCallEvidence.v1.md +47 -0
- package/docs/spec/ToolManifest.v1.md +47 -0
- package/docs/spec/VERIFIER_ENVIRONMENT.md +38 -0
- package/docs/spec/VERSIONING.md +107 -0
- package/docs/spec/VerificationReport.v1.md +50 -0
- package/docs/spec/VerifyAboutOutput.v1.md +10 -0
- package/docs/spec/VerifyCliOutput.v1.md +28 -0
- package/docs/spec/WARNINGS.md +83 -0
- package/docs/spec/error-codes.v1.txt +285 -0
- package/docs/spec/examples/agreement_delegation_v1.example.json +21 -0
- package/docs/spec/examples/arbitration_case_v1.example.json +26 -0
- package/docs/spec/examples/arbitration_verdict_v1.example.json +32 -0
- package/docs/spec/examples/dispute_open_envelope_v1.example.json +18 -0
- package/docs/spec/examples/produce_cli_output_v1.example.json +32 -0
- package/docs/spec/examples/release_index_signature_v1.example.json +9 -0
- package/docs/spec/examples/release_index_signatures_v1.example.json +14 -0
- package/docs/spec/examples/release_index_v1.example.json +15 -0
- package/docs/spec/examples/release_trust_v1.example.json +7 -0
- package/docs/spec/examples/release_trust_v2.example.json +22 -0
- package/docs/spec/examples/remote_signer_request_v1.example.json +18 -0
- package/docs/spec/examples/remote_signer_response_v1.example.json +8 -0
- package/docs/spec/examples/reputation_event_v1.example.json +29 -0
- package/docs/spec/examples/verification_report_v1.example.json +24 -0
- package/docs/spec/examples/verify_about_output_v1.example.json +29 -0
- package/docs/spec/examples/verify_cli_output_v1.example.json +13 -0
- package/docs/spec/legacy/MarketplaceAcceptance.v1.md +48 -0
- package/docs/spec/legacy/MarketplaceOffer.v1.md +56 -0
- package/docs/spec/legacy/schemas/MarketplaceAcceptance.v1.schema.json +53 -0
- package/docs/spec/legacy/schemas/MarketplaceOffer.v1.schema.json +61 -0
- package/docs/spec/producer-error-codes.v1.txt +14 -0
- package/docs/spec/schemas/AcceptanceCriteria.v1.schema.json +24 -0
- package/docs/spec/schemas/AcceptanceEvaluation.v1.schema.json +26 -0
- package/docs/spec/schemas/AgentEvent.v1.schema.json +49 -0
- package/docs/spec/schemas/AgentIdentity.v1.schema.json +129 -0
- package/docs/spec/schemas/AgentPassport.v1.schema.json +112 -0
- package/docs/spec/schemas/AgentReputation.v1.schema.json +151 -0
- package/docs/spec/schemas/AgentReputation.v2.schema.json +120 -0
- package/docs/spec/schemas/AgentRun.v1.schema.json +71 -0
- package/docs/spec/schemas/AgentRunSettlement.v1.schema.json +75 -0
- package/docs/spec/schemas/AgentWallet.v1.schema.json +54 -0
- package/docs/spec/schemas/AgreementDelegation.v1.schema.json +50 -0
- package/docs/spec/schemas/ArbitrationCase.v1.schema.json +133 -0
- package/docs/spec/schemas/ArbitrationVerdict.v1.schema.json +149 -0
- package/docs/spec/schemas/BundleHeadAttestation.v1.schema.json +21 -0
- package/docs/spec/schemas/ClosePackManifest.v1.schema.json +38 -0
- package/docs/spec/schemas/DelegationGrant.v1.schema.json +102 -0
- package/docs/spec/schemas/DisputeOpenEnvelope.v1.schema.json +78 -0
- package/docs/spec/schemas/EvidenceIndex.v1.schema.json +41 -0
- package/docs/spec/schemas/ExecutionIntent.v1.schema.json +85 -0
- package/docs/spec/schemas/FinancePackBundleManifest.v1.schema.json +38 -0
- package/docs/spec/schemas/FundingHold.v1.schema.json +46 -0
- package/docs/spec/schemas/GovernancePolicy.v1.schema.json +45 -0
- package/docs/spec/schemas/GovernancePolicy.v2.schema.json +70 -0
- package/docs/spec/schemas/InteractionDirectionMatrix.v1.schema.json +43 -0
- package/docs/spec/schemas/InvoiceBundleManifest.v1.schema.json +38 -0
- package/docs/spec/schemas/InvoiceClaim.v1.schema.json +39 -0
- package/docs/spec/schemas/MarketplaceAcceptance.v2.schema.json +53 -0
- package/docs/spec/schemas/MarketplaceOffer.v2.schema.json +61 -0
- package/docs/spec/schemas/MeteringReport.v1.schema.json +45 -0
- package/docs/spec/schemas/OperatorAction.v1.schema.json +113 -0
- package/docs/spec/schemas/PolicyDecision.v1.schema.json +74 -0
- package/docs/spec/schemas/PricingMatrix.v1.schema.json +24 -0
- package/docs/spec/schemas/PricingMatrixSignatures.v1.schema.json +24 -0
- package/docs/spec/schemas/PricingMatrixSignatures.v2.schema.json +24 -0
- package/docs/spec/schemas/ProduceCliOutput.v1.schema.json +107 -0
- package/docs/spec/schemas/ProofBundleManifest.v1.schema.json +37 -0
- package/docs/spec/schemas/PublicKeys.v1.schema.json +33 -0
- package/docs/spec/schemas/ReleaseIndex.v1.schema.json +45 -0
- package/docs/spec/schemas/ReleaseIndexSignature.v1.schema.json +16 -0
- package/docs/spec/schemas/ReleaseIndexSignatures.v1.schema.json +16 -0
- package/docs/spec/schemas/ReleaseTrust.v1.schema.json +15 -0
- package/docs/spec/schemas/ReleaseTrust.v2.schema.json +37 -0
- package/docs/spec/schemas/RemoteSignerPublicKeyResponse.v1.schema.json +14 -0
- package/docs/spec/schemas/RemoteSignerRequest.v1.schema.json +24 -0
- package/docs/spec/schemas/RemoteSignerResponse.v1.schema.json +10 -0
- package/docs/spec/schemas/RemoteSignerSignRequest.v1.schema.json +27 -0
- package/docs/spec/schemas/RemoteSignerSignResponse.v1.schema.json +16 -0
- package/docs/spec/schemas/ReputationEvent.v1.schema.json +164 -0
- package/docs/spec/schemas/RevocationList.v1.schema.json +51 -0
- package/docs/spec/schemas/SettlementAdjustment.v1.schema.json +44 -0
- package/docs/spec/schemas/SettlementDecisionRecord.v1.schema.json +66 -0
- package/docs/spec/schemas/SettlementDecisionRecord.v2.schema.json +149 -0
- package/docs/spec/schemas/SettlementDecisionReport.v1.schema.json +61 -0
- package/docs/spec/schemas/SettlementReceipt.v1.schema.json +135 -0
- package/docs/spec/schemas/SlaDefinition.v1.schema.json +33 -0
- package/docs/spec/schemas/SlaEvaluation.v1.schema.json +26 -0
- package/docs/spec/schemas/TenantSettings.v1.schema.json +90 -0
- package/docs/spec/schemas/TenantSettings.v2.schema.json +161 -0
- package/docs/spec/schemas/TimestampProof.v1.schema.json +17 -0
- package/docs/spec/schemas/ToolCallAgreement.v1.schema.json +34 -0
- package/docs/spec/schemas/ToolCallEvidence.v1.schema.json +45 -0
- package/docs/spec/schemas/ToolManifest.v1.schema.json +54 -0
- package/docs/spec/schemas/VerificationReport.v1.schema.json +83 -0
- package/docs/spec/schemas/VerifyAboutOutput.v1.schema.json +54 -0
- package/docs/spec/schemas/VerifyCliOutput.v1.schema.json +75 -0
- package/docs/spec/schemas/VerifyReleaseOutput.v1.schema.json +47 -0
- package/docs/spec/x402-error-codes.v1.txt +35 -0
- package/docs/templates/buyer-email.txt +18 -0
- package/docs/templates/buyer-one-pager.md +24 -0
- package/package.json +53 -6
- package/scripts/acceptance/full-stack.mjs +734 -0
- package/scripts/acceptance/full-stack.sh +99 -0
- package/scripts/audit/build-audit-packet.mjs +242 -0
- package/scripts/backup-pg.sh +45 -0
- package/scripts/backup-restore/README.md +18 -0
- package/scripts/backup-restore/capture-state.mjs +130 -0
- package/scripts/backup-restore/client.mjs +97 -0
- package/scripts/backup-restore/seed-workload.mjs +235 -0
- package/scripts/backup-restore/verify-state.mjs +139 -0
- package/scripts/backup-restore-test.sh +217 -0
- package/scripts/chaos.js +221 -0
- package/scripts/ci/build-launch-cutover-packet.mjs +304 -0
- package/scripts/ci/build-self-serve-benchmark-report.mjs +122 -0
- package/scripts/ci/changelog-guard.mjs +145 -0
- package/scripts/ci/check-kernel-v0-launch-gate.mjs +233 -0
- package/scripts/ci/check-secret-hygiene.mjs +78 -0
- package/scripts/ci/check-version-consistency.mjs +42 -0
- package/scripts/ci/cli-pack-smoke.mjs +160 -0
- package/scripts/ci/flake-budget-guard.mjs +68 -0
- package/scripts/ci/generate-error-codes.mjs +54 -0
- package/scripts/ci/lib/lighthouse-tracker.mjs +90 -0
- package/scripts/ci/lib/self-serve-launch-gate.mjs +89 -0
- package/scripts/ci/npm-pack-smoke.mjs +454 -0
- package/scripts/ci/run-10x-throughput-drill.mjs +318 -0
- package/scripts/ci/run-10x-throughput-incident-rehearsal.mjs +368 -0
- package/scripts/ci/run-arbitration-workspace-browser-e2e.sh +22 -0
- package/scripts/ci/run-circle-sandbox-smoke.mjs +237 -0
- package/scripts/ci/run-go-live-gate.mjs +150 -0
- package/scripts/ci/run-kernel-v0-ship-gate.mjs +97 -0
- package/scripts/ci/run-mcp-host-cert-matrix.mjs +201 -0
- package/scripts/ci/run-mcp-host-smoke.mjs +473 -0
- package/scripts/ci/run-offline-verification-parity-gate.mjs +762 -0
- package/scripts/ci/run-onboarding-host-success-gate.mjs +516 -0
- package/scripts/ci/run-onboarding-policy-slo-gate.mjs +537 -0
- package/scripts/ci/run-production-cutover-gate.mjs +540 -0
- package/scripts/ci/run-public-openclaw-npx-smoke.mjs +148 -0
- package/scripts/ci/run-release-promotion-guard.mjs +756 -0
- package/scripts/ci/run-self-serve-launch-gate.mjs +56 -0
- package/scripts/ci/runtime-import-smoke.mjs +58 -0
- package/scripts/ci/update-lighthouse-tracker.mjs +112 -0
- package/scripts/closepack/lib.mjs +286 -0
- package/scripts/collect-debug.sh +263 -0
- package/scripts/demo/compositional-settlement-3hop.mjs +237 -0
- package/scripts/demo/delivery-robot/export-ui-fixture.mjs +188 -0
- package/scripts/demo/delivery-robot/generate.mjs +377 -0
- package/scripts/demo/kernel-agent-goes-shopping.mjs +202 -0
- package/scripts/demo/magic-link-first-green.mjs +118 -0
- package/scripts/demo/magic-link-kind-smoke.mjs +577 -0
- package/scripts/demo/mcp-paid-exa.mjs +1110 -0
- package/scripts/dev/billing-doctor.sh +145 -0
- package/scripts/dev/billing-smoke-prod.sh +219 -0
- package/scripts/dev/billing-webhook-replay.sh +161 -0
- package/scripts/dev/env.dev.example +29 -0
- package/scripts/dev/env.sh +37 -0
- package/scripts/dev/new-sdk-key.sh +81 -0
- package/scripts/dev/sdk-first-run.sh +21 -0
- package/scripts/dev/smoke-x402-gateway.sh +115 -0
- package/scripts/dev/start-api.sh +24 -0
- package/scripts/doctor/mcp-host.mjs +120 -0
- package/scripts/examples/produce-and-verify-jobproof.mjs +191 -0
- package/scripts/examples/sdk-first-paid-rfq.py +105 -0
- package/scripts/examples/sdk-first-verified-run.mjs +85 -0
- package/scripts/examples/sdk-first-verified-run.py +99 -0
- package/scripts/examples/sdk-tenant-analytics.mjs +103 -0
- package/scripts/examples/sdk-tenant-analytics.py +118 -0
- package/scripts/finance-pack/bundle.mjs +284 -0
- package/scripts/fixtures/generate-bundle-fixtures.mjs +877 -0
- package/scripts/governance/export.mjs +169 -0
- package/scripts/load/delivery-stress.k6.js +183 -0
- package/scripts/load/ingest-burst.k6.js +236 -0
- package/scripts/load/run-delivery-load.js +66 -0
- package/scripts/load/webhook-receiver.js +131 -0
- package/scripts/magic-link/migrate-run-records-to-db.mjs +35 -0
- package/scripts/mcp/probe.mjs +238 -0
- package/scripts/mcp/settld-mcp-http-gateway.mjs +178 -0
- package/scripts/mcp/settld-mcp-server.mjs +1511 -0
- package/scripts/openapi/write.mjs +13 -0
- package/scripts/ops/bootstrap-tenant-conformance.mjs +185 -0
- package/scripts/ops/build-x402-pilot-reliability-report.mjs +489 -0
- package/scripts/ops/check-x402-receipt-sample.mjs +181 -0
- package/scripts/ops/design-partner-run-packet.mjs +466 -0
- package/scripts/ops/dispute-finance-reconciliation-packet.mjs +313 -0
- package/scripts/ops/hosted-baseline-evidence.mjs +890 -0
- package/scripts/ops/money-rails-chargeback-evidence.mjs +509 -0
- package/scripts/ops/money-rails-reconcile-evidence.mjs +180 -0
- package/scripts/ops/p0-seed-money-rail-operation.mjs +432 -0
- package/scripts/ops/run-x402-hitl-smoke.mjs +607 -0
- package/scripts/pilot/finance-pack.mjs +495 -0
- package/scripts/pilot/fixtures/robot-keypair.json +4 -0
- package/scripts/pilot/fixtures/server-signer.json +4 -0
- package/scripts/policy/cli.mjs +600 -0
- package/scripts/profile/cli.mjs +1324 -0
- package/scripts/proof-bundle/job.mjs +109 -0
- package/scripts/proof-bundle/lib.mjs +92 -0
- package/scripts/proof-bundle/month.mjs +103 -0
- package/scripts/provider/conformance-run.mjs +159 -0
- package/scripts/provider/keys-generate.mjs +135 -0
- package/scripts/provider/publish.mjs +420 -0
- package/scripts/quickstart/x402.mjs +334 -0
- package/scripts/register-entity-secret.mjs +102 -0
- package/scripts/release/build-artifacts.mjs +181 -0
- package/scripts/release/generate-release-index.mjs +112 -0
- package/scripts/release/release-index-lib.mjs +232 -0
- package/scripts/release/sign-release-index.mjs +85 -0
- package/scripts/release/validate-release-assets.mjs +170 -0
- package/scripts/release/verify-release.mjs +261 -0
- package/scripts/restore-pg.sh +34 -0
- package/scripts/scaffold/create-settld-paid-tool.mjs +19 -0
- package/scripts/sdk/smoke-python.py +30 -0
- package/scripts/sdk/smoke.mjs +16 -0
- package/scripts/settlement/x402-batch-worker.mjs +1091 -0
- package/scripts/setup/circle-bootstrap.mjs +310 -0
- package/scripts/setup/host-config.mjs +617 -0
- package/scripts/setup/onboard.mjs +1337 -0
- package/scripts/setup/openclaw-onboard.mjs +423 -0
- package/scripts/setup/wizard.mjs +986 -0
- package/scripts/slo/check.mjs +239 -0
- package/scripts/smoke/k8s-smoke.mjs +214 -0
- package/scripts/spec/generate-protocol-vectors.mjs +1019 -0
- package/scripts/test/check-no-generated-artifacts.sh +12 -0
- package/scripts/test/run.sh +59 -0
- package/scripts/trust/validate-trust-file.mjs +57 -0
- package/scripts/trust-config/rotate-settld-pay.mjs +277 -0
- package/scripts/trust-config/wizard.mjs +161 -0
- package/scripts/vendor-contract-test-lib.mjs +182 -0
- package/scripts/vendor-contract-test.mjs +55 -0
- package/scripts/vercel/build-mkdocs.sh +9 -0
- package/scripts/vercel/ignore-mkdocs.sh +25 -0
- package/scripts/vercel/install-mkdocs.sh +6 -0
- package/scripts/verify-pg.js +217 -0
- package/scripts/x402/receipt-verify.mjs +289 -0
- package/services/finance-sink/src/dedupe-store.js +29 -6
- package/services/receiver/src/dedupe-store.js +29 -5
- package/services/x402-gateway/Dockerfile +13 -0
- package/services/x402-gateway/README.md +58 -0
- package/services/x402-gateway/examples/upstream-mock.js +337 -0
- package/services/x402-gateway/src/server.js +1058 -0
- package/src/api/app.js +34658 -16940
- package/src/api/maintenance.js +70 -0
- package/src/api/middleware/trust-kernel.js +114 -0
- package/src/api/openapi.js +1778 -70
- package/src/api/persistence.js +456 -0
- package/src/api/server.js +81 -5
- package/src/api/store.js +1581 -62
- package/src/api/workers/deliveries.js +99 -4
- package/src/api/workers/insolvency-sweep.js +159 -0
- package/src/core/agent-card.js +69 -0
- package/src/core/agent-wallets.js +231 -0
- package/src/core/agreement-delegation.js +549 -0
- package/src/core/billing-plans.js +40 -6
- package/src/core/circle-reserve-adapter.js +845 -0
- package/src/core/event-policy.js +21 -2
- package/src/core/maintenance-locks.js +1 -0
- package/src/core/operator-action.js +303 -0
- package/src/core/paid-tool-manifest.js +318 -0
- package/src/core/policy-decision.js +322 -0
- package/src/core/policy-packs.js +207 -0
- package/src/core/profile-fingerprint.js +27 -0
- package/src/core/profile-simulation-reasons.js +84 -0
- package/src/core/profile-templates.js +242 -0
- package/src/core/provider-publish-conformance.js +525 -0
- package/src/core/provider-publish-proof.js +396 -0
- package/src/core/provider-quote-signature.js +170 -0
- package/src/core/settld-keys.js +112 -0
- package/src/core/settld-pay-token.js +344 -0
- package/src/core/settlement-kernel.js +239 -2
- package/src/core/settlement-verifier.js +335 -0
- package/src/core/tool-call-agreement.js +112 -0
- package/src/core/tool-call-evidence.js +144 -0
- package/src/core/tool-provider-signature.js +98 -0
- package/src/core/wallet-assignment-resolver.js +129 -0
- package/src/core/wallet-provider-bootstrap.js +365 -0
- package/src/core/x402-escalation-override.js +258 -0
- package/src/core/x402-gate.js +118 -0
- package/src/core/x402-provider-refund-decision.js +220 -0
- package/src/core/x402-receipt-verifier.js +708 -0
- package/src/core/x402-reversal-command.js +251 -0
- package/src/core/x402-wallet-issuer-decision.js +252 -0
- package/src/core/zk-verifier.js +300 -0
- package/src/db/migrations/029_reputation_event_index.sql +54 -0
- package/src/db/migrations/030_artifacts_source_event_unique_job_only.sql +15 -0
- package/src/db/pg.js +18 -7
- package/src/db/store-pg.js +1508 -111
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# ToolManifest.v1
|
|
2
|
+
|
|
3
|
+
`ToolManifest.v1` describes a payable capability (a tool) as a signed, portable contract that can be pinned by hash.
|
|
4
|
+
|
|
5
|
+
This object is intentionally small: it exists to make third-party discovery and replay possible without “server configuration context”.
|
|
6
|
+
|
|
7
|
+
## Fields
|
|
8
|
+
|
|
9
|
+
Required:
|
|
10
|
+
|
|
11
|
+
- `schemaVersion` (const: `ToolManifest.v1`)
|
|
12
|
+
- `toolId` (string; stable identifier)
|
|
13
|
+
- `toolVersion` (string; SemVer)
|
|
14
|
+
- `endpoints[]` (non-empty array)
|
|
15
|
+
- `kind` (const: `http`)
|
|
16
|
+
- `baseUrl` (string)
|
|
17
|
+
- `callPath` (string)
|
|
18
|
+
- `manifestPath` (string)
|
|
19
|
+
- `inputSchemaHash` (sha256 hex; hash of the canonical JSON input schema)
|
|
20
|
+
- `outputSchemaHash` (sha256 hex; hash of the canonical JSON output schema)
|
|
21
|
+
- `createdAt` (ISO 8601)
|
|
22
|
+
- `signature` (required)
|
|
23
|
+
- `algorithm` (const: `ed25519`)
|
|
24
|
+
- `signerKeyId` (string)
|
|
25
|
+
- `manifestHash` (sha256 hex)
|
|
26
|
+
- `signature` (base64)
|
|
27
|
+
- `signerPublicKeyPem` (optional; PEM string)
|
|
28
|
+
|
|
29
|
+
Optional:
|
|
30
|
+
|
|
31
|
+
- `verifierHints` (object or `null`): non-binding hints for consumers about how to evaluate/verify outputs (e.g. deterministic verifier).
|
|
32
|
+
|
|
33
|
+
## Canonicalization + hashing
|
|
34
|
+
|
|
35
|
+
1. Canonicalize using RFC 8785 (JCS).
|
|
36
|
+
2. The `manifestHash` is `sha256` over UTF-8 bytes of canonical JSON of the **manifest core**:
|
|
37
|
+
- the full `ToolManifest.v1` object **excluding** the `signature` field.
|
|
38
|
+
|
|
39
|
+
## Signing
|
|
40
|
+
|
|
41
|
+
- The `signature.signature` value is an Ed25519 signature over `manifestHash` (the hex hash string), using the private key corresponding to `signerKeyId`.
|
|
42
|
+
- Consumers may verify using `signature.signerPublicKeyPem` when present, or via an external key registry for `signerKeyId`.
|
|
43
|
+
|
|
44
|
+
## Schema
|
|
45
|
+
|
|
46
|
+
See `docs/spec/schemas/ToolManifest.v1.schema.json`.
|
|
47
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Verifier Environment Assumptions + Hardening (v1)
|
|
2
|
+
|
|
3
|
+
This document describes operational assumptions and recommended hardening when deploying `settld-verify`.
|
|
4
|
+
|
|
5
|
+
## Filesystem assumptions
|
|
6
|
+
|
|
7
|
+
- The bundle is verified from a local directory (or an extracted zip) whose contents are stable during verification.
|
|
8
|
+
- The verifier treats manifest paths as portable `/`-separated bundle-relative paths.
|
|
9
|
+
- The verifier refuses symlinks for manifest-listed files and rejects path traversal attempts.
|
|
10
|
+
- Spec: `REFERENCE_VERIFIER_BEHAVIOR.md`
|
|
11
|
+
|
|
12
|
+
## CI / production recommendations
|
|
13
|
+
|
|
14
|
+
- **Regulated workflows**: run **strict mode** by default.
|
|
15
|
+
- CLI: `settld-verify --strict --format json …`
|
|
16
|
+
- Spec: `STRICTNESS.md`
|
|
17
|
+
- **Warnings policy**:
|
|
18
|
+
- If warnings represent “unknown provenance / incomplete guarantees” in your environment, enable `--fail-on-warnings`.
|
|
19
|
+
- CLI: `settld-verify --fail-on-warnings …`
|
|
20
|
+
- Spec: `WARNINGS.md`
|
|
21
|
+
- **Pin tool versions**:
|
|
22
|
+
- Prefer installing a pinned version of `settld-verify` and recording `VerifyCliOutput.v1.tool.{version,commit}` as evidence.
|
|
23
|
+
- Spec: `TOOL_PROVENANCE.md`, `VERSIONING.md`
|
|
24
|
+
|
|
25
|
+
## Trust anchor distribution (do / don’t)
|
|
26
|
+
|
|
27
|
+
- DO distribute governance-root public keys out-of-band and pin them (e.g., repo file, immutable artifact, or configuration management).
|
|
28
|
+
- DO treat trust anchors as high-integrity inputs (tampering undermines authorization checks).
|
|
29
|
+
- DON’T fetch trust roots over unauthenticated channels at verification time.
|
|
30
|
+
- Spec: `TRUST_ANCHORS.md`
|
|
31
|
+
|
|
32
|
+
## Volatility and determinism
|
|
33
|
+
|
|
34
|
+
- CLI output ordering of `errors[]` and `warnings[]` is deterministic (sorted) to support CI and archival.
|
|
35
|
+
- If you need stronger determinism guarantees, archive both:
|
|
36
|
+
- `verify/verification_report.json` inside the bundle (receipt), and
|
|
37
|
+
- `settld-verify --format json` output (what your CI observed).
|
|
38
|
+
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Versioning (tools vs protocol)
|
|
2
|
+
|
|
3
|
+
Settld has **two coupled version surfaces**:
|
|
4
|
+
|
|
5
|
+
1. **Tool versions** (SemVer): the software you install/run (`settld-verify`, bundlers, services).
|
|
6
|
+
2. **Protocol versions** (object `*.v1`, `*.v2`, …): on-disk/wire-format contracts (schemas + semantics).
|
|
7
|
+
|
|
8
|
+
This document defines when to bump **tool SemVer**, when to introduce **new protocol object versions**, and how to avoid accidental drift.
|
|
9
|
+
|
|
10
|
+
## Tool SemVer policy
|
|
11
|
+
|
|
12
|
+
Tools follow Semantic Versioning:
|
|
13
|
+
|
|
14
|
+
- **MAJOR**: any breaking change to a public surface (CLI flags/output, verification semantics in strict mode, required protocol surfaces, bundle layout requirements, removal of documented warnings, etc.).
|
|
15
|
+
- **MINOR**: backwards-compatible additions (new CLI flags, new optional output fields, new warning codes, new non-strict compatibility paths).
|
|
16
|
+
- **PATCH**: bug fixes and perf improvements that do not change documented behavior (same pass/fail, same codes, same hashes/signatures).
|
|
17
|
+
|
|
18
|
+
### Concrete examples (tool SemVer)
|
|
19
|
+
|
|
20
|
+
- Add a new CLI flag (e.g. `--hash-concurrency`) that does not change verification semantics → **MINOR**.
|
|
21
|
+
- Fix a bug where strict mode accepted an invalid signature and now fails it → **MAJOR** (strict semantics changed).
|
|
22
|
+
- Stream file hashing (perf) while keeping hashes, codes, and strict/non-strict semantics identical → **PATCH**.
|
|
23
|
+
- Add a new warning code and surface it in `VerifyCliOutput.v1` → **MINOR**.
|
|
24
|
+
- Change sorting of `errors[]` / `warnings[]` in CLI JSON output → **MAJOR** (downstream parsers/snapshots can break).
|
|
25
|
+
|
|
26
|
+
## Protocol surface policy
|
|
27
|
+
|
|
28
|
+
The protocol is treated like an API:
|
|
29
|
+
|
|
30
|
+
- Specs: `docs/spec/*`
|
|
31
|
+
- Schemas: `docs/spec/schemas/*`
|
|
32
|
+
- Vectors: `test/fixtures/protocol-vectors/v1.json`
|
|
33
|
+
- End-to-end fixtures: `test/fixtures/bundles/v1/*`
|
|
34
|
+
|
|
35
|
+
## v1 freeze (protocol becomes a stable contract)
|
|
36
|
+
|
|
37
|
+
Protocol `v1` is a **frozen contract**: customers, auditors, and independent implementers must be able to pin a tool version and rely on the v1 meaning indefinitely.
|
|
38
|
+
|
|
39
|
+
### Allowed changes (v1)
|
|
40
|
+
|
|
41
|
+
- Documentation clarifications and additional examples that do **not** change acceptance criteria.
|
|
42
|
+
- Performance improvements that do **not** change:
|
|
43
|
+
- pass/fail outcomes,
|
|
44
|
+
- error/warning codes,
|
|
45
|
+
- hashes/signatures (canonicalization inputs and bytes),
|
|
46
|
+
- strict/non-strict downgrade behavior.
|
|
47
|
+
- New tests, fixtures, and conformance cases that increase coverage without changing behavior.
|
|
48
|
+
|
|
49
|
+
### Not allowed changes (v1)
|
|
50
|
+
|
|
51
|
+
- Any change to `docs/spec/schemas/*v1*.json` that would alter the schema contract.
|
|
52
|
+
- Any change to `test/fixtures/protocol-vectors/v1.json` that changes canonical meaning.
|
|
53
|
+
- Any change to canonicalization rules (RFC 8785 / JCS) or hashing inputs.
|
|
54
|
+
- Any change to strictness semantics in `STRICTNESS.md`.
|
|
55
|
+
- Any change to warning code meanings in `WARNINGS.md`.
|
|
56
|
+
|
|
57
|
+
### Enforcement (CI + local)
|
|
58
|
+
|
|
59
|
+
Changes to v1 schemas/vectors must be **deliberate**:
|
|
60
|
+
|
|
61
|
+
- CI fails if v1 schemas or `test/fixtures/protocol-vectors/v1.json` change unless:
|
|
62
|
+
- `CHANGELOG.md` is updated, **and**
|
|
63
|
+
- the PR includes an explicit marker `protocol-change` (PR body or commit message).
|
|
64
|
+
- A local freeze test (`test/protocol-v1-freeze.test.js`) asserts v1 schema/vector file hashes are unchanged unless `ALLOW_PROTOCOL_V1_MUTATION=1` is set (intended only for deliberate rotations).
|
|
65
|
+
|
|
66
|
+
### What is a breaking protocol change?
|
|
67
|
+
|
|
68
|
+
Any change that alters what an independent verifier would accept/reject, or what it would compute as hashes/signatures, including:
|
|
69
|
+
|
|
70
|
+
- JSON Schema breaking changes for existing `*.v1` objects.
|
|
71
|
+
- Canonicalization changes (RFC 8785 / JCS rules).
|
|
72
|
+
- Hashing changes (algorithm, input bytes, file inclusion/exclusion rules).
|
|
73
|
+
- Strictness contract changes (required surfaces, required validations, downgrade behavior).
|
|
74
|
+
- Bundle layout changes that affect required files or meaning.
|
|
75
|
+
|
|
76
|
+
### When to introduce `v2` objects vs mutate `v1`
|
|
77
|
+
|
|
78
|
+
Do **not** mutate the meaning of `*.v1` objects in a way that would cause previously valid instances to become invalid (or vice versa) in strict mode.
|
|
79
|
+
|
|
80
|
+
Introduce a `v2` when:
|
|
81
|
+
|
|
82
|
+
- A required field changes shape/type/meaning.
|
|
83
|
+
- A new required field is introduced.
|
|
84
|
+
- The canonicalization/hashing/signing inputs change.
|
|
85
|
+
- You need to remove/rename fields or change invariants.
|
|
86
|
+
|
|
87
|
+
You may evolve `v1` only via **compatible additions**:
|
|
88
|
+
|
|
89
|
+
- Add new **optional** fields that are omitted when absent (not `null`).
|
|
90
|
+
- Clarify docs without changing semantics.
|
|
91
|
+
- Add new warning codes (closed set remains documented).
|
|
92
|
+
|
|
93
|
+
### How vectors and fixtures relate to compatibility
|
|
94
|
+
|
|
95
|
+
- **Protocol vectors** lock canonical examples and edge cases. Any intentional protocol change requires a deliberate vector update (and review).
|
|
96
|
+
- **Bundle fixtures** are a conformance corpus. Changes to strict/non-strict behavior should be expressed as:
|
|
97
|
+
- a new fixture directory (single fault), and
|
|
98
|
+
- an expectation row in `test/fixtures/bundles/v1/fixtures.json`.
|
|
99
|
+
|
|
100
|
+
## Compatibility matrix (within a major tool version)
|
|
101
|
+
|
|
102
|
+
Within a given tool **MAJOR**:
|
|
103
|
+
|
|
104
|
+
- Verifier `X.Y.Z` must verify bundles produced by bundler `X.*.*` (same major), subject to documented strict/non-strict behavior and governance trust anchors.
|
|
105
|
+
- Bundlers may emit new **optional** protocol fields in `v1` objects; verifiers in the same major should ignore unknown optional fields unless strict rules say otherwise.
|
|
106
|
+
|
|
107
|
+
If a change requires a new protocol object version (`*.v2`), that is a **MAJOR** tool bump unless explicitly documented as “dual read” compatibility.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# VerificationReport.v1
|
|
2
|
+
|
|
3
|
+
`VerificationReport.v1` is a canonical JSON object emitted into `verify/verification_report.json`.
|
|
4
|
+
|
|
5
|
+
In strict mode, it is **required** and **must be signed**.
|
|
6
|
+
|
|
7
|
+
## Purpose
|
|
8
|
+
|
|
9
|
+
- Provide a machine-ingestible record of verification results.
|
|
10
|
+
- Bind verification statements to a specific bundle by referencing:
|
|
11
|
+
- `subject.manifestHash`
|
|
12
|
+
- `bundleHeadAttestation.attestationHash` (binding to the head commitment)
|
|
13
|
+
|
|
14
|
+
## Core fields
|
|
15
|
+
|
|
16
|
+
- `schemaVersion = "VerificationReport.v1"`
|
|
17
|
+
- `profile = "strict"`
|
|
18
|
+
- `tool`: `{ name: "settld", version: string | null, commit?: string }`
|
|
19
|
+
- `warnings`: array of warning objects (see `WARNINGS.md`)
|
|
20
|
+
- `subject`:
|
|
21
|
+
- `type`: bundle kind/type (e.g. `JobProofBundle.v1`, `MonthProofBundle.v1`, `FinancePackBundle.v1`)
|
|
22
|
+
- `manifestHash`: the bundle manifest hash
|
|
23
|
+
- `bundleHeadAttestation` (strict-required for bundles that support head attestations):
|
|
24
|
+
- `attestationHash`: must match `attestation/bundle_head_attestation.json` computed hash
|
|
25
|
+
|
|
26
|
+
## Report hash + signature
|
|
27
|
+
|
|
28
|
+
- `reportHash` is computed over the canonical JSON object with `reportHash` and `signature` removed.
|
|
29
|
+
- If the report is signed, it includes:
|
|
30
|
+
- `signature` (base64)
|
|
31
|
+
- `signerKeyId`
|
|
32
|
+
- `signedAt`
|
|
33
|
+
|
|
34
|
+
## Timestamp proof (optional)
|
|
35
|
+
|
|
36
|
+
`timestampProof` (when present) provides a verifier-trusted signing time for revocation/rotation historical acceptance checks. It is computed over the report core **without** `timestampProof` so it can bind to the report payload.
|
|
37
|
+
|
|
38
|
+
## No circular hashing
|
|
39
|
+
|
|
40
|
+
`verify/**` is excluded from bundle manifests. The report binds to the bundle by:
|
|
41
|
+
|
|
42
|
+
- including `subject.manifestHash`
|
|
43
|
+
- including `bundleHeadAttestation.attestationHash`
|
|
44
|
+
- being signed by a governed server key (in strict mode)
|
|
45
|
+
|
|
46
|
+
## Tool identity completeness
|
|
47
|
+
|
|
48
|
+
`tool.commit` is a best-effort build identifier (typically a git commit SHA) intended to answer “what build produced this receipt”.
|
|
49
|
+
|
|
50
|
+
- If the tool commit cannot be determined, the report MUST include warning code `TOOL_COMMIT_UNKNOWN`.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# VerifyAboutOutput.v1
|
|
2
|
+
|
|
3
|
+
`VerifyAboutOutput.v1` is the machine-readable JSON output emitted by `settld-verify --about --format json`.
|
|
4
|
+
|
|
5
|
+
This is a **tool metadata contract** intended for CI and operational introspection.
|
|
6
|
+
|
|
7
|
+
## Schema
|
|
8
|
+
|
|
9
|
+
See `schemas/VerifyAboutOutput.v1.schema.json`.
|
|
10
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# VerifyCliOutput.v1
|
|
2
|
+
|
|
3
|
+
`VerifyCliOutput.v1` is the machine-readable JSON output emitted by `settld-verify --format json`.
|
|
4
|
+
|
|
5
|
+
This is a **tool contract** intended for CI gating and automated ingestion. It is versioned and treated as a stable surface.
|
|
6
|
+
|
|
7
|
+
## Schema
|
|
8
|
+
|
|
9
|
+
See `schemas/VerifyCliOutput.v1.schema.json`.
|
|
10
|
+
|
|
11
|
+
## Semantics
|
|
12
|
+
|
|
13
|
+
- `ok` is the CLI’s overall verdict, including policy flags like `--fail-on-warnings`.
|
|
14
|
+
- `verificationOk` reflects the underlying verifier result (`true` only when the bundle verification succeeded).
|
|
15
|
+
- When available, `errors[].code` is promoted from the verifier’s structured error (`result.detail.error`) to prefer stable, code-like identifiers; `errors[].message` may contain a human summary (`result.error`).
|
|
16
|
+
- `errors` and `warnings` are sorted deterministically by `(path, code)`.
|
|
17
|
+
- The CLI supports `--hash-concurrency <n>` to bound parallel hashing work; it does not change verification semantics.
|
|
18
|
+
- `tool.commit` is a best-effort build identifier for the verifier tool (typically a git commit SHA or build revision).
|
|
19
|
+
|
|
20
|
+
## `--explain` (deterministic stderr)
|
|
21
|
+
|
|
22
|
+
`settld-verify --explain` prints a deterministic diagnostic summary to **stderr** (while `--format json` continues to print machine output to stdout).
|
|
23
|
+
|
|
24
|
+
Contract:
|
|
25
|
+
|
|
26
|
+
- Output is deterministic for the same inputs/environment.
|
|
27
|
+
- Output MUST NOT include secrets.
|
|
28
|
+
- Output ends with **exactly one** trailing newline.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Verification warnings
|
|
2
|
+
|
|
3
|
+
Warnings are protocol objects, not strings.
|
|
4
|
+
|
|
5
|
+
## Shape
|
|
6
|
+
|
|
7
|
+
Each warning is a canonical JSON object:
|
|
8
|
+
|
|
9
|
+
- `code` (required, closed set)
|
|
10
|
+
- `message` (optional, string or null)
|
|
11
|
+
- `detail` (optional, any JSON)
|
|
12
|
+
|
|
13
|
+
Warnings are normalized (deduped + sorted) before being emitted in verification reports.
|
|
14
|
+
|
|
15
|
+
## Codes (closed set)
|
|
16
|
+
|
|
17
|
+
- `LEGACY_KEYS_FORMAT_USED`
|
|
18
|
+
- `NONSERVER_REVOCATION_NOT_ENFORCED`
|
|
19
|
+
- `TRUSTED_GOVERNANCE_ROOT_KEYS_MISSING_LENIENT`
|
|
20
|
+
- `GOVERNANCE_POLICY_MISSING_LENIENT`
|
|
21
|
+
- `GOVERNANCE_POLICY_V1_ACCEPTED_LENIENT`
|
|
22
|
+
- `BUNDLE_HEAD_ATTESTATION_MISSING_LENIENT`
|
|
23
|
+
- `MISSING_GOVERNANCE_SNAPSHOT_LENIENT`
|
|
24
|
+
- `UNSIGNED_REPORT_LENIENT`
|
|
25
|
+
- `VERIFICATION_REPORT_MISSING_LENIENT`
|
|
26
|
+
- `CLOSE_PACK_SLA_SURFACES_MISSING_LENIENT`
|
|
27
|
+
- `CLOSE_PACK_ACCEPTANCE_SURFACES_MISSING_LENIENT`
|
|
28
|
+
- `PRICING_MATRIX_UNSIGNED_LENIENT`
|
|
29
|
+
- `WARN_PRICING_SIGNATURE_V1_BYTES_LEGACY`
|
|
30
|
+
- `TOOL_VERSION_UNKNOWN`
|
|
31
|
+
- `TOOL_COMMIT_UNKNOWN`
|
|
32
|
+
|
|
33
|
+
Tool provenance derivation rules are documented in `TOOL_PROVENANCE.md`.
|
|
34
|
+
|
|
35
|
+
## Remediation (operator guidance)
|
|
36
|
+
|
|
37
|
+
Warnings are non-fatal by default, but they are part of the **public contract**. In regulated workflows you may gate on them with `--fail-on-warnings`.
|
|
38
|
+
|
|
39
|
+
- `VERIFICATION_REPORT_MISSING_LENIENT`
|
|
40
|
+
- Meaning: bundle is missing `verify/verification_report.json` but non-strict mode allows verify to proceed.
|
|
41
|
+
- Action: regenerate the bundle/receipt with a bundler/verifier that emits signed receipts, or run strict mode to require it.
|
|
42
|
+
- `CLOSE_PACK_SLA_SURFACES_MISSING_LENIENT`
|
|
43
|
+
- Meaning: ClosePack bundle is missing portable SLA evaluation surfaces under `sla/*`; non-strict mode allows verify to proceed.
|
|
44
|
+
- Action: regenerate ClosePack with `sla/sla_definition.json` + `sla/sla_evaluation.json` present (or gate workflows on this warning).
|
|
45
|
+
- `CLOSE_PACK_ACCEPTANCE_SURFACES_MISSING_LENIENT`
|
|
46
|
+
- Meaning: ClosePack bundle is missing portable acceptance evaluation surfaces under `acceptance/*`; non-strict mode allows verify to proceed.
|
|
47
|
+
- Action: regenerate ClosePack with `acceptance/acceptance_criteria.json` + `acceptance/acceptance_evaluation.json` present (or gate workflows on this warning).
|
|
48
|
+
- `PRICING_MATRIX_UNSIGNED_LENIENT`
|
|
49
|
+
- Meaning: invoice bundle lacks a pricing terms signature surface (`pricing/pricing_matrix_signatures.json`) that proves the pricing matrix value was approved by a trusted buyer key; non-strict continues.
|
|
50
|
+
- Action: include a buyer-signed `PricingMatrixSignatures.v2` file (and/or run strict mode to require it), and gate workflows on this warning as needed.
|
|
51
|
+
- `WARN_PRICING_SIGNATURE_V1_BYTES_LEGACY`
|
|
52
|
+
- Meaning: invoice bundle used legacy `PricingMatrixSignatures.v1` (raw-bytes binding), which is formatting-fragile; non-strict accepted it for compatibility.
|
|
53
|
+
- Action: migrate to `PricingMatrixSignatures.v2` (canonical JSON binding) and run strict mode to enforce it.
|
|
54
|
+
- `UNSIGNED_REPORT_LENIENT`
|
|
55
|
+
- Meaning: a verification report exists but is not signed in a way required for strict assurance.
|
|
56
|
+
- Action: re-run verification with a governed verifier signer and write a signed `verify/verification_report.json`.
|
|
57
|
+
- `GOVERNANCE_POLICY_MISSING_LENIENT`
|
|
58
|
+
- Meaning: governance policy file is missing; non-strict continues but governance guarantees are not established.
|
|
59
|
+
- Action: ensure the bundler emits `governance/policy.json` (and related materials); prefer strict mode for audit posture.
|
|
60
|
+
- `TRUSTED_GOVERNANCE_ROOT_KEYS_MISSING_LENIENT`
|
|
61
|
+
- Meaning: verifier is running without out-of-band governance trust anchors; non-strict continues but governance signatures are not validated.
|
|
62
|
+
- Action: provide `SETTLD_TRUSTED_GOVERNANCE_ROOT_KEYS_JSON` and run strict mode for audit posture (see `TRUST_ANCHORS.md`).
|
|
63
|
+
- `GOVERNANCE_POLICY_V1_ACCEPTED_LENIENT`
|
|
64
|
+
- Meaning: legacy `GovernancePolicy.v1` was accepted (compat mode).
|
|
65
|
+
- Action: upgrade to `GovernancePolicy.v2` and re-bundle; strict mode should require v2.
|
|
66
|
+
- `BUNDLE_HEAD_ATTESTATION_MISSING_LENIENT`
|
|
67
|
+
- Meaning: head attestation is missing; non-strict continues but binding guarantees weaken.
|
|
68
|
+
- Action: regenerate bundle with `attestation/bundle_head_attestation.json` present and valid.
|
|
69
|
+
- `MISSING_GOVERNANCE_SNAPSHOT_LENIENT`
|
|
70
|
+
- Meaning: governance snapshot(s) were missing and non-strict continued.
|
|
71
|
+
- Action: regenerate bundle including governance snapshot files; strict mode should require them.
|
|
72
|
+
- `LEGACY_KEYS_FORMAT_USED`
|
|
73
|
+
- Meaning: verifier encountered a legacy key-format compatibility path.
|
|
74
|
+
- Action: update bundle/key materials to the current key format and re-bundle.
|
|
75
|
+
- `NONSERVER_REVOCATION_NOT_ENFORCED`
|
|
76
|
+
- Meaning: verifier could not enforce a revocation decision for a non-server signer under the strict model (compat path).
|
|
77
|
+
- Action: include a trustworthy signing time (`timestampProof`) where required, or adjust governance posture; prefer server-governed signers.
|
|
78
|
+
- `TOOL_VERSION_UNKNOWN`
|
|
79
|
+
- Meaning: verifier could not determine its version string.
|
|
80
|
+
- Action: install from a released artifact (npm tarball or pinned version) and ensure `package.json` version is available; consider gating on this warning in CI.
|
|
81
|
+
- `TOOL_COMMIT_UNKNOWN`
|
|
82
|
+
- Meaning: verifier could not determine its commit identifier.
|
|
83
|
+
- Action: set the documented commit env source (see `TOOL_PROVENANCE.md`) in your CI/build environment; consider gating on this warning in CI.
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
FAILED
|
|
2
|
+
FAIL_ON_WARNINGS
|
|
3
|
+
MANIFEST_DUPLICATE_PATH
|
|
4
|
+
MANIFEST_PATH_CASE_COLLISION
|
|
5
|
+
MANIFEST_PATH_INVALID
|
|
6
|
+
MANIFEST_SYMLINK_FORBIDDEN
|
|
7
|
+
PRICING_MATRIX_SIGNATURE_INVALID
|
|
8
|
+
PRICING_MATRIX_SIGNATURE_MISSING
|
|
9
|
+
PRICING_MATRIX_SIGNATURE_PAYLOAD_MISMATCH
|
|
10
|
+
PRICING_MATRIX_SIGNATURE_V1_BYTES_LEGACY_STRICT_REJECTED
|
|
11
|
+
SETTLEMENT_DECISION_SIGNATURE_INVALID
|
|
12
|
+
SETTLEMENT_DECISION_SIGNATURE_PAYLOAD_MISMATCH
|
|
13
|
+
SIGNER_NOT_YET_VALID
|
|
14
|
+
SIGNER_REVOKED
|
|
15
|
+
SIGNER_ROTATED
|
|
16
|
+
SIGNING_TIME_UNPROVABLE
|
|
17
|
+
ZIP_COMPRESSION_RATIO_TOO_HIGH
|
|
18
|
+
ZIP_DUPLICATE_ENTRY
|
|
19
|
+
ZIP_ENCRYPTED_UNSUPPORTED
|
|
20
|
+
ZIP_ENTRY_PATH_INVALID
|
|
21
|
+
ZIP_ENTRY_PATH_TOO_LONG
|
|
22
|
+
ZIP_EXTRACT_FAILED
|
|
23
|
+
ZIP_FILE_TOO_LARGE
|
|
24
|
+
ZIP_INTERNAL_ERROR
|
|
25
|
+
ZIP_INVALID_CENTRAL_DIR
|
|
26
|
+
ZIP_INVALID_ENTRY
|
|
27
|
+
ZIP_INVALID_EOCD
|
|
28
|
+
ZIP_LOCAL_HEADER_MISMATCH
|
|
29
|
+
ZIP_OPEN_FAILED
|
|
30
|
+
ZIP_SYMLINK_FORBIDDEN
|
|
31
|
+
ZIP_TOO_MANY_ENTRIES
|
|
32
|
+
ZIP_TOTAL_UNCOMPRESSED_TOO_LARGE
|
|
33
|
+
ZIP_UNSUPPORTED_COMPRESSION
|
|
34
|
+
ZIP_UNSUPPORTED_MULTI_DISK
|
|
35
|
+
ZIP_UNSUPPORTED_ZIP64
|
|
36
|
+
artifactHash mismatch
|
|
37
|
+
artifactType mismatch
|
|
38
|
+
attestation global governance head mismatch (chainHash)
|
|
39
|
+
attestation global governance head mismatch (eventId)
|
|
40
|
+
attestation invoiceBundle.attestationHash mismatch
|
|
41
|
+
attestation invoiceBundle.manifestHash mismatch
|
|
42
|
+
attestation job head mismatch (chainHash)
|
|
43
|
+
attestation job head mismatch (eventId)
|
|
44
|
+
attestation jobProof.attestationHash mismatch
|
|
45
|
+
attestation jobProof.manifestHash mismatch
|
|
46
|
+
attestation kind mismatch
|
|
47
|
+
attestation manifestHash mismatch
|
|
48
|
+
attestation missing heads
|
|
49
|
+
attestation missing heads.invoiceBundle
|
|
50
|
+
attestation missing heads.job
|
|
51
|
+
attestation missing heads.jobProof
|
|
52
|
+
attestation missing heads.month
|
|
53
|
+
attestation missing heads.monthProof
|
|
54
|
+
attestation missing signature fields
|
|
55
|
+
attestation missing signer fields
|
|
56
|
+
attestation month head mismatch (chainHash)
|
|
57
|
+
attestation month head mismatch (eventId)
|
|
58
|
+
attestation monthProof.attestationHash mismatch
|
|
59
|
+
attestation monthProof.manifestHash mismatch
|
|
60
|
+
attestation scope mismatch
|
|
61
|
+
attestation scope.invoiceId mismatch
|
|
62
|
+
attestation scope.period mismatch
|
|
63
|
+
attestation signature invalid
|
|
64
|
+
attestation signer key missing validFrom
|
|
65
|
+
attestation signer key not valid
|
|
66
|
+
attestation signer not authorized
|
|
67
|
+
attestation tenant governance head mismatch (chainHash)
|
|
68
|
+
attestation tenant governance head mismatch (eventId)
|
|
69
|
+
attestation tenantId mismatch
|
|
70
|
+
attestationHash mismatch
|
|
71
|
+
bad signature
|
|
72
|
+
bundle head attestation invalid
|
|
73
|
+
closepack acceptance surfaces incomplete
|
|
74
|
+
closepack acceptance_evaluation mismatch
|
|
75
|
+
closepack evidence_index mismatch
|
|
76
|
+
closepack invoiceBundle.embeddedPath invalid
|
|
77
|
+
closepack invoiceBundle.headAttestationHash mismatch
|
|
78
|
+
closepack invoiceBundle.manifestHash mismatch
|
|
79
|
+
closepack sla surfaces incomplete
|
|
80
|
+
closepack sla_evaluation mismatch
|
|
81
|
+
declared head chainHash mismatch
|
|
82
|
+
declared head eventId mismatch
|
|
83
|
+
embedded invoice bundle verification failed
|
|
84
|
+
event stream integrity invalid
|
|
85
|
+
expected GLBatch.v1
|
|
86
|
+
expected PartyStatement.v1
|
|
87
|
+
failed to hash file
|
|
88
|
+
failed to hash glBatch
|
|
89
|
+
failed to hash partyStatement
|
|
90
|
+
failed to hash settlement decision report
|
|
91
|
+
financeAccountMapHash mismatch
|
|
92
|
+
forfeit decisionEventRef mismatch
|
|
93
|
+
forfeit decisionEventRef missing DECISION_RECORDED
|
|
94
|
+
forfeit freshness check failed
|
|
95
|
+
forfeit missing decision provenance
|
|
96
|
+
forfeit stale at decision time
|
|
97
|
+
glBatch artifactHash mismatch
|
|
98
|
+
glBatch does not net to zero
|
|
99
|
+
glBatchHash mismatch
|
|
100
|
+
governance policy algorithms must be a non-empty array
|
|
101
|
+
governance policy bundleHeadAttestationSigners must be an array
|
|
102
|
+
governance policy does not allow ed25519
|
|
103
|
+
governance policy missing signature fields
|
|
104
|
+
governance policy revocationList invalid
|
|
105
|
+
governance policy revocationList missing
|
|
106
|
+
governance policy revocationList.path invalid
|
|
107
|
+
governance policy signature invalid
|
|
108
|
+
governance policy signerKeyId not trusted
|
|
109
|
+
governance policy verificationReportSigners must be an array
|
|
110
|
+
governance policyHash mismatch
|
|
111
|
+
governance stream integrity invalid
|
|
112
|
+
governance/global contains tenant-scoped event
|
|
113
|
+
governance/tenant contains global-scoped event
|
|
114
|
+
hold freshness check failed
|
|
115
|
+
hold missing referenced PROOF_EVALUATED
|
|
116
|
+
hold missingEvidence mismatch
|
|
117
|
+
hold reasonCodes mismatch
|
|
118
|
+
hold stale at decision time
|
|
119
|
+
hold triggeringProofRef mismatch
|
|
120
|
+
included entry ids mismatch
|
|
121
|
+
incomplete governance/global stream files
|
|
122
|
+
incomplete governance/tenant stream files
|
|
123
|
+
invalid JSON
|
|
124
|
+
invalid artifact JSON
|
|
125
|
+
invalid attestation JSON
|
|
126
|
+
invalid bundle head attestation JSON
|
|
127
|
+
invalid governance revocation list
|
|
128
|
+
invalid governance/policy.json
|
|
129
|
+
invalid schemaVersion
|
|
130
|
+
invalid verification report JSON
|
|
131
|
+
invalid verification report subject
|
|
132
|
+
invalid warning code
|
|
133
|
+
invoice pricing code unknown
|
|
134
|
+
invoiceClaim jobProof.embeddedPath mismatch
|
|
135
|
+
invoiceClaim jobProof.headAttestationHash mismatch
|
|
136
|
+
invoiceClaim jobProof.manifestHash mismatch
|
|
137
|
+
invoiceClaim lineItems mismatch
|
|
138
|
+
invoiceClaim totalCents invalid
|
|
139
|
+
invoiceClaim totalCents mismatch
|
|
140
|
+
job proof events missing
|
|
141
|
+
job proof strict verification failed
|
|
142
|
+
jobProofBundleHash mismatch
|
|
143
|
+
jobProofHeadAttestationHash mismatch
|
|
144
|
+
journalCsv.csvSha256 mismatch
|
|
145
|
+
journalCsvArtifactHash mismatch
|
|
146
|
+
journalCsvHash mismatch
|
|
147
|
+
keyMetaByKeyId must be a Map
|
|
148
|
+
list must be an object
|
|
149
|
+
manifest missing manifestHash
|
|
150
|
+
manifest missing required files
|
|
151
|
+
manifestHash mismatch
|
|
152
|
+
metering evidenceRef not in job proof manifest
|
|
153
|
+
metering evidenceRef sha256 mismatch
|
|
154
|
+
meteringReport jobProof binding missing
|
|
155
|
+
meteringReport jobProof.embeddedPath mismatch
|
|
156
|
+
meteringReport jobProof.headAttestationHash mismatch
|
|
157
|
+
meteringReport jobProof.manifestHash mismatch
|
|
158
|
+
missing artifactHash
|
|
159
|
+
missing artifactType
|
|
160
|
+
missing attestation/bundle_head_attestation.json
|
|
161
|
+
missing events
|
|
162
|
+
missing events/events.jsonl
|
|
163
|
+
missing events/payload_material.jsonl
|
|
164
|
+
missing evidence/evidence_index.json
|
|
165
|
+
missing file
|
|
166
|
+
missing glBatch artifactHash
|
|
167
|
+
missing governance policy
|
|
168
|
+
missing governance/global stream
|
|
169
|
+
missing governance/policy.json
|
|
170
|
+
missing governance/tenant stream
|
|
171
|
+
missing job/snapshot.json
|
|
172
|
+
missing keys/public_keys.json
|
|
173
|
+
missing month keys/public_keys.json (PublicKeys.v1)
|
|
174
|
+
missing or invalid keys/public_keys.json
|
|
175
|
+
missing partyStatement artifactHash
|
|
176
|
+
missing timestampProof
|
|
177
|
+
missing verify/verification_report.json
|
|
178
|
+
month proof strict verification failed
|
|
179
|
+
monthProofBundleHash mismatch
|
|
180
|
+
no governance policy rule for subjectType
|
|
181
|
+
non-numeric posting total
|
|
182
|
+
partyStatement artifactHash mismatch
|
|
183
|
+
partyStatement basis mismatch
|
|
184
|
+
partyStatement period mismatch
|
|
185
|
+
partyStatement totalsByAccountId contains non-integer
|
|
186
|
+
partyStatement totalsByAccountId missing
|
|
187
|
+
payload_material length mismatch
|
|
188
|
+
policy must be an object
|
|
189
|
+
postings do not balance
|
|
190
|
+
provenance refs invalid
|
|
191
|
+
publicKeyByKeyId must be a Map
|
|
192
|
+
reconcile.json mismatch
|
|
193
|
+
reconcileReportHash mismatch
|
|
194
|
+
release freshness check failed
|
|
195
|
+
release missing referenced PROOF_EVALUATED
|
|
196
|
+
release releasingProofRef mismatch
|
|
197
|
+
release stale at decision time
|
|
198
|
+
revocation list generatedAt missing
|
|
199
|
+
revocation list hash mismatch
|
|
200
|
+
revocation list listId missing
|
|
201
|
+
revocation list missing signature fields
|
|
202
|
+
revocation list must be an object
|
|
203
|
+
revocation list revocations must be an array
|
|
204
|
+
revocation list rotations must be an array
|
|
205
|
+
revocation list signature invalid
|
|
206
|
+
revocation list signerKeyId not trusted
|
|
207
|
+
revocation listHash mismatch
|
|
208
|
+
revocationList sha256 mismatch
|
|
209
|
+
schemaVersion mismatch
|
|
210
|
+
settlement decision invoiceBundle.headAttestationHash mismatch
|
|
211
|
+
settlement decision invoiceBundle.manifestHash mismatch
|
|
212
|
+
settlement decision report missing signature fields
|
|
213
|
+
settlement decision report must be an object
|
|
214
|
+
settlement decision signerKeyId not trusted
|
|
215
|
+
settlement decision trusted buyer keys invalid
|
|
216
|
+
settlement decision trusted buyer keys missing
|
|
217
|
+
settlement forfeit ref missing SETTLEMENT_FORFEITED
|
|
218
|
+
settlement forfeitEventChainHash mismatch
|
|
219
|
+
settlement forfeitEventPayloadHash mismatch
|
|
220
|
+
settlement freshness check failed
|
|
221
|
+
settlement missing referenced PROOF_EVALUATED
|
|
222
|
+
settlement settlementProofRef mismatch
|
|
223
|
+
settlement stale at decision time
|
|
224
|
+
sha256 mismatch
|
|
225
|
+
signer key is not governed
|
|
226
|
+
signer key purpose not allowed by policy
|
|
227
|
+
signer keyId not allowed by policy
|
|
228
|
+
signer scope not allowed by policy
|
|
229
|
+
strict requires GovernancePolicy.v2
|
|
230
|
+
strict requires trusted governance root keys
|
|
231
|
+
strict requires trusted pricing signer keys
|
|
232
|
+
tenant governance stream integrity invalid
|
|
233
|
+
timestampProof messageHash invalid
|
|
234
|
+
timestampProof messageHash mismatch
|
|
235
|
+
timestampProof missing required fields
|
|
236
|
+
timestampProof must be an object
|
|
237
|
+
timestampProof signature invalid
|
|
238
|
+
timestampProof signerKeyId not trusted
|
|
239
|
+
totals mismatch
|
|
240
|
+
trustedBuyerDecisionPublicKeyByKeyId must be a Map
|
|
241
|
+
trustedGovernanceRootPublicKeyByKeyId must be a Map
|
|
242
|
+
trustedPublicKeyByKeyId must be a Map
|
|
243
|
+
unknown attestation signerKeyId
|
|
244
|
+
unknown verification report signerKeyId
|
|
245
|
+
unsupported acceptance criteria schemaVersion
|
|
246
|
+
unsupported artifactType
|
|
247
|
+
unsupported attestation schemaVersion
|
|
248
|
+
unsupported bundle kind
|
|
249
|
+
unsupported bundle type
|
|
250
|
+
unsupported documentKind
|
|
251
|
+
unsupported evidence index schemaVersion
|
|
252
|
+
unsupported governance policy schemaVersion
|
|
253
|
+
unsupported invoice claim schemaVersion
|
|
254
|
+
unsupported keys schemaVersion
|
|
255
|
+
unsupported manifest schemaVersion
|
|
256
|
+
unsupported metering schemaVersion
|
|
257
|
+
unsupported pricing matrix signatures schemaVersion
|
|
258
|
+
unsupported pricing schemaVersion
|
|
259
|
+
unsupported revocation list schemaVersion
|
|
260
|
+
unsupported settlement decision report schemaVersion
|
|
261
|
+
unsupported sla definition schemaVersion
|
|
262
|
+
unsupported timestampProof kind
|
|
263
|
+
unsupported timestampProof schemaVersion
|
|
264
|
+
unsupported verification report profile
|
|
265
|
+
unsupported verification report schemaVersion
|
|
266
|
+
verification report bundleHeadAttestation.attestationHash mismatch
|
|
267
|
+
verification report bundleHeadAttestation.attestationHash missing
|
|
268
|
+
verification report invalid
|
|
269
|
+
verification report missing bundleHeadAttestation
|
|
270
|
+
verification report missing reportHash
|
|
271
|
+
verification report missing signature
|
|
272
|
+
verification report reportHash mismatch
|
|
273
|
+
verification report signature invalid
|
|
274
|
+
verification report signer key missing validFrom
|
|
275
|
+
verification report signer key not valid
|
|
276
|
+
verification report signer must be an object
|
|
277
|
+
verification report signer not authorized
|
|
278
|
+
verification report signer.keyId mismatch
|
|
279
|
+
verification report signer.keyId missing
|
|
280
|
+
verification report signer.scope invalid
|
|
281
|
+
verification report signerKeyId not found in month keys
|
|
282
|
+
verification report subject.manifestHash mismatch
|
|
283
|
+
verification report subject.type mismatch
|
|
284
|
+
warning must be an object
|
|
285
|
+
warnings must be an array
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "AgreementDelegation.v1",
|
|
3
|
+
"delegationId": "dlg_example_0001",
|
|
4
|
+
"tenantId": "tenant_example",
|
|
5
|
+
"parentAgreementHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
6
|
+
"childAgreementHash": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
7
|
+
"delegatorAgentId": "agt_delegator",
|
|
8
|
+
"delegateeAgentId": "agt_delegatee",
|
|
9
|
+
"budgetCapCents": 5000,
|
|
10
|
+
"currency": "USD",
|
|
11
|
+
"delegationDepth": 1,
|
|
12
|
+
"maxDelegationDepth": 3,
|
|
13
|
+
"ancestorChain": [
|
|
14
|
+
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
15
|
+
],
|
|
16
|
+
"createdAt": "2026-02-01T00:00:00.000Z",
|
|
17
|
+
"delegationHash": "13354b2dedb94b67957d3fd6db4ca85db31fa53a1b278b525e4361e8b1db44c7",
|
|
18
|
+
"status": "active",
|
|
19
|
+
"revision": 0,
|
|
20
|
+
"updatedAt": "2026-02-01T00:00:00.000Z"
|
|
21
|
+
}
|