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.
Files changed (483) hide show
  1. package/README.md +93 -3
  2. package/SETTLD_VERSION +1 -1
  3. package/bin/settld-mcp +2 -0
  4. package/bin/settld.js +71 -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 +152 -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 +377 -0
  36. package/docs/QUICKSTART_MCP_HOSTS.md +210 -0
  37. package/docs/QUICKSTART_POLICY_PACKS.md +65 -0
  38. package/docs/QUICKSTART_PRODUCE.md +61 -0
  39. package/docs/QUICKSTART_PROFILES.md +198 -0
  40. package/docs/QUICKSTART_RELEASE_VERIFY.md +39 -0
  41. package/docs/QUICKSTART_SDK.md +125 -0
  42. package/docs/QUICKSTART_SDK_PYTHON.md +111 -0
  43. package/docs/QUICKSTART_VERIFY.md +54 -0
  44. package/docs/QUICKSTART_X402_GATEWAY.md +317 -0
  45. package/docs/README.md +33 -0
  46. package/docs/RELEASE_CHECKLIST.md +182 -0
  47. package/docs/RELEASING.md +82 -0
  48. package/docs/REPO_SETTINGS.md +37 -0
  49. package/docs/RUNBOOK.md +86 -0
  50. package/docs/SKILLS.md +42 -0
  51. package/docs/SKILL_BUNDLE_FORMAT.md +48 -0
  52. package/docs/SLO.md +131 -0
  53. package/docs/SUMMARY.md +17 -0
  54. package/docs/SUPPORT.md +31 -0
  55. package/docs/THREAT_MODEL.md +36 -0
  56. package/docs/TRUST.md +59 -0
  57. package/docs/WORKFLOW.md +35 -0
  58. package/docs/X402_BATCH_SETTLEMENT.md +126 -0
  59. package/docs/blog/2026-02-14-your-ai-agent-just-spent-500-where-is-the-receipt.md +73 -0
  60. package/docs/examples/x402-provider-payout-registry.example.json +14 -0
  61. package/docs/gitbook/README.md +64 -0
  62. package/docs/gitbook/SETUP.md +25 -0
  63. package/docs/gitbook/SUMMARY.md +15 -0
  64. package/docs/gitbook/api-reference.md +73 -0
  65. package/docs/gitbook/closepacks.md +55 -0
  66. package/docs/gitbook/conformance.md +59 -0
  67. package/docs/gitbook/core-primitives.md +85 -0
  68. package/docs/gitbook/dispute-lifecycle.md +33 -0
  69. package/docs/gitbook/faq.md +21 -0
  70. package/docs/gitbook/guides.md +49 -0
  71. package/docs/gitbook/operations-runbook.md +36 -0
  72. package/docs/gitbook/quickstart.md +103 -0
  73. package/docs/gitbook/replay-and-audit.md +30 -0
  74. package/docs/gitbook/sdk-reference.md +35 -0
  75. package/docs/gitbook/security-model.md +58 -0
  76. package/docs/integrations/README.md +15 -0
  77. package/docs/integrations/github-actions-verify.yml +31 -0
  78. package/docs/integrations/github-actions.md +34 -0
  79. package/docs/integrations/openclaw/CLAWHUB_PUBLISH_CHECKLIST.md +65 -0
  80. package/docs/integrations/openclaw/PUBLIC_QUICKSTART.md +95 -0
  81. package/docs/integrations/openclaw/settld-mcp-skill/SKILL.md +69 -0
  82. package/docs/integrations/openclaw/settld-mcp-skill/mcp-server.example.json +12 -0
  83. package/docs/kernel-compatible/capabilities.json +36 -0
  84. package/docs/marketing/agent-commerce-substrate.md +78 -0
  85. package/docs/marketing/hn-repost-2026-02-17.md +102 -0
  86. package/docs/marketing/show-hn-post.md +45 -0
  87. package/docs/ops/ARTIFACT_VERIFICATION_STATUS.md +43 -0
  88. package/docs/ops/BILLING_WEBHOOK_REPLAY.md +105 -0
  89. package/docs/ops/CI_FLAKE_BUDGET.md +31 -0
  90. package/docs/ops/DISPUTE_FINANCE_RECONCILIATION_PACKET.md +56 -0
  91. package/docs/ops/GO_LIVE_GATE_S13.md +27 -0
  92. package/docs/ops/HOSTED_BASELINE_R2.md +129 -0
  93. package/docs/ops/KERNEL_V0_SHIP_GATE.md +69 -0
  94. package/docs/ops/LIGHTHOUSE_PRODUCTION_CLOSE.md +51 -0
  95. package/docs/ops/MCP_COMPATIBILITY_MATRIX.md +30 -0
  96. package/docs/ops/MINIMUM_PRODUCTION_TOPOLOGY.md +89 -0
  97. package/docs/ops/P0_BACKEND_PROGRESS.md +150 -0
  98. package/docs/ops/PAYMENTS_ALPHA_R5.md +105 -0
  99. package/docs/ops/PILOT_ONBOARDING_RUNBOOK.md +112 -0
  100. package/docs/ops/PRODUCTION_DEPLOYMENT_CHECKLIST.md +140 -0
  101. package/docs/ops/R1_SLOS.md +66 -0
  102. package/docs/ops/RELEASE_SIGNING_INCIDENT.md +58 -0
  103. package/docs/ops/SELF_SERVE_LAUNCH_AUTOMATION.md +89 -0
  104. package/docs/ops/THROUGHPUT_DRILL_10X.md +48 -0
  105. package/docs/ops/TRUST_CONFIG_WIZARD.md +60 -0
  106. package/docs/ops/X402_PILOT_WEEKLY_METRICS.md +76 -0
  107. package/docs/ops/tool-call-disputes-holdback.md +52 -0
  108. package/docs/pilot-kit/PILOT_PACKAGE_SCORECARD_X402.md +46 -0
  109. package/docs/pilot-kit/README.md +29 -0
  110. package/docs/pilot-kit/architecture-one-pager.md +48 -0
  111. package/docs/pilot-kit/buyer-email.txt +19 -0
  112. package/docs/pilot-kit/buyer-one-pager.md +31 -0
  113. package/docs/pilot-kit/gtm-pilot-playbook.md +182 -0
  114. package/docs/pilot-kit/offline-verify.md +33 -0
  115. package/docs/pilot-kit/procurement-one-pager.md +50 -0
  116. package/docs/pilot-kit/rfp-clause.md +46 -0
  117. package/docs/pilot-kit/roi-calculator-template.csv +2 -0
  118. package/docs/pilot-kit/security-qa.md +153 -0
  119. package/docs/pilot-kit/security-summary.md +35 -0
  120. package/docs/plans/2026-02-13-mcp-spike-design.md +113 -0
  121. package/docs/plans/2026-02-20-trust-os-v1-jira-backlog.md +348 -0
  122. package/docs/plans/2026-02-21-agent-economic-actor-operating-model.md +169 -0
  123. package/docs/plans/2026-02-21-trust-os-v1-strategy.md +241 -0
  124. package/docs/research/2026-02-21-agent-spend-host-landscape.md +57 -0
  125. package/docs/spec/AcceptanceCriteria.v1.md +17 -0
  126. package/docs/spec/AcceptanceEvaluation.v1.md +10 -0
  127. package/docs/spec/AgentEvent.v1.md +47 -0
  128. package/docs/spec/AgentIdentity.v1.md +62 -0
  129. package/docs/spec/AgentPassport.v1.md +95 -0
  130. package/docs/spec/AgentReputation.v1.md +59 -0
  131. package/docs/spec/AgentReputation.v2.md +52 -0
  132. package/docs/spec/AgentRun.v1.md +47 -0
  133. package/docs/spec/AgentRunSettlement.v1.md +52 -0
  134. package/docs/spec/AgentWallet.v1.md +43 -0
  135. package/docs/spec/AgreementDelegation.v1.md +109 -0
  136. package/docs/spec/ArbitrationCase.v1.md +67 -0
  137. package/docs/spec/ArbitrationOutcomeMapping.v1.md +62 -0
  138. package/docs/spec/ArbitrationVerdict.v1.md +60 -0
  139. package/docs/spec/BundleHeadAttestation.v1.md +32 -0
  140. package/docs/spec/CANONICAL_JSON.md +31 -0
  141. package/docs/spec/CRYPTOGRAPHY.md +61 -0
  142. package/docs/spec/ClosePack.v1.md +49 -0
  143. package/docs/spec/ClosePackManifest.v1.md +24 -0
  144. package/docs/spec/DelegationGrant.v1.md +90 -0
  145. package/docs/spec/DisputeCaseLifecycle.v1.md +51 -0
  146. package/docs/spec/DisputeOpenEnvelope.v1.md +43 -0
  147. package/docs/spec/ERRORS.md +76 -0
  148. package/docs/spec/ESCROW_NETTING_INVARIANTS.md +71 -0
  149. package/docs/spec/EvidenceIndex.v1.md +20 -0
  150. package/docs/spec/ExecutionIntent.v1.md +90 -0
  151. package/docs/spec/FinancePackBundleManifest.v1.md +24 -0
  152. package/docs/spec/FundingHold.v1.md +60 -0
  153. package/docs/spec/GovernancePolicy.v1.md +34 -0
  154. package/docs/spec/GovernancePolicy.v2.md +30 -0
  155. package/docs/spec/INVARIANTS.md +389 -0
  156. package/docs/spec/InteractionDirectionMatrix.v1.md +30 -0
  157. package/docs/spec/InvoiceBundleManifest.v1.md +24 -0
  158. package/docs/spec/InvoiceClaim.v1.md +11 -0
  159. package/docs/spec/MONEY_RAIL_STATE_MACHINE.md +58 -0
  160. package/docs/spec/MarketplaceAcceptance.v2.md +46 -0
  161. package/docs/spec/MarketplaceOffer.v2.md +54 -0
  162. package/docs/spec/MeteringReport.v1.md +18 -0
  163. package/docs/spec/OperatorAction.v1.md +90 -0
  164. package/docs/spec/PRODUCER_ERRORS.md +42 -0
  165. package/docs/spec/PolicyDecision.v1.md +83 -0
  166. package/docs/spec/PricingMatrix.v1.md +20 -0
  167. package/docs/spec/PricingMatrixSignatures.v1.md +30 -0
  168. package/docs/spec/PricingMatrixSignatures.v2.md +29 -0
  169. package/docs/spec/ProduceCliOutput.v1.md +46 -0
  170. package/docs/spec/ProofBundleManifest.v1.md +24 -0
  171. package/docs/spec/README.md +109 -0
  172. package/docs/spec/REFERENCE_IMPLEMENTATIONS.md +29 -0
  173. package/docs/spec/REFERENCE_VERIFIER_BEHAVIOR.md +68 -0
  174. package/docs/spec/REMOTE_SIGNER.md +66 -0
  175. package/docs/spec/ReleaseIndex.v1.md +32 -0
  176. package/docs/spec/ReleaseIndexSignatures.v1.md +17 -0
  177. package/docs/spec/ReleaseTrust.v1.md +13 -0
  178. package/docs/spec/ReleaseTrust.v2.md +26 -0
  179. package/docs/spec/RemoteSignerRequest.v1.md +21 -0
  180. package/docs/spec/RemoteSignerResponse.v1.md +16 -0
  181. package/docs/spec/ReputationEvent.v1.md +63 -0
  182. package/docs/spec/RevocationList.v1.md +28 -0
  183. package/docs/spec/SIGNER_PROVIDER_PLUGIN.md +32 -0
  184. package/docs/spec/STRICTNESS.md +68 -0
  185. package/docs/spec/SUPPLY_CHAIN.md +33 -0
  186. package/docs/spec/SettlementAdjustment.v1.md +45 -0
  187. package/docs/spec/SettlementDecisionRecord.v1.md +48 -0
  188. package/docs/spec/SettlementDecisionRecord.v2.md +53 -0
  189. package/docs/spec/SettlementDecisionReport.v1.md +44 -0
  190. package/docs/spec/SettlementKernel.v1.md +59 -0
  191. package/docs/spec/SettlementReceipt.v1.md +63 -0
  192. package/docs/spec/SlaDefinition.v1.md +24 -0
  193. package/docs/spec/SlaEvaluation.v1.md +12 -0
  194. package/docs/spec/THREAT_MODEL.md +113 -0
  195. package/docs/spec/TOOL_PROVENANCE.md +30 -0
  196. package/docs/spec/TRUST_ANCHORS.md +84 -0
  197. package/docs/spec/TenantSettings.v1.md +90 -0
  198. package/docs/spec/TenantSettings.v2.md +99 -0
  199. package/docs/spec/TimestampProof.v1.md +25 -0
  200. package/docs/spec/ToolCallAgreement.v1.md +34 -0
  201. package/docs/spec/ToolCallEvidence.v1.md +47 -0
  202. package/docs/spec/ToolManifest.v1.md +47 -0
  203. package/docs/spec/VERIFIER_ENVIRONMENT.md +38 -0
  204. package/docs/spec/VERSIONING.md +107 -0
  205. package/docs/spec/VerificationReport.v1.md +50 -0
  206. package/docs/spec/VerifyAboutOutput.v1.md +10 -0
  207. package/docs/spec/VerifyCliOutput.v1.md +28 -0
  208. package/docs/spec/WARNINGS.md +83 -0
  209. package/docs/spec/error-codes.v1.txt +285 -0
  210. package/docs/spec/examples/agreement_delegation_v1.example.json +21 -0
  211. package/docs/spec/examples/arbitration_case_v1.example.json +26 -0
  212. package/docs/spec/examples/arbitration_verdict_v1.example.json +32 -0
  213. package/docs/spec/examples/dispute_open_envelope_v1.example.json +18 -0
  214. package/docs/spec/examples/produce_cli_output_v1.example.json +32 -0
  215. package/docs/spec/examples/release_index_signature_v1.example.json +9 -0
  216. package/docs/spec/examples/release_index_signatures_v1.example.json +14 -0
  217. package/docs/spec/examples/release_index_v1.example.json +15 -0
  218. package/docs/spec/examples/release_trust_v1.example.json +7 -0
  219. package/docs/spec/examples/release_trust_v2.example.json +22 -0
  220. package/docs/spec/examples/remote_signer_request_v1.example.json +18 -0
  221. package/docs/spec/examples/remote_signer_response_v1.example.json +8 -0
  222. package/docs/spec/examples/reputation_event_v1.example.json +29 -0
  223. package/docs/spec/examples/verification_report_v1.example.json +24 -0
  224. package/docs/spec/examples/verify_about_output_v1.example.json +29 -0
  225. package/docs/spec/examples/verify_cli_output_v1.example.json +13 -0
  226. package/docs/spec/legacy/MarketplaceAcceptance.v1.md +48 -0
  227. package/docs/spec/legacy/MarketplaceOffer.v1.md +56 -0
  228. package/docs/spec/legacy/schemas/MarketplaceAcceptance.v1.schema.json +53 -0
  229. package/docs/spec/legacy/schemas/MarketplaceOffer.v1.schema.json +61 -0
  230. package/docs/spec/producer-error-codes.v1.txt +14 -0
  231. package/docs/spec/schemas/AcceptanceCriteria.v1.schema.json +24 -0
  232. package/docs/spec/schemas/AcceptanceEvaluation.v1.schema.json +26 -0
  233. package/docs/spec/schemas/AgentEvent.v1.schema.json +49 -0
  234. package/docs/spec/schemas/AgentIdentity.v1.schema.json +129 -0
  235. package/docs/spec/schemas/AgentPassport.v1.schema.json +112 -0
  236. package/docs/spec/schemas/AgentReputation.v1.schema.json +151 -0
  237. package/docs/spec/schemas/AgentReputation.v2.schema.json +120 -0
  238. package/docs/spec/schemas/AgentRun.v1.schema.json +71 -0
  239. package/docs/spec/schemas/AgentRunSettlement.v1.schema.json +75 -0
  240. package/docs/spec/schemas/AgentWallet.v1.schema.json +54 -0
  241. package/docs/spec/schemas/AgreementDelegation.v1.schema.json +50 -0
  242. package/docs/spec/schemas/ArbitrationCase.v1.schema.json +133 -0
  243. package/docs/spec/schemas/ArbitrationVerdict.v1.schema.json +149 -0
  244. package/docs/spec/schemas/BundleHeadAttestation.v1.schema.json +21 -0
  245. package/docs/spec/schemas/ClosePackManifest.v1.schema.json +38 -0
  246. package/docs/spec/schemas/DelegationGrant.v1.schema.json +102 -0
  247. package/docs/spec/schemas/DisputeOpenEnvelope.v1.schema.json +78 -0
  248. package/docs/spec/schemas/EvidenceIndex.v1.schema.json +41 -0
  249. package/docs/spec/schemas/ExecutionIntent.v1.schema.json +85 -0
  250. package/docs/spec/schemas/FinancePackBundleManifest.v1.schema.json +38 -0
  251. package/docs/spec/schemas/FundingHold.v1.schema.json +46 -0
  252. package/docs/spec/schemas/GovernancePolicy.v1.schema.json +45 -0
  253. package/docs/spec/schemas/GovernancePolicy.v2.schema.json +70 -0
  254. package/docs/spec/schemas/InteractionDirectionMatrix.v1.schema.json +43 -0
  255. package/docs/spec/schemas/InvoiceBundleManifest.v1.schema.json +38 -0
  256. package/docs/spec/schemas/InvoiceClaim.v1.schema.json +39 -0
  257. package/docs/spec/schemas/MarketplaceAcceptance.v2.schema.json +53 -0
  258. package/docs/spec/schemas/MarketplaceOffer.v2.schema.json +61 -0
  259. package/docs/spec/schemas/MeteringReport.v1.schema.json +45 -0
  260. package/docs/spec/schemas/OperatorAction.v1.schema.json +113 -0
  261. package/docs/spec/schemas/PolicyDecision.v1.schema.json +74 -0
  262. package/docs/spec/schemas/PricingMatrix.v1.schema.json +24 -0
  263. package/docs/spec/schemas/PricingMatrixSignatures.v1.schema.json +24 -0
  264. package/docs/spec/schemas/PricingMatrixSignatures.v2.schema.json +24 -0
  265. package/docs/spec/schemas/ProduceCliOutput.v1.schema.json +107 -0
  266. package/docs/spec/schemas/ProofBundleManifest.v1.schema.json +37 -0
  267. package/docs/spec/schemas/PublicKeys.v1.schema.json +33 -0
  268. package/docs/spec/schemas/ReleaseIndex.v1.schema.json +45 -0
  269. package/docs/spec/schemas/ReleaseIndexSignature.v1.schema.json +16 -0
  270. package/docs/spec/schemas/ReleaseIndexSignatures.v1.schema.json +16 -0
  271. package/docs/spec/schemas/ReleaseTrust.v1.schema.json +15 -0
  272. package/docs/spec/schemas/ReleaseTrust.v2.schema.json +37 -0
  273. package/docs/spec/schemas/RemoteSignerPublicKeyResponse.v1.schema.json +14 -0
  274. package/docs/spec/schemas/RemoteSignerRequest.v1.schema.json +24 -0
  275. package/docs/spec/schemas/RemoteSignerResponse.v1.schema.json +10 -0
  276. package/docs/spec/schemas/RemoteSignerSignRequest.v1.schema.json +27 -0
  277. package/docs/spec/schemas/RemoteSignerSignResponse.v1.schema.json +16 -0
  278. package/docs/spec/schemas/ReputationEvent.v1.schema.json +164 -0
  279. package/docs/spec/schemas/RevocationList.v1.schema.json +51 -0
  280. package/docs/spec/schemas/SettlementAdjustment.v1.schema.json +44 -0
  281. package/docs/spec/schemas/SettlementDecisionRecord.v1.schema.json +66 -0
  282. package/docs/spec/schemas/SettlementDecisionRecord.v2.schema.json +149 -0
  283. package/docs/spec/schemas/SettlementDecisionReport.v1.schema.json +61 -0
  284. package/docs/spec/schemas/SettlementReceipt.v1.schema.json +135 -0
  285. package/docs/spec/schemas/SlaDefinition.v1.schema.json +33 -0
  286. package/docs/spec/schemas/SlaEvaluation.v1.schema.json +26 -0
  287. package/docs/spec/schemas/TenantSettings.v1.schema.json +90 -0
  288. package/docs/spec/schemas/TenantSettings.v2.schema.json +161 -0
  289. package/docs/spec/schemas/TimestampProof.v1.schema.json +17 -0
  290. package/docs/spec/schemas/ToolCallAgreement.v1.schema.json +34 -0
  291. package/docs/spec/schemas/ToolCallEvidence.v1.schema.json +45 -0
  292. package/docs/spec/schemas/ToolManifest.v1.schema.json +54 -0
  293. package/docs/spec/schemas/VerificationReport.v1.schema.json +83 -0
  294. package/docs/spec/schemas/VerifyAboutOutput.v1.schema.json +54 -0
  295. package/docs/spec/schemas/VerifyCliOutput.v1.schema.json +75 -0
  296. package/docs/spec/schemas/VerifyReleaseOutput.v1.schema.json +47 -0
  297. package/docs/spec/x402-error-codes.v1.txt +35 -0
  298. package/docs/templates/buyer-email.txt +18 -0
  299. package/docs/templates/buyer-one-pager.md +24 -0
  300. package/package.json +53 -6
  301. package/scripts/acceptance/full-stack.mjs +734 -0
  302. package/scripts/acceptance/full-stack.sh +99 -0
  303. package/scripts/audit/build-audit-packet.mjs +242 -0
  304. package/scripts/backup-pg.sh +45 -0
  305. package/scripts/backup-restore/README.md +18 -0
  306. package/scripts/backup-restore/capture-state.mjs +130 -0
  307. package/scripts/backup-restore/client.mjs +97 -0
  308. package/scripts/backup-restore/seed-workload.mjs +235 -0
  309. package/scripts/backup-restore/verify-state.mjs +139 -0
  310. package/scripts/backup-restore-test.sh +217 -0
  311. package/scripts/chaos.js +221 -0
  312. package/scripts/ci/build-launch-cutover-packet.mjs +304 -0
  313. package/scripts/ci/build-self-serve-benchmark-report.mjs +122 -0
  314. package/scripts/ci/changelog-guard.mjs +145 -0
  315. package/scripts/ci/check-kernel-v0-launch-gate.mjs +233 -0
  316. package/scripts/ci/check-secret-hygiene.mjs +78 -0
  317. package/scripts/ci/check-version-consistency.mjs +42 -0
  318. package/scripts/ci/cli-pack-smoke.mjs +160 -0
  319. package/scripts/ci/flake-budget-guard.mjs +68 -0
  320. package/scripts/ci/generate-error-codes.mjs +54 -0
  321. package/scripts/ci/lib/lighthouse-tracker.mjs +90 -0
  322. package/scripts/ci/lib/self-serve-launch-gate.mjs +89 -0
  323. package/scripts/ci/npm-pack-smoke.mjs +454 -0
  324. package/scripts/ci/run-10x-throughput-drill.mjs +318 -0
  325. package/scripts/ci/run-10x-throughput-incident-rehearsal.mjs +368 -0
  326. package/scripts/ci/run-arbitration-workspace-browser-e2e.sh +22 -0
  327. package/scripts/ci/run-circle-sandbox-smoke.mjs +237 -0
  328. package/scripts/ci/run-go-live-gate.mjs +150 -0
  329. package/scripts/ci/run-kernel-v0-ship-gate.mjs +97 -0
  330. package/scripts/ci/run-mcp-host-cert-matrix.mjs +201 -0
  331. package/scripts/ci/run-mcp-host-smoke.mjs +473 -0
  332. package/scripts/ci/run-offline-verification-parity-gate.mjs +762 -0
  333. package/scripts/ci/run-onboarding-host-success-gate.mjs +516 -0
  334. package/scripts/ci/run-onboarding-policy-slo-gate.mjs +537 -0
  335. package/scripts/ci/run-production-cutover-gate.mjs +540 -0
  336. package/scripts/ci/run-public-openclaw-npx-smoke.mjs +148 -0
  337. package/scripts/ci/run-release-promotion-guard.mjs +756 -0
  338. package/scripts/ci/run-self-serve-launch-gate.mjs +56 -0
  339. package/scripts/ci/runtime-import-smoke.mjs +58 -0
  340. package/scripts/ci/update-lighthouse-tracker.mjs +112 -0
  341. package/scripts/closepack/lib.mjs +286 -0
  342. package/scripts/collect-debug.sh +263 -0
  343. package/scripts/demo/compositional-settlement-3hop.mjs +237 -0
  344. package/scripts/demo/delivery-robot/export-ui-fixture.mjs +188 -0
  345. package/scripts/demo/delivery-robot/generate.mjs +377 -0
  346. package/scripts/demo/kernel-agent-goes-shopping.mjs +202 -0
  347. package/scripts/demo/magic-link-first-green.mjs +118 -0
  348. package/scripts/demo/magic-link-kind-smoke.mjs +577 -0
  349. package/scripts/demo/mcp-paid-exa.mjs +1110 -0
  350. package/scripts/dev/billing-doctor.sh +145 -0
  351. package/scripts/dev/billing-smoke-prod.sh +219 -0
  352. package/scripts/dev/billing-webhook-replay.sh +161 -0
  353. package/scripts/dev/env.dev.example +29 -0
  354. package/scripts/dev/env.sh +37 -0
  355. package/scripts/dev/new-sdk-key.sh +81 -0
  356. package/scripts/dev/sdk-first-run.sh +21 -0
  357. package/scripts/dev/smoke-x402-gateway.sh +115 -0
  358. package/scripts/dev/start-api.sh +24 -0
  359. package/scripts/doctor/mcp-host.mjs +120 -0
  360. package/scripts/examples/produce-and-verify-jobproof.mjs +191 -0
  361. package/scripts/examples/sdk-first-paid-rfq.py +105 -0
  362. package/scripts/examples/sdk-first-verified-run.mjs +85 -0
  363. package/scripts/examples/sdk-first-verified-run.py +99 -0
  364. package/scripts/examples/sdk-tenant-analytics.mjs +103 -0
  365. package/scripts/examples/sdk-tenant-analytics.py +118 -0
  366. package/scripts/finance-pack/bundle.mjs +284 -0
  367. package/scripts/fixtures/generate-bundle-fixtures.mjs +877 -0
  368. package/scripts/governance/export.mjs +169 -0
  369. package/scripts/load/delivery-stress.k6.js +183 -0
  370. package/scripts/load/ingest-burst.k6.js +236 -0
  371. package/scripts/load/run-delivery-load.js +66 -0
  372. package/scripts/load/webhook-receiver.js +131 -0
  373. package/scripts/magic-link/migrate-run-records-to-db.mjs +35 -0
  374. package/scripts/mcp/probe.mjs +238 -0
  375. package/scripts/mcp/settld-mcp-http-gateway.mjs +178 -0
  376. package/scripts/mcp/settld-mcp-server.mjs +1511 -0
  377. package/scripts/openapi/write.mjs +13 -0
  378. package/scripts/ops/bootstrap-tenant-conformance.mjs +185 -0
  379. package/scripts/ops/build-x402-pilot-reliability-report.mjs +489 -0
  380. package/scripts/ops/check-x402-receipt-sample.mjs +181 -0
  381. package/scripts/ops/design-partner-run-packet.mjs +466 -0
  382. package/scripts/ops/dispute-finance-reconciliation-packet.mjs +313 -0
  383. package/scripts/ops/hosted-baseline-evidence.mjs +890 -0
  384. package/scripts/ops/money-rails-chargeback-evidence.mjs +509 -0
  385. package/scripts/ops/money-rails-reconcile-evidence.mjs +180 -0
  386. package/scripts/ops/p0-seed-money-rail-operation.mjs +432 -0
  387. package/scripts/ops/run-x402-hitl-smoke.mjs +607 -0
  388. package/scripts/pilot/finance-pack.mjs +495 -0
  389. package/scripts/pilot/fixtures/robot-keypair.json +4 -0
  390. package/scripts/pilot/fixtures/server-signer.json +4 -0
  391. package/scripts/policy/cli.mjs +600 -0
  392. package/scripts/profile/cli.mjs +1324 -0
  393. package/scripts/proof-bundle/job.mjs +109 -0
  394. package/scripts/proof-bundle/lib.mjs +92 -0
  395. package/scripts/proof-bundle/month.mjs +103 -0
  396. package/scripts/provider/conformance-run.mjs +159 -0
  397. package/scripts/provider/keys-generate.mjs +135 -0
  398. package/scripts/provider/publish.mjs +420 -0
  399. package/scripts/quickstart/x402.mjs +334 -0
  400. package/scripts/register-entity-secret.mjs +102 -0
  401. package/scripts/release/build-artifacts.mjs +181 -0
  402. package/scripts/release/generate-release-index.mjs +112 -0
  403. package/scripts/release/release-index-lib.mjs +232 -0
  404. package/scripts/release/sign-release-index.mjs +85 -0
  405. package/scripts/release/validate-release-assets.mjs +170 -0
  406. package/scripts/release/verify-release.mjs +261 -0
  407. package/scripts/restore-pg.sh +34 -0
  408. package/scripts/scaffold/create-settld-paid-tool.mjs +19 -0
  409. package/scripts/sdk/smoke-python.py +30 -0
  410. package/scripts/sdk/smoke.mjs +16 -0
  411. package/scripts/settlement/x402-batch-worker.mjs +1091 -0
  412. package/scripts/setup/circle-bootstrap.mjs +310 -0
  413. package/scripts/setup/host-config.mjs +617 -0
  414. package/scripts/setup/onboard.mjs +1337 -0
  415. package/scripts/setup/openclaw-onboard.mjs +423 -0
  416. package/scripts/setup/wizard.mjs +986 -0
  417. package/scripts/slo/check.mjs +239 -0
  418. package/scripts/smoke/k8s-smoke.mjs +214 -0
  419. package/scripts/spec/generate-protocol-vectors.mjs +1019 -0
  420. package/scripts/test/check-no-generated-artifacts.sh +12 -0
  421. package/scripts/test/run.sh +59 -0
  422. package/scripts/trust/validate-trust-file.mjs +57 -0
  423. package/scripts/trust-config/rotate-settld-pay.mjs +277 -0
  424. package/scripts/trust-config/wizard.mjs +161 -0
  425. package/scripts/vendor-contract-test-lib.mjs +182 -0
  426. package/scripts/vendor-contract-test.mjs +55 -0
  427. package/scripts/vercel/build-mkdocs.sh +9 -0
  428. package/scripts/vercel/ignore-mkdocs.sh +25 -0
  429. package/scripts/vercel/install-mkdocs.sh +6 -0
  430. package/scripts/verify-pg.js +217 -0
  431. package/scripts/x402/receipt-verify.mjs +289 -0
  432. package/services/finance-sink/src/dedupe-store.js +29 -6
  433. package/services/receiver/src/dedupe-store.js +29 -5
  434. package/services/x402-gateway/Dockerfile +13 -0
  435. package/services/x402-gateway/README.md +58 -0
  436. package/services/x402-gateway/examples/upstream-mock.js +337 -0
  437. package/services/x402-gateway/src/server.js +1058 -0
  438. package/src/api/app.js +34658 -16940
  439. package/src/api/maintenance.js +70 -0
  440. package/src/api/middleware/trust-kernel.js +114 -0
  441. package/src/api/openapi.js +1778 -70
  442. package/src/api/persistence.js +456 -0
  443. package/src/api/server.js +81 -5
  444. package/src/api/store.js +1581 -62
  445. package/src/api/workers/deliveries.js +99 -4
  446. package/src/api/workers/insolvency-sweep.js +159 -0
  447. package/src/core/agent-card.js +69 -0
  448. package/src/core/agent-wallets.js +231 -0
  449. package/src/core/agreement-delegation.js +549 -0
  450. package/src/core/billing-plans.js +40 -6
  451. package/src/core/circle-reserve-adapter.js +845 -0
  452. package/src/core/event-policy.js +21 -2
  453. package/src/core/maintenance-locks.js +1 -0
  454. package/src/core/operator-action.js +303 -0
  455. package/src/core/paid-tool-manifest.js +318 -0
  456. package/src/core/policy-decision.js +322 -0
  457. package/src/core/policy-packs.js +207 -0
  458. package/src/core/profile-fingerprint.js +27 -0
  459. package/src/core/profile-simulation-reasons.js +84 -0
  460. package/src/core/profile-templates.js +242 -0
  461. package/src/core/provider-publish-conformance.js +525 -0
  462. package/src/core/provider-publish-proof.js +396 -0
  463. package/src/core/provider-quote-signature.js +170 -0
  464. package/src/core/settld-keys.js +112 -0
  465. package/src/core/settld-pay-token.js +344 -0
  466. package/src/core/settlement-kernel.js +239 -2
  467. package/src/core/settlement-verifier.js +335 -0
  468. package/src/core/tool-call-agreement.js +112 -0
  469. package/src/core/tool-call-evidence.js +144 -0
  470. package/src/core/tool-provider-signature.js +98 -0
  471. package/src/core/wallet-assignment-resolver.js +129 -0
  472. package/src/core/wallet-provider-bootstrap.js +365 -0
  473. package/src/core/x402-escalation-override.js +258 -0
  474. package/src/core/x402-gate.js +118 -0
  475. package/src/core/x402-provider-refund-decision.js +220 -0
  476. package/src/core/x402-receipt-verifier.js +708 -0
  477. package/src/core/x402-reversal-command.js +251 -0
  478. package/src/core/x402-wallet-issuer-decision.js +252 -0
  479. package/src/core/zk-verifier.js +300 -0
  480. package/src/db/migrations/029_reputation_event_index.sql +54 -0
  481. package/src/db/migrations/030_artifacts_source_event_unique_job_only.sql +15 -0
  482. package/src/db/pg.js +18 -7
  483. package/src/db/store-pg.js +1508 -111
@@ -0,0 +1,66 @@
1
+ # Release 1 SLOs and Error Budgets
2
+
3
+ Date baseline: February 7, 2026
4
+ Release target: `Settld Verified Transactions v1` (end of Sprint 4)
5
+
6
+ ## Scope
7
+
8
+ These SLOs govern the Release 1 production path:
9
+
10
+ - Agent identity registration and wallet funding.
11
+ - Marketplace RFQ, bid, accept, and run execution flows.
12
+ - Settlement, dispute, and policy replay endpoints.
13
+ - Ops payout enqueue and money rail operation status/cancel flows.
14
+
15
+ ## SLO-1: API availability
16
+
17
+ - SLI: successful request ratio for R1 endpoints.
18
+ - Objective: 99.9% monthly availability.
19
+ - Error budget: 43m 49s/month.
20
+ - Burn alert thresholds:
21
+ - Fast burn: >10% budget consumed in 1 hour.
22
+ - Slow burn: >25% budget consumed in 7 days.
23
+
24
+ ## SLO-2: Settlement latency
25
+
26
+ - SLI: p95 latency for terminal settlement transitions (auto or manual resolve).
27
+ - Objective: p95 < 2.5s.
28
+ - Error budget: 5% of settlement requests may exceed p95 threshold.
29
+
30
+ ## SLO-3: Verification latency
31
+
32
+ - SLI: p95 latency for verification status computation on run terminal events.
33
+ - Objective: p95 < 3.0s.
34
+ - Error budget: 5% monthly.
35
+
36
+ ## SLO-4: Money rail operation freshness
37
+
38
+ - SLI: age of operations remaining in `initiated` or `submitted` without progress.
39
+ - Objective: 99% of operations progress or close within 30 minutes.
40
+ - Error budget: 1% monthly.
41
+
42
+ ## SLO-5: Reconciliation backlog age
43
+
44
+ - SLI: age of unresolved reconciliation mismatches.
45
+ - Objective: 95% resolved within 48 hours.
46
+ - Error budget: 5% monthly.
47
+
48
+ ## SLO-6: Determinism drift
49
+
50
+ - SLI: count of deterministic replay mismatches in CI release-gate suites.
51
+ - Objective: 0 per release candidate.
52
+ - Error budget: none; any drift is release-blocking.
53
+
54
+ ## Release-blocking conditions
55
+
56
+ - Any failing deterministic replay/conformance suite.
57
+ - Any unacknowledged Sev1 or Sev2 incident on settlement or verification path.
58
+ - Missing rollback plan for money rails, escrow/netting, or arbitration changes.
59
+
60
+ ## Dashboard requirements
61
+
62
+ - Endpoint latency and availability by route family.
63
+ - Settlement states over time and stuck-state counts.
64
+ - Money rail lifecycle state histogram by provider.
65
+ - Reconciliation mismatch count and age buckets.
66
+ - Determinism gate pass/fail trend by commit.
@@ -0,0 +1,58 @@
1
+ # Release signing incident runbook
2
+
3
+ This runbook covers the “release signing key compromised” scenario for Settld distribution artifacts.
4
+
5
+ ## Immediate goals
6
+
7
+ - Prevent future malicious releases from verifying.
8
+ - Preserve a clear audit trail of what happened and what was rotated.
9
+
10
+ ## Assumptions
11
+
12
+ - Release authenticity is verified via `ReleaseIndex.v1` + `ReleaseTrust.v2` (see `docs/spec/SUPPLY_CHAIN.md`).
13
+ - Release trust roots are pinned in `trust/release-trust.json`.
14
+ - Release signing private keys are stored as CI secrets (e.g., `SETTLD_RELEASE_SIGNING_PRIVATE_KEY_PEM`).
15
+
16
+ ## Procedure (high-level)
17
+
18
+ 1) **Revoke compromised key**
19
+
20
+ - Edit `trust/release-trust.json`:
21
+ - Keep the key entry (do not delete immediately).
22
+ - Set `revokedAtEpochSeconds` to the intended cutoff time.
23
+ - Add/update `comment` with incident reference.
24
+
25
+ 2) **Add replacement key**
26
+
27
+ - Generate a new Ed25519 keypair (private key never committed).
28
+ - Add its public key + `keyId` into `trust/release-trust.json`.
29
+ - If you require quorum, ensure policy still holds (`policy.minSignatures`).
30
+
31
+ 3) **Rotate CI secrets**
32
+
33
+ - Update the release workflow secret(s) to use the new private key(s).
34
+ - If quorum is required, ensure CI has all required signing keys/secrets.
35
+
36
+ 4) **Cut a release candidate and verify**
37
+
38
+ - Produce release artifacts.
39
+ - Verify via:
40
+ - `settld-release verify --dir <release-assets-dir> --trust-file trust/release-trust.json --format json --explain`
41
+
42
+ 5) **Validate the block**
43
+
44
+ - A release signed with the revoked key at/after `revokedAtEpochSeconds` must fail verification with `RELEASE_SIGNER_REVOKED`.
45
+
46
+ ## Automated drill
47
+
48
+ CI includes a compromise drill test:
49
+
50
+ - `test/release-signing-compromise-drill.test.js`
51
+
52
+ This test simulates:
53
+
54
+ - old key revoked
55
+ - new key added
56
+ - release signed with old key after revocation fails
57
+ - release signed with new key passes
58
+
@@ -0,0 +1,89 @@
1
+ # Self-Serve Launch Automation (S197/S198)
2
+
3
+ This runbook covers the self-serve launch automation surfaces:
4
+
5
+ - onboarding email sequence automation,
6
+ - referral funnel instrumentation,
7
+ - benchmark artifact generation for launch reporting.
8
+
9
+ ## 1) Onboarding email sequence
10
+
11
+ Magic Link now emits a milestone-based onboarding email sequence per tenant:
12
+
13
+ - `welcome`
14
+ - `sample_verified_nudge`
15
+ - `first_settlement_completed`
16
+
17
+ Implementation:
18
+
19
+ - `services/magic-link/src/onboarding-email-sequence.js`
20
+ - wired from `services/magic-link/src/server.js` on tenant create, onboarding events, and upload progress.
21
+
22
+ Environment controls:
23
+
24
+ ```bash
25
+ MAGIC_LINK_ONBOARDING_EMAIL_SEQUENCE_ENABLED=1
26
+ MAGIC_LINK_ONBOARDING_EMAIL_DELIVERY_MODE=record # record|log|smtp
27
+ ```
28
+
29
+ Default behavior:
30
+
31
+ - uses `smtp` when SMTP is configured,
32
+ - falls back to `record` otherwise.
33
+
34
+ Record mode writes deterministic outbox files:
35
+
36
+ - `onboarding-email-outbox/<tenantId>/<stepKey>/*.json`
37
+ - per-tenant state: `tenants/<tenantId>/onboarding_email_sequence.json`
38
+
39
+ ## 2) Referral loop instrumentation
40
+
41
+ Referral loop signals are ingested through onboarding events:
42
+
43
+ - `referral_link_shared`
44
+ - `referral_signup`
45
+
46
+ Endpoint:
47
+
48
+ ```bash
49
+ POST /v1/tenants/{tenantId}/onboarding/events
50
+ ```
51
+
52
+ Example payloads:
53
+
54
+ ```json
55
+ { "eventType": "referral_link_shared", "metadata": { "channel": "email", "campaign": "launch_v1" } }
56
+ ```
57
+
58
+ ```json
59
+ { "eventType": "referral_signup", "metadata": { "sourceTenantId": "tenant_a", "referredTenantId": "tenant_b" } }
60
+ ```
61
+
62
+ Metrics exposure:
63
+
64
+ - `GET /v1/tenants/{tenantId}/onboarding-metrics`
65
+ - includes `referral.linkSharedCount`, `referral.signupCount`, `referral.conversionRatePct`.
66
+
67
+ ## 3) Launch benchmark artifact
68
+
69
+ Build benchmark report from launch gate + throughput + incident rehearsal artifacts:
70
+
71
+ ```bash
72
+ node scripts/ci/build-self-serve-benchmark-report.mjs
73
+ ```
74
+
75
+ Output:
76
+
77
+ - `artifacts/launch/self-serve-benchmark-report.json`
78
+
79
+ Inputs (defaults):
80
+
81
+ - `artifacts/gates/self-serve-launch-gate.json`
82
+ - `artifacts/throughput/10x-drill-summary.json`
83
+ - `artifacts/throughput/10x-incident-rehearsal-summary.json`
84
+
85
+ NPM shortcut:
86
+
87
+ ```bash
88
+ npm run test:ops:self-serve-benchmark
89
+ ```
@@ -0,0 +1,48 @@
1
+ # Throughput Drill 10x Runbook
2
+
3
+ Objective: execute `STLD-T177` as an auditable gate artifact, not a one-off benchmark.
4
+
5
+ ## Command
6
+
7
+ ```bash
8
+ BASE_URL=http://127.0.0.1:3000 \
9
+ OPS_TOKEN=ops_ci \
10
+ TENANTS=3 \
11
+ ROBOTS_PER_TENANT=3 \
12
+ BASELINE_JOBS_PER_MIN_PER_TENANT=10 \
13
+ THROUGHPUT_MULTIPLIER=10 \
14
+ DURATION=120s \
15
+ TARGET_P95_MS=5000 \
16
+ MAX_FAILURE_RATE=0.05 \
17
+ node scripts/ci/run-10x-throughput-drill.mjs
18
+
19
+ BASE_URL=http://127.0.0.1:3000 \
20
+ OPS_TOKEN=ops_ci \
21
+ node scripts/ci/run-10x-throughput-incident-rehearsal.mjs
22
+ ```
23
+
24
+ If local `k6` is not installed, the runner automatically falls back to `docker` (`grafana/k6:0.48.0`).
25
+ Set `ALLOW_DOCKER_K6_FALLBACK=0` to require native `k6`.
26
+
27
+ ## Outputs
28
+
29
+ - K6 summary: `artifacts/throughput/10x-drill-k6-summary.json`
30
+ - Gate report: `artifacts/throughput/10x-drill-summary.json`
31
+ - Incident rehearsal report: `artifacts/throughput/10x-incident-rehearsal-summary.json`
32
+
33
+ ## Gate conditions
34
+
35
+ - k6 exits with status `0`
36
+ - `http_req_duration p(95)` <= `TARGET_P95_MS`
37
+ - `http_req_failed rate` <= `MAX_FAILURE_RATE`
38
+ - ingest rejection rate <= `MAX_INGEST_REJECTED_PER_MIN`
39
+
40
+ ## Incident rehearsal checklist
41
+
42
+ - Run `node scripts/ci/run-10x-throughput-incident-rehearsal.mjs` immediately after the load drill.
43
+ - Confirm `artifacts/throughput/10x-incident-rehearsal-summary.json` has `verdict.ok=true`.
44
+ - Verify rehearsal checks are green:
45
+ - degraded-mode signal was emitted,
46
+ - rollback returned active policy to stable,
47
+ - communications markers were captured in `/ops/audit`,
48
+ - command-center post-rollback breach count is zero.
@@ -0,0 +1,60 @@
1
+ # Trust Config Wizard
2
+
3
+ Use this when you want to create an SLA policy config from a template.
4
+
5
+ ## Fastest path for onboarding
6
+
7
+ If you want a ready starter policy during host setup, run:
8
+
9
+ ```bash
10
+ settld setup --yes --mode manual --host codex --base-url http://127.0.0.1:3000 --tenant-id tenant_default --api-key sk_live_xxx.yyy --profile-id engineering-spend --smoke
11
+ ```
12
+
13
+ This sets up host MCP config and applies a starter policy profile in one run.
14
+
15
+ ## New policy wizard flow (template-based)
16
+
17
+ 1. List templates:
18
+
19
+ ```bash
20
+ npm run trust:wizard -- list --format text
21
+ ```
22
+
23
+ 2. Preview one template:
24
+
25
+ ```bash
26
+ npm run trust:wizard -- show --template delivery_standard_v1 --format text
27
+ ```
28
+
29
+ 3. Render a policy config file:
30
+
31
+ ```bash
32
+ npm run trust:wizard -- render --template delivery_standard_v1 --overrides-json '{"metrics":{"targetCompletionMinutes":60}}' --out ./policy.delivery.json --format json
33
+ ```
34
+
35
+ 4. Validate the same overrides:
36
+
37
+ ```bash
38
+ npm run trust:wizard -- validate --template delivery_standard_v1 --overrides-json '{"metrics":{"targetCompletionMinutes":60}}' --format json
39
+ ```
40
+
41
+ Supported commands:
42
+
43
+ - `list [--vertical delivery|security] [--format json|text]`
44
+ - `show --template <templateId> [--format json|text]`
45
+ - `render --template <templateId> [--overrides-json <json>] [--out <path>] [--format json|text]`
46
+ - `validate --template <templateId> [--overrides-json <json>] [--format json|text]`
47
+
48
+ ## API endpoint
49
+
50
+ - `GET /ops/sla-templates`
51
+ - Scope: `ops_read`
52
+ - Optional query: `vertical=delivery|security`
53
+ - Response: `SlaPolicyTemplateCatalog.v1`
54
+
55
+ Example:
56
+
57
+ ```bash
58
+ curl -sS "http://localhost:3000/ops/sla-templates?vertical=security" \
59
+ -H "x-proxy-ops-token: <ops_read_token>" | jq
60
+ ```
@@ -0,0 +1,76 @@
1
+ # X402 Pilot Weekly Reliability Metrics
2
+
3
+ Use this report to publish weekly reliability numbers for the Circle-backed paid tool pilot.
4
+
5
+ The report is artifact-driven and summarizes paid MCP/x402 runs under `artifacts/mcp-paid-exa`.
6
+
7
+ ## Why this exists
8
+
9
+ Before broad provider expansion, the pilot must prove:
10
+
11
+ - reserve behavior is stable,
12
+ - token and provider signature verification are stable,
13
+ - settlement execution is stable.
14
+
15
+ This command produces a deterministic JSON report you can commit or attach to release notes.
16
+
17
+ ## Run
18
+
19
+ ```bash
20
+ npm run ops:x402:pilot:weekly-report -- \
21
+ --artifact-root artifacts/mcp-paid-exa \
22
+ --days 7 \
23
+ --out artifacts/ops/x402-pilot-reliability-report.json
24
+ ```
25
+
26
+ Optional reliability gates:
27
+
28
+ ```bash
29
+ npm run ops:x402:pilot:weekly-report -- \
30
+ --artifact-root artifacts/mcp-paid-exa \
31
+ --days 7 \
32
+ --max-reserve-fail-rate 0.10 \
33
+ --max-token-verify-fail-rate 0.01 \
34
+ --max-provider-sig-fail-rate 0.01 \
35
+ --min-settlement-success-rate 0.98
36
+ ```
37
+
38
+ If threshold gates are supplied, command exit code is non-zero when any gate fails.
39
+
40
+ ## Output schema
41
+
42
+ `X402PilotReliabilityReport.v1` includes:
43
+
44
+ - `runCounts`
45
+ - `runsInWindow`
46
+ - `infraBootFailures`
47
+ - `toolCallAttempts`
48
+ - `successfulPaidCalls`
49
+ - `metrics`
50
+ - `timeToFirstPaidCallMs`
51
+ - `reserveFailRate`
52
+ - `tokenVerifyFailRate`
53
+ - `providerSigFailRate`
54
+ - `settlementSuccessRate`
55
+ - `replayDuplicateRate`
56
+ - `samples`
57
+ - run ids for reserve/token/signature/settlement failures
58
+ - `verdict`
59
+ - threshold check results when thresholds are passed
60
+
61
+ ## Metric notes
62
+
63
+ - `reserveFailRate` is inferred from attempted runs with `gateway_error` today.
64
+ - Infrastructure boot failures are excluded from economic reliability denominators.
65
+ - `replayDuplicateRate` uses provider replay counters emitted by paid demo artifacts (`provider-replay-probe.json` or `summary.replayCounters`).
66
+
67
+ ## Recommended weekly publish set
68
+
69
+ - `timeToFirstPaidCallMs`
70
+ - `reserveFailRate`
71
+ - `tokenVerifyFailRate`
72
+ - `providerSigFailRate`
73
+ - `settlementSuccessRate`
74
+ - `replayDuplicateRate`
75
+
76
+ Keep provider expansion gated on these metrics, not on raw demo volume.
@@ -0,0 +1,52 @@
1
+ # Tool-Call Disputes and Holdback (Ops Runbook)
2
+
3
+ ## When To Use Party Open vs Ops Override
4
+
5
+ - Use **party open** when:
6
+ - payer/payee is within the hold challenge window
7
+ - the dispute is expected and can be resolved by normal arbitration timelines
8
+
9
+ - Use **ops/admin override** when:
10
+ - the challenge window is closed but funds are still held (exception path)
11
+ - an incorrect hold configuration needs remediation
12
+ - you need to open a case for forensic/incident reasons
13
+
14
+ Ops override requires `ops_write` and must include an explicit override reason in the case metadata.
15
+
16
+ ## How Holds Get “Stuck”
17
+
18
+ A hold can remain in `held` if:
19
+
20
+ - an arbitration case exists for the hold and the case `status` is not `closed`
21
+ - the verdict has been issued but the adjustment was not applied (should be rare; indicates an idempotency/DB failure)
22
+ - escrow balances are inconsistent (wallet has insufficient escrow locked to complete release/refund)
23
+
24
+ ## Debug Checklist
25
+
26
+ 1. Identify the `holdHash`:
27
+ - from the hold record (FundingHold.v1)
28
+ - or from the arbitration case metadata (`metadata.holdHash`)
29
+ 2. List tool-call arbitration cases for the agreement:
30
+ - `GET /tool-calls/arbitration/cases?agreementHash=...`
31
+ 3. Verify the case metadata:
32
+ - `caseType: "tool_call"`
33
+ - `agreementHash`, `receiptHash`, `holdHash` are present and 64-hex sha256
34
+ 4. If the case is not closed, the auto-release tick will skip the hold.
35
+
36
+ ## Maintenance Tick
37
+
38
+ The tool-call holdback maintenance tick:
39
+
40
+ - will **not** auto-release holds referenced by any non-closed tool-call arbitration case
41
+ - will skip holds whose challenge window has not yet ended
42
+ - operates on held escrow funds only
43
+
44
+ Endpoint:
45
+
46
+ - `POST /ops/maintenance/tool-call-holdback/run`
47
+
48
+ Suggested alerting:
49
+
50
+ - Alert on `tool_call_holdback_auto_release_skipped_total{reason="arbitration_case_open"}` growth without a corresponding decrease in open case count.
51
+ - Alert on holds blocked beyond an SLA threshold (derive from hold `createdAt` and current time).
52
+
@@ -0,0 +1,46 @@
1
+ # Pilot Package + Success Scorecard (x402 Wedge)
2
+
3
+ This defines the default pilot offer and measurable success gates for Settld x402 deployments.
4
+
5
+ ## 1. Pilot Package
6
+
7
+ - Scope: 1 paid tool workflow, 1 buyer, 1 provider, 1 tenant.
8
+ - Duration: 4-6 weeks.
9
+ - Success proof: deterministic receipts + offline verification + export for finance.
10
+ - Out of scope: broad marketplace rollout, unrestricted side-effect tools.
11
+
12
+ ## 2. Delivery Timeline
13
+
14
+ 1. Week 0: scope lock, baseline capture, env + keys provisioned.
15
+ 2. Week 1: first paid call in production-like flow (`402 -> retry -> verify`).
16
+ 3. Week 2-3: volume ramp + policy tuning (caps, allowlists, dispute windows).
17
+ 4. Week 4-6: KPI review, case-study artifacts, expansion decision.
18
+
19
+ ## 3. Scorecard (Baseline + Target)
20
+
21
+ | Metric | Baseline (before Settld) | Target (pilot) | Measurement |
22
+ |---|---:|---:|---|
23
+ | Integration time to first paid call | > 2 days | < 1 afternoon | Start-to-first successful settled paid call |
24
+ | Auto-resolve rate (%) | < 40% | >= 80% | `released / total verified` for in-scope runs |
25
+ | Dispute rate (%) | > 10% | <= 5% | `disputed / settled` over pilot window |
26
+ | Time-to-settle (p95) | > 24h | < 15m | verification-to-settlement latency |
27
+
28
+ ## 4. Required Evidence Artifacts
29
+
30
+ - x402 gate trace (`gateId`, authorization ref, reserve id where applicable)
31
+ - Decision + settlement binding hashes
32
+ - Receipt export for pilot window
33
+ - Offline verifier output sample on exported receipts
34
+ - Weekly reliability report (`reserveFailRate`, `providerSigFailRate`, `settlementSuccessRate`)
35
+
36
+ ## 5. Expansion Triggers
37
+
38
+ - Two or more teams request onboarding.
39
+ - Finance requests recurring automated exports.
40
+ - Scorecard targets met for two consecutive weekly checkpoints.
41
+
42
+ ## 6. No-Go / Re-scope Conditions
43
+
44
+ - Integration time target misses twice.
45
+ - Dispute rate trend worsens versus baseline.
46
+ - Settlement reliability below threshold for two consecutive checkpoints.
@@ -0,0 +1,29 @@
1
+ # Pilot Kit (Verify Cloud / Magic Link)
2
+
3
+ This folder is the “send to prospects” kit for running a paid pilot:
4
+
5
+ - Buyer materials (what the page means, what to download, how to re-verify offline)
6
+ - Security posture summary (what we harden against)
7
+ - Integration starting point (webhooks)
8
+ - Simple ROI / billing templates
9
+
10
+ ## Recommended pilot flow
11
+
12
+ 1. Operator produces an `InvoiceBundle.v1` and uploads it to Verify Cloud (Magic Link).
13
+ 2. Buyer receives the link, reviews Green/Amber/Red, and (optionally) records **Approve/Hold** on the page.
14
+ 3. Buyer downloads the audit packet for archiving (bundle ZIP + deterministic JSON outputs).
15
+ 4. Operator consumes the webhook event to drive their internal workflow.
16
+
17
+ ## Contents
18
+
19
+ - `buyer-one-pager.md` — what the buyer sees and what to do.
20
+ - `buyer-email.txt` — copy/paste email template for sending links.
21
+ - `offline-verify.md` — how a buyer/auditor re-verifies locally.
22
+ - `security-summary.md` — zip and bundle hardening posture.
23
+ - `security-qa.md` — short procurement/security questionnaire answers.
24
+ - `architecture-one-pager.md` — deployment and data flow overview for security reviewers.
25
+ - `procurement-one-pager.md` — procurement-facing overview (adoption + security posture).
26
+ - `rfp-clause.md` — draft procurement / RFP language.
27
+ - `roi-calculator-template.csv` — simple template for pilot ROI tracking.
28
+ - `gtm-pilot-playbook.md` — outreach templates, pilot KPI gates, and case-study format.
29
+ - `PILOT_PACKAGE_SCORECARD_X402.md` — default x402 pilot package, baseline/target scorecard, and expansion triggers.
@@ -0,0 +1,48 @@
1
+ # Verify Cloud (Magic Link) — Architecture one-pager
2
+
3
+ This document describes the hosted verification service used in pilots (“Verify Cloud”, implemented by the Magic Link service).
4
+
5
+ ## Data flow (high level)
6
+
7
+ 1. Vendor uploads a Settld bundle ZIP (e.g. `InvoiceBundle.v1` / `ClosePack.v1`) using a vendor-scoped ingest key.
8
+ 2. Verify Cloud stores the ZIP and runs deterministic verification in a budgeted worker.
9
+ 3. Verify Cloud writes deterministic outputs + a redacted render model.
10
+ 4. Buyer views a hosted report link and/or downloads exports (audit packet, CSV, support bundle).
11
+ 5. (Optional) webhooks deliver verification status events.
12
+
13
+ ## Components
14
+
15
+ - **HTTP handlers**
16
+ - Vendor ingest: `POST /v1/ingest/:tenantId` (Bearer ingest key)
17
+ - Admin upload: `POST /v1/upload` (admin `x-api-key`)
18
+ - Hosted report/downloads: `GET /r/:token` and `GET /r/:token/<artifact>`
19
+ - Exports: audit packet, support bundle, security packet, CSV
20
+ - **Verification worker**
21
+ - Safe unzip with explicit budgets (rejects zip-slip/symlinks/duplicates/encrypted entries/zip bombs)
22
+ - Deterministic verification producing `VerifyCliOutput.v1`
23
+ - **Storage (filesystem under `MAGIC_LINK_DATA_DIR`)**
24
+ - Run blobs: bundle zip, verifier output, redacted summaries, PDFs, receipts, ClosePack surfaces
25
+ - Minimal immutable run record: `runs/<tenant>/<token>.json` (metadata-only)
26
+ - Audit/usage logs (JSONL) for accounting and operations
27
+ - **Maintenance**
28
+ - Retention sweeper deletes heavy artifacts after effective retention windows
29
+
30
+ ## Trust and integrity model
31
+
32
+ - Buyers supply governance trust roots and pricing signer keys out-of-band.
33
+ - Verification can run in strict or compat mode depending on policy and configured trust.
34
+ - Offline verifiability: the buyer can archive the bundle ZIP and deterministically re-verify it later without access to vendor systems.
35
+
36
+ ## Access control model
37
+
38
+ - Admin API: `x-api-key` (`MAGIC_LINK_API_KEY`)
39
+ - Vendor uploads: ingest keys (upload-only)
40
+ - Buyer sessions (optional): email OTP allowlist + RBAC roles (`viewer|approver|admin`)
41
+ - Decision capture (optional): email OTP gating for approve/hold
42
+
43
+ ## Operational exports
44
+
45
+ - **Audit packet**: archive-friendly, deterministic
46
+ - **Support bundle**: time-bounded; metadata-first; redacted settings snapshot; no raw bundles by default
47
+ - **Security & controls packet**: threat model + budgets + retention/redaction manifests + checksums
48
+
@@ -0,0 +1,19 @@
1
+ Subject: Verified invoice link (evidence-backed)
2
+
3
+ Hi,
4
+
5
+ Here is your verified invoice link:
6
+ <PASTE_MAGIC_LINK_HERE>
7
+
8
+ This link provides:
9
+ - Green/Amber/Red verification status
10
+ - Invoice totals + line item summary
11
+ - Stable error/warning codes when something fails
12
+ - Downloads for audit/offline replay (bundle ZIP + deterministic verification JSON + audit packet)
13
+ - Optional Approve/Hold decision capture with exportable record
14
+
15
+ If you need to re-verify offline, download the bundle ZIP from the page and run your verifier under your trust policy.
16
+
17
+ Thanks,
18
+ <YOUR_NAME>
19
+
@@ -0,0 +1,31 @@
1
+ # Settld Verified Invoice (Buyer one-pager)
2
+
3
+ This invoice link is backed by a **cryptographically verifiable bundle** (an `InvoiceBundle.v1`) that can be archived and re-verified later, offline.
4
+
5
+ ## What you see on the page
6
+
7
+ - **Green**: Verified with no warnings.
8
+ - **Amber**: Verified, but warnings are present (common early: governance trust anchors not configured for strict verification).
9
+ - **Red**: Verification failed.
10
+
11
+ ## What you can download
12
+
13
+ - **Bundle ZIP**: the exact artifact that was verified (archive this for audit).
14
+ - **Verification JSON** (`VerifyCliOutput.v1`): deterministic, machine-readable result (codes + hashes).
15
+ - **Producer receipt** (if present): `verify/verification_report.json` from inside the bundle (producer-signed).
16
+ - **Audit packet ZIP**: bundle ZIP + hosted verification JSON + any embedded receipt + PDF summary + decision record.
17
+ - **PDF summary**: non-normative human summary for compatibility (not the source of truth).
18
+
19
+ ## Approve / Hold
20
+
21
+ The page can record a simple **Approve / Hold** decision with a name + email + optional reason.
22
+
23
+ This decision record is a **service record** (non-normative) and can be exported as `decision_record_v0.json`.
24
+
25
+ ## Offline re-verification (recommended for audit)
26
+
27
+ 1. Download the **Bundle ZIP**.
28
+ 2. Verify locally using `settld-verify` (or another conforming verifier) under your trust policy.
29
+
30
+ See `offline-verify.md`.
31
+