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,198 @@
1
+ # Quickstart: Profiles CLI
2
+
3
+ Goal: scaffold, validate, and simulate a policy profile with the Settld CLI.
4
+
5
+ ## Prerequisites
6
+
7
+ - Node.js 20+
8
+ - Repo checkout with dependencies installed (`npm ci`)
9
+
10
+ ## 0) One-command runtime setup (recommended before `profile apply`)
11
+
12
+ Non-interactive setup (manual mode):
13
+
14
+ ```bash
15
+ ./bin/settld.js setup --yes --mode manual --host codex --base-url http://127.0.0.1:3000 --tenant-id tenant_default --api-key sk_runtime_apply --profile-id engineering-spend
16
+ ```
17
+
18
+ `settld setup` now also emits `SETTLD_PAID_TOOLS_AGENT_PASSPORT` automatically, so paid MCP tools run with policy-bound passport context without manual JSON editing.
19
+ Add `--smoke` if you want setup to run an immediate MCP probe before moving on.
20
+
21
+ Bootstrap mode (same flow, runtime key minted by onboarding endpoint):
22
+
23
+ ```bash
24
+ ./bin/settld.js setup --yes --mode bootstrap --host codex --base-url https://api.settld.work --tenant-id tenant_default --bootstrap-api-key mlk_admin_xxx --bootstrap-key-id sk_runtime --bootstrap-scopes runs:read,runs:write --idempotency-key profile_setup_bootstrap_1
25
+ ```
26
+
27
+ If you only want runtime env + host wiring (without applying a profile), add:
28
+
29
+ ```bash
30
+ --skip-profile-apply
31
+ ```
32
+
33
+ To validate payment evidence early, run a paid demo after setup and verify the first exported receipt:
34
+
35
+ ```bash
36
+ npm run demo:mcp-paid-exa
37
+ jq -c 'first' artifacts/mcp-paid-exa/*/x402-receipts.export.jsonl > /tmp/settld-first-receipt.json
38
+ settld x402 receipt verify /tmp/settld-first-receipt.json --format json --json-out /tmp/settld-first-receipt.verify.json
39
+ ```
40
+
41
+ To verify MCP wiring immediately during setup, add:
42
+
43
+ ```bash
44
+ --smoke
45
+ ```
46
+
47
+ Single command that loads setup exports and applies a profile:
48
+
49
+ ```bash
50
+ eval "$(./bin/settld.js setup --yes --mode manual --host codex --base-url http://127.0.0.1:3000 --tenant-id tenant_default --api-key sk_runtime_apply | grep '^export ')" && ./bin/settld.js profile apply ./profiles/engineering-spend.profile.json --format json
51
+ ```
52
+
53
+ ## 1) List available starter profiles
54
+
55
+ Installed CLI:
56
+
57
+ ```bash
58
+ npx settld profile list
59
+ ```
60
+
61
+ Repo checkout:
62
+
63
+ ```bash
64
+ ./bin/settld.js profile list
65
+ ```
66
+
67
+ Example output:
68
+
69
+ ```text
70
+ engineering-spend engineering Engineering Spend <profile_fingerprint_sha256>
71
+ procurement procurement Procurement <profile_fingerprint_sha256>
72
+ data-api-buyer data Data API Buyer <profile_fingerprint_sha256>
73
+ support-automation support Support Automation <profile_fingerprint_sha256>
74
+ finance-controls finance Finance Controls <profile_fingerprint_sha256>
75
+ growth-marketing marketing Growth Marketing <profile_fingerprint_sha256>
76
+ ```
77
+
78
+ ## 2) Initialize a profile
79
+
80
+ Installed CLI:
81
+
82
+ ```bash
83
+ npx settld profile init engineering-spend --out ./profiles/engineering-spend.profile.json
84
+ ```
85
+
86
+ Repo checkout:
87
+
88
+ ```bash
89
+ ./bin/settld.js profile init engineering-spend --out ./profiles/engineering-spend.profile.json
90
+ ```
91
+
92
+ Example output:
93
+
94
+ ```text
95
+ ok engineering-spend /home/you/repo/profiles/engineering-spend
96
+ ```
97
+
98
+ ## 3) Validate profile schema + semantics
99
+
100
+ Installed CLI:
101
+
102
+ ```bash
103
+ npx settld profile validate ./profiles/engineering-spend.profile.json --format json
104
+ ```
105
+
106
+ Repo checkout:
107
+
108
+ ```bash
109
+ ./bin/settld.js profile validate ./profiles/engineering-spend.profile.json --format json
110
+ ```
111
+
112
+ Example output:
113
+
114
+ ```json
115
+ {
116
+ "schemaVersion": "SettldProfileValidationReport.v1",
117
+ "ok": true,
118
+ "profileId": "engineering-spend",
119
+ "profileFingerprintVersion": "SettldProfileFingerprint.v1",
120
+ "profileFingerprint": "<sha256>",
121
+ "errors": [],
122
+ "warnings": []
123
+ }
124
+ ```
125
+
126
+ ## 4) Simulate policy decisions
127
+
128
+ Installed CLI:
129
+
130
+ ```bash
131
+ npx settld profile simulate ./profiles/engineering-spend.profile.json --format json
132
+ ```
133
+
134
+ Repo checkout:
135
+
136
+ ```bash
137
+ ./bin/settld.js profile simulate ./profiles/engineering-spend.profile.json --format json
138
+ ```
139
+
140
+ Example output:
141
+
142
+ ```json
143
+ {
144
+ "schemaVersion": "SettldProfileSimulationReport.v1",
145
+ "ok": true,
146
+ "profileId": "engineering-spend",
147
+ "decision": "allow",
148
+ "requiredApprovers": 0,
149
+ "approvalsProvided": 0,
150
+ "selectedApprovalTier": "auto",
151
+ "reasons": [],
152
+ "reasonCodes": [],
153
+ "reasonDetails": [],
154
+ "reasonRegistryVersion": "SettldProfileSimulationReasonRegistry.v1",
155
+ "profileFingerprintVersion": "SettldProfileFingerprint.v1",
156
+ "profileFingerprint": "<sha256>"
157
+ }
158
+ ```
159
+
160
+ To simulate with explicit scenario data:
161
+
162
+ ```bash
163
+ ./bin/settld.js profile simulate ./profiles/engineering-spend.profile.json --scenario ./test/fixtures/profile/scenario-allow.json --format json
164
+ ```
165
+
166
+ ## 5) Apply profile to runtime
167
+
168
+ Set runtime connection/auth values:
169
+
170
+ ```bash
171
+ export SETTLD_BASE_URL=http://127.0.0.1:3000
172
+ export SETTLD_TENANT_ID=tenant_default
173
+ export SETTLD_API_KEY=sk_runtime_apply
174
+ # optional override:
175
+ export SETTLD_SPONSOR_WALLET_REF=wallet_ops_default
176
+ ```
177
+
178
+ Dry-run first (no live writes):
179
+
180
+ ```bash
181
+ ./bin/settld.js profile apply ./profiles/engineering-spend.profile.json --dry-run --format json
182
+ ```
183
+
184
+ Then execute live apply:
185
+
186
+ ```bash
187
+ ./bin/settld.js profile apply ./profiles/engineering-spend.profile.json --format json
188
+ ```
189
+
190
+ `profile apply` also accepts runtime-prefixed aliases:
191
+ `SETTLD_RUNTIME_BASE_URL`, `SETTLD_RUNTIME_TENANT_ID`, `SETTLD_RUNTIME_BEARER_TOKEN`.
192
+
193
+ ## Common troubleshooting
194
+
195
+ - `unknown profile`: run `settld profile list` and use one of the listed IDs.
196
+ - `validation failed`: fix reported schema/semantic errors, then rerun `profile validate`.
197
+ - `scenario file not found`: pass an existing JSON scenario path to `profile simulate`.
198
+ - `profile apply missing runtime config`: set runtime base URL, tenant ID, bearer token, and wallet ref before running live apply.
@@ -0,0 +1,39 @@
1
+ # Quickstart: Verify a Settld Release (Authenticity)
2
+
3
+ This verifies Settld **distribution artifacts** (npm tarballs, conformance pack, audit packet) using a signed `ReleaseIndex.v1` rooted in a release trust file.
4
+
5
+ ## Offline verification (recommended)
6
+
7
+ 1) Download a release’s assets into a directory (example: `./release/`), including:
8
+
9
+ - `release_index_v1.json`
10
+ - `release_index_v1.sig`
11
+ - every artifact listed in `release_index_v1.json.artifacts[]`
12
+
13
+ 2) Verify using the pinned release trust roots:
14
+
15
+ ```sh
16
+ settld-release verify --dir ./release --trust-file trust/release-trust.json --format json --explain
17
+ ```
18
+
19
+ - Exit code `0` means verified.
20
+ - `--format json` prints `VerifyReleaseOutput.v1` to stdout (pipe-safe, deterministic).
21
+ - `--explain` prints deterministic diagnostics to stderr.
22
+
23
+ ## Mirror/HTTP verification (base URL)
24
+
25
+ If your org mirrors release assets under a single base URL:
26
+
27
+ ```sh
28
+ settld-release verify --base-url https://example.com/settld/releases/v1.0.0-rc.1/ --trust-file trust/release-trust.json --format json --explain
29
+ ```
30
+
31
+ This downloads `release_index_v1.json`, `release_index_v1.sig`, then downloads every artifact referenced by the index (relative to the base URL) into a temp directory before verifying.
32
+
33
+ ## Trust domains (important)
34
+
35
+ Release authenticity trust roots are **separate** from bundle verification trust roots.
36
+
37
+ - Release trust: `trust/release-trust.json`
38
+ - Bundle verification trust: `SETTLD_TRUSTED_GOVERNANCE_ROOT_KEYS_JSON` / `trust.json` (see `docs/spec/TRUST_ANCHORS.md`)
39
+
@@ -0,0 +1,125 @@
1
+ # Quickstart: First verified agent run with the SDK
2
+
3
+ Goal: run one end-to-end agent transaction (register identities, append run events, verify `green`, release settlement) using `SettldClient.firstVerifiedRun(...)`.
4
+
5
+ ## 0) Install deps
6
+
7
+ ```sh
8
+ npm ci
9
+ ```
10
+
11
+ ## Fast Path (recommended)
12
+
13
+ Use the helper scripts to avoid manual export churn across shells:
14
+
15
+ ```sh
16
+ npm run dev:env:init
17
+ # edit .env.dev with your DATABASE_URL once
18
+ ```
19
+
20
+ Start API:
21
+
22
+ ```sh
23
+ npm run dev:start
24
+ ```
25
+
26
+ In another shell:
27
+
28
+ ```sh
29
+ source scripts/dev/env.sh
30
+ npm run dev:sdk:first-run
31
+ ```
32
+
33
+ Run the full billing + dispute + arbitration doctor flow:
34
+
35
+ ```sh
36
+ source scripts/dev/env.sh
37
+ npm run dev:billing:doctor
38
+ ```
39
+
40
+ Optional: make `sdk:first-run` create a disputable settlement window:
41
+
42
+ ```sh
43
+ SETTLD_SDK_DISPUTE_WINDOW_DAYS=3 npm run sdk:first-run
44
+ ```
45
+
46
+ ## 1) Start the API with a local ops token
47
+
48
+ ```sh
49
+ export PROXY_OPS_TOKEN=dev_ops_token
50
+ npm run dev:api
51
+ ```
52
+
53
+ ## 2) Create an API key for SDK calls
54
+
55
+ In a second shell:
56
+
57
+ ```sh
58
+ export SETTLD_BASE_URL=http://127.0.0.1:3000
59
+ export SETTLD_TENANT_ID=tenant_default
60
+ export SETTLD_API_KEY="$(
61
+ curl -sS -X POST "$SETTLD_BASE_URL/ops/api-keys" \
62
+ -H "authorization: Bearer $PROXY_OPS_TOKEN" \
63
+ -H "x-proxy-tenant-id: $SETTLD_TENANT_ID" \
64
+ -H "content-type: application/json" \
65
+ -d '{"scopes":["ops_read","ops_write","finance_read","finance_write","audit_read"],"description":"sdk quickstart"}' \
66
+ | jq -r '.keyId + "." + .secret'
67
+ )"
68
+ ```
69
+
70
+ ## 3) Run the SDK example
71
+
72
+ ```sh
73
+ node scripts/examples/sdk-first-verified-run.mjs
74
+ ```
75
+
76
+ Expected output:
77
+
78
+ ```json
79
+ {
80
+ "runId": "run_sdk_...",
81
+ "payeeAgentId": "agt_payee_...",
82
+ "payerAgentId": "agt_payer_...",
83
+ "runStatus": "completed",
84
+ "verificationStatus": "green",
85
+ "settlementStatus": "released"
86
+ }
87
+ ```
88
+
89
+ ## 4) Use the helper directly in code
90
+
91
+ ```js
92
+ import { SettldClient } from "./packages/api-sdk/src/index.js";
93
+
94
+ const client = new SettldClient({
95
+ baseUrl: process.env.SETTLD_BASE_URL,
96
+ tenantId: process.env.SETTLD_TENANT_ID,
97
+ apiKey: process.env.SETTLD_API_KEY,
98
+ xApiKey: process.env.SETTLD_X_API_KEY // optional for Magic Link deployments that enforce x-api-key
99
+ });
100
+
101
+ const result = await client.firstVerifiedRun({
102
+ payeeAgent: { publicKeyPem: "...", owner: { ownerType: "service", ownerId: "svc_a" } },
103
+ payerAgent: { publicKeyPem: "...", owner: { ownerType: "service", ownerId: "svc_b" } },
104
+ payerCredit: { amountCents: 5000 },
105
+ settlement: { amountCents: 1200 },
106
+ run: { taskType: "translation" }
107
+ });
108
+ ```
109
+
110
+ ## 5) Pull tenant analytics + trust graph (Magic Link)
111
+
112
+ ```js
113
+ const analytics = await client.getTenantAnalytics("tenant_default", { month: "2026-02", bucket: "day", limit: 20 });
114
+ const graph = await client.getTenantTrustGraph("tenant_default", { month: "2026-02", minRuns: 1, maxEdges: 200 });
115
+ const diff = await client.diffTenantTrustGraph("tenant_default", { baseMonth: "2026-01", compareMonth: "2026-02", limit: 50 });
116
+ ```
117
+
118
+ Or run the prebuilt script:
119
+
120
+ ```sh
121
+ SETTLD_BASE_URL=http://127.0.0.1:8787 \
122
+ SETTLD_TENANT_ID=tenant_default \
123
+ SETTLD_X_API_KEY=test_key \
124
+ npm run sdk:analytics
125
+ ```
@@ -0,0 +1,111 @@
1
+ # Quickstart: First verified agent run (Python SDK)
2
+
3
+ Goal: run one end-to-end agent transaction (register identities, append run events, verify `green`, release settlement) using Python.
4
+
5
+ ## 0) Install deps
6
+
7
+ ```sh
8
+ npm ci
9
+ ```
10
+
11
+ ## 1) Start the API with a local ops token
12
+
13
+ ```sh
14
+ export PROXY_OPS_TOKEN=dev_ops_token
15
+ npm run dev:api
16
+ ```
17
+
18
+ ## 2) Create an API key for SDK calls
19
+
20
+ In a second shell:
21
+
22
+ ```sh
23
+ export SETTLD_BASE_URL=http://127.0.0.1:3000
24
+ export SETTLD_TENANT_ID=tenant_default
25
+ export SETTLD_API_KEY="$(
26
+ curl -sS -X POST "$SETTLD_BASE_URL/ops/api-keys" \
27
+ -H "authorization: Bearer $PROXY_OPS_TOKEN" \
28
+ -H "x-proxy-tenant-id: $SETTLD_TENANT_ID" \
29
+ -H "content-type: application/json" \
30
+ -d '{"scopes":["ops_read","ops_write","finance_read","finance_write","audit_read"],"description":"python sdk quickstart"}' \
31
+ | jq -r '.keyId + "." + .secret'
32
+ )"
33
+ ```
34
+
35
+ ## 3) Run the Python SDK example
36
+
37
+ ```sh
38
+ PYTHONDONTWRITEBYTECODE=1 python3 scripts/examples/sdk-first-verified-run.py
39
+ ```
40
+
41
+ Expected output:
42
+
43
+ ```json
44
+ {
45
+ "runId": "run_sdk_py_...",
46
+ "payeeAgentId": "agt_py_payee_...",
47
+ "payerAgentId": "agt_py_payer_...",
48
+ "runStatus": "completed",
49
+ "verificationStatus": "green",
50
+ "settlementStatus": "released"
51
+ }
52
+ ```
53
+
54
+ ## 4) Use the helper directly in code
55
+
56
+ ```python
57
+ from settld_api_sdk import SettldClient
58
+
59
+ client = SettldClient(
60
+ base_url="http://127.0.0.1:3000",
61
+ tenant_id="tenant_default",
62
+ api_key="keyId.secret",
63
+ x_api_key="magic_link_api_key", # optional for Magic Link deployments that enforce x-api-key
64
+ )
65
+
66
+ result = client.first_verified_run(
67
+ {
68
+ "payee_agent": {"publicKeyPem": "...", "owner": {"ownerType": "service", "ownerId": "svc_a"}},
69
+ "payer_agent": {"publicKeyPem": "...", "owner": {"ownerType": "service", "ownerId": "svc_b"}},
70
+ "payer_credit": {"amountCents": 5000},
71
+ "settlement": {"amountCents": 1200},
72
+ "run": {"taskType": "translation"},
73
+ }
74
+ )
75
+ ```
76
+
77
+ ## 5) Run a paid marketplace RFQ flow
78
+
79
+ ```sh
80
+ PYTHONDONTWRITEBYTECODE=1 python3 scripts/examples/sdk-first-paid-rfq.py
81
+ ```
82
+
83
+ Expected output:
84
+
85
+ ```json
86
+ {
87
+ "rfqId": "rfq_py_...",
88
+ "runId": "run_rfq_py_...",
89
+ "posterAgentId": "agt_py_poster_...",
90
+ "bidderAgentId": "agt_py_bidder_...",
91
+ "verificationStatus": "green",
92
+ "settlementStatus": "released"
93
+ }
94
+ ```
95
+
96
+ ## 6) Pull tenant analytics + trust graph (Magic Link)
97
+
98
+ ```python
99
+ analytics = client.get_tenant_analytics("tenant_default", {"month": "2026-02", "bucket": "day", "limit": 20})
100
+ graph = client.get_tenant_trust_graph("tenant_default", {"month": "2026-02", "minRuns": 1, "maxEdges": 200})
101
+ diff = client.diff_tenant_trust_graph("tenant_default", {"baseMonth": "2026-01", "compareMonth": "2026-02", "limit": 50})
102
+ ```
103
+
104
+ Or run the prebuilt script:
105
+
106
+ ```sh
107
+ SETTLD_BASE_URL=http://127.0.0.1:8787 \
108
+ SETTLD_TENANT_ID=tenant_default \
109
+ SETTLD_X_API_KEY=test_key \
110
+ npm run sdk:analytics:py
111
+ ```
@@ -0,0 +1,54 @@
1
+ # Quickstart: Verify a bundle
2
+
3
+ Goal: verify a Settld bundle directory and produce a stable machine-readable receipt (`VerifyCliOutput.v1`) suitable for CI gating and audit retention.
4
+
5
+ ## From source (this repo)
6
+
7
+ Install dependencies:
8
+
9
+ ```sh
10
+ npm ci
11
+ ```
12
+
13
+ Verify a bundle fixture (strict):
14
+
15
+ ```sh
16
+ export SETTLD_TRUSTED_GOVERNANCE_ROOT_KEYS_JSON="$(node -e "import fs from 'node:fs'; const t=JSON.parse(fs.readFileSync('test/fixtures/bundles/v1/trust.json','utf8')); process.stdout.write(JSON.stringify(t.governanceRoots||{}))")"
17
+ node packages/artifact-verify/bin/settld-verify.js --format json --strict --job-proof test/fixtures/bundles/v1/jobproof/strict-pass > settld-verify-output.json
18
+ ```
19
+
20
+ Optional: emit SARIF for GitHub annotations:
21
+
22
+ ```sh
23
+ node packages/artifact-verify/bin/settld-verify.js --format sarif --strict --job-proof test/fixtures/bundles/v1/jobproof/strict-pass > settld-verify.sarif
24
+ ```
25
+
26
+ ## Strict vs non-strict
27
+
28
+ - **Strict** (`--strict`): audit posture; missing required protocol surfaces are hard failures.
29
+ - **Non-strict** (omit `--strict`): compatibility posture; missing legacy surfaces become warnings.
30
+
31
+ ## Warnings and CI gating
32
+
33
+ - Warnings are structured codes (see `docs/spec/WARNINGS.md`).
34
+ - To fail CI when warnings exist, add `--fail-on-warnings`.
35
+
36
+ ## Trust anchors
37
+
38
+ Strict verification needs trusted governance root keys. Provide them via:
39
+
40
+ - `SETTLD_TRUSTED_GOVERNANCE_ROOT_KEYS_JSON`
41
+ - `SETTLD_TRUSTED_TIME_AUTHORITY_KEYS_JSON` (only if you want to verify timestamp proofs)
42
+
43
+ See `docs/spec/TRUST_ANCHORS.md`.
44
+
45
+ ## Output + provenance
46
+
47
+ `settld-verify --format json` emits `VerifyCliOutput.v1`:
48
+
49
+ - `ok`: overall CLI verdict (includes `--fail-on-warnings`)
50
+ - `verificationOk`: underlying verification verdict
51
+ - `errors[]` / `warnings[]`: stable codes, deterministically sorted
52
+ - `tool.version` / `tool.commit`: provenance identifiers
53
+
54
+ If `tool.version` or `tool.commit` cannot be determined, you may see warnings like `TOOL_VERSION_UNKNOWN` / `TOOL_COMMIT_UNKNOWN` (see `docs/spec/TOOL_PROVENANCE.md`).