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,190 @@
1
+ # Settld overview
2
+
3
+ Settld (as shipped in this repo) is **two products** that deliberately share the same “truth engine”:
4
+
5
+ 1. **Settld Protocol (open)**: a cryptographically verifiable artifact protocol (bundles + manifests + attestations + receipts) that can be verified offline by someone who does not trust the producer.
6
+ 2. **Settld Verify Cloud (commercial)**: a hosted workflow controller (“Magic Link”) that runs the same verifier server-side and turns verifiable artifacts into approvals, inbox views, exports, and automation hooks.
7
+
8
+ The core design principle is: the hosted product must never be “the only judge.” Everything it shows should be reproducible offline using the open verifier + explicit trust anchors.
9
+
10
+ ## What Settld solves
11
+
12
+ Delegated autonomous work (agents, automation services, and human-assisted workflows) produces disputes because evidence is messy and non-portable:
13
+
14
+ - “Prove the workflow actually completed under agreed terms.”
15
+ - “We’re withholding payment until evidence and settlement terms are clear.”
16
+ - “SLA breach—show deterministic evidence and evaluation outputs.”
17
+
18
+ Settld makes the invoice and its evidence a self-contained, verifiable bundle:
19
+
20
+ - Evidence artifacts are committed by hashes (integrity).
21
+ - Pricing terms can be buyer-approved by signature (authorization over terms).
22
+ - Invoice math is recomputable and deterministic (no “trust me” totals).
23
+ - A verifier can later prove pass/fail under explicit policy (strict vs compat).
24
+ - Verify Cloud makes this usable by buyers without requiring installs.
25
+
26
+ ## The end-to-end artifact story (protocol truth)
27
+
28
+ A producer emits a bundle directory tree (or a zip of that tree).
29
+
30
+ The bundle includes:
31
+
32
+ - `manifest.json`: commits to a list of file paths + hashes, excluding `verify/**` (no circular hashing).
33
+ - `attestation/bundle_head_attestation.json`: binds to the manifest hash.
34
+ - Optional `verify/verification_report.json`: a signed receipt that is not listed in the manifest but is cryptographically bound (by hashes) to the manifest and head attestation.
35
+
36
+ A verifier later:
37
+
38
+ - recomputes file hashes,
39
+ - recomputes manifest hash using canonical JSON rules,
40
+ - validates signatures,
41
+ - enforces governance and trust anchors,
42
+ - returns deterministic machine output with stable warning/error codes.
43
+
44
+ ## Protocol truth sources (what “counts”)
45
+
46
+ When docs disagree, the contract is:
47
+
48
+ 1. `docs/spec/` (human spec)
49
+ 2. `docs/spec/schemas/` (JSON Schemas)
50
+ 3. `test/fixtures/` (fixture corpus) + `conformance/v1/` (language-agnostic oracle)
51
+ 4. the reference verifier implementations (Node + Python), as constrained by conformance
52
+
53
+ ## Bundle kinds implemented
54
+
55
+ These are “directory-level protocols” with distinct manifest rules and verification logic:
56
+
57
+ - Proof bundles
58
+ - JobProofBundle.v1
59
+ - MonthProofBundle.v1
60
+ - Finance pack
61
+ - FinancePackBundle.v1
62
+ - Invoice bundle (work → terms → metering → claim)
63
+ - InvoiceBundle.v1 embeds JobProof under `payload/job_proof_bundle/**`
64
+ - ClosePack (pre-dispute “wedge pack”)
65
+ - ClosePack.v1 embeds an InvoiceBundle and adds deterministic recomputable indexing/evaluation surfaces for self-serve dispute resolution (evidence index + optional SLA/acceptance evaluation surfaces).
66
+
67
+ ## Toolchain CLIs
68
+
69
+ - `settld-produce`: deterministic bundle production (JobProof/MonthProof/FinancePack/InvoiceBundle/ClosePack).
70
+ - `settld-verify`: bundle verification (strict/compat), emits deterministic JSON output.
71
+ - `settld-release`: release authenticity verification for distribution artifacts.
72
+ - `settld-trust`: bootstrap trust materials for local testing/dev flows.
73
+
74
+ ## Verify Cloud (Magic Link)
75
+
76
+ Verify Cloud is a hosted controller that accepts bundle zip uploads and produces:
77
+
78
+ - View-only buyer report page (Green/Red/Amber with stable codes)
79
+ - Downloads:
80
+ - original bundle zip
81
+ - hosted verify JSON output
82
+ - producer receipt (if present in bundle)
83
+ - PDF summary (compat surface)
84
+ - audit packet zip (monthly)
85
+ - Workflow features:
86
+ - inbox listing/filtering for buyers
87
+ - vendor-scoped ingest keys (upload-only, vendor-stamped)
88
+ - tenant settings (mode defaults, policies, retention, quotas, webhook config)
89
+ - quotas + usage metering + billing invoice export
90
+ - approvals/holds with OTP gating and audit trail
91
+ - signed webhooks (or record-mode delivery in restricted environments)
92
+
93
+ Security posture for hosted ingestion is part of the product contract:
94
+
95
+ - safe zip extraction is centralized and shared by CLI + hosted ingestion
96
+ - budgets enforced during unzip and hashing
97
+ - hostile zip features are rejected (zip-slip, symlinks, duplicates, path attacks, bombs/ratios)
98
+
99
+ ## Quick “show me” commands
100
+
101
+ Protocol and conformance:
102
+
103
+ - `npm test`
104
+ - `node scripts/fixtures/generate-bundle-fixtures.mjs`
105
+ - `node conformance/v1/run.mjs --node-bin packages/artifact-verify/bin/settld-verify.js`
106
+
107
+ Local verify examples:
108
+
109
+ - `node packages/artifact-verify/bin/settld-verify.js --about --format json`
110
+ - `node packages/artifact-verify/bin/settld-verify.js --strict --format json --invoice-bundle <dir>`
111
+ - `node packages/artifact-verify/bin/settld-verify.js --strict --format json --close-pack <dir>`
112
+
113
+ Run Verify Cloud locally:
114
+
115
+ - `MAGIC_LINK_API_KEY=dev_key MAGIC_LINK_DATA_DIR=/tmp/settld-magic-link MAGIC_LINK_PORT=8787 node services/magic-link/src/server.js`
116
+
117
+ Upload a bundle zip:
118
+
119
+ - `node packages/magic-link-cli/bin/settld-magic-link.js upload <path-to-zip> --url http://localhost:8787 --mode auto --tenant <tenant>`
120
+
121
+ ## Gotchas that surprise new engineers
122
+
123
+ - Trust anchors are out-of-band by design (no trust loops).
124
+ - `verify/**` is excluded from manifests; receipts are validated by binding + signature, not by inclusion.
125
+ - Codes are the API, not logs (warnings and errors are stable identifiers).
126
+ - Canonical JSON is a hard contract; numeric semantics drift breaks cross-language parity.
127
+ - Safe zip ingestion is centralized so CLI + hosted don’t drift on security posture.
128
+ - When docs lag code, trust spec + conformance + fixtures.
129
+
130
+ ## Reading paths (10 files each)
131
+
132
+ ### A) New engineer (2–3 hours to become dangerous)
133
+
134
+ Goal: understand the “truth engine,” then the hosted controller.
135
+
136
+ 1. `docs/spec/README.md`
137
+ 2. `docs/spec/INVARIANTS.md`
138
+ 3. `docs/spec/CANONICAL_JSON.md`
139
+ 4. `docs/spec/STRICTNESS.md`
140
+ 5. `docs/spec/VerifyCliOutput.v1.md`
141
+ 6. `conformance/v1/README.md`
142
+ 7. `packages/artifact-verify/bin/settld-verify.js`
143
+ 8. `packages/artifact-verify/src/invoice-bundle.js`
144
+ 9. `packages/artifact-verify/src/safe-unzip.js`
145
+ 10. `services/magic-link/README.md`
146
+
147
+ ### B) Auditor / partner security reviewer
148
+
149
+ Goal: can we independently verify, and is ingestion safe?
150
+
151
+ 1. `docs/spec/README.md`
152
+ 2. `docs/spec/CRYPTOGRAPHY.md`
153
+ 3. `docs/spec/TRUST_ANCHORS.md`
154
+ 4. `docs/spec/BundleHeadAttestation.v1.md`
155
+ 5. `docs/spec/VerificationReport.v1.md`
156
+ 6. `docs/spec/WARNINGS.md`
157
+ 7. `docs/spec/ERRORS.md`
158
+ 8. `conformance/v1/README.md`
159
+ 9. `packages/artifact-verify/src/safe-unzip.js`
160
+ 10. `test/zip-security.test.js`
161
+
162
+ ### C) Buyer (AP / finance ops) viewpoint
163
+
164
+ Goal: what does this change in our invoice workflow?
165
+
166
+ 1. `docs/pilot-kit/README.md`
167
+ 2. `docs/pilot-kit/buyer-email.txt`
168
+ 3. `docs/pilot-kit/buyer-one-pager.md`
169
+ 4. `services/magic-link/README.md`
170
+ 5. `docs/spec/InvoiceClaim.v1.md`
171
+ 6. `docs/spec/PricingMatrix.v1.md`
172
+ 7. `docs/spec/MeteringReport.v1.md`
173
+ 8. `docs/spec/VerifyCliOutput.v1.md`
174
+ 9. `docs/spec/WARNINGS.md` (top-level meanings)
175
+ 10. `docs/spec/STRICTNESS.md` (strict vs compat posture)
176
+
177
+ ### D) Vendor CTO / operator engineering
178
+
179
+ Goal: how do I generate bundles and integrate?
180
+
181
+ 1. `docs/QUICKSTART_PRODUCE.md`
182
+ 2. `docs/QUICKSTART_VERIFY.md`
183
+ 3. `docs/spec/InvoiceBundleManifest.v1.md`
184
+ 4. `docs/spec/InvoiceClaim.v1.md`
185
+ 5. `docs/spec/PricingMatrix.v1.md`
186
+ 6. `docs/spec/MeteringReport.v1.md`
187
+ 7. `packages/artifact-produce/bin/settld-produce.js`
188
+ 8. `src/core/invoice-bundle.js`
189
+ 9. `packages/magic-link-cli/bin/settld-magic-link.js`
190
+ 10. `docs/pilot-kit/README.md`
@@ -0,0 +1,85 @@
1
+ # Performance Baseline (Local)
2
+
3
+ This doc is the repeatable “truth under load” baseline for Settld. Update it when hot-path behavior changes (indexes, worker concurrency, timeouts).
4
+
5
+ ## Prereqs
6
+
7
+ - Postgres running (recommended: `docker compose up -d postgres`)
8
+ - API running in PG mode with workers enabled:
9
+
10
+ ```sh
11
+ export STORE=pg
12
+ export DATABASE_URL=postgres://proxy:proxy@localhost:5432/proxy
13
+ export PROXY_AUTOTICK=1
14
+ export PROXY_OPS_TOKENS="dev:ops_read,ops_write,finance_read,finance_write,audit_read"
15
+ npm run dev:api
16
+ ```
17
+
18
+ - `k6` installed on your PATH.
19
+
20
+ Optional (high-signal):
21
+
22
+ - `PROXY_PG_LOG_SLOW_MS=100` to log `pg.query.slow` events.
23
+ - `PROXY_PG_WORKER_STATEMENT_TIMEOUT_MS=5000` to prevent worker “hung query” pileups.
24
+ - `PROXY_WORKER_CONCURRENCY_ARTIFACTS` / `PROXY_WORKER_CONCURRENCY_DELIVERIES` to tune throughput.
25
+
26
+ ## Scenario A: Ingest burst + ops reads
27
+
28
+ Runs job lifecycles at a constant arrival rate, while also hammering ops read endpoints.
29
+
30
+ ```sh
31
+ OPS_TOKEN=dev BASE_URL=http://localhost:3000 \
32
+ TENANTS=10 ROBOTS_PER_TENANT=3 JOBS_PER_MIN_PER_TENANT=50 DURATION=2m \
33
+ k6 run scripts/load/ingest-burst.k6.js
34
+ ```
35
+
36
+ Record:
37
+
38
+ - k6 summary p50/p95/p99 for `http_req_duration`
39
+ - `/healthz` over time: `outboxPending`, `deliveriesPending`, `deliveriesFailed`
40
+
41
+ ## Scenario B: Delivery stress (webhook failures + timeouts)
42
+
43
+ 1) Start the webhook receiver:
44
+
45
+ ```sh
46
+ PORT=4010 TIMEOUT_RATE_PCT=5 ERROR_RATE_PCT=5 TIMEOUT_DELAY_MS=10000 \
47
+ node scripts/load/webhook-receiver.js
48
+ ```
49
+
50
+ 2) Run the API with an export destination pointing at the receiver:
51
+
52
+ ```sh
53
+ export PROXY_EXPORT_DESTINATIONS='{
54
+ "tenant_default": [
55
+ { "destinationId": "dst", "kind": "webhook", "url": "http://127.0.0.1:4010/hook", "secret": "devsecret" }
56
+ ]
57
+ }'
58
+ export PROXY_DELIVERY_HTTP_TIMEOUT_MS=1000
59
+ ```
60
+
61
+ 3) Run load:
62
+
63
+ ```sh
64
+ OPS_TOKEN=dev BASE_URL=http://localhost:3000 \
65
+ TENANTS=3 ROBOTS_PER_TENANT=3 JOBS_PER_MIN_PER_TENANT=100 DURATION=2m \
66
+ k6 run scripts/load/delivery-stress.k6.js
67
+ ```
68
+
69
+ Record:
70
+
71
+ - `/healthz` backlog signals (steady state vs unbounded growth)
72
+ - `/ops/deliveries?state=failed` size and retry behavior
73
+
74
+ ## Current baseline (fill in)
75
+
76
+ - Date:
77
+ - Machine:
78
+ - Scenario A:
79
+ - p95 ingest/job endpoints:
80
+ - outboxPending steady state:
81
+ - Scenario B:
82
+ - deliveriesPending steady state:
83
+ - deliveriesFailed steady state:
84
+ - notes:
85
+
package/docs/PRD.md ADDED
@@ -0,0 +1,77 @@
1
+ # Settld PRD (v0)
2
+
3
+ ## One-line
4
+
5
+ Settld lets a person or business delegate real-world work to an agent (robot + optional operator assist) with strict limits, proof of what happened, and a clear “who pays if something goes wrong” answer.
6
+
7
+ ## Who it’s for
8
+
9
+ - **Requesters**: Households and Businesses that purchase outcomes (“Reset my apartment”).
10
+ - **Owners**: Entities that provide robot capacity (time/location/reliability) and receive payouts.
11
+ - **Operators**: Trained humans that provide remote assist and exception handling.
12
+ - **Developers**: Publish skills; Settld certifies and distributes them.
13
+ - **Trust Counterparty**: Insurance/guarantee/claims partner (initially) and later first-party.
14
+
15
+ ## Core promise
16
+
17
+ Delegation with accountability:
18
+
19
+ - Explicit authorization and revocation (where it can go / what it can touch / what it can record).
20
+ - Observable execution (telemetry, checkpoints, operator actions).
21
+ - Economic finality (escrow, payouts, refunds, chargebacks) with double-entry correctness.
22
+ - Claims-ready evidence (“black box”) that is privacy-respecting and tamper-evident.
23
+
24
+ ## MVP scope (first shippable)
25
+
26
+ Target environments: managed or semi-managed (apartments common areas, hotels/serviced apartments, offices after-hours).
27
+
28
+ MVP capabilities:
29
+
30
+ 1. **Task templates**: at least one narrow template (e.g., `reset_lite`).
31
+ 2. **Booking**: quote → book → schedule window.
32
+ 3. **Dispatch**: match robot + reserve; operator coverage optional but supported.
33
+ 4. **Execution control**: job state machine + step checkpoints.
34
+ 5. **Exception handling**: abort/assist/customer approval request path (logged).
35
+ 6. **Telemetry black box**: append-only, hash-chained events; incident evidence bundles.
36
+ 7. **Settlement ledger**: escrow, fee splits, refunds.
37
+ 8. **Ops console primitives**: ability to list active jobs, view timeline, see incidents.
38
+
39
+ ## Key user journeys
40
+
41
+ ### 1) Requester books outcome
42
+
43
+ 1. Select template + enter constraints (rooms allowed, pets, privacy mode, fragile items).
44
+ 2. Choose time window.
45
+ 3. Receive quote (transparent internally; auditable adjustments).
46
+ 4. Book (payment hold/escrow).
47
+ 5. Track execution (statuses + optional media based on privacy policy).
48
+ 6. Receive completion report; rate.
49
+
50
+ ### 2) Execution with assist
51
+
52
+ 1. Robot begins; emits heartbeats + checkpoints.
53
+ 2. Failure mode triggers exception policy:
54
+ - request customer approval, OR
55
+ - request operator assist, OR
56
+ - abort and exit safely.
57
+ 3. Operator intervention is structured and fully audited.
58
+
59
+ ### 3) Incident & claims
60
+
61
+ 1. Impact/complaint/flag triggers incident workflow.
62
+ 2. Evidence bundle generated (timeline + key frames + operator actions).
63
+ 3. Claim opened, triaged, resolved; refunds/payout adjustments via ledger.
64
+
65
+ ## Non-goals for MVP
66
+
67
+ - Full autonomy in random single-family homes.
68
+ - Unbounded, free-form “LLM runs the robot” behavior.
69
+ - Decentralized economics / blockchain dependence.
70
+
71
+ ## Success metrics (early)
72
+
73
+ - Completion rate (with assist) and incidents per job-hour.
74
+ - Operator minutes per job.
75
+ - On-time start and job duration variance.
76
+ - Claims rate, time-to-resolution, and net loss ratio.
77
+ - Gross margin per job (after ops + reserve).
@@ -0,0 +1,96 @@
1
+ # Kernel v0 Quickstart (Local)
2
+
3
+ Goal: run the full “economic loop” locally and inspect artifacts (holdback, disputes, deterministic adjustments, replay-evaluate).
4
+
5
+ ## No-Clone CLI Path
6
+
7
+ Registry form (recommended once package is published):
8
+
9
+ ```sh
10
+ npx settld --version
11
+ npx settld dev up
12
+ npx settld conformance kernel --ops-token tok_ops
13
+ ```
14
+
15
+ Release tarball fallback:
16
+
17
+ If you downloaded a release asset like `settld-<version>.tgz`, you can run CLI commands without cloning this repo:
18
+
19
+ ```sh
20
+ npx --yes --package ./settld-<version>.tgz settld --version
21
+ npx --yes --package ./settld-<version>.tgz settld dev up
22
+ npx --yes --package ./settld-<version>.tgz settld conformance kernel --ops-token tok_ops
23
+ ```
24
+
25
+ Use the same pattern for all commands in this doc.
26
+
27
+ ## 1) Start The Dev Stack
28
+
29
+ Recommended (one command):
30
+
31
+ ```sh
32
+ ./bin/settld.js dev up
33
+ ```
34
+
35
+ Equivalent (manual):
36
+
37
+ ```sh
38
+ docker compose --profile app up -d --build
39
+ docker compose --profile init run --rm minio-init
40
+ ```
41
+
42
+ Defaults:
43
+
44
+ - API: `http://127.0.0.1:3000`
45
+ - tenant: `tenant_default`
46
+ - ops token: `tok_ops`
47
+
48
+ ## 2) Run Kernel Conformance
49
+
50
+ This will exercise:
51
+
52
+ - tool-call holdback disputes (freeze maintenance tick, issue verdict, deterministic adjustment)
53
+ - marketplace run replay-evaluate (`/runs/:runId/settlement/replay-evaluate`)
54
+ - deterministic verifier plugin selection (`verifier://settld/deterministic/latency-threshold-v1` or `verifier://settld/deterministic/schema-check-v1`)
55
+
56
+ ```sh
57
+ ./bin/settld.js conformance kernel --ops-token tok_ops --json-out /tmp/settld-kernel-v0-report.json
58
+ ```
59
+
60
+ The runner prints `INFO ...` lines with `agreementHash` and `runId`.
61
+
62
+ ## 3) Open Kernel Explorer
63
+
64
+ Open:
65
+
66
+ `http://127.0.0.1:3000/ops/kernel/workspace?opsToken=tok_ops`
67
+
68
+ Then paste the `agreementHash` from conformance into the “Tool Call Agreement” panel.
69
+
70
+ ## 4) Verify Replay Evaluate
71
+
72
+ Use the `runId` printed by conformance:
73
+
74
+ ```sh
75
+ curl -sS "http://127.0.0.1:3000/runs/<runId>/settlement/replay-evaluate" \
76
+ -H "x-proxy-tenant-id: tenant_default" \
77
+ -H "x-proxy-ops-token: tok_ops" | jq
78
+ ```
79
+
80
+ ## Shutdown
81
+
82
+ ```sh
83
+ ./bin/settld.js dev down
84
+ ```
85
+
86
+ To wipe volumes (fresh DB + buckets):
87
+
88
+ ```sh
89
+ ./bin/settld.js dev down --wipe
90
+ ```
91
+
92
+ ## Product Surfaces
93
+
94
+ - Kernel v0 contract surface and guarantees: `docs/KERNEL_V0.md`
95
+ - Kernel Compatible badge criteria + listing flow: `docs/KERNEL_COMPATIBLE.md`
96
+ - Reference capability listing JSON: `docs/kernel-compatible/capabilities.json`