settld 0.1.2 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -3
- package/SETTLD_VERSION +1 -1
- package/bin/settld-mcp +2 -0
- package/bin/settld.js +13 -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 +140 -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 +337 -0
- package/docs/QUICKSTART_MCP_HOSTS.md +143 -0
- package/docs/QUICKSTART_PRODUCE.md +61 -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 +15 -0
- package/docs/RELEASE_CHECKLIST.md +156 -0
- package/docs/RELEASING.md +81 -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 +70 -0
- package/docs/SUMMARY.md +16 -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 +52 -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 +104 -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 +14 -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/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/GO_LIVE_GATE_S13.md +27 -0
- package/docs/ops/HOSTED_BASELINE_R2.md +129 -0
- package/docs/ops/KERNEL_V0_SHIP_GATE.md +67 -0
- package/docs/ops/LIGHTHOUSE_PRODUCTION_CLOSE.md +51 -0
- package/docs/ops/MCP_COMPATIBILITY_MATRIX.md +28 -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 +103 -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 +47 -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/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/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/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/PRODUCER_ERRORS.md +42 -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 +104 -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 +51 -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/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 +148 -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 +21 -0
- package/docs/templates/buyer-email.txt +18 -0
- package/docs/templates/buyer-one-pager.md +24 -0
- package/package.json +40 -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 +148 -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 +246 -0
- package/scripts/ci/run-10x-throughput-incident-rehearsal.mjs +325 -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-smoke.mjs +275 -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/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 +1201 -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/hosted-baseline-evidence.mjs +681 -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/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/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/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/slo/check.mjs +178 -0
- package/scripts/smoke/k8s-smoke.mjs +214 -0
- package/scripts/spec/generate-protocol-vectors.mjs +931 -0
- package/scripts/test/check-no-generated-artifacts.sh +12 -0
- package/scripts/test/run.sh +45 -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 +947 -0
- package/src/api/app.js +32517 -16877
- package/src/api/maintenance.js +70 -0
- package/src/api/openapi.js +1130 -17
- package/src/api/persistence.js +272 -0
- package/src/api/server.js +81 -5
- package/src/api/store.js +1248 -6
- 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 +97 -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/maintenance-locks.js +1 -0
- package/src/core/paid-tool-manifest.js +318 -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 +213 -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/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 +838 -72
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Throughput Drill 10x Runbook
|
|
2
|
+
|
|
3
|
+
Objective: execute `STLD-T177` as an auditable gate artifact, not a one-off benchmark.
|
|
4
|
+
|
|
5
|
+
## Command
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
BASE_URL=http://127.0.0.1:3000 \
|
|
9
|
+
OPS_TOKEN=ops_ci \
|
|
10
|
+
TENANTS=3 \
|
|
11
|
+
ROBOTS_PER_TENANT=3 \
|
|
12
|
+
BASELINE_JOBS_PER_MIN_PER_TENANT=10 \
|
|
13
|
+
THROUGHPUT_MULTIPLIER=10 \
|
|
14
|
+
DURATION=120s \
|
|
15
|
+
TARGET_P95_MS=5000 \
|
|
16
|
+
MAX_FAILURE_RATE=0.05 \
|
|
17
|
+
node scripts/ci/run-10x-throughput-drill.mjs
|
|
18
|
+
|
|
19
|
+
BASE_URL=http://127.0.0.1:3000 \
|
|
20
|
+
OPS_TOKEN=ops_ci \
|
|
21
|
+
node scripts/ci/run-10x-throughput-incident-rehearsal.mjs
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
If local `k6` is not installed, the runner automatically falls back to `docker` (`grafana/k6:0.48.0`).
|
|
25
|
+
Set `ALLOW_DOCKER_K6_FALLBACK=0` to require native `k6`.
|
|
26
|
+
|
|
27
|
+
## Outputs
|
|
28
|
+
|
|
29
|
+
- K6 summary: `artifacts/throughput/10x-drill-k6-summary.json`
|
|
30
|
+
- Gate report: `artifacts/throughput/10x-drill-summary.json`
|
|
31
|
+
- Incident rehearsal report: `artifacts/throughput/10x-incident-rehearsal-summary.json`
|
|
32
|
+
|
|
33
|
+
## Gate conditions
|
|
34
|
+
|
|
35
|
+
- k6 exits with status `0`
|
|
36
|
+
- `http_req_duration p(95)` <= `TARGET_P95_MS`
|
|
37
|
+
- `http_req_failed rate` <= `MAX_FAILURE_RATE`
|
|
38
|
+
- ingest rejection rate <= `MAX_INGEST_REJECTED_PER_MIN`
|
|
39
|
+
|
|
40
|
+
## Incident rehearsal checklist
|
|
41
|
+
|
|
42
|
+
- Run `node scripts/ci/run-10x-throughput-incident-rehearsal.mjs` immediately after the load drill.
|
|
43
|
+
- Confirm `artifacts/throughput/10x-incident-rehearsal-summary.json` has `verdict.ok=true`.
|
|
44
|
+
- Verify rehearsal checks are green:
|
|
45
|
+
- degraded-mode signal was emitted,
|
|
46
|
+
- rollback returned active policy to stable,
|
|
47
|
+
- communications markers were captured in `/ops/audit`,
|
|
48
|
+
- command-center post-rollback breach count is zero.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Trust Config Wizard
|
|
2
|
+
|
|
3
|
+
The Trust Config Wizard is a lightweight way to bootstrap SLA policy configuration for common autonomous workflows.
|
|
4
|
+
|
|
5
|
+
## What it provides
|
|
6
|
+
|
|
7
|
+
- Built-in SLA policy templates for `delivery` and `security` verticals.
|
|
8
|
+
- Template rendering with override support for SLA and metrics fields.
|
|
9
|
+
- A validation path for preflight checks before policy deployment.
|
|
10
|
+
|
|
11
|
+
## API endpoint
|
|
12
|
+
|
|
13
|
+
- `GET /ops/sla-templates`
|
|
14
|
+
- Scope: `ops_read`
|
|
15
|
+
- Optional query: `vertical=delivery|security`
|
|
16
|
+
- Response: `SlaPolicyTemplateCatalog.v1` template catalog
|
|
17
|
+
|
|
18
|
+
Example:
|
|
19
|
+
|
|
20
|
+
```sh
|
|
21
|
+
curl -sS "http://localhost:3000/ops/sla-templates?vertical=security" \
|
|
22
|
+
-H "x-proxy-ops-token: <ops_read_token>" | jq
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## CLI usage
|
|
26
|
+
|
|
27
|
+
Run via npm script:
|
|
28
|
+
|
|
29
|
+
```sh
|
|
30
|
+
npm run trust:wizard -- list --format json
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Supported commands:
|
|
34
|
+
|
|
35
|
+
- `list [--vertical delivery|security] [--format json|text]`
|
|
36
|
+
- `show --template <templateId> [--format json|text]`
|
|
37
|
+
- `render --template <templateId> [--overrides-json <json>] [--out <path>] [--format json|text]`
|
|
38
|
+
- `validate --template <templateId> [--overrides-json <json>] [--format json|text]`
|
|
39
|
+
|
|
40
|
+
Example render command:
|
|
41
|
+
|
|
42
|
+
```sh
|
|
43
|
+
npm run trust:wizard -- render \
|
|
44
|
+
--template delivery_standard_v1 \
|
|
45
|
+
--overrides-json '{"metrics":{"targetCompletionMinutes":60}}' \
|
|
46
|
+
--format json
|
|
47
|
+
```
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# X402 Pilot Weekly Reliability Metrics
|
|
2
|
+
|
|
3
|
+
Use this report to publish weekly reliability numbers for the Circle-backed paid tool pilot.
|
|
4
|
+
|
|
5
|
+
The report is artifact-driven and summarizes paid MCP/x402 runs under `artifacts/mcp-paid-exa`.
|
|
6
|
+
|
|
7
|
+
## Why this exists
|
|
8
|
+
|
|
9
|
+
Before broad provider expansion, the pilot must prove:
|
|
10
|
+
|
|
11
|
+
- reserve behavior is stable,
|
|
12
|
+
- token and provider signature verification are stable,
|
|
13
|
+
- settlement execution is stable.
|
|
14
|
+
|
|
15
|
+
This command produces a deterministic JSON report you can commit or attach to release notes.
|
|
16
|
+
|
|
17
|
+
## Run
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm run ops:x402:pilot:weekly-report -- \
|
|
21
|
+
--artifact-root artifacts/mcp-paid-exa \
|
|
22
|
+
--days 7 \
|
|
23
|
+
--out artifacts/ops/x402-pilot-reliability-report.json
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Optional reliability gates:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm run ops:x402:pilot:weekly-report -- \
|
|
30
|
+
--artifact-root artifacts/mcp-paid-exa \
|
|
31
|
+
--days 7 \
|
|
32
|
+
--max-reserve-fail-rate 0.10 \
|
|
33
|
+
--max-token-verify-fail-rate 0.01 \
|
|
34
|
+
--max-provider-sig-fail-rate 0.01 \
|
|
35
|
+
--min-settlement-success-rate 0.98
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
If threshold gates are supplied, command exit code is non-zero when any gate fails.
|
|
39
|
+
|
|
40
|
+
## Output schema
|
|
41
|
+
|
|
42
|
+
`X402PilotReliabilityReport.v1` includes:
|
|
43
|
+
|
|
44
|
+
- `runCounts`
|
|
45
|
+
- `runsInWindow`
|
|
46
|
+
- `infraBootFailures`
|
|
47
|
+
- `toolCallAttempts`
|
|
48
|
+
- `successfulPaidCalls`
|
|
49
|
+
- `metrics`
|
|
50
|
+
- `timeToFirstPaidCallMs`
|
|
51
|
+
- `reserveFailRate`
|
|
52
|
+
- `tokenVerifyFailRate`
|
|
53
|
+
- `providerSigFailRate`
|
|
54
|
+
- `settlementSuccessRate`
|
|
55
|
+
- `replayDuplicateRate`
|
|
56
|
+
- `samples`
|
|
57
|
+
- run ids for reserve/token/signature/settlement failures
|
|
58
|
+
- `verdict`
|
|
59
|
+
- threshold check results when thresholds are passed
|
|
60
|
+
|
|
61
|
+
## Metric notes
|
|
62
|
+
|
|
63
|
+
- `reserveFailRate` is inferred from attempted runs with `gateway_error` today.
|
|
64
|
+
- Infrastructure boot failures are excluded from economic reliability denominators.
|
|
65
|
+
- `replayDuplicateRate` uses provider replay counters emitted by paid demo artifacts (`provider-replay-probe.json` or `summary.replayCounters`).
|
|
66
|
+
|
|
67
|
+
## Recommended weekly publish set
|
|
68
|
+
|
|
69
|
+
- `timeToFirstPaidCallMs`
|
|
70
|
+
- `reserveFailRate`
|
|
71
|
+
- `tokenVerifyFailRate`
|
|
72
|
+
- `providerSigFailRate`
|
|
73
|
+
- `settlementSuccessRate`
|
|
74
|
+
- `replayDuplicateRate`
|
|
75
|
+
|
|
76
|
+
Keep provider expansion gated on these metrics, not on raw demo volume.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Tool-Call Disputes and Holdback (Ops Runbook)
|
|
2
|
+
|
|
3
|
+
## When To Use Party Open vs Ops Override
|
|
4
|
+
|
|
5
|
+
- Use **party open** when:
|
|
6
|
+
- payer/payee is within the hold challenge window
|
|
7
|
+
- the dispute is expected and can be resolved by normal arbitration timelines
|
|
8
|
+
|
|
9
|
+
- Use **ops/admin override** when:
|
|
10
|
+
- the challenge window is closed but funds are still held (exception path)
|
|
11
|
+
- an incorrect hold configuration needs remediation
|
|
12
|
+
- you need to open a case for forensic/incident reasons
|
|
13
|
+
|
|
14
|
+
Ops override requires `ops_write` and must include an explicit override reason in the case metadata.
|
|
15
|
+
|
|
16
|
+
## How Holds Get “Stuck”
|
|
17
|
+
|
|
18
|
+
A hold can remain in `held` if:
|
|
19
|
+
|
|
20
|
+
- an arbitration case exists for the hold and the case `status` is not `closed`
|
|
21
|
+
- the verdict has been issued but the adjustment was not applied (should be rare; indicates an idempotency/DB failure)
|
|
22
|
+
- escrow balances are inconsistent (wallet has insufficient escrow locked to complete release/refund)
|
|
23
|
+
|
|
24
|
+
## Debug Checklist
|
|
25
|
+
|
|
26
|
+
1. Identify the `holdHash`:
|
|
27
|
+
- from the hold record (FundingHold.v1)
|
|
28
|
+
- or from the arbitration case metadata (`metadata.holdHash`)
|
|
29
|
+
2. List tool-call arbitration cases for the agreement:
|
|
30
|
+
- `GET /tool-calls/arbitration/cases?agreementHash=...`
|
|
31
|
+
3. Verify the case metadata:
|
|
32
|
+
- `caseType: "tool_call"`
|
|
33
|
+
- `agreementHash`, `receiptHash`, `holdHash` are present and 64-hex sha256
|
|
34
|
+
4. If the case is not closed, the auto-release tick will skip the hold.
|
|
35
|
+
|
|
36
|
+
## Maintenance Tick
|
|
37
|
+
|
|
38
|
+
The tool-call holdback maintenance tick:
|
|
39
|
+
|
|
40
|
+
- will **not** auto-release holds referenced by any non-closed tool-call arbitration case
|
|
41
|
+
- will skip holds whose challenge window has not yet ended
|
|
42
|
+
- operates on held escrow funds only
|
|
43
|
+
|
|
44
|
+
Endpoint:
|
|
45
|
+
|
|
46
|
+
- `POST /ops/maintenance/tool-call-holdback/run`
|
|
47
|
+
|
|
48
|
+
Suggested alerting:
|
|
49
|
+
|
|
50
|
+
- Alert on `tool_call_holdback_auto_release_skipped_total{reason="arbitration_case_open"}` growth without a corresponding decrease in open case count.
|
|
51
|
+
- Alert on holds blocked beyond an SLA threshold (derive from hold `createdAt` and current time).
|
|
52
|
+
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Pilot Package + Success Scorecard (x402 Wedge)
|
|
2
|
+
|
|
3
|
+
This defines the default pilot offer and measurable success gates for Settld x402 deployments.
|
|
4
|
+
|
|
5
|
+
## 1. Pilot Package
|
|
6
|
+
|
|
7
|
+
- Scope: 1 paid tool workflow, 1 buyer, 1 provider, 1 tenant.
|
|
8
|
+
- Duration: 4-6 weeks.
|
|
9
|
+
- Success proof: deterministic receipts + offline verification + export for finance.
|
|
10
|
+
- Out of scope: broad marketplace rollout, unrestricted side-effect tools.
|
|
11
|
+
|
|
12
|
+
## 2. Delivery Timeline
|
|
13
|
+
|
|
14
|
+
1. Week 0: scope lock, baseline capture, env + keys provisioned.
|
|
15
|
+
2. Week 1: first paid call in production-like flow (`402 -> retry -> verify`).
|
|
16
|
+
3. Week 2-3: volume ramp + policy tuning (caps, allowlists, dispute windows).
|
|
17
|
+
4. Week 4-6: KPI review, case-study artifacts, expansion decision.
|
|
18
|
+
|
|
19
|
+
## 3. Scorecard (Baseline + Target)
|
|
20
|
+
|
|
21
|
+
| Metric | Baseline (before Settld) | Target (pilot) | Measurement |
|
|
22
|
+
|---|---:|---:|---|
|
|
23
|
+
| Integration time to first paid call | > 2 days | < 1 afternoon | Start-to-first successful settled paid call |
|
|
24
|
+
| Auto-resolve rate (%) | < 40% | >= 80% | `released / total verified` for in-scope runs |
|
|
25
|
+
| Dispute rate (%) | > 10% | <= 5% | `disputed / settled` over pilot window |
|
|
26
|
+
| Time-to-settle (p95) | > 24h | < 15m | verification-to-settlement latency |
|
|
27
|
+
|
|
28
|
+
## 4. Required Evidence Artifacts
|
|
29
|
+
|
|
30
|
+
- x402 gate trace (`gateId`, authorization ref, reserve id where applicable)
|
|
31
|
+
- Decision + settlement binding hashes
|
|
32
|
+
- Receipt export for pilot window
|
|
33
|
+
- Offline verifier output sample on exported receipts
|
|
34
|
+
- Weekly reliability report (`reserveFailRate`, `providerSigFailRate`, `settlementSuccessRate`)
|
|
35
|
+
|
|
36
|
+
## 5. Expansion Triggers
|
|
37
|
+
|
|
38
|
+
- Two or more teams request onboarding.
|
|
39
|
+
- Finance requests recurring automated exports.
|
|
40
|
+
- Scorecard targets met for two consecutive weekly checkpoints.
|
|
41
|
+
|
|
42
|
+
## 6. No-Go / Re-scope Conditions
|
|
43
|
+
|
|
44
|
+
- Integration time target misses twice.
|
|
45
|
+
- Dispute rate trend worsens versus baseline.
|
|
46
|
+
- Settlement reliability below threshold for two consecutive checkpoints.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Pilot Kit (Verify Cloud / Magic Link)
|
|
2
|
+
|
|
3
|
+
This folder is the “send to prospects” kit for running a paid pilot:
|
|
4
|
+
|
|
5
|
+
- Buyer materials (what the page means, what to download, how to re-verify offline)
|
|
6
|
+
- Security posture summary (what we harden against)
|
|
7
|
+
- Integration starting point (webhooks)
|
|
8
|
+
- Simple ROI / billing templates
|
|
9
|
+
|
|
10
|
+
## Recommended pilot flow
|
|
11
|
+
|
|
12
|
+
1. Operator produces an `InvoiceBundle.v1` and uploads it to Verify Cloud (Magic Link).
|
|
13
|
+
2. Buyer receives the link, reviews Green/Amber/Red, and (optionally) records **Approve/Hold** on the page.
|
|
14
|
+
3. Buyer downloads the audit packet for archiving (bundle ZIP + deterministic JSON outputs).
|
|
15
|
+
4. Operator consumes the webhook event to drive their internal workflow.
|
|
16
|
+
|
|
17
|
+
## Contents
|
|
18
|
+
|
|
19
|
+
- `buyer-one-pager.md` — what the buyer sees and what to do.
|
|
20
|
+
- `buyer-email.txt` — copy/paste email template for sending links.
|
|
21
|
+
- `offline-verify.md` — how a buyer/auditor re-verifies locally.
|
|
22
|
+
- `security-summary.md` — zip and bundle hardening posture.
|
|
23
|
+
- `security-qa.md` — short procurement/security questionnaire answers.
|
|
24
|
+
- `architecture-one-pager.md` — deployment and data flow overview for security reviewers.
|
|
25
|
+
- `procurement-one-pager.md` — procurement-facing overview (adoption + security posture).
|
|
26
|
+
- `rfp-clause.md` — draft procurement / RFP language.
|
|
27
|
+
- `roi-calculator-template.csv` — simple template for pilot ROI tracking.
|
|
28
|
+
- `gtm-pilot-playbook.md` — outreach templates, pilot KPI gates, and case-study format.
|
|
29
|
+
- `PILOT_PACKAGE_SCORECARD_X402.md` — default x402 pilot package, baseline/target scorecard, and expansion triggers.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Verify Cloud (Magic Link) — Architecture one-pager
|
|
2
|
+
|
|
3
|
+
This document describes the hosted verification service used in pilots (“Verify Cloud”, implemented by the Magic Link service).
|
|
4
|
+
|
|
5
|
+
## Data flow (high level)
|
|
6
|
+
|
|
7
|
+
1. Vendor uploads a Settld bundle ZIP (e.g. `InvoiceBundle.v1` / `ClosePack.v1`) using a vendor-scoped ingest key.
|
|
8
|
+
2. Verify Cloud stores the ZIP and runs deterministic verification in a budgeted worker.
|
|
9
|
+
3. Verify Cloud writes deterministic outputs + a redacted render model.
|
|
10
|
+
4. Buyer views a hosted report link and/or downloads exports (audit packet, CSV, support bundle).
|
|
11
|
+
5. (Optional) webhooks deliver verification status events.
|
|
12
|
+
|
|
13
|
+
## Components
|
|
14
|
+
|
|
15
|
+
- **HTTP handlers**
|
|
16
|
+
- Vendor ingest: `POST /v1/ingest/:tenantId` (Bearer ingest key)
|
|
17
|
+
- Admin upload: `POST /v1/upload` (admin `x-api-key`)
|
|
18
|
+
- Hosted report/downloads: `GET /r/:token` and `GET /r/:token/<artifact>`
|
|
19
|
+
- Exports: audit packet, support bundle, security packet, CSV
|
|
20
|
+
- **Verification worker**
|
|
21
|
+
- Safe unzip with explicit budgets (rejects zip-slip/symlinks/duplicates/encrypted entries/zip bombs)
|
|
22
|
+
- Deterministic verification producing `VerifyCliOutput.v1`
|
|
23
|
+
- **Storage (filesystem under `MAGIC_LINK_DATA_DIR`)**
|
|
24
|
+
- Run blobs: bundle zip, verifier output, redacted summaries, PDFs, receipts, ClosePack surfaces
|
|
25
|
+
- Minimal immutable run record: `runs/<tenant>/<token>.json` (metadata-only)
|
|
26
|
+
- Audit/usage logs (JSONL) for accounting and operations
|
|
27
|
+
- **Maintenance**
|
|
28
|
+
- Retention sweeper deletes heavy artifacts after effective retention windows
|
|
29
|
+
|
|
30
|
+
## Trust and integrity model
|
|
31
|
+
|
|
32
|
+
- Buyers supply governance trust roots and pricing signer keys out-of-band.
|
|
33
|
+
- Verification can run in strict or compat mode depending on policy and configured trust.
|
|
34
|
+
- Offline verifiability: the buyer can archive the bundle ZIP and deterministically re-verify it later without access to vendor systems.
|
|
35
|
+
|
|
36
|
+
## Access control model
|
|
37
|
+
|
|
38
|
+
- Admin API: `x-api-key` (`MAGIC_LINK_API_KEY`)
|
|
39
|
+
- Vendor uploads: ingest keys (upload-only)
|
|
40
|
+
- Buyer sessions (optional): email OTP allowlist + RBAC roles (`viewer|approver|admin`)
|
|
41
|
+
- Decision capture (optional): email OTP gating for approve/hold
|
|
42
|
+
|
|
43
|
+
## Operational exports
|
|
44
|
+
|
|
45
|
+
- **Audit packet**: archive-friendly, deterministic
|
|
46
|
+
- **Support bundle**: time-bounded; metadata-first; redacted settings snapshot; no raw bundles by default
|
|
47
|
+
- **Security & controls packet**: threat model + budgets + retention/redaction manifests + checksums
|
|
48
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Subject: Verified invoice link (evidence-backed)
|
|
2
|
+
|
|
3
|
+
Hi,
|
|
4
|
+
|
|
5
|
+
Here is your verified invoice link:
|
|
6
|
+
<PASTE_MAGIC_LINK_HERE>
|
|
7
|
+
|
|
8
|
+
This link provides:
|
|
9
|
+
- Green/Amber/Red verification status
|
|
10
|
+
- Invoice totals + line item summary
|
|
11
|
+
- Stable error/warning codes when something fails
|
|
12
|
+
- Downloads for audit/offline replay (bundle ZIP + deterministic verification JSON + audit packet)
|
|
13
|
+
- Optional Approve/Hold decision capture with exportable record
|
|
14
|
+
|
|
15
|
+
If you need to re-verify offline, download the bundle ZIP from the page and run your verifier under your trust policy.
|
|
16
|
+
|
|
17
|
+
Thanks,
|
|
18
|
+
<YOUR_NAME>
|
|
19
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Settld Verified Invoice (Buyer one-pager)
|
|
2
|
+
|
|
3
|
+
This invoice link is backed by a **cryptographically verifiable bundle** (an `InvoiceBundle.v1`) that can be archived and re-verified later, offline.
|
|
4
|
+
|
|
5
|
+
## What you see on the page
|
|
6
|
+
|
|
7
|
+
- **Green**: Verified with no warnings.
|
|
8
|
+
- **Amber**: Verified, but warnings are present (common early: governance trust anchors not configured for strict verification).
|
|
9
|
+
- **Red**: Verification failed.
|
|
10
|
+
|
|
11
|
+
## What you can download
|
|
12
|
+
|
|
13
|
+
- **Bundle ZIP**: the exact artifact that was verified (archive this for audit).
|
|
14
|
+
- **Verification JSON** (`VerifyCliOutput.v1`): deterministic, machine-readable result (codes + hashes).
|
|
15
|
+
- **Producer receipt** (if present): `verify/verification_report.json` from inside the bundle (producer-signed).
|
|
16
|
+
- **Audit packet ZIP**: bundle ZIP + hosted verification JSON + any embedded receipt + PDF summary + decision record.
|
|
17
|
+
- **PDF summary**: non-normative human summary for compatibility (not the source of truth).
|
|
18
|
+
|
|
19
|
+
## Approve / Hold
|
|
20
|
+
|
|
21
|
+
The page can record a simple **Approve / Hold** decision with a name + email + optional reason.
|
|
22
|
+
|
|
23
|
+
This decision record is a **service record** (non-normative) and can be exported as `decision_record_v0.json`.
|
|
24
|
+
|
|
25
|
+
## Offline re-verification (recommended for audit)
|
|
26
|
+
|
|
27
|
+
1. Download the **Bundle ZIP**.
|
|
28
|
+
2. Verify locally using `settld-verify` (or another conforming verifier) under your trust policy.
|
|
29
|
+
|
|
30
|
+
See `offline-verify.md`.
|
|
31
|
+
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# GTM Pilot Playbook (Autonomous Workflows)
|
|
2
|
+
|
|
3
|
+
This playbook turns Settld pilot work into repeatable pipeline and expansion motion.
|
|
4
|
+
|
|
5
|
+
## 1) Pilot objective
|
|
6
|
+
|
|
7
|
+
Win a paid pilot that proves three things in 30-60 days:
|
|
8
|
+
|
|
9
|
+
- Adoption: teams can reach first verified invoice fast.
|
|
10
|
+
- Economic value: decisions and payout workflow move faster with fewer disputes.
|
|
11
|
+
- Reliability: verification and buyer decision workflows are stable under real usage.
|
|
12
|
+
|
|
13
|
+
## 2) ICP and sequencing
|
|
14
|
+
|
|
15
|
+
Start with workflows where SLA ambiguity already causes payment friction:
|
|
16
|
+
|
|
17
|
+
1. Agent-driven service workflows (fastest path, clear completion evidence)
|
|
18
|
+
2. Delivery/security/field operations (high compliance pressure, recurring SLA checks)
|
|
19
|
+
3. Maintenance/inspection workflows (higher contract value, longer cycle)
|
|
20
|
+
|
|
21
|
+
Buyer personas:
|
|
22
|
+
|
|
23
|
+
- Ops owner (workflow + dispute pain)
|
|
24
|
+
- Finance/procurement owner (payable controls + auditability)
|
|
25
|
+
- Security/compliance reviewer (trust and evidence integrity)
|
|
26
|
+
|
|
27
|
+
## 3) 6-week pilot motion
|
|
28
|
+
|
|
29
|
+
Week 0:
|
|
30
|
+
|
|
31
|
+
- Scope one vendor, one buyer, one contract workflow.
|
|
32
|
+
- Lock target KPIs and baseline current process.
|
|
33
|
+
- Configure tenant settings, SLA template, webhook endpoint.
|
|
34
|
+
|
|
35
|
+
Week 1-2:
|
|
36
|
+
|
|
37
|
+
- Run onboarding wizard and first production-like uploads.
|
|
38
|
+
- Validate buyer approve/hold flow and receipt downloads.
|
|
39
|
+
- Confirm webhook delivery into buyer/vendor systems.
|
|
40
|
+
|
|
41
|
+
Week 3-4:
|
|
42
|
+
|
|
43
|
+
- Increase run volume and edge-case coverage (amber/red paths).
|
|
44
|
+
- Tune template overrides and policy behavior.
|
|
45
|
+
- Track decision latency and dispute deltas weekly.
|
|
46
|
+
|
|
47
|
+
Week 5-6:
|
|
48
|
+
|
|
49
|
+
- Publish KPI delta vs baseline.
|
|
50
|
+
- Package evidence + case study draft.
|
|
51
|
+
- Convert pilot to annual expansion plan.
|
|
52
|
+
|
|
53
|
+
## 4) Outreach templates
|
|
54
|
+
|
|
55
|
+
### A) Cold outreach (ops leader)
|
|
56
|
+
|
|
57
|
+
Subject: Reduce automation-work invoice disputes in 30 days
|
|
58
|
+
|
|
59
|
+
Hi {{Name}},
|
|
60
|
+
|
|
61
|
+
Teams using external agents and automation vendors often lose time in invoice review because SLA evidence and approvals are fragmented.
|
|
62
|
+
Settld gives buyers a single verification link with signed artifact evidence and approve/hold decisions.
|
|
63
|
+
|
|
64
|
+
For a pilot, we scope one workflow and target:
|
|
65
|
+
|
|
66
|
+
- faster buyer decision cycle
|
|
67
|
+
- fewer disputed invoices
|
|
68
|
+
- audit-ready packet export per run
|
|
69
|
+
|
|
70
|
+
Open to a 20-minute fit check next week?
|
|
71
|
+
|
|
72
|
+
### B) Security/procurement intro
|
|
73
|
+
|
|
74
|
+
Subject: Pilot review packet for autonomous-work verification controls
|
|
75
|
+
|
|
76
|
+
Hi {{Name}},
|
|
77
|
+
|
|
78
|
+
Sharing our pilot security/procurement packet:
|
|
79
|
+
|
|
80
|
+
- architecture and data flow
|
|
81
|
+
- redaction and retention behavior
|
|
82
|
+
- deterministic verification and audit outputs
|
|
83
|
+
|
|
84
|
+
If useful, we can run a narrow pilot with your current workflow and keep controls aligned to your review process.
|
|
85
|
+
|
|
86
|
+
### C) Follow-up after demo
|
|
87
|
+
|
|
88
|
+
Subject: Proposed pilot scope and KPI gates
|
|
89
|
+
|
|
90
|
+
Thanks for the walkthrough.
|
|
91
|
+
|
|
92
|
+
Proposed pilot scope:
|
|
93
|
+
|
|
94
|
+
- Workflow: {{workflow}}
|
|
95
|
+
- Duration: {{6 weeks}}
|
|
96
|
+
- KPI gates:
|
|
97
|
+
- first verified invoice < {{target}}
|
|
98
|
+
- buyer decision within 24h > {{target}}
|
|
99
|
+
- dispute rate reduction > {{target}}
|
|
100
|
+
|
|
101
|
+
If this looks right, we can start setup this week.
|
|
102
|
+
|
|
103
|
+
## 5) Pilot success criteria
|
|
104
|
+
|
|
105
|
+
Use these default gates unless the customer sets stricter values:
|
|
106
|
+
|
|
107
|
+
- Time-to-first-verified-invoice: < 30 minutes
|
|
108
|
+
- Buyer decision within 24h: > 50%
|
|
109
|
+
- Webhook delivery success: > 99%
|
|
110
|
+
- Verification latency p95: < 10 seconds
|
|
111
|
+
- Run listing latency (100+ runs): < 500ms
|
|
112
|
+
- Dispute rate delta vs baseline: at least 25% reduction
|
|
113
|
+
|
|
114
|
+
Must-have exit criteria:
|
|
115
|
+
|
|
116
|
+
- At least one full approve path and one hold path demonstrated.
|
|
117
|
+
- Buyer confirms artifact-derived evidence is sufficient for decisions.
|
|
118
|
+
- Finance/procurement accepts exported audit packet format.
|
|
119
|
+
|
|
120
|
+
## 6) Weekly pilot operating cadence
|
|
121
|
+
|
|
122
|
+
Weekly 45-minute review with customer:
|
|
123
|
+
|
|
124
|
+
1. KPI dashboard review (adoption/economic/reliability)
|
|
125
|
+
2. Incident and edge-case review (red/amber failures)
|
|
126
|
+
3. Template/policy updates needed
|
|
127
|
+
4. Next-week volume and success targets
|
|
128
|
+
|
|
129
|
+
Internal Settld cadence:
|
|
130
|
+
|
|
131
|
+
- Monday: KPI check + risk log update
|
|
132
|
+
- Wednesday: technical blockers + integration follow-up
|
|
133
|
+
- Friday: customer summary + expansion signal scoring
|
|
134
|
+
|
|
135
|
+
## 7) Case study format
|
|
136
|
+
|
|
137
|
+
Use this exact structure for repeatable proof:
|
|
138
|
+
|
|
139
|
+
1. Customer context
|
|
140
|
+
2. Baseline process and pain
|
|
141
|
+
3. Pilot scope (workflow, parties, duration)
|
|
142
|
+
4. Implementation (wizard, verify flow, buyer decisions, webhooks)
|
|
143
|
+
5. Measured results (before vs after)
|
|
144
|
+
6. Security/compliance posture summary
|
|
145
|
+
7. Customer quote + rollout plan
|
|
146
|
+
|
|
147
|
+
Required evidence bundle for every case study:
|
|
148
|
+
|
|
149
|
+
- KPI table with baseline and pilot values
|
|
150
|
+
- sample verification status outputs (green/amber/red)
|
|
151
|
+
- decision receipt examples
|
|
152
|
+
- audit packet index snapshot
|
|
153
|
+
- webhook delivery success stats
|
|
154
|
+
|
|
155
|
+
## 8) Expansion conversion checklist
|
|
156
|
+
|
|
157
|
+
Before conversion:
|
|
158
|
+
|
|
159
|
+
- Multi-team onboarding plan approved
|
|
160
|
+
- Contract templates mapped into SLA templates
|
|
161
|
+
- Buyer users and approval roles defined
|
|
162
|
+
- Reporting/export requirements confirmed
|
|
163
|
+
|
|
164
|
+
Expansion triggers:
|
|
165
|
+
|
|
166
|
+
- >2 workflows requesting integration
|
|
167
|
+
- finance team asks for monthly audit exports
|
|
168
|
+
- procurement asks to standardize verification language across vendors
|
|
169
|
+
|
|
170
|
+
## 9) Kill criteria
|
|
171
|
+
|
|
172
|
+
Stop or re-scope if, by week 3:
|
|
173
|
+
|
|
174
|
+
- no measurable KPI movement,
|
|
175
|
+
- buyer does not use decision workflow,
|
|
176
|
+
- integration owner cannot maintain webhook/ops path.
|
|
177
|
+
|
|
178
|
+
Every GTM and product action must improve at least one of:
|
|
179
|
+
|
|
180
|
+
- adoption speed,
|
|
181
|
+
- auto-approval rate,
|
|
182
|
+
- retention/expansion probability.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Offline verification (buyer/audit)
|
|
2
|
+
|
|
3
|
+
This is the “no SaaS required” verification path.
|
|
4
|
+
|
|
5
|
+
## 1) Download artifacts
|
|
6
|
+
|
|
7
|
+
From the Magic Link page, download:
|
|
8
|
+
|
|
9
|
+
- `bundle.zip` (the canonical input)
|
|
10
|
+
- `verify.json` (hosted `VerifyCliOutput.v1`, for reference)
|
|
11
|
+
|
|
12
|
+
## 2) Verify locally with `settld-verify`
|
|
13
|
+
|
|
14
|
+
Extract the bundle ZIP to a directory, then run:
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
node packages/artifact-verify/bin/settld-verify.js --format json --strict --invoice-bundle /path/to/extracted/bundle > out.verify.json
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Trust anchors (strict mode)
|
|
21
|
+
|
|
22
|
+
Strict verification requires governance trust roots to be provided out-of-band. If you have a trust file:
|
|
23
|
+
|
|
24
|
+
```sh
|
|
25
|
+
export SETTLD_TRUSTED_GOVERNANCE_ROOT_KEYS_JSON='{"key_...":"-----BEGIN PUBLIC KEY-----..."}'
|
|
26
|
+
export SETTLD_TRUSTED_TIME_AUTHORITY_KEYS_JSON='{"key_...":"-----BEGIN PUBLIC KEY-----..."}'
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Then rerun the strict command above.
|
|
30
|
+
|
|
31
|
+
## 3) Compare results deterministically
|
|
32
|
+
|
|
33
|
+
`VerifyCliOutput.v1` is deterministic (stable ordering of errors/warnings and normalized paths). You can archive it and replay verification later.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Verify Cloud (Magic Link) — Procurement one-pager
|
|
2
|
+
|
|
3
|
+
Verify Cloud is a hosted (or self-hosted) verification layer for **evidence-backed invoices**. Vendors submit a Settld bundle (typically `InvoiceBundle.v1` or `ClosePack.v1`), and buyers get a deterministic verification result plus audit-grade exports.
|
|
4
|
+
|
|
5
|
+
## What you get
|
|
6
|
+
|
|
7
|
+
- A read-only “Green / Amber / Red” hosted report link per invoice
|
|
8
|
+
- Deterministic verifier output (`VerifyCliOutput.v1`) suitable for archiving and automation
|
|
9
|
+
- An **audit packet** export (bundle ZIP + hosted verification JSON + receipt surfaces + non-normative PDF summary + decision record, when present)
|
|
10
|
+
- Offline verifiability: download the bundle ZIP and re-verify using `settld-verify` under buyer-controlled trust anchors
|
|
11
|
+
|
|
12
|
+
## What you need to adopt (pilot)
|
|
13
|
+
|
|
14
|
+
- Decide trust configuration:
|
|
15
|
+
- governance trust roots (buyer-supplied)
|
|
16
|
+
- pricing signer keys (buyer-supplied)
|
|
17
|
+
- Decide enforcement policy:
|
|
18
|
+
- strict vs compat default mode
|
|
19
|
+
- whether Amber (warnings) is acceptable for payment eligibility
|
|
20
|
+
- (Optional) enable buyer email OTP + RBAC for inbox and exports
|
|
21
|
+
|
|
22
|
+
## Integration options
|
|
23
|
+
|
|
24
|
+
- Vendor upload via ingest key (simple HTTP upload)
|
|
25
|
+
- Webhooks for `verification.completed` / `verification.failed`
|
|
26
|
+
- CSV export for AP workflows
|
|
27
|
+
- Support bundle export for debugging without SSH/screen recordings
|
|
28
|
+
|
|
29
|
+
## Security posture (high level)
|
|
30
|
+
|
|
31
|
+
- Hostile ZIP defenses: traversal/zip-slip, symlinks, duplicates, encrypted entries, zip-bomb budgets
|
|
32
|
+
- Rate limiting and concurrency budgets (upload + verify)
|
|
33
|
+
- Tenant settings secrets encrypted at rest when `MAGIC_LINK_SETTINGS_KEY_HEX` is configured
|
|
34
|
+
- Explicit data retention enforcement (heavy artifacts deleted after retention)
|
|
35
|
+
- Redaction allowlist for UI/PDF/CSV/support exports (HTML escaped + truncated deterministically)
|
|
36
|
+
|
|
37
|
+
## One-email security review
|
|
38
|
+
|
|
39
|
+
Download the **Security & Controls packet** (zip). It includes:
|
|
40
|
+
|
|
41
|
+
- data inventory + retention behavior summary
|
|
42
|
+
- threat model + budgets/defaults
|
|
43
|
+
- redaction allowlist manifest
|
|
44
|
+
- this procurement one-pager and `security-qa.md`
|
|
45
|
+
- file checksums for internal handling/audit
|
|
46
|
+
|
|
47
|
+
## Offline verification (buyer/auditor)
|
|
48
|
+
|
|
49
|
+
See `offline-verify.md`.
|
|
50
|
+
|