settld 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -3
- package/SETTLD_VERSION +1 -1
- package/bin/settld-mcp +2 -0
- package/bin/settld.js +71 -0
- package/conformance/kernel-v0/README.md +7 -0
- package/conformance/kernel-v0/run.mjs +292 -4
- package/docs/ACCESS.md +57 -0
- package/docs/ADOPTION_CHECKLIST.md +44 -0
- package/docs/ALERTS.md +198 -0
- package/docs/ARCHITECTURE.md +69 -0
- package/docs/ARCHITECTURE_FOUNDER_GUIDE.md +284 -0
- package/docs/ARTIFACTS.md +60 -0
- package/docs/CERTIFICATION_CHECKLIST.md +33 -0
- package/docs/CIRCLE_SANDBOX_E2E.md +152 -0
- package/docs/CONFIG.md +297 -0
- package/docs/CONTRACTS_APIS.md +23 -0
- package/docs/DEPRECATION.md +31 -0
- package/docs/DOMAIN_MODEL.md +92 -0
- package/docs/EVENT_ENVELOPE.md +53 -0
- package/docs/FINANCE_PACK_FORMAT.md +53 -0
- package/docs/INCIDENT_TAXONOMY.md +30 -0
- package/docs/JOB_STATE_MACHINE.md +66 -0
- package/docs/KERNEL_COMPATIBLE.md +60 -0
- package/docs/KERNEL_V0.md +40 -0
- package/docs/KEY_ROTATION.md +80 -0
- package/docs/LEDGER.md +82 -0
- package/docs/LIVENESS.md +76 -0
- package/docs/MVP_BUILD_ORDER.md +36 -0
- package/docs/ONCALL_PLAYBOOK.md +39 -0
- package/docs/OPERATIONS_SIGNING.md +20 -0
- package/docs/OVERVIEW.md +190 -0
- package/docs/PERF_BASELINE.md +85 -0
- package/docs/PRD.md +77 -0
- package/docs/QUICKSTART_KERNEL_V0.md +96 -0
- package/docs/QUICKSTART_MCP.md +377 -0
- package/docs/QUICKSTART_MCP_HOSTS.md +210 -0
- package/docs/QUICKSTART_POLICY_PACKS.md +65 -0
- package/docs/QUICKSTART_PRODUCE.md +61 -0
- package/docs/QUICKSTART_PROFILES.md +198 -0
- package/docs/QUICKSTART_RELEASE_VERIFY.md +39 -0
- package/docs/QUICKSTART_SDK.md +125 -0
- package/docs/QUICKSTART_SDK_PYTHON.md +111 -0
- package/docs/QUICKSTART_VERIFY.md +54 -0
- package/docs/QUICKSTART_X402_GATEWAY.md +317 -0
- package/docs/README.md +33 -0
- package/docs/RELEASE_CHECKLIST.md +182 -0
- package/docs/RELEASING.md +82 -0
- package/docs/REPO_SETTINGS.md +37 -0
- package/docs/RUNBOOK.md +86 -0
- package/docs/SKILLS.md +42 -0
- package/docs/SKILL_BUNDLE_FORMAT.md +48 -0
- package/docs/SLO.md +131 -0
- package/docs/SUMMARY.md +17 -0
- package/docs/SUPPORT.md +31 -0
- package/docs/THREAT_MODEL.md +36 -0
- package/docs/TRUST.md +59 -0
- package/docs/WORKFLOW.md +35 -0
- package/docs/X402_BATCH_SETTLEMENT.md +126 -0
- package/docs/blog/2026-02-14-your-ai-agent-just-spent-500-where-is-the-receipt.md +73 -0
- package/docs/examples/x402-provider-payout-registry.example.json +14 -0
- package/docs/gitbook/README.md +64 -0
- package/docs/gitbook/SETUP.md +25 -0
- package/docs/gitbook/SUMMARY.md +15 -0
- package/docs/gitbook/api-reference.md +73 -0
- package/docs/gitbook/closepacks.md +55 -0
- package/docs/gitbook/conformance.md +59 -0
- package/docs/gitbook/core-primitives.md +85 -0
- package/docs/gitbook/dispute-lifecycle.md +33 -0
- package/docs/gitbook/faq.md +21 -0
- package/docs/gitbook/guides.md +49 -0
- package/docs/gitbook/operations-runbook.md +36 -0
- package/docs/gitbook/quickstart.md +103 -0
- package/docs/gitbook/replay-and-audit.md +30 -0
- package/docs/gitbook/sdk-reference.md +35 -0
- package/docs/gitbook/security-model.md +58 -0
- package/docs/integrations/README.md +15 -0
- package/docs/integrations/github-actions-verify.yml +31 -0
- package/docs/integrations/github-actions.md +34 -0
- package/docs/integrations/openclaw/CLAWHUB_PUBLISH_CHECKLIST.md +65 -0
- package/docs/integrations/openclaw/PUBLIC_QUICKSTART.md +95 -0
- package/docs/integrations/openclaw/settld-mcp-skill/SKILL.md +69 -0
- package/docs/integrations/openclaw/settld-mcp-skill/mcp-server.example.json +12 -0
- package/docs/kernel-compatible/capabilities.json +36 -0
- package/docs/marketing/agent-commerce-substrate.md +78 -0
- package/docs/marketing/hn-repost-2026-02-17.md +102 -0
- package/docs/marketing/show-hn-post.md +45 -0
- package/docs/ops/ARTIFACT_VERIFICATION_STATUS.md +43 -0
- package/docs/ops/BILLING_WEBHOOK_REPLAY.md +105 -0
- package/docs/ops/CI_FLAKE_BUDGET.md +31 -0
- package/docs/ops/DISPUTE_FINANCE_RECONCILIATION_PACKET.md +56 -0
- package/docs/ops/GO_LIVE_GATE_S13.md +27 -0
- package/docs/ops/HOSTED_BASELINE_R2.md +129 -0
- package/docs/ops/KERNEL_V0_SHIP_GATE.md +69 -0
- package/docs/ops/LIGHTHOUSE_PRODUCTION_CLOSE.md +51 -0
- package/docs/ops/MCP_COMPATIBILITY_MATRIX.md +30 -0
- package/docs/ops/MINIMUM_PRODUCTION_TOPOLOGY.md +89 -0
- package/docs/ops/P0_BACKEND_PROGRESS.md +150 -0
- package/docs/ops/PAYMENTS_ALPHA_R5.md +105 -0
- package/docs/ops/PILOT_ONBOARDING_RUNBOOK.md +112 -0
- package/docs/ops/PRODUCTION_DEPLOYMENT_CHECKLIST.md +140 -0
- package/docs/ops/R1_SLOS.md +66 -0
- package/docs/ops/RELEASE_SIGNING_INCIDENT.md +58 -0
- package/docs/ops/SELF_SERVE_LAUNCH_AUTOMATION.md +89 -0
- package/docs/ops/THROUGHPUT_DRILL_10X.md +48 -0
- package/docs/ops/TRUST_CONFIG_WIZARD.md +60 -0
- package/docs/ops/X402_PILOT_WEEKLY_METRICS.md +76 -0
- package/docs/ops/tool-call-disputes-holdback.md +52 -0
- package/docs/pilot-kit/PILOT_PACKAGE_SCORECARD_X402.md +46 -0
- package/docs/pilot-kit/README.md +29 -0
- package/docs/pilot-kit/architecture-one-pager.md +48 -0
- package/docs/pilot-kit/buyer-email.txt +19 -0
- package/docs/pilot-kit/buyer-one-pager.md +31 -0
- package/docs/pilot-kit/gtm-pilot-playbook.md +182 -0
- package/docs/pilot-kit/offline-verify.md +33 -0
- package/docs/pilot-kit/procurement-one-pager.md +50 -0
- package/docs/pilot-kit/rfp-clause.md +46 -0
- package/docs/pilot-kit/roi-calculator-template.csv +2 -0
- package/docs/pilot-kit/security-qa.md +153 -0
- package/docs/pilot-kit/security-summary.md +35 -0
- package/docs/plans/2026-02-13-mcp-spike-design.md +113 -0
- package/docs/plans/2026-02-20-trust-os-v1-jira-backlog.md +348 -0
- package/docs/plans/2026-02-21-agent-economic-actor-operating-model.md +169 -0
- package/docs/plans/2026-02-21-trust-os-v1-strategy.md +241 -0
- package/docs/research/2026-02-21-agent-spend-host-landscape.md +57 -0
- package/docs/spec/AcceptanceCriteria.v1.md +17 -0
- package/docs/spec/AcceptanceEvaluation.v1.md +10 -0
- package/docs/spec/AgentEvent.v1.md +47 -0
- package/docs/spec/AgentIdentity.v1.md +62 -0
- package/docs/spec/AgentPassport.v1.md +95 -0
- package/docs/spec/AgentReputation.v1.md +59 -0
- package/docs/spec/AgentReputation.v2.md +52 -0
- package/docs/spec/AgentRun.v1.md +47 -0
- package/docs/spec/AgentRunSettlement.v1.md +52 -0
- package/docs/spec/AgentWallet.v1.md +43 -0
- package/docs/spec/AgreementDelegation.v1.md +109 -0
- package/docs/spec/ArbitrationCase.v1.md +67 -0
- package/docs/spec/ArbitrationOutcomeMapping.v1.md +62 -0
- package/docs/spec/ArbitrationVerdict.v1.md +60 -0
- package/docs/spec/BundleHeadAttestation.v1.md +32 -0
- package/docs/spec/CANONICAL_JSON.md +31 -0
- package/docs/spec/CRYPTOGRAPHY.md +61 -0
- package/docs/spec/ClosePack.v1.md +49 -0
- package/docs/spec/ClosePackManifest.v1.md +24 -0
- package/docs/spec/DelegationGrant.v1.md +90 -0
- package/docs/spec/DisputeCaseLifecycle.v1.md +51 -0
- package/docs/spec/DisputeOpenEnvelope.v1.md +43 -0
- package/docs/spec/ERRORS.md +76 -0
- package/docs/spec/ESCROW_NETTING_INVARIANTS.md +71 -0
- package/docs/spec/EvidenceIndex.v1.md +20 -0
- package/docs/spec/ExecutionIntent.v1.md +90 -0
- package/docs/spec/FinancePackBundleManifest.v1.md +24 -0
- package/docs/spec/FundingHold.v1.md +60 -0
- package/docs/spec/GovernancePolicy.v1.md +34 -0
- package/docs/spec/GovernancePolicy.v2.md +30 -0
- package/docs/spec/INVARIANTS.md +389 -0
- package/docs/spec/InteractionDirectionMatrix.v1.md +30 -0
- package/docs/spec/InvoiceBundleManifest.v1.md +24 -0
- package/docs/spec/InvoiceClaim.v1.md +11 -0
- package/docs/spec/MONEY_RAIL_STATE_MACHINE.md +58 -0
- package/docs/spec/MarketplaceAcceptance.v2.md +46 -0
- package/docs/spec/MarketplaceOffer.v2.md +54 -0
- package/docs/spec/MeteringReport.v1.md +18 -0
- package/docs/spec/OperatorAction.v1.md +90 -0
- package/docs/spec/PRODUCER_ERRORS.md +42 -0
- package/docs/spec/PolicyDecision.v1.md +83 -0
- package/docs/spec/PricingMatrix.v1.md +20 -0
- package/docs/spec/PricingMatrixSignatures.v1.md +30 -0
- package/docs/spec/PricingMatrixSignatures.v2.md +29 -0
- package/docs/spec/ProduceCliOutput.v1.md +46 -0
- package/docs/spec/ProofBundleManifest.v1.md +24 -0
- package/docs/spec/README.md +109 -0
- package/docs/spec/REFERENCE_IMPLEMENTATIONS.md +29 -0
- package/docs/spec/REFERENCE_VERIFIER_BEHAVIOR.md +68 -0
- package/docs/spec/REMOTE_SIGNER.md +66 -0
- package/docs/spec/ReleaseIndex.v1.md +32 -0
- package/docs/spec/ReleaseIndexSignatures.v1.md +17 -0
- package/docs/spec/ReleaseTrust.v1.md +13 -0
- package/docs/spec/ReleaseTrust.v2.md +26 -0
- package/docs/spec/RemoteSignerRequest.v1.md +21 -0
- package/docs/spec/RemoteSignerResponse.v1.md +16 -0
- package/docs/spec/ReputationEvent.v1.md +63 -0
- package/docs/spec/RevocationList.v1.md +28 -0
- package/docs/spec/SIGNER_PROVIDER_PLUGIN.md +32 -0
- package/docs/spec/STRICTNESS.md +68 -0
- package/docs/spec/SUPPLY_CHAIN.md +33 -0
- package/docs/spec/SettlementAdjustment.v1.md +45 -0
- package/docs/spec/SettlementDecisionRecord.v1.md +48 -0
- package/docs/spec/SettlementDecisionRecord.v2.md +53 -0
- package/docs/spec/SettlementDecisionReport.v1.md +44 -0
- package/docs/spec/SettlementKernel.v1.md +59 -0
- package/docs/spec/SettlementReceipt.v1.md +63 -0
- package/docs/spec/SlaDefinition.v1.md +24 -0
- package/docs/spec/SlaEvaluation.v1.md +12 -0
- package/docs/spec/THREAT_MODEL.md +113 -0
- package/docs/spec/TOOL_PROVENANCE.md +30 -0
- package/docs/spec/TRUST_ANCHORS.md +84 -0
- package/docs/spec/TenantSettings.v1.md +90 -0
- package/docs/spec/TenantSettings.v2.md +99 -0
- package/docs/spec/TimestampProof.v1.md +25 -0
- package/docs/spec/ToolCallAgreement.v1.md +34 -0
- package/docs/spec/ToolCallEvidence.v1.md +47 -0
- package/docs/spec/ToolManifest.v1.md +47 -0
- package/docs/spec/VERIFIER_ENVIRONMENT.md +38 -0
- package/docs/spec/VERSIONING.md +107 -0
- package/docs/spec/VerificationReport.v1.md +50 -0
- package/docs/spec/VerifyAboutOutput.v1.md +10 -0
- package/docs/spec/VerifyCliOutput.v1.md +28 -0
- package/docs/spec/WARNINGS.md +83 -0
- package/docs/spec/error-codes.v1.txt +285 -0
- package/docs/spec/examples/agreement_delegation_v1.example.json +21 -0
- package/docs/spec/examples/arbitration_case_v1.example.json +26 -0
- package/docs/spec/examples/arbitration_verdict_v1.example.json +32 -0
- package/docs/spec/examples/dispute_open_envelope_v1.example.json +18 -0
- package/docs/spec/examples/produce_cli_output_v1.example.json +32 -0
- package/docs/spec/examples/release_index_signature_v1.example.json +9 -0
- package/docs/spec/examples/release_index_signatures_v1.example.json +14 -0
- package/docs/spec/examples/release_index_v1.example.json +15 -0
- package/docs/spec/examples/release_trust_v1.example.json +7 -0
- package/docs/spec/examples/release_trust_v2.example.json +22 -0
- package/docs/spec/examples/remote_signer_request_v1.example.json +18 -0
- package/docs/spec/examples/remote_signer_response_v1.example.json +8 -0
- package/docs/spec/examples/reputation_event_v1.example.json +29 -0
- package/docs/spec/examples/verification_report_v1.example.json +24 -0
- package/docs/spec/examples/verify_about_output_v1.example.json +29 -0
- package/docs/spec/examples/verify_cli_output_v1.example.json +13 -0
- package/docs/spec/legacy/MarketplaceAcceptance.v1.md +48 -0
- package/docs/spec/legacy/MarketplaceOffer.v1.md +56 -0
- package/docs/spec/legacy/schemas/MarketplaceAcceptance.v1.schema.json +53 -0
- package/docs/spec/legacy/schemas/MarketplaceOffer.v1.schema.json +61 -0
- package/docs/spec/producer-error-codes.v1.txt +14 -0
- package/docs/spec/schemas/AcceptanceCriteria.v1.schema.json +24 -0
- package/docs/spec/schemas/AcceptanceEvaluation.v1.schema.json +26 -0
- package/docs/spec/schemas/AgentEvent.v1.schema.json +49 -0
- package/docs/spec/schemas/AgentIdentity.v1.schema.json +129 -0
- package/docs/spec/schemas/AgentPassport.v1.schema.json +112 -0
- package/docs/spec/schemas/AgentReputation.v1.schema.json +151 -0
- package/docs/spec/schemas/AgentReputation.v2.schema.json +120 -0
- package/docs/spec/schemas/AgentRun.v1.schema.json +71 -0
- package/docs/spec/schemas/AgentRunSettlement.v1.schema.json +75 -0
- package/docs/spec/schemas/AgentWallet.v1.schema.json +54 -0
- package/docs/spec/schemas/AgreementDelegation.v1.schema.json +50 -0
- package/docs/spec/schemas/ArbitrationCase.v1.schema.json +133 -0
- package/docs/spec/schemas/ArbitrationVerdict.v1.schema.json +149 -0
- package/docs/spec/schemas/BundleHeadAttestation.v1.schema.json +21 -0
- package/docs/spec/schemas/ClosePackManifest.v1.schema.json +38 -0
- package/docs/spec/schemas/DelegationGrant.v1.schema.json +102 -0
- package/docs/spec/schemas/DisputeOpenEnvelope.v1.schema.json +78 -0
- package/docs/spec/schemas/EvidenceIndex.v1.schema.json +41 -0
- package/docs/spec/schemas/ExecutionIntent.v1.schema.json +85 -0
- package/docs/spec/schemas/FinancePackBundleManifest.v1.schema.json +38 -0
- package/docs/spec/schemas/FundingHold.v1.schema.json +46 -0
- package/docs/spec/schemas/GovernancePolicy.v1.schema.json +45 -0
- package/docs/spec/schemas/GovernancePolicy.v2.schema.json +70 -0
- package/docs/spec/schemas/InteractionDirectionMatrix.v1.schema.json +43 -0
- package/docs/spec/schemas/InvoiceBundleManifest.v1.schema.json +38 -0
- package/docs/spec/schemas/InvoiceClaim.v1.schema.json +39 -0
- package/docs/spec/schemas/MarketplaceAcceptance.v2.schema.json +53 -0
- package/docs/spec/schemas/MarketplaceOffer.v2.schema.json +61 -0
- package/docs/spec/schemas/MeteringReport.v1.schema.json +45 -0
- package/docs/spec/schemas/OperatorAction.v1.schema.json +113 -0
- package/docs/spec/schemas/PolicyDecision.v1.schema.json +74 -0
- package/docs/spec/schemas/PricingMatrix.v1.schema.json +24 -0
- package/docs/spec/schemas/PricingMatrixSignatures.v1.schema.json +24 -0
- package/docs/spec/schemas/PricingMatrixSignatures.v2.schema.json +24 -0
- package/docs/spec/schemas/ProduceCliOutput.v1.schema.json +107 -0
- package/docs/spec/schemas/ProofBundleManifest.v1.schema.json +37 -0
- package/docs/spec/schemas/PublicKeys.v1.schema.json +33 -0
- package/docs/spec/schemas/ReleaseIndex.v1.schema.json +45 -0
- package/docs/spec/schemas/ReleaseIndexSignature.v1.schema.json +16 -0
- package/docs/spec/schemas/ReleaseIndexSignatures.v1.schema.json +16 -0
- package/docs/spec/schemas/ReleaseTrust.v1.schema.json +15 -0
- package/docs/spec/schemas/ReleaseTrust.v2.schema.json +37 -0
- package/docs/spec/schemas/RemoteSignerPublicKeyResponse.v1.schema.json +14 -0
- package/docs/spec/schemas/RemoteSignerRequest.v1.schema.json +24 -0
- package/docs/spec/schemas/RemoteSignerResponse.v1.schema.json +10 -0
- package/docs/spec/schemas/RemoteSignerSignRequest.v1.schema.json +27 -0
- package/docs/spec/schemas/RemoteSignerSignResponse.v1.schema.json +16 -0
- package/docs/spec/schemas/ReputationEvent.v1.schema.json +164 -0
- package/docs/spec/schemas/RevocationList.v1.schema.json +51 -0
- package/docs/spec/schemas/SettlementAdjustment.v1.schema.json +44 -0
- package/docs/spec/schemas/SettlementDecisionRecord.v1.schema.json +66 -0
- package/docs/spec/schemas/SettlementDecisionRecord.v2.schema.json +149 -0
- package/docs/spec/schemas/SettlementDecisionReport.v1.schema.json +61 -0
- package/docs/spec/schemas/SettlementReceipt.v1.schema.json +135 -0
- package/docs/spec/schemas/SlaDefinition.v1.schema.json +33 -0
- package/docs/spec/schemas/SlaEvaluation.v1.schema.json +26 -0
- package/docs/spec/schemas/TenantSettings.v1.schema.json +90 -0
- package/docs/spec/schemas/TenantSettings.v2.schema.json +161 -0
- package/docs/spec/schemas/TimestampProof.v1.schema.json +17 -0
- package/docs/spec/schemas/ToolCallAgreement.v1.schema.json +34 -0
- package/docs/spec/schemas/ToolCallEvidence.v1.schema.json +45 -0
- package/docs/spec/schemas/ToolManifest.v1.schema.json +54 -0
- package/docs/spec/schemas/VerificationReport.v1.schema.json +83 -0
- package/docs/spec/schemas/VerifyAboutOutput.v1.schema.json +54 -0
- package/docs/spec/schemas/VerifyCliOutput.v1.schema.json +75 -0
- package/docs/spec/schemas/VerifyReleaseOutput.v1.schema.json +47 -0
- package/docs/spec/x402-error-codes.v1.txt +35 -0
- package/docs/templates/buyer-email.txt +18 -0
- package/docs/templates/buyer-one-pager.md +24 -0
- package/package.json +53 -6
- package/scripts/acceptance/full-stack.mjs +734 -0
- package/scripts/acceptance/full-stack.sh +99 -0
- package/scripts/audit/build-audit-packet.mjs +242 -0
- package/scripts/backup-pg.sh +45 -0
- package/scripts/backup-restore/README.md +18 -0
- package/scripts/backup-restore/capture-state.mjs +130 -0
- package/scripts/backup-restore/client.mjs +97 -0
- package/scripts/backup-restore/seed-workload.mjs +235 -0
- package/scripts/backup-restore/verify-state.mjs +139 -0
- package/scripts/backup-restore-test.sh +217 -0
- package/scripts/chaos.js +221 -0
- package/scripts/ci/build-launch-cutover-packet.mjs +304 -0
- package/scripts/ci/build-self-serve-benchmark-report.mjs +122 -0
- package/scripts/ci/changelog-guard.mjs +145 -0
- package/scripts/ci/check-kernel-v0-launch-gate.mjs +233 -0
- package/scripts/ci/check-secret-hygiene.mjs +78 -0
- package/scripts/ci/check-version-consistency.mjs +42 -0
- package/scripts/ci/cli-pack-smoke.mjs +160 -0
- package/scripts/ci/flake-budget-guard.mjs +68 -0
- package/scripts/ci/generate-error-codes.mjs +54 -0
- package/scripts/ci/lib/lighthouse-tracker.mjs +90 -0
- package/scripts/ci/lib/self-serve-launch-gate.mjs +89 -0
- package/scripts/ci/npm-pack-smoke.mjs +454 -0
- package/scripts/ci/run-10x-throughput-drill.mjs +318 -0
- package/scripts/ci/run-10x-throughput-incident-rehearsal.mjs +368 -0
- package/scripts/ci/run-arbitration-workspace-browser-e2e.sh +22 -0
- package/scripts/ci/run-circle-sandbox-smoke.mjs +237 -0
- package/scripts/ci/run-go-live-gate.mjs +150 -0
- package/scripts/ci/run-kernel-v0-ship-gate.mjs +97 -0
- package/scripts/ci/run-mcp-host-cert-matrix.mjs +201 -0
- package/scripts/ci/run-mcp-host-smoke.mjs +473 -0
- package/scripts/ci/run-offline-verification-parity-gate.mjs +762 -0
- package/scripts/ci/run-onboarding-host-success-gate.mjs +516 -0
- package/scripts/ci/run-onboarding-policy-slo-gate.mjs +537 -0
- package/scripts/ci/run-production-cutover-gate.mjs +540 -0
- package/scripts/ci/run-public-openclaw-npx-smoke.mjs +148 -0
- package/scripts/ci/run-release-promotion-guard.mjs +756 -0
- package/scripts/ci/run-self-serve-launch-gate.mjs +56 -0
- package/scripts/ci/runtime-import-smoke.mjs +58 -0
- package/scripts/ci/update-lighthouse-tracker.mjs +112 -0
- package/scripts/closepack/lib.mjs +286 -0
- package/scripts/collect-debug.sh +263 -0
- package/scripts/demo/compositional-settlement-3hop.mjs +237 -0
- package/scripts/demo/delivery-robot/export-ui-fixture.mjs +188 -0
- package/scripts/demo/delivery-robot/generate.mjs +377 -0
- package/scripts/demo/kernel-agent-goes-shopping.mjs +202 -0
- package/scripts/demo/magic-link-first-green.mjs +118 -0
- package/scripts/demo/magic-link-kind-smoke.mjs +577 -0
- package/scripts/demo/mcp-paid-exa.mjs +1110 -0
- package/scripts/dev/billing-doctor.sh +145 -0
- package/scripts/dev/billing-smoke-prod.sh +219 -0
- package/scripts/dev/billing-webhook-replay.sh +161 -0
- package/scripts/dev/env.dev.example +29 -0
- package/scripts/dev/env.sh +37 -0
- package/scripts/dev/new-sdk-key.sh +81 -0
- package/scripts/dev/sdk-first-run.sh +21 -0
- package/scripts/dev/smoke-x402-gateway.sh +115 -0
- package/scripts/dev/start-api.sh +24 -0
- package/scripts/doctor/mcp-host.mjs +120 -0
- package/scripts/examples/produce-and-verify-jobproof.mjs +191 -0
- package/scripts/examples/sdk-first-paid-rfq.py +105 -0
- package/scripts/examples/sdk-first-verified-run.mjs +85 -0
- package/scripts/examples/sdk-first-verified-run.py +99 -0
- package/scripts/examples/sdk-tenant-analytics.mjs +103 -0
- package/scripts/examples/sdk-tenant-analytics.py +118 -0
- package/scripts/finance-pack/bundle.mjs +284 -0
- package/scripts/fixtures/generate-bundle-fixtures.mjs +877 -0
- package/scripts/governance/export.mjs +169 -0
- package/scripts/load/delivery-stress.k6.js +183 -0
- package/scripts/load/ingest-burst.k6.js +236 -0
- package/scripts/load/run-delivery-load.js +66 -0
- package/scripts/load/webhook-receiver.js +131 -0
- package/scripts/magic-link/migrate-run-records-to-db.mjs +35 -0
- package/scripts/mcp/probe.mjs +238 -0
- package/scripts/mcp/settld-mcp-http-gateway.mjs +178 -0
- package/scripts/mcp/settld-mcp-server.mjs +1511 -0
- package/scripts/openapi/write.mjs +13 -0
- package/scripts/ops/bootstrap-tenant-conformance.mjs +185 -0
- package/scripts/ops/build-x402-pilot-reliability-report.mjs +489 -0
- package/scripts/ops/check-x402-receipt-sample.mjs +181 -0
- package/scripts/ops/design-partner-run-packet.mjs +466 -0
- package/scripts/ops/dispute-finance-reconciliation-packet.mjs +313 -0
- package/scripts/ops/hosted-baseline-evidence.mjs +890 -0
- package/scripts/ops/money-rails-chargeback-evidence.mjs +509 -0
- package/scripts/ops/money-rails-reconcile-evidence.mjs +180 -0
- package/scripts/ops/p0-seed-money-rail-operation.mjs +432 -0
- package/scripts/ops/run-x402-hitl-smoke.mjs +607 -0
- package/scripts/pilot/finance-pack.mjs +495 -0
- package/scripts/pilot/fixtures/robot-keypair.json +4 -0
- package/scripts/pilot/fixtures/server-signer.json +4 -0
- package/scripts/policy/cli.mjs +600 -0
- package/scripts/profile/cli.mjs +1324 -0
- package/scripts/proof-bundle/job.mjs +109 -0
- package/scripts/proof-bundle/lib.mjs +92 -0
- package/scripts/proof-bundle/month.mjs +103 -0
- package/scripts/provider/conformance-run.mjs +159 -0
- package/scripts/provider/keys-generate.mjs +135 -0
- package/scripts/provider/publish.mjs +420 -0
- package/scripts/quickstart/x402.mjs +334 -0
- package/scripts/register-entity-secret.mjs +102 -0
- package/scripts/release/build-artifacts.mjs +181 -0
- package/scripts/release/generate-release-index.mjs +112 -0
- package/scripts/release/release-index-lib.mjs +232 -0
- package/scripts/release/sign-release-index.mjs +85 -0
- package/scripts/release/validate-release-assets.mjs +170 -0
- package/scripts/release/verify-release.mjs +261 -0
- package/scripts/restore-pg.sh +34 -0
- package/scripts/scaffold/create-settld-paid-tool.mjs +19 -0
- package/scripts/sdk/smoke-python.py +30 -0
- package/scripts/sdk/smoke.mjs +16 -0
- package/scripts/settlement/x402-batch-worker.mjs +1091 -0
- package/scripts/setup/circle-bootstrap.mjs +310 -0
- package/scripts/setup/host-config.mjs +617 -0
- package/scripts/setup/onboard.mjs +1337 -0
- package/scripts/setup/openclaw-onboard.mjs +423 -0
- package/scripts/setup/wizard.mjs +986 -0
- package/scripts/slo/check.mjs +239 -0
- package/scripts/smoke/k8s-smoke.mjs +214 -0
- package/scripts/spec/generate-protocol-vectors.mjs +1019 -0
- package/scripts/test/check-no-generated-artifacts.sh +12 -0
- package/scripts/test/run.sh +59 -0
- package/scripts/trust/validate-trust-file.mjs +57 -0
- package/scripts/trust-config/rotate-settld-pay.mjs +277 -0
- package/scripts/trust-config/wizard.mjs +161 -0
- package/scripts/vendor-contract-test-lib.mjs +182 -0
- package/scripts/vendor-contract-test.mjs +55 -0
- package/scripts/vercel/build-mkdocs.sh +9 -0
- package/scripts/vercel/ignore-mkdocs.sh +25 -0
- package/scripts/vercel/install-mkdocs.sh +6 -0
- package/scripts/verify-pg.js +217 -0
- package/scripts/x402/receipt-verify.mjs +289 -0
- package/services/finance-sink/src/dedupe-store.js +29 -6
- package/services/receiver/src/dedupe-store.js +29 -5
- package/services/x402-gateway/Dockerfile +13 -0
- package/services/x402-gateway/README.md +58 -0
- package/services/x402-gateway/examples/upstream-mock.js +337 -0
- package/services/x402-gateway/src/server.js +1058 -0
- package/src/api/app.js +34658 -16940
- package/src/api/maintenance.js +70 -0
- package/src/api/middleware/trust-kernel.js +114 -0
- package/src/api/openapi.js +1778 -70
- package/src/api/persistence.js +456 -0
- package/src/api/server.js +81 -5
- package/src/api/store.js +1581 -62
- package/src/api/workers/deliveries.js +99 -4
- package/src/api/workers/insolvency-sweep.js +159 -0
- package/src/core/agent-card.js +69 -0
- package/src/core/agent-wallets.js +231 -0
- package/src/core/agreement-delegation.js +549 -0
- package/src/core/billing-plans.js +40 -6
- package/src/core/circle-reserve-adapter.js +845 -0
- package/src/core/event-policy.js +21 -2
- package/src/core/maintenance-locks.js +1 -0
- package/src/core/operator-action.js +303 -0
- package/src/core/paid-tool-manifest.js +318 -0
- package/src/core/policy-decision.js +322 -0
- package/src/core/policy-packs.js +207 -0
- package/src/core/profile-fingerprint.js +27 -0
- package/src/core/profile-simulation-reasons.js +84 -0
- package/src/core/profile-templates.js +242 -0
- package/src/core/provider-publish-conformance.js +525 -0
- package/src/core/provider-publish-proof.js +396 -0
- package/src/core/provider-quote-signature.js +170 -0
- package/src/core/settld-keys.js +112 -0
- package/src/core/settld-pay-token.js +344 -0
- package/src/core/settlement-kernel.js +239 -2
- package/src/core/settlement-verifier.js +335 -0
- package/src/core/tool-call-agreement.js +112 -0
- package/src/core/tool-call-evidence.js +144 -0
- package/src/core/tool-provider-signature.js +98 -0
- package/src/core/wallet-assignment-resolver.js +129 -0
- package/src/core/wallet-provider-bootstrap.js +365 -0
- package/src/core/x402-escalation-override.js +258 -0
- package/src/core/x402-gate.js +118 -0
- package/src/core/x402-provider-refund-decision.js +220 -0
- package/src/core/x402-receipt-verifier.js +708 -0
- package/src/core/x402-reversal-command.js +251 -0
- package/src/core/x402-wallet-issuer-decision.js +252 -0
- package/src/core/zk-verifier.js +300 -0
- package/src/db/migrations/029_reputation_event_index.sql +54 -0
- package/src/db/migrations/030_artifacts_source_event_unique_job_only.sql +15 -0
- package/src/db/pg.js +18 -7
- package/src/db/store-pg.js +1508 -111
package/docs/OVERVIEW.md
ADDED
|
@@ -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`
|