settld 0.1.1 → 0.1.5

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.
Files changed (441) hide show
  1. package/README.md +61 -3
  2. package/SETTLD_VERSION +1 -1
  3. package/bin/settld-mcp +2 -0
  4. package/bin/settld.js +13 -0
  5. package/conformance/kernel-v0/README.md +7 -0
  6. package/conformance/kernel-v0/run.mjs +292 -4
  7. package/docs/ACCESS.md +57 -0
  8. package/docs/ADOPTION_CHECKLIST.md +44 -0
  9. package/docs/ALERTS.md +198 -0
  10. package/docs/ARCHITECTURE.md +69 -0
  11. package/docs/ARCHITECTURE_FOUNDER_GUIDE.md +284 -0
  12. package/docs/ARTIFACTS.md +60 -0
  13. package/docs/CERTIFICATION_CHECKLIST.md +33 -0
  14. package/docs/CIRCLE_SANDBOX_E2E.md +140 -0
  15. package/docs/CONFIG.md +297 -0
  16. package/docs/CONTRACTS_APIS.md +23 -0
  17. package/docs/DEPRECATION.md +31 -0
  18. package/docs/DOMAIN_MODEL.md +92 -0
  19. package/docs/EVENT_ENVELOPE.md +53 -0
  20. package/docs/FINANCE_PACK_FORMAT.md +53 -0
  21. package/docs/INCIDENT_TAXONOMY.md +30 -0
  22. package/docs/JOB_STATE_MACHINE.md +66 -0
  23. package/docs/KERNEL_COMPATIBLE.md +60 -0
  24. package/docs/KERNEL_V0.md +40 -0
  25. package/docs/KEY_ROTATION.md +80 -0
  26. package/docs/LEDGER.md +82 -0
  27. package/docs/LIVENESS.md +76 -0
  28. package/docs/MVP_BUILD_ORDER.md +36 -0
  29. package/docs/ONCALL_PLAYBOOK.md +39 -0
  30. package/docs/OPERATIONS_SIGNING.md +20 -0
  31. package/docs/OVERVIEW.md +190 -0
  32. package/docs/PERF_BASELINE.md +85 -0
  33. package/docs/PRD.md +77 -0
  34. package/docs/QUICKSTART_KERNEL_V0.md +96 -0
  35. package/docs/QUICKSTART_MCP.md +337 -0
  36. package/docs/QUICKSTART_MCP_HOSTS.md +143 -0
  37. package/docs/QUICKSTART_PRODUCE.md +61 -0
  38. package/docs/QUICKSTART_RELEASE_VERIFY.md +39 -0
  39. package/docs/QUICKSTART_SDK.md +125 -0
  40. package/docs/QUICKSTART_SDK_PYTHON.md +111 -0
  41. package/docs/QUICKSTART_VERIFY.md +54 -0
  42. package/docs/QUICKSTART_X402_GATEWAY.md +317 -0
  43. package/docs/README.md +15 -0
  44. package/docs/RELEASE_CHECKLIST.md +156 -0
  45. package/docs/RELEASING.md +81 -0
  46. package/docs/REPO_SETTINGS.md +37 -0
  47. package/docs/RUNBOOK.md +86 -0
  48. package/docs/SKILLS.md +42 -0
  49. package/docs/SKILL_BUNDLE_FORMAT.md +48 -0
  50. package/docs/SLO.md +70 -0
  51. package/docs/SUMMARY.md +16 -0
  52. package/docs/SUPPORT.md +31 -0
  53. package/docs/THREAT_MODEL.md +36 -0
  54. package/docs/TRUST.md +59 -0
  55. package/docs/WORKFLOW.md +35 -0
  56. package/docs/X402_BATCH_SETTLEMENT.md +126 -0
  57. package/docs/blog/2026-02-14-your-ai-agent-just-spent-500-where-is-the-receipt.md +73 -0
  58. package/docs/examples/x402-provider-payout-registry.example.json +14 -0
  59. package/docs/gitbook/README.md +52 -0
  60. package/docs/gitbook/SETUP.md +25 -0
  61. package/docs/gitbook/SUMMARY.md +15 -0
  62. package/docs/gitbook/api-reference.md +73 -0
  63. package/docs/gitbook/closepacks.md +55 -0
  64. package/docs/gitbook/conformance.md +59 -0
  65. package/docs/gitbook/core-primitives.md +85 -0
  66. package/docs/gitbook/dispute-lifecycle.md +33 -0
  67. package/docs/gitbook/faq.md +21 -0
  68. package/docs/gitbook/guides.md +49 -0
  69. package/docs/gitbook/operations-runbook.md +36 -0
  70. package/docs/gitbook/quickstart.md +104 -0
  71. package/docs/gitbook/replay-and-audit.md +30 -0
  72. package/docs/gitbook/sdk-reference.md +35 -0
  73. package/docs/gitbook/security-model.md +58 -0
  74. package/docs/integrations/README.md +14 -0
  75. package/docs/integrations/github-actions-verify.yml +31 -0
  76. package/docs/integrations/github-actions.md +34 -0
  77. package/docs/integrations/openclaw/CLAWHUB_PUBLISH_CHECKLIST.md +65 -0
  78. package/docs/integrations/openclaw/settld-mcp-skill/SKILL.md +69 -0
  79. package/docs/integrations/openclaw/settld-mcp-skill/mcp-server.example.json +12 -0
  80. package/docs/kernel-compatible/capabilities.json +36 -0
  81. package/docs/marketing/agent-commerce-substrate.md +78 -0
  82. package/docs/marketing/hn-repost-2026-02-17.md +102 -0
  83. package/docs/marketing/show-hn-post.md +45 -0
  84. package/docs/ops/ARTIFACT_VERIFICATION_STATUS.md +43 -0
  85. package/docs/ops/BILLING_WEBHOOK_REPLAY.md +105 -0
  86. package/docs/ops/CI_FLAKE_BUDGET.md +31 -0
  87. package/docs/ops/GO_LIVE_GATE_S13.md +27 -0
  88. package/docs/ops/HOSTED_BASELINE_R2.md +129 -0
  89. package/docs/ops/KERNEL_V0_SHIP_GATE.md +67 -0
  90. package/docs/ops/LIGHTHOUSE_PRODUCTION_CLOSE.md +51 -0
  91. package/docs/ops/MCP_COMPATIBILITY_MATRIX.md +28 -0
  92. package/docs/ops/MINIMUM_PRODUCTION_TOPOLOGY.md +89 -0
  93. package/docs/ops/P0_BACKEND_PROGRESS.md +150 -0
  94. package/docs/ops/PAYMENTS_ALPHA_R5.md +105 -0
  95. package/docs/ops/PILOT_ONBOARDING_RUNBOOK.md +112 -0
  96. package/docs/ops/PRODUCTION_DEPLOYMENT_CHECKLIST.md +103 -0
  97. package/docs/ops/R1_SLOS.md +66 -0
  98. package/docs/ops/RELEASE_SIGNING_INCIDENT.md +58 -0
  99. package/docs/ops/SELF_SERVE_LAUNCH_AUTOMATION.md +89 -0
  100. package/docs/ops/THROUGHPUT_DRILL_10X.md +48 -0
  101. package/docs/ops/TRUST_CONFIG_WIZARD.md +47 -0
  102. package/docs/ops/X402_PILOT_WEEKLY_METRICS.md +76 -0
  103. package/docs/ops/tool-call-disputes-holdback.md +52 -0
  104. package/docs/pilot-kit/PILOT_PACKAGE_SCORECARD_X402.md +46 -0
  105. package/docs/pilot-kit/README.md +29 -0
  106. package/docs/pilot-kit/architecture-one-pager.md +48 -0
  107. package/docs/pilot-kit/buyer-email.txt +19 -0
  108. package/docs/pilot-kit/buyer-one-pager.md +31 -0
  109. package/docs/pilot-kit/gtm-pilot-playbook.md +182 -0
  110. package/docs/pilot-kit/offline-verify.md +33 -0
  111. package/docs/pilot-kit/procurement-one-pager.md +50 -0
  112. package/docs/pilot-kit/rfp-clause.md +46 -0
  113. package/docs/pilot-kit/roi-calculator-template.csv +2 -0
  114. package/docs/pilot-kit/security-qa.md +153 -0
  115. package/docs/pilot-kit/security-summary.md +35 -0
  116. package/docs/plans/2026-02-13-mcp-spike-design.md +113 -0
  117. package/docs/spec/AcceptanceCriteria.v1.md +17 -0
  118. package/docs/spec/AcceptanceEvaluation.v1.md +10 -0
  119. package/docs/spec/AgentEvent.v1.md +47 -0
  120. package/docs/spec/AgentIdentity.v1.md +62 -0
  121. package/docs/spec/AgentPassport.v1.md +95 -0
  122. package/docs/spec/AgentReputation.v1.md +59 -0
  123. package/docs/spec/AgentReputation.v2.md +52 -0
  124. package/docs/spec/AgentRun.v1.md +47 -0
  125. package/docs/spec/AgentRunSettlement.v1.md +52 -0
  126. package/docs/spec/AgentWallet.v1.md +43 -0
  127. package/docs/spec/AgreementDelegation.v1.md +109 -0
  128. package/docs/spec/ArbitrationCase.v1.md +67 -0
  129. package/docs/spec/ArbitrationVerdict.v1.md +60 -0
  130. package/docs/spec/BundleHeadAttestation.v1.md +32 -0
  131. package/docs/spec/CANONICAL_JSON.md +31 -0
  132. package/docs/spec/CRYPTOGRAPHY.md +61 -0
  133. package/docs/spec/ClosePack.v1.md +49 -0
  134. package/docs/spec/ClosePackManifest.v1.md +24 -0
  135. package/docs/spec/DelegationGrant.v1.md +90 -0
  136. package/docs/spec/DisputeOpenEnvelope.v1.md +43 -0
  137. package/docs/spec/ERRORS.md +76 -0
  138. package/docs/spec/ESCROW_NETTING_INVARIANTS.md +71 -0
  139. package/docs/spec/EvidenceIndex.v1.md +20 -0
  140. package/docs/spec/ExecutionIntent.v1.md +90 -0
  141. package/docs/spec/FinancePackBundleManifest.v1.md +24 -0
  142. package/docs/spec/FundingHold.v1.md +60 -0
  143. package/docs/spec/GovernancePolicy.v1.md +34 -0
  144. package/docs/spec/GovernancePolicy.v2.md +30 -0
  145. package/docs/spec/INVARIANTS.md +389 -0
  146. package/docs/spec/InteractionDirectionMatrix.v1.md +30 -0
  147. package/docs/spec/InvoiceBundleManifest.v1.md +24 -0
  148. package/docs/spec/InvoiceClaim.v1.md +11 -0
  149. package/docs/spec/MONEY_RAIL_STATE_MACHINE.md +58 -0
  150. package/docs/spec/MarketplaceAcceptance.v2.md +46 -0
  151. package/docs/spec/MarketplaceOffer.v2.md +54 -0
  152. package/docs/spec/MeteringReport.v1.md +18 -0
  153. package/docs/spec/PRODUCER_ERRORS.md +42 -0
  154. package/docs/spec/PricingMatrix.v1.md +20 -0
  155. package/docs/spec/PricingMatrixSignatures.v1.md +30 -0
  156. package/docs/spec/PricingMatrixSignatures.v2.md +29 -0
  157. package/docs/spec/ProduceCliOutput.v1.md +46 -0
  158. package/docs/spec/ProofBundleManifest.v1.md +24 -0
  159. package/docs/spec/README.md +104 -0
  160. package/docs/spec/REFERENCE_IMPLEMENTATIONS.md +29 -0
  161. package/docs/spec/REFERENCE_VERIFIER_BEHAVIOR.md +68 -0
  162. package/docs/spec/REMOTE_SIGNER.md +66 -0
  163. package/docs/spec/ReleaseIndex.v1.md +32 -0
  164. package/docs/spec/ReleaseIndexSignatures.v1.md +17 -0
  165. package/docs/spec/ReleaseTrust.v1.md +13 -0
  166. package/docs/spec/ReleaseTrust.v2.md +26 -0
  167. package/docs/spec/RemoteSignerRequest.v1.md +21 -0
  168. package/docs/spec/RemoteSignerResponse.v1.md +16 -0
  169. package/docs/spec/ReputationEvent.v1.md +63 -0
  170. package/docs/spec/RevocationList.v1.md +28 -0
  171. package/docs/spec/SIGNER_PROVIDER_PLUGIN.md +32 -0
  172. package/docs/spec/STRICTNESS.md +68 -0
  173. package/docs/spec/SUPPLY_CHAIN.md +33 -0
  174. package/docs/spec/SettlementAdjustment.v1.md +45 -0
  175. package/docs/spec/SettlementDecisionRecord.v1.md +48 -0
  176. package/docs/spec/SettlementDecisionRecord.v2.md +51 -0
  177. package/docs/spec/SettlementDecisionReport.v1.md +44 -0
  178. package/docs/spec/SettlementKernel.v1.md +59 -0
  179. package/docs/spec/SettlementReceipt.v1.md +63 -0
  180. package/docs/spec/SlaDefinition.v1.md +24 -0
  181. package/docs/spec/SlaEvaluation.v1.md +12 -0
  182. package/docs/spec/THREAT_MODEL.md +113 -0
  183. package/docs/spec/TOOL_PROVENANCE.md +30 -0
  184. package/docs/spec/TRUST_ANCHORS.md +84 -0
  185. package/docs/spec/TenantSettings.v1.md +90 -0
  186. package/docs/spec/TenantSettings.v2.md +99 -0
  187. package/docs/spec/TimestampProof.v1.md +25 -0
  188. package/docs/spec/ToolCallAgreement.v1.md +34 -0
  189. package/docs/spec/ToolCallEvidence.v1.md +47 -0
  190. package/docs/spec/ToolManifest.v1.md +47 -0
  191. package/docs/spec/VERIFIER_ENVIRONMENT.md +38 -0
  192. package/docs/spec/VERSIONING.md +107 -0
  193. package/docs/spec/VerificationReport.v1.md +50 -0
  194. package/docs/spec/VerifyAboutOutput.v1.md +10 -0
  195. package/docs/spec/VerifyCliOutput.v1.md +28 -0
  196. package/docs/spec/WARNINGS.md +83 -0
  197. package/docs/spec/error-codes.v1.txt +285 -0
  198. package/docs/spec/examples/agreement_delegation_v1.example.json +21 -0
  199. package/docs/spec/examples/arbitration_case_v1.example.json +26 -0
  200. package/docs/spec/examples/arbitration_verdict_v1.example.json +32 -0
  201. package/docs/spec/examples/dispute_open_envelope_v1.example.json +18 -0
  202. package/docs/spec/examples/produce_cli_output_v1.example.json +32 -0
  203. package/docs/spec/examples/release_index_signature_v1.example.json +9 -0
  204. package/docs/spec/examples/release_index_signatures_v1.example.json +14 -0
  205. package/docs/spec/examples/release_index_v1.example.json +15 -0
  206. package/docs/spec/examples/release_trust_v1.example.json +7 -0
  207. package/docs/spec/examples/release_trust_v2.example.json +22 -0
  208. package/docs/spec/examples/remote_signer_request_v1.example.json +18 -0
  209. package/docs/spec/examples/remote_signer_response_v1.example.json +8 -0
  210. package/docs/spec/examples/reputation_event_v1.example.json +29 -0
  211. package/docs/spec/examples/verification_report_v1.example.json +24 -0
  212. package/docs/spec/examples/verify_about_output_v1.example.json +29 -0
  213. package/docs/spec/examples/verify_cli_output_v1.example.json +13 -0
  214. package/docs/spec/legacy/MarketplaceAcceptance.v1.md +48 -0
  215. package/docs/spec/legacy/MarketplaceOffer.v1.md +56 -0
  216. package/docs/spec/legacy/schemas/MarketplaceAcceptance.v1.schema.json +53 -0
  217. package/docs/spec/legacy/schemas/MarketplaceOffer.v1.schema.json +61 -0
  218. package/docs/spec/producer-error-codes.v1.txt +14 -0
  219. package/docs/spec/schemas/AcceptanceCriteria.v1.schema.json +24 -0
  220. package/docs/spec/schemas/AcceptanceEvaluation.v1.schema.json +26 -0
  221. package/docs/spec/schemas/AgentEvent.v1.schema.json +49 -0
  222. package/docs/spec/schemas/AgentIdentity.v1.schema.json +129 -0
  223. package/docs/spec/schemas/AgentPassport.v1.schema.json +112 -0
  224. package/docs/spec/schemas/AgentReputation.v1.schema.json +151 -0
  225. package/docs/spec/schemas/AgentReputation.v2.schema.json +120 -0
  226. package/docs/spec/schemas/AgentRun.v1.schema.json +71 -0
  227. package/docs/spec/schemas/AgentRunSettlement.v1.schema.json +75 -0
  228. package/docs/spec/schemas/AgentWallet.v1.schema.json +54 -0
  229. package/docs/spec/schemas/AgreementDelegation.v1.schema.json +50 -0
  230. package/docs/spec/schemas/ArbitrationCase.v1.schema.json +133 -0
  231. package/docs/spec/schemas/ArbitrationVerdict.v1.schema.json +149 -0
  232. package/docs/spec/schemas/BundleHeadAttestation.v1.schema.json +21 -0
  233. package/docs/spec/schemas/ClosePackManifest.v1.schema.json +38 -0
  234. package/docs/spec/schemas/DelegationGrant.v1.schema.json +102 -0
  235. package/docs/spec/schemas/DisputeOpenEnvelope.v1.schema.json +78 -0
  236. package/docs/spec/schemas/EvidenceIndex.v1.schema.json +41 -0
  237. package/docs/spec/schemas/ExecutionIntent.v1.schema.json +85 -0
  238. package/docs/spec/schemas/FinancePackBundleManifest.v1.schema.json +38 -0
  239. package/docs/spec/schemas/FundingHold.v1.schema.json +46 -0
  240. package/docs/spec/schemas/GovernancePolicy.v1.schema.json +45 -0
  241. package/docs/spec/schemas/GovernancePolicy.v2.schema.json +70 -0
  242. package/docs/spec/schemas/InteractionDirectionMatrix.v1.schema.json +43 -0
  243. package/docs/spec/schemas/InvoiceBundleManifest.v1.schema.json +38 -0
  244. package/docs/spec/schemas/InvoiceClaim.v1.schema.json +39 -0
  245. package/docs/spec/schemas/MarketplaceAcceptance.v2.schema.json +53 -0
  246. package/docs/spec/schemas/MarketplaceOffer.v2.schema.json +61 -0
  247. package/docs/spec/schemas/MeteringReport.v1.schema.json +45 -0
  248. package/docs/spec/schemas/PricingMatrix.v1.schema.json +24 -0
  249. package/docs/spec/schemas/PricingMatrixSignatures.v1.schema.json +24 -0
  250. package/docs/spec/schemas/PricingMatrixSignatures.v2.schema.json +24 -0
  251. package/docs/spec/schemas/ProduceCliOutput.v1.schema.json +107 -0
  252. package/docs/spec/schemas/ProofBundleManifest.v1.schema.json +37 -0
  253. package/docs/spec/schemas/PublicKeys.v1.schema.json +33 -0
  254. package/docs/spec/schemas/ReleaseIndex.v1.schema.json +45 -0
  255. package/docs/spec/schemas/ReleaseIndexSignature.v1.schema.json +16 -0
  256. package/docs/spec/schemas/ReleaseIndexSignatures.v1.schema.json +16 -0
  257. package/docs/spec/schemas/ReleaseTrust.v1.schema.json +15 -0
  258. package/docs/spec/schemas/ReleaseTrust.v2.schema.json +37 -0
  259. package/docs/spec/schemas/RemoteSignerPublicKeyResponse.v1.schema.json +14 -0
  260. package/docs/spec/schemas/RemoteSignerRequest.v1.schema.json +24 -0
  261. package/docs/spec/schemas/RemoteSignerResponse.v1.schema.json +10 -0
  262. package/docs/spec/schemas/RemoteSignerSignRequest.v1.schema.json +27 -0
  263. package/docs/spec/schemas/RemoteSignerSignResponse.v1.schema.json +16 -0
  264. package/docs/spec/schemas/ReputationEvent.v1.schema.json +164 -0
  265. package/docs/spec/schemas/RevocationList.v1.schema.json +51 -0
  266. package/docs/spec/schemas/SettlementAdjustment.v1.schema.json +44 -0
  267. package/docs/spec/schemas/SettlementDecisionRecord.v1.schema.json +66 -0
  268. package/docs/spec/schemas/SettlementDecisionRecord.v2.schema.json +148 -0
  269. package/docs/spec/schemas/SettlementDecisionReport.v1.schema.json +61 -0
  270. package/docs/spec/schemas/SettlementReceipt.v1.schema.json +135 -0
  271. package/docs/spec/schemas/SlaDefinition.v1.schema.json +33 -0
  272. package/docs/spec/schemas/SlaEvaluation.v1.schema.json +26 -0
  273. package/docs/spec/schemas/TenantSettings.v1.schema.json +90 -0
  274. package/docs/spec/schemas/TenantSettings.v2.schema.json +161 -0
  275. package/docs/spec/schemas/TimestampProof.v1.schema.json +17 -0
  276. package/docs/spec/schemas/ToolCallAgreement.v1.schema.json +34 -0
  277. package/docs/spec/schemas/ToolCallEvidence.v1.schema.json +45 -0
  278. package/docs/spec/schemas/ToolManifest.v1.schema.json +54 -0
  279. package/docs/spec/schemas/VerificationReport.v1.schema.json +83 -0
  280. package/docs/spec/schemas/VerifyAboutOutput.v1.schema.json +54 -0
  281. package/docs/spec/schemas/VerifyCliOutput.v1.schema.json +75 -0
  282. package/docs/spec/schemas/VerifyReleaseOutput.v1.schema.json +47 -0
  283. package/docs/spec/x402-error-codes.v1.txt +21 -0
  284. package/docs/templates/buyer-email.txt +18 -0
  285. package/docs/templates/buyer-one-pager.md +24 -0
  286. package/package.json +40 -6
  287. package/scripts/acceptance/full-stack.mjs +734 -0
  288. package/scripts/acceptance/full-stack.sh +99 -0
  289. package/scripts/audit/build-audit-packet.mjs +242 -0
  290. package/scripts/backup-pg.sh +45 -0
  291. package/scripts/backup-restore/README.md +18 -0
  292. package/scripts/backup-restore/capture-state.mjs +130 -0
  293. package/scripts/backup-restore/client.mjs +97 -0
  294. package/scripts/backup-restore/seed-workload.mjs +235 -0
  295. package/scripts/backup-restore/verify-state.mjs +139 -0
  296. package/scripts/backup-restore-test.sh +217 -0
  297. package/scripts/chaos.js +221 -0
  298. package/scripts/ci/build-launch-cutover-packet.mjs +148 -0
  299. package/scripts/ci/build-self-serve-benchmark-report.mjs +122 -0
  300. package/scripts/ci/changelog-guard.mjs +145 -0
  301. package/scripts/ci/check-kernel-v0-launch-gate.mjs +233 -0
  302. package/scripts/ci/check-secret-hygiene.mjs +78 -0
  303. package/scripts/ci/check-version-consistency.mjs +42 -0
  304. package/scripts/ci/cli-pack-smoke.mjs +160 -0
  305. package/scripts/ci/flake-budget-guard.mjs +68 -0
  306. package/scripts/ci/generate-error-codes.mjs +54 -0
  307. package/scripts/ci/lib/lighthouse-tracker.mjs +90 -0
  308. package/scripts/ci/lib/self-serve-launch-gate.mjs +89 -0
  309. package/scripts/ci/npm-pack-smoke.mjs +454 -0
  310. package/scripts/ci/run-10x-throughput-drill.mjs +246 -0
  311. package/scripts/ci/run-10x-throughput-incident-rehearsal.mjs +325 -0
  312. package/scripts/ci/run-arbitration-workspace-browser-e2e.sh +22 -0
  313. package/scripts/ci/run-circle-sandbox-smoke.mjs +237 -0
  314. package/scripts/ci/run-go-live-gate.mjs +150 -0
  315. package/scripts/ci/run-kernel-v0-ship-gate.mjs +97 -0
  316. package/scripts/ci/run-mcp-host-smoke.mjs +275 -0
  317. package/scripts/ci/run-self-serve-launch-gate.mjs +56 -0
  318. package/scripts/ci/runtime-import-smoke.mjs +58 -0
  319. package/scripts/ci/update-lighthouse-tracker.mjs +112 -0
  320. package/scripts/closepack/lib.mjs +286 -0
  321. package/scripts/collect-debug.sh +263 -0
  322. package/scripts/demo/compositional-settlement-3hop.mjs +237 -0
  323. package/scripts/demo/delivery-robot/export-ui-fixture.mjs +188 -0
  324. package/scripts/demo/delivery-robot/generate.mjs +377 -0
  325. package/scripts/demo/kernel-agent-goes-shopping.mjs +202 -0
  326. package/scripts/demo/magic-link-first-green.mjs +118 -0
  327. package/scripts/demo/magic-link-kind-smoke.mjs +577 -0
  328. package/scripts/demo/mcp-paid-exa.mjs +1110 -0
  329. package/scripts/dev/billing-doctor.sh +145 -0
  330. package/scripts/dev/billing-smoke-prod.sh +219 -0
  331. package/scripts/dev/billing-webhook-replay.sh +161 -0
  332. package/scripts/dev/env.dev.example +29 -0
  333. package/scripts/dev/env.sh +37 -0
  334. package/scripts/dev/new-sdk-key.sh +81 -0
  335. package/scripts/dev/sdk-first-run.sh +21 -0
  336. package/scripts/dev/smoke-x402-gateway.sh +115 -0
  337. package/scripts/dev/start-api.sh +24 -0
  338. package/scripts/examples/produce-and-verify-jobproof.mjs +191 -0
  339. package/scripts/examples/sdk-first-paid-rfq.py +105 -0
  340. package/scripts/examples/sdk-first-verified-run.mjs +85 -0
  341. package/scripts/examples/sdk-first-verified-run.py +99 -0
  342. package/scripts/examples/sdk-tenant-analytics.mjs +103 -0
  343. package/scripts/examples/sdk-tenant-analytics.py +118 -0
  344. package/scripts/finance-pack/bundle.mjs +284 -0
  345. package/scripts/fixtures/generate-bundle-fixtures.mjs +877 -0
  346. package/scripts/governance/export.mjs +169 -0
  347. package/scripts/load/delivery-stress.k6.js +183 -0
  348. package/scripts/load/ingest-burst.k6.js +236 -0
  349. package/scripts/load/run-delivery-load.js +66 -0
  350. package/scripts/load/webhook-receiver.js +131 -0
  351. package/scripts/magic-link/migrate-run-records-to-db.mjs +35 -0
  352. package/scripts/mcp/probe.mjs +238 -0
  353. package/scripts/mcp/settld-mcp-http-gateway.mjs +178 -0
  354. package/scripts/mcp/settld-mcp-server.mjs +1201 -0
  355. package/scripts/openapi/write.mjs +13 -0
  356. package/scripts/ops/bootstrap-tenant-conformance.mjs +185 -0
  357. package/scripts/ops/build-x402-pilot-reliability-report.mjs +489 -0
  358. package/scripts/ops/check-x402-receipt-sample.mjs +181 -0
  359. package/scripts/ops/design-partner-run-packet.mjs +466 -0
  360. package/scripts/ops/hosted-baseline-evidence.mjs +681 -0
  361. package/scripts/ops/money-rails-chargeback-evidence.mjs +509 -0
  362. package/scripts/ops/money-rails-reconcile-evidence.mjs +180 -0
  363. package/scripts/ops/p0-seed-money-rail-operation.mjs +432 -0
  364. package/scripts/pilot/finance-pack.mjs +495 -0
  365. package/scripts/pilot/fixtures/robot-keypair.json +4 -0
  366. package/scripts/pilot/fixtures/server-signer.json +4 -0
  367. package/scripts/proof-bundle/job.mjs +109 -0
  368. package/scripts/proof-bundle/lib.mjs +92 -0
  369. package/scripts/proof-bundle/month.mjs +103 -0
  370. package/scripts/provider/conformance-run.mjs +159 -0
  371. package/scripts/provider/keys-generate.mjs +135 -0
  372. package/scripts/provider/publish.mjs +420 -0
  373. package/scripts/quickstart/x402.mjs +334 -0
  374. package/scripts/release/build-artifacts.mjs +181 -0
  375. package/scripts/release/generate-release-index.mjs +112 -0
  376. package/scripts/release/release-index-lib.mjs +232 -0
  377. package/scripts/release/sign-release-index.mjs +85 -0
  378. package/scripts/release/validate-release-assets.mjs +170 -0
  379. package/scripts/release/verify-release.mjs +261 -0
  380. package/scripts/restore-pg.sh +34 -0
  381. package/scripts/scaffold/create-settld-paid-tool.mjs +19 -0
  382. package/scripts/sdk/smoke-python.py +30 -0
  383. package/scripts/sdk/smoke.mjs +16 -0
  384. package/scripts/settlement/x402-batch-worker.mjs +1091 -0
  385. package/scripts/slo/check.mjs +178 -0
  386. package/scripts/smoke/k8s-smoke.mjs +214 -0
  387. package/scripts/spec/generate-protocol-vectors.mjs +931 -0
  388. package/scripts/test/check-no-generated-artifacts.sh +12 -0
  389. package/scripts/test/run.sh +45 -0
  390. package/scripts/trust/validate-trust-file.mjs +57 -0
  391. package/scripts/trust-config/rotate-settld-pay.mjs +277 -0
  392. package/scripts/trust-config/wizard.mjs +161 -0
  393. package/scripts/vendor-contract-test-lib.mjs +182 -0
  394. package/scripts/vendor-contract-test.mjs +55 -0
  395. package/scripts/vercel/build-mkdocs.sh +9 -0
  396. package/scripts/vercel/ignore-mkdocs.sh +25 -0
  397. package/scripts/vercel/install-mkdocs.sh +6 -0
  398. package/scripts/verify-pg.js +217 -0
  399. package/scripts/x402/receipt-verify.mjs +289 -0
  400. package/services/finance-sink/src/dedupe-store.js +29 -6
  401. package/services/receiver/src/dedupe-store.js +29 -5
  402. package/services/x402-gateway/Dockerfile +13 -0
  403. package/services/x402-gateway/README.md +58 -0
  404. package/services/x402-gateway/examples/upstream-mock.js +337 -0
  405. package/services/x402-gateway/src/server.js +947 -0
  406. package/src/api/app.js +32517 -16877
  407. package/src/api/maintenance.js +70 -0
  408. package/src/api/openapi.js +1130 -17
  409. package/src/api/persistence.js +272 -0
  410. package/src/api/server.js +81 -5
  411. package/src/api/store.js +1248 -6
  412. package/src/api/workers/deliveries.js +99 -4
  413. package/src/api/workers/insolvency-sweep.js +159 -0
  414. package/src/core/agent-card.js +69 -0
  415. package/src/core/agent-wallets.js +97 -0
  416. package/src/core/agreement-delegation.js +549 -0
  417. package/src/core/billing-plans.js +40 -6
  418. package/src/core/circle-reserve-adapter.js +845 -0
  419. package/src/core/maintenance-locks.js +1 -0
  420. package/src/core/paid-tool-manifest.js +318 -0
  421. package/src/core/provider-publish-conformance.js +525 -0
  422. package/src/core/provider-publish-proof.js +396 -0
  423. package/src/core/provider-quote-signature.js +170 -0
  424. package/src/core/settld-keys.js +112 -0
  425. package/src/core/settld-pay-token.js +344 -0
  426. package/src/core/settlement-kernel.js +213 -2
  427. package/src/core/settlement-verifier.js +335 -0
  428. package/src/core/tool-call-agreement.js +112 -0
  429. package/src/core/tool-call-evidence.js +144 -0
  430. package/src/core/tool-provider-signature.js +98 -0
  431. package/src/core/x402-escalation-override.js +258 -0
  432. package/src/core/x402-gate.js +118 -0
  433. package/src/core/x402-provider-refund-decision.js +220 -0
  434. package/src/core/x402-receipt-verifier.js +708 -0
  435. package/src/core/x402-reversal-command.js +251 -0
  436. package/src/core/x402-wallet-issuer-decision.js +252 -0
  437. package/src/core/zk-verifier.js +300 -0
  438. package/src/db/migrations/029_reputation_event_index.sql +54 -0
  439. package/src/db/migrations/030_artifacts_source_event_unique_job_only.sql +15 -0
  440. package/src/db/pg.js +18 -7
  441. package/src/db/store-pg.js +838 -72
@@ -0,0 +1,46 @@
1
+ # Draft RFP clause (evidence-backed invoices)
2
+
3
+ This clause is intended to be copy/pasted and then tuned to your policy (strict vs amber, evidence types, SLA/acceptance criteria, etc.).
4
+
5
+ ## Verifiable invoice artifacts
6
+
7
+ Vendor MUST provide an evidence-backed invoice artifact for each billing period that is independently verifiable without access to vendor systems.
8
+
9
+ The artifact MUST be one of:
10
+
11
+ - `InvoiceBundle.v1` (invoice claim + metering + pricing terms + evidence references), or
12
+ - `ClosePack.v1` (invoice claim + metering + pricing terms + evidence references + optional SLA/acceptance evaluation surfaces).
13
+
14
+ The artifact MUST:
15
+
16
+ - be an archived bundle (ZIP or directory) containing payload evidence and protocol metadata
17
+ - include a manifest committing (via hashes) to the file set (excluding verifier outputs to avoid circular hashing)
18
+ - include attestations and signatures binding verification receipts to the manifest hash and bundle head attestation hash
19
+ - include buyer-signed pricing terms (e.g. `PricingMatrixSignatures.v2` referencing a canonical pricing matrix hash)
20
+ - support strict verification under explicit buyer-supplied governance trust anchors (provided out-of-band)
21
+
22
+ ## Payment eligibility
23
+
24
+ Buyer MAY require that an invoice is eligible for payment only when:
25
+
26
+ - verification is **strict** and **passes** with **no errors**, and
27
+ - warnings (Amber) are either:
28
+ - disallowed (auto-hold), or
29
+ - allowed only under an explicit buyer policy, with manual review/audit trail.
30
+
31
+ ## Deliverables and auditability
32
+
33
+ Vendor MUST provide, per invoice:
34
+
35
+ - the bundle ZIP bytes (for archiving)
36
+ - deterministic verifier output (`VerifyCliOutput.v1`) and any embedded producer receipt (when present)
37
+
38
+ Vendor SHOULD provide:
39
+
40
+ - a hosted view-only verification link for buyer review
41
+ - an “audit packet” export (bundle ZIP + hosted verification JSON + receipt surfaces + non-normative summary PDF + decision record, where applicable)
42
+
43
+ ## Key lifecycle / rotation
44
+
45
+ Buyer MUST be able to rotate vendor ingest keys without downtime.
46
+
@@ -0,0 +1,2 @@
1
+ date,tenantId,invoiceId,bundleSha256,mode,ok,verificationOk,warningsCount,errorsCount,disputeAvoided,notes
2
+
@@ -0,0 +1,153 @@
1
+ # Verify Cloud (Magic Link) — Security Q&A (pilot)
2
+
3
+ This document is designed to be pasted into common procurement/security portals with minimal edits.
4
+
5
+ If you need a single attachment, download the **Security & Controls packet** — it includes this Q&A, an architecture one-pager, a data inventory, and checksums.
6
+
7
+ ## Product summary (what is Verify Cloud?)
8
+
9
+ Verify Cloud accepts a vendor-submitted **Settld bundle** (typically `InvoiceBundle.v1` or `ClosePack.v1`), verifies it deterministically, and exposes:
10
+
11
+ - a read-only hosted report page (Green/Amber/Red)
12
+ - deterministic machine-readable outputs (`VerifyCliOutput.v1`)
13
+ - export bundles for audit (audit packet, support bundle)
14
+
15
+ ## Data handling
16
+
17
+ ### What is uploaded?
18
+
19
+ - A ZIP containing a Settld bundle directory (evidence + protocol metadata + manifest + attestations).
20
+
21
+ ### What is stored?
22
+
23
+ Storage is filesystem-backed under `MAGIC_LINK_DATA_DIR` (often a PVC mount). Per run, Verify Cloud stores:
24
+
25
+ - **Bundle ZIP bytes (optional)**: `zips/<token>.zip` (controlled by `TenantSettings.v2.artifactStorage.storeBundleZip`)
26
+ - **Hosted verification output** (`VerifyCliOutput.v1`): `verify/<token>.json`
27
+ - **Redacted public summary** (what feeds hosted UI / exports): `public/<token>.json`
28
+ - **Non-normative PDF summary (optional)** (redacted): `pdf/<token>.pdf` (when invoice claim is present; controlled by `TenantSettings.v2.artifactStorage.storePdf`)
29
+ - **Producer receipt** (when present inside the bundle): `receipt/<token>.json`
30
+ - **ClosePack evaluation/index surfaces** (when present): `closepack/<token>/...`
31
+ - **Webhook delivery records** (optional, no secrets): `webhooks/{attempts,record}/<token>_*.json`
32
+ - **Minimal immutable run record** (metadata-only, for support/accounting): `runs/<tenant>/<token>.json`
33
+
34
+ Verify Cloud does **not** separately parse and persist raw evidence file contents outside of the uploaded bundle ZIP bytes (other than the allowlisted, redacted “render model” fields used for UI/PDF/CSV/support exports).
35
+
36
+ ### Retention (defaults + enforcement)
37
+
38
+ - Default retention: `TenantSettings.v2.retentionDays` (default `30` days).
39
+ - Optional per-vendor / per-contract overrides: `TenantSettings.v2.vendorPolicies[*].retentionDays`, `TenantSettings.v2.contractPolicies[*].retentionDays`.
40
+ - Enforcement:
41
+ - a background maintenance sweeper deletes retained artifacts (default daily), and
42
+ - uploads opportunistically trigger a sweep before quota checks.
43
+
44
+ After retention, heavy artifacts (bundle ZIP, verify JSON, PDFs, cached exports, webhook records) are deleted and downloads return `410 retained`. The metadata-only run record remains for support/accounting.
45
+
46
+ ## Security controls
47
+
48
+ ### Authentication models
49
+
50
+ - **Admin API access**: `x-api-key` header (set `MAGIC_LINK_API_KEY`).
51
+ - **Vendor ingest**: vendor-scoped ingest keys (`Authorization: Bearer <ingestKey>`) with upload-only capability.
52
+ - **Buyer access (optional)**: email OTP login restricted to allowlisted domains (`TenantSettings.v2.buyerAuthEmailDomains`) and per-email roles (`TenantSettings.v2.buyerUserRoles`).
53
+ - **Decision capture (optional)**: approve/hold can be gated by OTP (`TenantSettings.v2.decisionAuthEmailDomains`).
54
+
55
+ ### RBAC roles (buyer)
56
+
57
+ - `viewer`: view inbox and exports
58
+ - `approver`: export CSV/audit packet, approve/hold
59
+ - `admin`: settings, onboarding packs, support bundle, security packet
60
+
61
+ ### Audit logging
62
+
63
+ Verify Cloud appends JSONL audit records for:
64
+
65
+ - tenant settings changes
66
+ - ingest key creation/revocation
67
+ - buyer login events (when enabled)
68
+ - settlement decision capture (approve/hold)
69
+
70
+ Exports:
71
+
72
+ - Security & Controls packet (monthly)
73
+ - Audit packet (monthly; deterministic)
74
+ - Optional archival export sink (S3-compatible): push monthly audit packet ZIP + CSV (tenant-configurable)
75
+ - Support bundle (time-bounded; redacted settings + metadata-first)
76
+
77
+ ### Token security (hosted report links)
78
+
79
+ - Token format: `ml_` + 24 random bytes (192-bit entropy).
80
+ - Token TTL: configurable via `MAGIC_LINK_TOKEN_TTL_SECONDS` (default 7 days).
81
+ - Tokens are revocable via the admin API.
82
+
83
+ ### Rate limiting and budgets
84
+
85
+ Verify Cloud enforces:
86
+
87
+ - upload size bound (`MAGIC_LINK_MAX_UPLOAD_BYTES`, default 50 MiB)
88
+ - tenant + IP rate limiting (`TenantSettings.v2.rateLimits.*`; default `uploadsPerHour=100`, `verificationViewsPerHour=1000`)
89
+ - verification timeout (`MAGIC_LINK_VERIFY_TIMEOUT_MS`, default 60s)
90
+ - concurrency caps (`MAGIC_LINK_MAX_CONCURRENT_JOBS`, `MAGIC_LINK_MAX_CONCURRENT_JOBS_PER_TENANT`)
91
+ - queued verify workers with retries + dead-letter accounting (`MAGIC_LINK_VERIFY_QUEUE_*`)
92
+ - hostile ZIP extraction budgets (entry count, path length, per-file bytes, total bytes, compression ratio)
93
+
94
+ ### Secrets handling
95
+
96
+ - Tenant settings secrets (webhook secret, delegated signer bearer token, etc.) are encrypted at rest when `MAGIC_LINK_SETTINGS_KEY_HEX` is configured (AES-256-GCM).
97
+ - Support exports redact secrets by default (e.g. webhook secret material is removed).
98
+
99
+ ## Threat model (short)
100
+
101
+ Verify Cloud is designed to resist:
102
+
103
+ - hostile ZIP attacks (zip-slip traversal, symlinks, duplicates/overwrite, encrypted entries, zip bombs)
104
+ - resource exhaustion (huge uploads, decompression bombs, long-running verification)
105
+ - HTML injection / XSS in rendered fields
106
+ - token guessing / link leakage
107
+
108
+ Mitigations are summarized in the exported **Security & Controls packet** along with the exact budgets/defaults in effect for that deployment.
109
+
110
+ ## Cryptography / verification integrity
111
+
112
+ - Bundles are verifiable offline: download the bundle ZIP and run `settld-verify` under buyer-controlled trust anchors.
113
+ - Trust anchors are supplied out-of-band by the buyer (governance roots, pricing signer keys). Hosted verification can run in `strict` or `compat` depending on trust configuration/policy.
114
+ - Cryptographic primitives: SHA-256 hashes and Ed25519 signatures; canonical JSON is used where required for stable hashing.
115
+
116
+ ## Infrastructure expectations
117
+
118
+ - Verify Cloud is intended to run behind TLS termination (ingress/load balancer). The service itself is HTTP-only by default.
119
+ - Encryption at rest is provided by your underlying storage layer (PVC/disk + cloud/KMS configuration).
120
+
121
+ ## Compliance posture
122
+
123
+ - Verify Cloud is not currently SOC 2 audited.
124
+ - It is designed with controls that map well to SOC 2 expectations (authn/authz, audit logging, retention enforcement, secure defaults, and exportability for audit).
125
+
126
+ ## Incident response / vulnerability reporting
127
+
128
+ - Security issues / vulnerability reports: email `aiden@settld.work` (private disclosure).
129
+ - Operational support: see `docs/SUPPORT.md` and `docs/ONCALL_PLAYBOOK.md`.
130
+
131
+ ## Configuration knobs (most commonly requested)
132
+
133
+ - Environment:
134
+ - `MAGIC_LINK_API_KEY` — admin access
135
+ - `MAGIC_LINK_SETTINGS_KEY_HEX` — encrypt secrets at rest (tenant settings)
136
+ - `MAGIC_LINK_DATA_DIR` — storage location (mount point)
137
+ - `MAGIC_LINK_TOKEN_TTL_SECONDS` — report link TTL
138
+ - `MAGIC_LINK_MAX_UPLOAD_BYTES` — upload cap
139
+ - `MAGIC_LINK_VERIFY_TIMEOUT_MS` — verification timeout
140
+ - `MAGIC_LINK_RATE_LIMIT_UPLOADS_PER_HOUR` — default per-tenant upload limit (overrideable per tenant)
141
+ - `MAGIC_LINK_MAX_CONCURRENT_JOBS`, `MAGIC_LINK_MAX_CONCURRENT_JOBS_PER_TENANT` — concurrency caps
142
+ - `MAGIC_LINK_VERIFY_QUEUE_WORKERS`, `MAGIC_LINK_VERIFY_QUEUE_MAX_ATTEMPTS`, `MAGIC_LINK_VERIFY_QUEUE_RETRY_BACKOFF_MS` — verify queue worker behavior
143
+ - `MAGIC_LINK_RUN_STORE_MODE`, `MAGIC_LINK_RUN_STORE_DATABASE_URL` — run metadata control-plane store mode (`fs|dual|db`)
144
+ - `MAGIC_LINK_MAINTENANCE_INTERVAL_SECONDS` — retention sweep interval (maintenance runner)
145
+ - Tenant settings (API):
146
+ - `retentionDays`, `vendorPolicies[*].retentionDays`, `contractPolicies[*].retentionDays`
147
+ - `artifactStorage.storeBundleZip`, `artifactStorage.storePdf`, `artifactStorage.precomputeMonthlyAuditPackets`
148
+ - `archiveExportSink` (S3 archival export sink)
149
+ - `rateLimits` (per-tenant/per-IP windows for upload/view/decision/OTP endpoints)
150
+ - `buyerNotifications` (buyer recipient + delivery mode settings)
151
+ - `buyerAuthEmailDomains`, `buyerUserRoles`
152
+ - `decisionAuthEmailDomains`
153
+ - `webhooks[*]` (with secrets encrypted-at-rest when settings key is configured)
@@ -0,0 +1,35 @@
1
+ # Security summary (Verify Cloud / Magic Link)
2
+
3
+ This is a short, operator-facing security posture summary for pilots.
4
+
5
+ ## Hostile ZIP ingestion
6
+
7
+ Magic Link ingestion uses a single safe unzip implementation:
8
+
9
+ - rejects absolute paths and traversal (`..`) after normalization
10
+ - rejects backslashes and drive letters (`:`)
11
+ - rejects duplicate entries
12
+ - rejects encrypted entries
13
+ - rejects symlinks via external attributes
14
+ - enforces budgets:
15
+ - max entry count
16
+ - max per-file bytes
17
+ - max total uncompressed bytes
18
+ - max path length
19
+ - max compression ratio (zip bombs)
20
+ - extracts into a fresh temp dir and never overwrites existing files
21
+
22
+ ## Deterministic outputs (CI / audit friendly)
23
+
24
+ - Verification output is deterministic JSON (`VerifyCliOutput.v1`) and is intended to be archived.
25
+ - Audit packet ZIP is deterministic and bundles:
26
+ - bundle ZIP
27
+ - hosted verify JSON
28
+ - embedded producer receipt (if present)
29
+ - PDF summary (non-normative)
30
+ - decision record (if present)
31
+
32
+ ## Multi-implementation parity
33
+
34
+ The repo includes a Python reference verifier and a conformance pack; parity is tested in CI.
35
+
@@ -0,0 +1,113 @@
1
+ # MCP Stdio Spike (Sprint 23) Design
2
+
3
+ Date: 2026-02-13
4
+
5
+ Owner: Platform
6
+
7
+ Tickets: `STLD-T2305`, `STLD-T2306`
8
+
9
+ ## Goal
10
+
11
+ Prove that an MCP-compatible agent can reliably discover and invoke a *curated* set of Settld tools over `stdio`, using a **restricted API key** (not an ops token).
12
+
13
+ This is a spike: correctness and minimal compatibility matter more than feature breadth. Production hardening (SSE transport, rate limiting, etc.) is explicitly deferred to Sprint 25.
14
+
15
+ ## Non-Goals (S23)
16
+
17
+ - No SSE transport.
18
+ - No multi-tenant discovery. Tenant is configured via env.
19
+ - No generic “HTTP proxy tool”. We expose curated tools only.
20
+ - No persistence inside the MCP server. It is a stateless bridge to the Settld API.
21
+
22
+ ## Transport + Protocol
23
+
24
+ - Transport: `stdio`
25
+ - Protocol: JSON-RPC 2.0 message stream.
26
+ - Framing: newline-delimited JSON; additionally accepts `Content-Length:` framed messages for compatibility.
27
+ - Required methods:
28
+ - `initialize`
29
+ - `tools/list`
30
+ - `tools/call`
31
+ - Optional methods (implemented as no-ops / trivial):
32
+ - `ping`
33
+ - `notifications/initialized` (ignored)
34
+
35
+ ## Auth Model
36
+
37
+ - The MCP server requires `SETTLD_API_KEY` and uses `x-proxy-api-key` for all API calls.
38
+ - The API key must have the minimum scopes needed for:
39
+ - registering agents
40
+ - marketplace RFQ/bid/accept
41
+ - wallet credit (requires `x-settld-protocol` header)
42
+ - agent run event appends (requires `x-settld-protocol` + `x-proxy-expected-prev-chain-hash`)
43
+ - run dispute transitions (requires `x-settld-protocol`)
44
+
45
+ No ops token handling is included in the spike.
46
+
47
+ ## Configuration
48
+
49
+ Environment variables:
50
+
51
+ - `SETTLD_BASE_URL` (default: `http://127.0.0.1:3000`)
52
+ - `SETTLD_TENANT_ID` (default: `tenant_default`)
53
+ - `SETTLD_API_KEY` (required)
54
+ - `SETTLD_PROTOCOL` (optional; if unset the server attempts to discover via `GET /healthz` response header `x-settld-protocol`, falling back to `1.0`)
55
+
56
+ ## Tool Surface (Curated)
57
+
58
+ ### `settld.create_agreement`
59
+
60
+ Creates a real marketplace-backed agreement by executing:
61
+
62
+ 1. `POST /agents/register` (payer)
63
+ 2. `POST /agents/register` (payee)
64
+ 3. `POST /agents/{payerAgentId}/wallet/credit` (fund payer)
65
+ 4. `POST /marketplace/rfqs`
66
+ 5. `POST /marketplace/rfqs/{rfqId}/bids`
67
+ 6. `POST /marketplace/rfqs/{rfqId}/accept` (returns `runId`, agreement, settlement)
68
+
69
+ Returns IDs needed for subsequent tools: `payerAgentId`, `payeeAgentId`, `rfqId`, `bidId`, `runId`, `settlementId`, `agreementId`.
70
+
71
+ ### `settld.submit_evidence`
72
+
73
+ Appends an agent run event:
74
+
75
+ - `GET /agents/{agentId}/runs/{runId}/events` to obtain current `prevChainHash`
76
+ - `POST /agents/{agentId}/runs/{runId}/events` with `type=EVIDENCE_ADDED` and `x-proxy-expected-prev-chain-hash`
77
+
78
+ ### `settld.settle_run`
79
+
80
+ Moves a run to terminal state (which triggers auto-resolution in the Settld API):
81
+
82
+ - `GET /agents/{agentId}/runs/{runId}/events` (prevChainHash)
83
+ - `POST /agents/{agentId}/runs/{runId}/events` with `type=RUN_COMPLETED` (or `RUN_FAILED`)
84
+
85
+ ### `settld.open_dispute`
86
+
87
+ Opens a dispute for a resolved run settlement:
88
+
89
+ - `POST /runs/{runId}/dispute/open`
90
+
91
+ ## Error Handling
92
+
93
+ - API errors are surfaced as tool results with `isError=true` and a text payload containing `{ statusCode, message, details }` when available.
94
+ - JSON-RPC protocol errors use standard JSON-RPC error responses.
95
+
96
+ ## Latency Measurement
97
+
98
+ Each tool call returns `durationMs` measured inside the MCP process (wall-clock). This measures bridge overhead + API time; it is sufficient for spike validation and can be compared against direct API calls later.
99
+
100
+ ## Testing
101
+
102
+ - A `node --test` smoke test exercises:
103
+ - `initialize`
104
+ - `tools/list` (tool names + schemas)
105
+ - one `tools/call` against a local stub HTTP server (no secrets required)
106
+
107
+ ## Roll Forward Path (S25)
108
+
109
+ - Add SSE transport.
110
+ - Add richer auth modes (service tokens, per-tool scopes, per-tenant selection).
111
+ - Add stronger redaction of tool outputs.
112
+ - Add structured telemetry and rate limiting.
113
+
@@ -0,0 +1,17 @@
1
+ # AcceptanceCriteria.v1
2
+
3
+ `AcceptanceCriteria.v1` defines buyer-side acceptance rules that can be evaluated deterministically and offline from a JobProof-derived job stream.
4
+
5
+ In ClosePack bundles, it is stored at `acceptance/acceptance_criteria.json`.
6
+
7
+ ## Criteria kinds (v1)
8
+
9
+ Each criterion has:
10
+
11
+ - `criterionId` — stable identifier (string).
12
+ - `kind` — one of:
13
+ - `PROOF_STATUS_EQUALS`
14
+ - `SLA_OVERALL_OK`
15
+
16
+ Criteria are evaluated from embedded JobProof facts and (optionally) an `SlaEvaluation.v1`.
17
+
@@ -0,0 +1,10 @@
1
+ # AcceptanceEvaluation.v1
2
+
3
+ `AcceptanceEvaluation.v1` is a deterministic evaluation of `AcceptanceCriteria.v1` against a specific JobProof instance.
4
+
5
+ In ClosePack bundles, it is stored at `acceptance/acceptance_evaluation.json`.
6
+
7
+ ## Determinism contract
8
+
9
+ If `acceptance/*` surfaces are present, verifiers recompute the evaluation and require exact match (canonical JSON) in strict mode.
10
+
@@ -0,0 +1,47 @@
1
+ # AgentEvent.v1
2
+
3
+ `AgentEvent.v1` defines the append-only run event envelope for autonomous agent execution traces.
4
+
5
+ Each event is scoped to one run stream (`streamId = runId`) and can be used to reconstruct `AgentRun.v1`.
6
+
7
+ ## Schema
8
+
9
+ See `schemas/AgentEvent.v1.schema.json`.
10
+
11
+ ## Required fields
12
+
13
+ - `schemaVersion` (const: `AgentEvent.v1`)
14
+ - `v` (event version, const `1`)
15
+ - `id`
16
+ - `streamId` (run ID)
17
+ - `type`
18
+ - `at` (ISO date-time)
19
+ - `actor` (`type` + `id`)
20
+ - `payload`
21
+
22
+ ## Allowed event types (v1)
23
+
24
+ - `RUN_CREATED`
25
+ - `RUN_STARTED`
26
+ - `RUN_HEARTBEAT`
27
+ - `EVIDENCE_ADDED`
28
+ - `RUN_COMPLETED`
29
+ - `RUN_FAILED`
30
+
31
+ ## Signature and chain fields
32
+
33
+ The following fields are optional in `AgentEvent.v1` but reserved for signed chain envelopes:
34
+
35
+ - `payloadHash`
36
+ - `prevChainHash`
37
+ - `chainHash`
38
+ - `signature`
39
+ - `signerKeyId`
40
+
41
+ If present, these fields must be verifiable using the same hash/signature model used by Settld chained events.
42
+
43
+ ## Determinism
44
+
45
+ Event application order is stream order.
46
+
47
+ When multiple events share the same timestamp, ordering is defined by append order in the stored run stream.
@@ -0,0 +1,62 @@
1
+ # AgentIdentity.v1
2
+
3
+ `AgentIdentity.v1` defines a portable, tenant-scoped identity record for autonomous agents.
4
+
5
+ This object is intended to be:
6
+
7
+ - deterministic (stable field names + required core fields),
8
+ - cryptographically bound (primary verification key is explicit), and
9
+ - reusable across API, SDK, and future trust/reputation surfaces.
10
+
11
+ ## Schema
12
+
13
+ See `schemas/AgentIdentity.v1.schema.json`.
14
+
15
+ ## Canonicalization and hashing
16
+
17
+ When `AgentIdentity.v1` is signed or hashed by higher-level protocols:
18
+
19
+ - canonicalize the JSON with RFC 8785 (JCS),
20
+ - hash canonical UTF-8 bytes with `sha256`,
21
+ - represent digests as lowercase hex.
22
+
23
+ `AgentIdentity.v1` itself does not require an embedded signature field in v1.
24
+
25
+ ## Required fields
26
+
27
+ - `schemaVersion` (const: `AgentIdentity.v1`)
28
+ - `agentId` (stable identifier)
29
+ - `tenantId` (tenant scope)
30
+ - `displayName` (human-readable label)
31
+ - `status` (`active` | `suspended` | `revoked`)
32
+ - `owner` (operator linkage)
33
+ - `keys` (primary verification key descriptor)
34
+ - `capabilities` (declared capability identifiers)
35
+ - `createdAt` / `updatedAt` (ISO date-time)
36
+
37
+ ## Owner linkage
38
+
39
+ `owner` binds the autonomous identity to an accountable controller:
40
+
41
+ - `ownerType`: `human` | `business` | `service`
42
+ - `ownerId`: stable owner identifier
43
+
44
+ ## Key descriptor
45
+
46
+ `keys` defines the active verification material for the identity:
47
+
48
+ - `keyId`: derived or assigned key identifier
49
+ - `algorithm`: currently `ed25519`
50
+ - `publicKeyPem`: PEM-encoded public key
51
+
52
+ ## Optional policy hints
53
+
54
+ `walletPolicy` carries optional spend/approval constraints for downstream settlement systems:
55
+
56
+ - `maxPerTransactionCents`
57
+ - `maxDailyCents`
58
+ - `requireApprovalAboveCents`
59
+
60
+ These fields are optional and non-normative in v1. Implementations MAY enforce them when creating holds/settlements (for example, rejecting a settlement when `amountCents > maxPerTransactionCents` or when an out-of-band approval gate is required above `requireApprovalAboveCents`).
61
+
62
+ Implementation note (this repo): the Settld API enforces `maxPerTransactionCents`, `maxDailyCents`, and `requireApprovalAboveCents` on settlement/hold creation paths that lock escrow from an agent wallet.
@@ -0,0 +1,95 @@
1
+ # AgentPassport.v1
2
+
3
+ `AgentPassport.v1` defines the portable delegation identity envelope for an autonomous economic actor.
4
+
5
+ Status: Draft (architecture target; not fully enforced in runtime yet).
6
+
7
+ ## Purpose
8
+
9
+ `AgentPassport.v1` is the root identity contract used to answer:
10
+
11
+ - which principal ultimately backs this agent,
12
+ - which keyset currently represents the agent,
13
+ - which delegation root authorizes spend/actions,
14
+ - which capability credentials the agent can present,
15
+ - which policy envelope bounds autonomous execution.
16
+
17
+ The object is designed to be stable, hash-addressable, and portable across hosts/runtimes.
18
+
19
+ ## Required fields
20
+
21
+ - `schemaVersion` (const: `AgentPassport.v1`)
22
+ - `passportId`
23
+ - `agentId`
24
+ - `tenantId`
25
+ - `principalRef`
26
+ - `identityAnchors`
27
+ - `delegationRoot`
28
+ - `policyEnvelope`
29
+ - `status`
30
+ - `createdAt`
31
+ - `updatedAt`
32
+
33
+ ## Principal binding
34
+
35
+ `principalRef` binds the agent to an accountable sponsor:
36
+
37
+ - `principalType`: `human` | `business` | `service` | `dao`
38
+ - `principalId`: stable principal identifier
39
+ - `jurisdiction`: optional compliance hint (for policy packs)
40
+
41
+ ## Identity anchors
42
+
43
+ `identityAnchors` defines key discovery and verification roots:
44
+
45
+ - `did` (optional, DID URI)
46
+ - `jwksUri` (HTTPS URL)
47
+ - `activeKeyId`
48
+ - `keysetHash` (sha256 hex over normalized JWK set)
49
+
50
+ ## Delegation root
51
+
52
+ `delegationRoot` pins the root authority chain used for autonomous actions:
53
+
54
+ - `rootGrantId`
55
+ - `rootGrantHash`
56
+ - `issuedAt`
57
+ - `expiresAt` (nullable)
58
+ - `revokedAt` (nullable)
59
+
60
+ A revoked root (`revokedAt != null`) MUST be treated as non-executable by strict policy engines.
61
+
62
+ ## Capability credentials
63
+
64
+ `capabilityCredentials` is an optional array of machine-verifiable capability claims. Entries carry:
65
+
66
+ - `credentialType`
67
+ - `issuer`
68
+ - `credentialRef`
69
+ - `credentialHash`
70
+ - `issuedAt`
71
+ - `expiresAt` (nullable)
72
+
73
+ ## Policy envelope
74
+
75
+ `policyEnvelope` binds baseline controls before request-level decisions:
76
+
77
+ - `maxPerCallCents`
78
+ - `maxDailyCents`
79
+ - `allowedRiskClasses` (`read|compute|action|financial`)
80
+ - `requireApprovalAboveCents` (nullable)
81
+ - `allowlistRefs` (optional references to provider/tool policy sets)
82
+
83
+ ## Canonicalization + hashing
84
+
85
+ When used as an input to signatures or binding hashes:
86
+
87
+ 1. canonicalize JSON with RFC 8785 (JCS),
88
+ 2. hash canonical UTF-8 bytes with `sha256`,
89
+ 3. encode as lowercase hex.
90
+
91
+ `AgentPassport.v1` does not require an embedded signature field in v1; signatures are expected in detached envelopes at transport/control layers.
92
+
93
+ ## Schema
94
+
95
+ See `docs/spec/schemas/AgentPassport.v1.schema.json`.
@@ -0,0 +1,59 @@
1
+ # AgentReputation.v1
2
+
3
+ `AgentReputation.v1` defines a deterministic trust snapshot for a tenant-scoped agent identity.
4
+
5
+ It is computed from:
6
+
7
+ - run lifecycle outcomes (`AgentRun.v1`),
8
+ - evidence coverage signals (`AgentRun.v1.evidenceRefs`),
9
+ - escrow/settlement outcomes (`AgentRunSettlement.v1`).
10
+
11
+ ## Schema
12
+
13
+ See `schemas/AgentReputation.v1.schema.json`.
14
+
15
+ ## Required fields
16
+
17
+ - `schemaVersion` (const: `AgentReputation.v1`)
18
+ - `agentId`
19
+ - `tenantId`
20
+ - `trustScore` (`0..100`)
21
+ - `riskTier` (`low|guarded|elevated|high`)
22
+ - run counters (`totalRuns`, `terminalRuns`, `createdRuns`, `runningRuns`, `completedRuns`, `failedRuns`)
23
+ - evidence + settlement counters
24
+ - score rates (`runCompletionRatePct`, `evidenceCoverageRatePct`, `settlementReleaseRatePct`)
25
+ - `scoreBreakdown`
26
+ - `computedAt`
27
+
28
+ ## Score semantics (v1)
29
+
30
+ `trustScore` is a weighted score over bounded integer components:
31
+
32
+ - run quality (terminal completion rate),
33
+ - settlement quality (release rate over resolved settlements),
34
+ - evidence quality (terminal runs carrying evidence),
35
+ - activity score (bounded by run volume).
36
+
37
+ Weights in v1 are deterministic and fixed by implementation:
38
+
39
+ - run quality: 55%
40
+ - settlement quality: 30%
41
+ - evidence quality: 10%
42
+ - activity score: 5%
43
+
44
+ ## Rate nullability
45
+
46
+ The following fields are `null` when no denominator exists:
47
+
48
+ - `runCompletionRatePct` (no terminal runs),
49
+ - `evidenceCoverageRatePct` (no terminal runs),
50
+ - `settlementReleaseRatePct` (no resolved settlements),
51
+ - `avgRunDurationMs` (no terminal runs with valid start/end timestamps).
52
+
53
+ ## Canonicalization and hashing
54
+
55
+ When hashed/signed by higher-level protocols:
56
+
57
+ - canonicalize JSON via RFC 8785 (JCS),
58
+ - hash canonical UTF-8 bytes using `sha256`,
59
+ - emit lowercase hex digests.