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