settld 0.2.4 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/Dockerfile +2 -2
  2. package/docs/CONFIG.md +12 -0
  3. package/docs/README.md +3 -0
  4. package/docs/ops/HOSTED_BASELINE_R2.md +4 -2
  5. package/docs/ops/MINIMUM_PRODUCTION_TOPOLOGY.md +19 -7
  6. package/docs/ops/PRODUCTION_DEPLOYMENT_CHECKLIST.md +8 -3
  7. package/package.json +4 -1
  8. package/packages/api-sdk/README.md +71 -0
  9. package/packages/api-sdk/src/client.js +1021 -0
  10. package/packages/api-sdk/src/express-middleware.js +163 -0
  11. package/packages/api-sdk/src/index.d.ts +1662 -0
  12. package/packages/api-sdk/src/index.js +10 -0
  13. package/packages/api-sdk/src/webhook-signature.js +182 -0
  14. package/packages/api-sdk/src/x402-autopay.js +210 -0
  15. package/scripts/ci/cli-pack-smoke.mjs +2 -0
  16. package/scripts/ci/run-public-onboarding-gate.mjs +136 -0
  17. package/scripts/setup/login.mjs +73 -2
  18. package/scripts/setup/onboard.mjs +173 -28
  19. package/scripts/setup/onboarding-failure-taxonomy.mjs +107 -0
  20. package/scripts/setup/onboarding-state-machine.mjs +102 -0
  21. package/services/magic-link/README.md +352 -0
  22. package/services/magic-link/assets/samples/closepack/known-bad/acceptance/acceptance_criteria.json +1 -0
  23. package/services/magic-link/assets/samples/closepack/known-bad/acceptance/acceptance_evaluation.json +1 -0
  24. package/services/magic-link/assets/samples/closepack/known-bad/attestation/bundle_head_attestation.json +1 -0
  25. package/services/magic-link/assets/samples/closepack/known-bad/evidence/evidence_index.json +1 -0
  26. package/services/magic-link/assets/samples/closepack/known-bad/governance/policy.json +1 -0
  27. package/services/magic-link/assets/samples/closepack/known-bad/governance/revocations.json +1 -0
  28. package/services/magic-link/assets/samples/closepack/known-bad/manifest.json +1 -0
  29. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/attestation/bundle_head_attestation.json +1 -0
  30. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/governance/policy.json +1 -0
  31. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/governance/revocations.json +1 -0
  32. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/invoice/invoice_claim.json +1 -0
  33. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/manifest.json +1 -0
  34. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/metering/metering_report.json +1 -0
  35. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/payload/job_proof_bundle/attestation/bundle_head_attestation.json +1 -0
  36. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/payload/job_proof_bundle/events/events.jsonl +1 -0
  37. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/payload/job_proof_bundle/events/payload_material.jsonl +1 -0
  38. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/payload/job_proof_bundle/governance/global/events/events.jsonl +1 -0
  39. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/payload/job_proof_bundle/governance/global/events/payload_material.jsonl +1 -0
  40. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/payload/job_proof_bundle/governance/global/snapshot.json +1 -0
  41. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/payload/job_proof_bundle/governance/policy.json +1 -0
  42. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/payload/job_proof_bundle/governance/revocations.json +1 -0
  43. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/payload/job_proof_bundle/governance/tenant/events/events.jsonl +0 -0
  44. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/payload/job_proof_bundle/governance/tenant/events/payload_material.jsonl +0 -0
  45. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/payload/job_proof_bundle/governance/tenant/snapshot.json +1 -0
  46. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/payload/job_proof_bundle/job/snapshot.json +1 -0
  47. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/payload/job_proof_bundle/keys/public_keys.json +1 -0
  48. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/payload/job_proof_bundle/manifest.json +1 -0
  49. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/payload/job_proof_bundle/verify/report.json +1 -0
  50. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/payload/job_proof_bundle/verify/verification_report.json +1 -0
  51. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/pricing/pricing_matrix.json +1 -0
  52. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/pricing/pricing_matrix_signatures.json +1 -0
  53. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/settld.json +1 -0
  54. package/services/magic-link/assets/samples/closepack/known-bad/payload/invoice_bundle/verify/verification_report.json +1 -0
  55. package/services/magic-link/assets/samples/closepack/known-bad/settld.json +1 -0
  56. package/services/magic-link/assets/samples/closepack/known-bad/sla/sla_definition.json +1 -0
  57. package/services/magic-link/assets/samples/closepack/known-bad/sla/sla_evaluation.json +1 -0
  58. package/services/magic-link/assets/samples/closepack/known-bad/verify/verification_report.json +1 -0
  59. package/services/magic-link/assets/samples/closepack/known-good/acceptance/acceptance_criteria.json +1 -0
  60. package/services/magic-link/assets/samples/closepack/known-good/acceptance/acceptance_evaluation.json +1 -0
  61. package/services/magic-link/assets/samples/closepack/known-good/attestation/bundle_head_attestation.json +1 -0
  62. package/services/magic-link/assets/samples/closepack/known-good/evidence/evidence_index.json +1 -0
  63. package/services/magic-link/assets/samples/closepack/known-good/governance/policy.json +1 -0
  64. package/services/magic-link/assets/samples/closepack/known-good/governance/revocations.json +1 -0
  65. package/services/magic-link/assets/samples/closepack/known-good/manifest.json +1 -0
  66. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/attestation/bundle_head_attestation.json +1 -0
  67. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/governance/policy.json +1 -0
  68. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/governance/revocations.json +1 -0
  69. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/invoice/invoice_claim.json +1 -0
  70. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/manifest.json +1 -0
  71. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/metering/metering_report.json +1 -0
  72. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/payload/job_proof_bundle/attestation/bundle_head_attestation.json +1 -0
  73. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/payload/job_proof_bundle/events/events.jsonl +1 -0
  74. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/payload/job_proof_bundle/events/payload_material.jsonl +1 -0
  75. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/payload/job_proof_bundle/governance/global/events/events.jsonl +1 -0
  76. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/payload/job_proof_bundle/governance/global/events/payload_material.jsonl +1 -0
  77. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/payload/job_proof_bundle/governance/global/snapshot.json +1 -0
  78. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/payload/job_proof_bundle/governance/policy.json +1 -0
  79. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/payload/job_proof_bundle/governance/revocations.json +1 -0
  80. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/payload/job_proof_bundle/governance/tenant/events/events.jsonl +0 -0
  81. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/payload/job_proof_bundle/governance/tenant/events/payload_material.jsonl +0 -0
  82. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/payload/job_proof_bundle/governance/tenant/snapshot.json +1 -0
  83. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/payload/job_proof_bundle/job/snapshot.json +1 -0
  84. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/payload/job_proof_bundle/keys/public_keys.json +1 -0
  85. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/payload/job_proof_bundle/manifest.json +1 -0
  86. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/payload/job_proof_bundle/verify/report.json +1 -0
  87. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/payload/job_proof_bundle/verify/verification_report.json +1 -0
  88. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/pricing/pricing_matrix.json +1 -0
  89. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/pricing/pricing_matrix_signatures.json +1 -0
  90. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/settld.json +1 -0
  91. package/services/magic-link/assets/samples/closepack/known-good/payload/invoice_bundle/verify/verification_report.json +1 -0
  92. package/services/magic-link/assets/samples/closepack/known-good/settld.json +1 -0
  93. package/services/magic-link/assets/samples/closepack/known-good/sla/sla_definition.json +1 -0
  94. package/services/magic-link/assets/samples/closepack/known-good/sla/sla_evaluation.json +1 -0
  95. package/services/magic-link/assets/samples/closepack/known-good/verify/verification_report.json +1 -0
  96. package/services/magic-link/assets/samples/trust.json +11 -0
  97. package/services/magic-link/src/audit-log.js +24 -0
  98. package/services/magic-link/src/buyer-auth.js +251 -0
  99. package/services/magic-link/src/buyer-notifications.js +402 -0
  100. package/services/magic-link/src/buyer-users.js +129 -0
  101. package/services/magic-link/src/decision-otp.js +187 -0
  102. package/services/magic-link/src/decisions.js +92 -0
  103. package/services/magic-link/src/email-resend.js +89 -0
  104. package/services/magic-link/src/ingest-keys.js +137 -0
  105. package/services/magic-link/src/maintenance.js +95 -0
  106. package/services/magic-link/src/onboarding-email-sequence.js +331 -0
  107. package/services/magic-link/src/payment-triggers.js +733 -0
  108. package/services/magic-link/src/pdf.js +149 -0
  109. package/services/magic-link/src/policy.js +69 -0
  110. package/services/magic-link/src/redaction.js +6 -0
  111. package/services/magic-link/src/render-model.js +70 -0
  112. package/services/magic-link/src/retention-gc.js +158 -0
  113. package/services/magic-link/src/run-records.js +496 -0
  114. package/services/magic-link/src/s3.js +171 -0
  115. package/services/magic-link/src/server.js +15849 -0
  116. package/services/magic-link/src/settlement-decisions.js +84 -0
  117. package/services/magic-link/src/smtp.js +217 -0
  118. package/services/magic-link/src/storage-cli.js +88 -0
  119. package/services/magic-link/src/storage-format.js +59 -0
  120. package/services/magic-link/src/tenant-billing.js +115 -0
  121. package/services/magic-link/src/tenant-onboarding.js +467 -0
  122. package/services/magic-link/src/tenant-settings.js +1140 -0
  123. package/services/magic-link/src/usage.js +80 -0
  124. package/services/magic-link/src/verify-queue.js +179 -0
  125. package/services/magic-link/src/verify-worker.js +157 -0
  126. package/services/magic-link/src/webhook-retries.js +542 -0
  127. package/services/magic-link/src/webhooks.js +218 -0
  128. package/src/api/app.js +135 -1
@@ -0,0 +1,1662 @@
1
+ export type ProtocolVersion = `${number}.${number}`;
2
+
3
+ export type SettldAutopayFetchOptions = {
4
+ fetch?: typeof fetch;
5
+ gateHeaderName?: string;
6
+ maxAttempts?: number;
7
+ };
8
+
9
+ export type SettldClientOptions = {
10
+ baseUrl: string;
11
+ tenantId: string;
12
+ protocol?: ProtocolVersion;
13
+ apiKey?: string;
14
+ xApiKey?: string;
15
+ opsToken?: string;
16
+ fetch?: typeof fetch;
17
+ userAgent?: string;
18
+ };
19
+
20
+ export type RequestOptions = {
21
+ requestId?: string;
22
+ idempotencyKey?: string;
23
+ expectedPrevChainHash?: string;
24
+ signal?: AbortSignal;
25
+ };
26
+
27
+ export type X402ExecutionIntentErrorCode =
28
+ | "X402_EXECUTION_INTENT_REQUIRED"
29
+ | "X402_EXECUTION_INTENT_IDEMPOTENCY_MISMATCH"
30
+ | "X402_EXECUTION_INTENT_CONFLICT"
31
+ | "X402_EXECUTION_INTENT_HASH_MISMATCH"
32
+ | "X402_EXECUTION_INTENT_INVALID"
33
+ | "X402_EXECUTION_INTENT_TIME_INVALID"
34
+ | "X402_EXECUTION_INTENT_TENANT_MISMATCH"
35
+ | "X402_EXECUTION_INTENT_AGENT_MISMATCH"
36
+ | "X402_EXECUTION_INTENT_SIDE_EFFECTING_REQUIRED"
37
+ | "X402_EXECUTION_INTENT_REQUEST_BINDING_REQUIRED"
38
+ | "X402_EXECUTION_INTENT_REQUEST_MISMATCH"
39
+ | "X402_EXECUTION_INTENT_SPEND_LIMIT_EXCEEDED"
40
+ | "X402_EXECUTION_INTENT_CURRENCY_MISMATCH"
41
+ | "X402_EXECUTION_INTENT_RUN_MISMATCH"
42
+ | "X402_EXECUTION_INTENT_AGREEMENT_MISMATCH"
43
+ | "X402_EXECUTION_INTENT_QUOTE_MISMATCH"
44
+ | "X402_EXECUTION_INTENT_POLICY_VERSION_MISMATCH"
45
+ | "X402_EXECUTION_INTENT_POLICY_HASH_MISMATCH"
46
+ | "X402_EXECUTION_INTENT_EXPIRES_AT_INVALID"
47
+ | "X402_EXECUTION_INTENT_EXPIRED";
48
+
49
+ export type X402GateVerifyErrorCode =
50
+ | "X402_INVALID_VERIFICATION_KEY_REF"
51
+ | "X402_MISSING_REQUIRED_PROOF"
52
+ | "X402_INVALID_CRYPTOGRAPHIC_PROOF"
53
+ | "X402_SPEND_AUTH_POLICY_FINGERPRINT_MISMATCH"
54
+ | "X402_REQUEST_BINDING_REQUIRED"
55
+ | "X402_REQUEST_BINDING_EVIDENCE_REQUIRED"
56
+ | "X402_REQUEST_BINDING_EVIDENCE_MISMATCH";
57
+
58
+ export type SettldApiErrorCode = X402ExecutionIntentErrorCode | X402GateVerifyErrorCode | "SCHEMA_INVALID" | (string & {});
59
+
60
+ export type SettldError = {
61
+ status: number;
62
+ code?: SettldApiErrorCode | null;
63
+ message: string;
64
+ details?: unknown;
65
+ requestId?: string | null;
66
+ };
67
+
68
+ export type SettldResponse<T> = {
69
+ ok: boolean;
70
+ status: number;
71
+ requestId: string | null;
72
+ body: T;
73
+ headers: Record<string, string>;
74
+ };
75
+
76
+ export declare function fetchWithSettldAutopay(
77
+ url: string | URL,
78
+ init?: RequestInit,
79
+ opts?: SettldAutopayFetchOptions
80
+ ): Promise<Response>;
81
+
82
+ export type SettldWebhookSignatureVerifyOptions = {
83
+ toleranceSeconds?: number;
84
+ timestamp?: string | number | null;
85
+ nowMs?: number;
86
+ };
87
+
88
+ export type SettldWebhookMiddlewareOptions = {
89
+ toleranceSeconds?: number;
90
+ signatureHeaderName?: string;
91
+ timestampHeaderName?: string;
92
+ };
93
+
94
+ export type SettldWebhookSecretResolver = string | ((req: unknown) => string | Promise<string>);
95
+
96
+ export declare class SettldWebhookSignatureError extends Error {
97
+ code: string;
98
+ }
99
+
100
+ export declare class SettldWebhookSignatureHeaderError extends SettldWebhookSignatureError {}
101
+
102
+ export declare class SettldWebhookTimestampToleranceError extends SettldWebhookSignatureError {
103
+ timestamp: string | null;
104
+ toleranceSeconds: number | null;
105
+ nowMs: number | null;
106
+ }
107
+
108
+ export declare class SettldWebhookNoMatchingSignatureError extends SettldWebhookSignatureError {}
109
+
110
+ export declare function verifySettldWebhookSignature(
111
+ rawBody: string | Uint8Array | ArrayBuffer,
112
+ signatureHeader: string,
113
+ secret: string,
114
+ optionsOrTolerance?: number | SettldWebhookSignatureVerifyOptions
115
+ ): true;
116
+
117
+ export declare function verifySettldWebhook(
118
+ secretOrResolver: SettldWebhookSecretResolver,
119
+ optionsOrTolerance?: number | SettldWebhookMiddlewareOptions
120
+ ): (req: any, res: any, next: (err?: unknown) => void) => void;
121
+
122
+ export type InteractionEntityType = "agent" | "human" | "robot" | "machine";
123
+
124
+ export type AgentIdentityV1 = {
125
+ schemaVersion: "AgentIdentity.v1";
126
+ agentId: string;
127
+ tenantId: string;
128
+ displayName: string;
129
+ description?: string | null;
130
+ status: "active" | "suspended" | "revoked";
131
+ owner: { ownerType: "human" | "business" | "service"; ownerId: string };
132
+ keys: { keyId: string; algorithm: "ed25519"; publicKeyPem: string };
133
+ capabilities: string[];
134
+ walletPolicy?: {
135
+ maxPerTransactionCents?: number;
136
+ maxDailyCents?: number;
137
+ requireApprovalAboveCents?: number;
138
+ } | null;
139
+ metadata?: Record<string, unknown> | null;
140
+ revision?: number;
141
+ createdAt: string;
142
+ updatedAt: string;
143
+ };
144
+
145
+ export type AgentRunV1 = {
146
+ schemaVersion: "AgentRun.v1";
147
+ runId: string;
148
+ agentId: string;
149
+ tenantId: string;
150
+ taskType?: string | null;
151
+ inputRef?: string | null;
152
+ status: "created" | "running" | "completed" | "failed";
153
+ evidenceRefs?: string[];
154
+ metrics?: Record<string, unknown> | null;
155
+ failure?: { code?: string | null; message?: string | null } | null;
156
+ startedAt?: string | null;
157
+ completedAt?: string | null;
158
+ failedAt?: string | null;
159
+ lastEventId?: string | null;
160
+ lastChainHash?: string | null;
161
+ revision?: number;
162
+ createdAt: string;
163
+ updatedAt: string;
164
+ };
165
+
166
+ export type AgentEventV1 = {
167
+ schemaVersion: "AgentEvent.v1";
168
+ v: 1;
169
+ id: string;
170
+ streamId: string;
171
+ type: "RUN_CREATED" | "RUN_STARTED" | "RUN_HEARTBEAT" | "EVIDENCE_ADDED" | "RUN_COMPLETED" | "RUN_FAILED";
172
+ at: string;
173
+ actor: { type: string; id: string } & Record<string, unknown>;
174
+ payload: Record<string, unknown>;
175
+ payloadHash?: string | null;
176
+ prevChainHash?: string | null;
177
+ chainHash?: string | null;
178
+ signature?: string | null;
179
+ signerKeyId?: string | null;
180
+ };
181
+
182
+ export type AgentWalletV1 = {
183
+ schemaVersion: "AgentWallet.v1";
184
+ walletId: string;
185
+ agentId: string;
186
+ tenantId: string;
187
+ currency: string;
188
+ availableCents: number;
189
+ escrowLockedCents: number;
190
+ totalDebitedCents: number;
191
+ totalCreditedCents: number;
192
+ revision: number;
193
+ createdAt: string;
194
+ updatedAt: string;
195
+ };
196
+
197
+ export type RunDisputeContextV1 = {
198
+ type: "quality" | "delivery" | "fraud" | "policy" | "payment" | "other";
199
+ priority: "low" | "normal" | "high" | "critical";
200
+ channel: "counterparty" | "policy_engine" | "arbiter" | "external";
201
+ escalationLevel: "l1_counterparty" | "l2_arbiter" | "l3_external";
202
+ openedByAgentId?: string | null;
203
+ reason?: string | null;
204
+ evidenceRefs?: string[];
205
+ };
206
+
207
+ export type RunDisputeResolutionV1 = {
208
+ outcome: "accepted" | "rejected" | "partial" | "withdrawn" | "unresolved";
209
+ escalationLevel: "l1_counterparty" | "l2_arbiter" | "l3_external";
210
+ closedByAgentId?: string | null;
211
+ summary?: string | null;
212
+ closedAt?: string | null;
213
+ evidenceRefs?: string[];
214
+ };
215
+
216
+ export type RunDisputeEvidenceSubmissionV1 = {
217
+ evidenceRef: string;
218
+ submittedAt: string;
219
+ submittedByAgentId?: string | null;
220
+ };
221
+
222
+ export type RunDisputeEscalationV1 = {
223
+ previousEscalationLevel: "l1_counterparty" | "l2_arbiter" | "l3_external";
224
+ escalationLevel: "l1_counterparty" | "l2_arbiter" | "l3_external";
225
+ channel: "counterparty" | "policy_engine" | "arbiter" | "external";
226
+ escalatedAt: string;
227
+ escalatedByAgentId?: string | null;
228
+ };
229
+
230
+ export type AgentRunSettlementV1 = {
231
+ schemaVersion: "AgentRunSettlement.v1";
232
+ settlementId: string;
233
+ runId: string;
234
+ tenantId: string;
235
+ agentId: string;
236
+ payerAgentId: string;
237
+ amountCents: number;
238
+ currency: string;
239
+ status: "locked" | "released" | "refunded";
240
+ lockedAt: string;
241
+ resolvedAt?: string | null;
242
+ resolutionEventId?: string | null;
243
+ runStatus?: string | null;
244
+ releasedAmountCents?: number;
245
+ refundedAmountCents?: number;
246
+ releaseRatePct?: number | null;
247
+ disputeWindowDays?: number;
248
+ disputeWindowEndsAt?: string | null;
249
+ disputeStatus?: "none" | "open" | "closed" | null;
250
+ disputeId?: string | null;
251
+ disputeOpenedAt?: string | null;
252
+ disputeClosedAt?: string | null;
253
+ disputeVerdictId?: string | null;
254
+ disputeVerdictHash?: string | null;
255
+ disputeVerdictArtifactId?: string | null;
256
+ disputeVerdictSignerKeyId?: string | null;
257
+ disputeVerdictIssuedAt?: string | null;
258
+ disputeContext?: RunDisputeContextV1 | null;
259
+ disputeResolution?: RunDisputeResolutionV1 | null;
260
+ decisionStatus?: "pending" | "auto_resolved" | "manual_review_required" | "manual_resolved" | null;
261
+ decisionMode?: "automatic" | "manual-review" | null;
262
+ decisionPolicyHash?: string | null;
263
+ decisionReason?: string | null;
264
+ decisionTrace?: Record<string, unknown> | null;
265
+ decisionUpdatedAt?: string | null;
266
+ revision: number;
267
+ createdAt: string;
268
+ updatedAt: string;
269
+ };
270
+
271
+ export type AgentReputationV1 = {
272
+ schemaVersion: "AgentReputation.v1";
273
+ agentId: string;
274
+ tenantId: string;
275
+ trustScore: number;
276
+ riskTier: "low" | "guarded" | "elevated" | "high";
277
+ totalRuns: number;
278
+ terminalRuns: number;
279
+ createdRuns: number;
280
+ runningRuns: number;
281
+ completedRuns: number;
282
+ failedRuns: number;
283
+ runsWithEvidence: number;
284
+ totalSettlements: number;
285
+ lockedSettlements: number;
286
+ releasedSettlements: number;
287
+ refundedSettlements: number;
288
+ runCompletionRatePct: number | null;
289
+ evidenceCoverageRatePct: number | null;
290
+ settlementReleaseRatePct: number | null;
291
+ avgRunDurationMs: number | null;
292
+ scoreBreakdown: {
293
+ runQuality: number;
294
+ settlementQuality: number;
295
+ evidenceQuality: number;
296
+ activityScore: number;
297
+ };
298
+ computedAt: string;
299
+ };
300
+
301
+ export type AgentReputationWindowV2 = {
302
+ trustScore: number;
303
+ riskTier: "low" | "guarded" | "elevated" | "high";
304
+ totalRuns: number;
305
+ terminalRuns: number;
306
+ createdRuns: number;
307
+ runningRuns: number;
308
+ completedRuns: number;
309
+ failedRuns: number;
310
+ runsWithEvidence: number;
311
+ totalSettlements: number;
312
+ lockedSettlements: number;
313
+ releasedSettlements: number;
314
+ refundedSettlements: number;
315
+ runCompletionRatePct: number | null;
316
+ evidenceCoverageRatePct: number | null;
317
+ settlementReleaseRatePct: number | null;
318
+ avgRunDurationMs: number | null;
319
+ scoreBreakdown: {
320
+ runQuality: number;
321
+ settlementQuality: number;
322
+ evidenceQuality: number;
323
+ activityScore: number;
324
+ };
325
+ computedAt: string;
326
+ };
327
+
328
+ export type AgentReputationV2 = {
329
+ schemaVersion: "AgentReputation.v2";
330
+ agentId: string;
331
+ tenantId: string;
332
+ primaryWindow: "7d" | "30d" | "allTime";
333
+ trustScore: number;
334
+ riskTier: "low" | "guarded" | "elevated" | "high";
335
+ windows: {
336
+ "7d": AgentReputationWindowV2;
337
+ "30d": AgentReputationWindowV2;
338
+ allTime: AgentReputationWindowV2;
339
+ };
340
+ computedAt: string;
341
+ };
342
+
343
+ export type AgentReputation = AgentReputationV1 | AgentReputationV2;
344
+
345
+ export type MarketplaceRfqV1 = {
346
+ schemaVersion: "MarketplaceRfq.v1";
347
+ rfqId: string;
348
+ tenantId: string;
349
+ title: string;
350
+ description?: string | null;
351
+ capability?: string | null;
352
+ fromType?: InteractionEntityType;
353
+ toType?: InteractionEntityType;
354
+ posterAgentId?: string | null;
355
+ status: "open" | "assigned" | "cancelled" | "closed";
356
+ budgetCents?: number | null;
357
+ currency: string;
358
+ deadlineAt?: string | null;
359
+ acceptedBidId?: string | null;
360
+ acceptedBidderAgentId?: string | null;
361
+ acceptedAt?: string | null;
362
+ acceptedByAgentId?: string | null;
363
+ counterOfferPolicy?: MarketplaceCounterOfferPolicyV1 | null;
364
+ runId?: string | null;
365
+ agreementId?: string | null;
366
+ agreement?: Record<string, unknown> | null;
367
+ settlementId?: string | null;
368
+ settlementStatus?: "locked" | "released" | "refunded" | null;
369
+ settlementResolvedAt?: string | null;
370
+ settlementReleaseRatePct?: number | null;
371
+ settlementDecisionStatus?: "pending" | "auto_resolved" | "manual_review_required" | "manual_resolved" | null;
372
+ settlementDecisionReason?: string | null;
373
+ metadata?: Record<string, unknown> | null;
374
+ createdAt: string;
375
+ updatedAt: string;
376
+ };
377
+
378
+ export type VerificationMethodV1 = {
379
+ schemaVersion: "VerificationMethod.v1";
380
+ mode: "deterministic" | "attested" | "discretionary";
381
+ source?: string | null;
382
+ attestor?: string | null;
383
+ notes?: string | null;
384
+ };
385
+
386
+ export type SettlementPolicyV1 = {
387
+ schemaVersion: "SettlementPolicy.v1";
388
+ policyVersion: number;
389
+ mode: "automatic" | "manual-review";
390
+ policyHash: string;
391
+ rules: {
392
+ requireDeterministicVerification: boolean;
393
+ autoReleaseOnGreen: boolean;
394
+ autoReleaseOnAmber: boolean;
395
+ autoReleaseOnRed: boolean;
396
+ greenReleaseRatePct: number;
397
+ amberReleaseRatePct: number;
398
+ redReleaseRatePct: number;
399
+ maxAutoReleaseAmountCents?: number | null;
400
+ manualReason?: string | null;
401
+ };
402
+ };
403
+
404
+ export type MarketplaceSettlementPolicyRefV1 = {
405
+ schemaVersion: "MarketplaceSettlementPolicyRef.v1";
406
+ source: "tenant_registry" | "inline";
407
+ policyId?: string | null;
408
+ policyVersion: number;
409
+ policyHash: string;
410
+ verificationMethodHash: string;
411
+ };
412
+
413
+ export type TenantSettlementPolicyV1 = {
414
+ schemaVersion: "TenantSettlementPolicy.v1";
415
+ tenantId: string;
416
+ policyId: string;
417
+ policyVersion: number;
418
+ policyHash: string;
419
+ verificationMethodHash: string;
420
+ verificationMethod: VerificationMethodV1;
421
+ policy: SettlementPolicyV1;
422
+ description?: string | null;
423
+ metadata?: Record<string, unknown> | null;
424
+ createdAt: string;
425
+ updatedAt: string;
426
+ };
427
+
428
+ export type MarketplaceAgreementMilestoneV1 = {
429
+ milestoneId: string;
430
+ label?: string | null;
431
+ releaseRatePct: number;
432
+ statusGate: "green" | "amber" | "red" | "any";
433
+ requiredEvidenceCount?: number | null;
434
+ };
435
+
436
+ export type MarketplaceAgreementCancellationV1 = {
437
+ allowCancellationBeforeStart: boolean;
438
+ killFeeRatePct: number;
439
+ requireEvidenceOnCancellation: boolean;
440
+ };
441
+
442
+ export type MarketplaceAgreementChangeOrderPolicyV1 = {
443
+ enabled: boolean;
444
+ maxChangeOrders: number;
445
+ requireCounterpartyAcceptance: boolean;
446
+ };
447
+
448
+ export type MarketplaceAgreementTermsV1 = {
449
+ title?: string | null;
450
+ capability?: string | null;
451
+ deadlineAt?: string | null;
452
+ etaSeconds?: number | null;
453
+ milestones: MarketplaceAgreementMilestoneV1[];
454
+ cancellation: MarketplaceAgreementCancellationV1;
455
+ changeOrderPolicy: MarketplaceAgreementChangeOrderPolicyV1;
456
+ changeOrders: Record<string, unknown>[];
457
+ };
458
+
459
+ export type MarketplaceAgreementTermsInput = {
460
+ milestones?: Array<{
461
+ milestoneId: string;
462
+ label?: string;
463
+ releaseRatePct: number;
464
+ statusGate?: "green" | "amber" | "red" | "any";
465
+ requiredEvidenceCount?: number;
466
+ }>;
467
+ cancellation?: {
468
+ allowCancellationBeforeStart?: boolean;
469
+ killFeeRatePct?: number;
470
+ requireEvidenceOnCancellation?: boolean;
471
+ };
472
+ changeOrderPolicy?: {
473
+ enabled?: boolean;
474
+ maxChangeOrders?: number;
475
+ requireCounterpartyAcceptance?: boolean;
476
+ };
477
+ };
478
+
479
+ export type MarketplaceCounterOfferPolicyV1 = {
480
+ schemaVersion: "MarketplaceCounterOfferPolicy.v1";
481
+ allowPosterCounterOffers: boolean;
482
+ allowBidderCounterOffers: boolean;
483
+ maxRevisions: number;
484
+ timeoutSeconds: number;
485
+ };
486
+
487
+ export type MarketplaceBidAcceptanceV1 = {
488
+ schemaVersion: "MarketplaceBidAcceptance.v1";
489
+ acceptedAt: string;
490
+ acceptedByAgentId?: string | null;
491
+ acceptedProposalId?: string | null;
492
+ acceptedRevision?: number | null;
493
+ };
494
+
495
+ export type MarketplaceAgreementAcceptanceV1 = {
496
+ schemaVersion: "MarketplaceAgreementAcceptance.v1";
497
+ acceptedAt?: string | null;
498
+ acceptedByAgentId?: string | null;
499
+ acceptedProposalId?: string | null;
500
+ acceptedRevision?: number | null;
501
+ acceptedProposalHash?: string | null;
502
+ offerChainHash?: string | null;
503
+ proposalCount: number;
504
+ };
505
+
506
+ export type AgentDelegationLinkV1 = {
507
+ schemaVersion: "AgentDelegationLink.v1";
508
+ delegationId: string;
509
+ tenantId: string;
510
+ principalAgentId: string;
511
+ delegateAgentId: string;
512
+ scope?: string | null;
513
+ issuedAt: string;
514
+ expiresAt?: string | null;
515
+ signerKeyId: string;
516
+ delegationHash: string;
517
+ signature: string;
518
+ };
519
+
520
+ export type AgentActingOnBehalfOfV1 = {
521
+ schemaVersion: "AgentActingOnBehalfOf.v1";
522
+ principalAgentId: string;
523
+ delegateAgentId?: string | null;
524
+ delegationChain: AgentDelegationLinkV1[];
525
+ chainHash?: string | null;
526
+ };
527
+
528
+ export type MarketplaceAgreementAcceptanceSignatureV2 = {
529
+ schemaVersion: "MarketplaceAgreementAcceptanceSignature.v2";
530
+ agreementId: string;
531
+ tenantId: string;
532
+ rfqId: string;
533
+ runId: string;
534
+ bidId: string;
535
+ acceptedByAgentId: string;
536
+ acceptedProposalId?: string | null;
537
+ acceptedRevision?: number | null;
538
+ acceptedProposalHash?: string | null;
539
+ offerChainHash?: string | null;
540
+ proposalCount?: number | null;
541
+ actingOnBehalfOfPrincipalAgentId?: string | null;
542
+ actingOnBehalfOfDelegateAgentId?: string | null;
543
+ actingOnBehalfOfChainHash?: string | null;
544
+ signerAgentId: string;
545
+ signerKeyId: string;
546
+ signedAt: string;
547
+ actingOnBehalfOf?: AgentActingOnBehalfOfV1 | null;
548
+ acceptanceHash: string;
549
+ signature: string;
550
+ };
551
+
552
+ export type MarketplaceAgreementAcceptanceSignatureInput = {
553
+ signerAgentId?: string;
554
+ signerKeyId: string;
555
+ signedAt?: string;
556
+ actingOnBehalfOf?: AgentActingOnBehalfOfV1;
557
+ signature: string;
558
+ };
559
+
560
+ export type MarketplaceAgreementChangeOrderAcceptanceSignatureV2 = {
561
+ schemaVersion: "MarketplaceAgreementChangeOrderAcceptanceSignature.v2";
562
+ tenantId: string;
563
+ runId: string;
564
+ agreementId: string;
565
+ rfqId: string;
566
+ bidId: string;
567
+ changeOrderId: string;
568
+ requestedByAgentId: string;
569
+ acceptedByAgentId: string;
570
+ reason: string;
571
+ note?: string | null;
572
+ previousTermsHash?: string | null;
573
+ milestonesHash: string;
574
+ cancellationHash: string;
575
+ actingOnBehalfOfPrincipalAgentId?: string | null;
576
+ actingOnBehalfOfDelegateAgentId?: string | null;
577
+ actingOnBehalfOfChainHash?: string | null;
578
+ signerAgentId: string;
579
+ signerKeyId: string;
580
+ signedAt: string;
581
+ actingOnBehalfOf?: AgentActingOnBehalfOfV1 | null;
582
+ acceptanceHash: string;
583
+ signature: string;
584
+ };
585
+
586
+ export type MarketplaceAgreementCancellationAcceptanceSignatureV2 = {
587
+ schemaVersion: "MarketplaceAgreementCancellationAcceptanceSignature.v2";
588
+ tenantId: string;
589
+ runId: string;
590
+ agreementId: string;
591
+ rfqId: string;
592
+ bidId: string;
593
+ cancellationId: string;
594
+ cancelledByAgentId: string;
595
+ acceptedByAgentId: string;
596
+ reason: string;
597
+ evidenceRef?: string | null;
598
+ termsHash: string;
599
+ killFeeRatePct: number;
600
+ actingOnBehalfOfPrincipalAgentId?: string | null;
601
+ actingOnBehalfOfDelegateAgentId?: string | null;
602
+ actingOnBehalfOfChainHash?: string | null;
603
+ signerAgentId: string;
604
+ signerKeyId: string;
605
+ signedAt: string;
606
+ actingOnBehalfOf?: AgentActingOnBehalfOfV1 | null;
607
+ acceptanceHash: string;
608
+ signature: string;
609
+ };
610
+
611
+ export type MarketplaceAgreementPolicyBindingV2 = {
612
+ schemaVersion: "MarketplaceAgreementPolicyBinding.v2";
613
+ agreementId: string;
614
+ tenantId: string;
615
+ rfqId: string;
616
+ runId: string;
617
+ bidId: string;
618
+ acceptedAt?: string | null;
619
+ acceptedByAgentId?: string | null;
620
+ offerChainHash?: string | null;
621
+ acceptedProposalId?: string | null;
622
+ acceptedRevision?: number | null;
623
+ acceptedProposalHash?: string | null;
624
+ termsHash: string;
625
+ policyHash: string;
626
+ verificationMethodHash: string;
627
+ policyRefHash: string;
628
+ policyRef: MarketplaceSettlementPolicyRefV1;
629
+ signerKeyId: string;
630
+ signedAt: string;
631
+ bindingHash: string;
632
+ signature: string;
633
+ };
634
+
635
+ export type MarketplaceBidNegotiationProposalV1 = {
636
+ schemaVersion: "MarketplaceBidProposal.v1";
637
+ proposalId: string;
638
+ bidId: string;
639
+ revision: number;
640
+ proposerAgentId: string;
641
+ amountCents: number;
642
+ currency: string;
643
+ etaSeconds?: number | null;
644
+ note?: string | null;
645
+ verificationMethod: VerificationMethodV1;
646
+ policy: SettlementPolicyV1;
647
+ policyRef: MarketplaceSettlementPolicyRefV1;
648
+ policyRefHash: string;
649
+ prevProposalHash?: string | null;
650
+ proposalHash: string;
651
+ metadata?: Record<string, unknown> | null;
652
+ proposedAt: string;
653
+ };
654
+
655
+ export type MarketplaceBidNegotiationV1 = {
656
+ schemaVersion: "MarketplaceBidNegotiation.v1";
657
+ bidId: string;
658
+ state: "open" | "accepted" | "rejected" | "cancelled" | "expired";
659
+ latestRevision: number;
660
+ acceptedRevision?: number | null;
661
+ acceptedProposalId?: string | null;
662
+ acceptedAt?: string | null;
663
+ acceptance?: MarketplaceBidAcceptanceV1 | null;
664
+ counterOfferPolicy: MarketplaceCounterOfferPolicyV1;
665
+ expiresAt?: string | null;
666
+ expiredAt?: string | null;
667
+ createdAt: string;
668
+ updatedAt: string;
669
+ proposals: MarketplaceBidNegotiationProposalV1[];
670
+ };
671
+
672
+ export type MarketplaceAgreementNegotiationV1 = {
673
+ schemaVersion: "MarketplaceAgreementNegotiation.v1";
674
+ state: "open" | "accepted" | "rejected" | "cancelled" | "expired";
675
+ latestRevision: number;
676
+ acceptedRevision?: number | null;
677
+ acceptedProposalId?: string | null;
678
+ proposalCount: number;
679
+ };
680
+
681
+ export type MarketplaceTaskAgreementV2 = {
682
+ schemaVersion: "MarketplaceTaskAgreement.v2";
683
+ agreementId: string;
684
+ tenantId: string;
685
+ rfqId: string;
686
+ runId: string;
687
+ bidId: string;
688
+ payerAgentId: string;
689
+ payeeAgentId: string;
690
+ fromType: InteractionEntityType;
691
+ toType: InteractionEntityType;
692
+ amountCents: number;
693
+ currency: string;
694
+ acceptedAt: string;
695
+ acceptedByAgentId?: string | null;
696
+ disputeWindowDays: number;
697
+ agreementRevision?: number | null;
698
+ updatedAt?: string | null;
699
+ offerChainHash?: string | null;
700
+ acceptedProposalId?: string | null;
701
+ acceptedRevision?: number | null;
702
+ acceptedProposalHash?: string | null;
703
+ negotiation?: MarketplaceAgreementNegotiationV1 | null;
704
+ acceptance?: MarketplaceAgreementAcceptanceV1 | null;
705
+ acceptanceSignature?: MarketplaceAgreementAcceptanceSignatureV2 | null;
706
+ termsHash: string;
707
+ verificationMethodHash: string;
708
+ policyHash: string;
709
+ policyRef: MarketplaceSettlementPolicyRefV1;
710
+ policyBinding?: MarketplaceAgreementPolicyBindingV2 | null;
711
+ verificationMethod?: VerificationMethodV1;
712
+ policy?: SettlementPolicyV1;
713
+ terms?: MarketplaceAgreementTermsV1;
714
+ };
715
+
716
+ export type MarketplaceBidV1 = {
717
+ schemaVersion: "MarketplaceBid.v1";
718
+ bidId: string;
719
+ rfqId: string;
720
+ tenantId: string;
721
+ fromType?: InteractionEntityType;
722
+ toType?: InteractionEntityType;
723
+ bidderAgentId: string;
724
+ amountCents: number;
725
+ currency: string;
726
+ etaSeconds?: number | null;
727
+ note?: string | null;
728
+ verificationMethod?: VerificationMethodV1;
729
+ policy?: SettlementPolicyV1;
730
+ policyRef?: MarketplaceSettlementPolicyRefV1 | null;
731
+ status: "pending" | "accepted" | "rejected";
732
+ acceptedAt?: string | null;
733
+ rejectedAt?: string | null;
734
+ negotiation?: MarketplaceBidNegotiationV1 | null;
735
+ counterOfferPolicy?: MarketplaceCounterOfferPolicyV1 | null;
736
+ metadata?: Record<string, unknown> | null;
737
+ createdAt: string;
738
+ updatedAt: string;
739
+ };
740
+
741
+ export type MarketplaceRfqBidV1 = MarketplaceBidV1;
742
+
743
+ export type AgentRegistrationInput = {
744
+ publicKeyPem: string;
745
+ agentId?: string;
746
+ displayName?: string;
747
+ description?: string;
748
+ status?: "active" | "suspended" | "revoked";
749
+ ownerType?: "human" | "business" | "service";
750
+ ownerId?: string;
751
+ owner?: { ownerType?: "human" | "business" | "service"; ownerId?: string };
752
+ capabilities?: string[];
753
+ walletPolicy?: { maxPerTransactionCents?: number; maxDailyCents?: number; requireApprovalAboveCents?: number };
754
+ metadata?: Record<string, unknown>;
755
+ };
756
+
757
+ export type FirstVerifiedRunParams = {
758
+ payeeAgent: AgentRegistrationInput;
759
+ payerAgent?: AgentRegistrationInput;
760
+ payerCredit?: { amountCents: number; currency?: string };
761
+ run?: {
762
+ runId?: string;
763
+ taskType?: string;
764
+ inputRef?: string;
765
+ settlement?: { payerAgentId: string; amountCents: number; currency?: string };
766
+ };
767
+ settlement?: { payerAgentId?: string; amountCents: number; currency?: string };
768
+ actor?: Record<string, unknown>;
769
+ startedPayload?: Record<string, unknown>;
770
+ evidenceRef?: string;
771
+ evidencePayload?: Record<string, unknown>;
772
+ outputRef?: string;
773
+ completedPayload?: Record<string, unknown>;
774
+ completedMetrics?: Record<string, unknown>;
775
+ };
776
+
777
+ export type FirstVerifiedRunOptions = {
778
+ signal?: AbortSignal;
779
+ idempotencyPrefix?: string;
780
+ requestIdPrefix?: string;
781
+ };
782
+
783
+ export type FirstVerifiedRunResult = {
784
+ ids: { runId: string; payeeAgentId: string; payerAgentId: string | null };
785
+ payeeRegistration: SettldResponse<{ agentIdentity: AgentIdentityV1; keyId: string }>;
786
+ payerRegistration: SettldResponse<{ agentIdentity: AgentIdentityV1; keyId: string }> | null;
787
+ payerCredit: SettldResponse<{ wallet: AgentWalletV1 }> | null;
788
+ runCreated: SettldResponse<{ run: AgentRunV1; event: AgentEventV1; settlement?: AgentRunSettlementV1 | null }>;
789
+ runStarted: SettldResponse<{ event: AgentEventV1; run: AgentRunV1; settlement?: AgentRunSettlementV1 | null }>;
790
+ runEvidenceAdded: SettldResponse<{ event: AgentEventV1; run: AgentRunV1; settlement?: AgentRunSettlementV1 | null }>;
791
+ runCompleted: SettldResponse<{ event: AgentEventV1; run: AgentRunV1; settlement?: AgentRunSettlementV1 | null }>;
792
+ run: SettldResponse<{ run: AgentRunV1; verification: Record<string, unknown>; settlement?: AgentRunSettlementV1 | null }>;
793
+ verification: SettldResponse<Record<string, unknown>>;
794
+ settlement: SettldResponse<{ settlement: AgentRunSettlementV1 }> | null;
795
+ };
796
+
797
+ export type ToolCallAgreementV1 = {
798
+ schemaVersion: "ToolCallAgreement.v1";
799
+ toolId: string;
800
+ manifestHash: string;
801
+ callId: string;
802
+ inputHash: string;
803
+ acceptanceCriteria: Record<string, unknown> | null;
804
+ settlementTerms: Record<string, unknown> | null;
805
+ payerAgentId: string | null;
806
+ payeeAgentId: string | null;
807
+ createdAt: string;
808
+ agreementHash: string;
809
+ };
810
+
811
+ export type ToolCallEvidenceV1 = {
812
+ schemaVersion: "ToolCallEvidence.v1";
813
+ agreementHash: string;
814
+ callId: string;
815
+ inputHash: string;
816
+ outputHash: string;
817
+ outputRef: string | null;
818
+ metrics: Record<string, unknown> | null;
819
+ startedAt: string;
820
+ completedAt: string;
821
+ createdAt: string;
822
+ evidenceHash: string;
823
+ signature?: {
824
+ algorithm: "ed25519";
825
+ signerKeyId: string;
826
+ evidenceHash: string;
827
+ signature: string;
828
+ } | null;
829
+ };
830
+
831
+ export type ToolCallSettleResult = {
832
+ agreementHash: string;
833
+ receiptHash: string;
834
+ receiptRef: Record<string, unknown>;
835
+ hold: Record<string, unknown> | null;
836
+ holdResponse: SettldResponse<{ hold: Record<string, unknown> }>;
837
+ };
838
+
839
+ export type TenantAnalyticsQuery = {
840
+ month?: string;
841
+ bucket?: "day" | "week" | "month";
842
+ limit?: number;
843
+ };
844
+
845
+ export type TenantTrustGraphQuery = {
846
+ month?: string;
847
+ minRuns?: number;
848
+ maxEdges?: number;
849
+ };
850
+
851
+ export type TenantTrustGraphSnapshotCreateInput = {
852
+ month?: string;
853
+ minRuns?: number;
854
+ maxEdges?: number;
855
+ };
856
+
857
+ export type TenantTrustGraphDiffQuery = {
858
+ baseMonth?: string;
859
+ compareMonth?: string;
860
+ limit?: number;
861
+ minRuns?: number;
862
+ maxEdges?: number;
863
+ includeUnchanged?: boolean;
864
+ };
865
+
866
+ export type X402GateAuthorizePaymentRequest = {
867
+ gateId: string;
868
+ quoteId?: string | null;
869
+ requestBindingMode?: "strict" | null;
870
+ requestBindingSha256?: string | null;
871
+ walletAuthorizationDecisionToken?: string | null;
872
+ escalationOverrideToken?: string | null;
873
+ executionIntent?: Record<string, unknown> | null;
874
+ } & Record<string, unknown>;
875
+
876
+ export class SettldClient {
877
+ constructor(opts: SettldClientOptions);
878
+
879
+ capabilities(opts?: RequestOptions): Promise<SettldResponse<Record<string, unknown>>>;
880
+ openApi(opts?: RequestOptions): Promise<SettldResponse<Record<string, unknown>>>;
881
+ x402GateAuthorizePayment(body: X402GateAuthorizePaymentRequest, opts?: RequestOptions): Promise<SettldResponse<Record<string, unknown>>>;
882
+
883
+ createJob(body: { templateId: string } & Record<string, unknown>, opts?: RequestOptions): Promise<SettldResponse<Record<string, unknown>>>;
884
+ getJob(jobId: string, opts?: RequestOptions): Promise<SettldResponse<Record<string, unknown>>>;
885
+ registerAgent(
886
+ body: AgentRegistrationInput,
887
+ opts?: RequestOptions
888
+ ): Promise<SettldResponse<{ agentIdentity: AgentIdentityV1; keyId: string }>>;
889
+ listAgents(
890
+ params?: {
891
+ status?: "active" | "suspended" | "revoked";
892
+ capability?: string;
893
+ minTrustScore?: number;
894
+ includeReputation?: boolean;
895
+ reputationVersion?: "v1" | "v2";
896
+ reputationWindow?: "7d" | "30d" | "allTime";
897
+ limit?: number;
898
+ offset?: number;
899
+ },
900
+ opts?: RequestOptions
901
+ ): Promise<SettldResponse<{ agents: AgentIdentityV1[]; reputations?: Record<string, AgentReputation>; limit: number; offset: number }>>;
902
+ getAgent(agentId: string, opts?: RequestOptions): Promise<SettldResponse<{ agentIdentity: AgentIdentityV1 }>>;
903
+ getAgentReputation(
904
+ agentId: string,
905
+ opts?: RequestOptions & { reputationVersion?: "v1" | "v2"; reputationWindow?: "7d" | "30d" | "allTime" }
906
+ ): Promise<SettldResponse<{ reputation: AgentReputation }>>;
907
+ searchMarketplaceAgents(
908
+ params?: {
909
+ status?: "active" | "suspended" | "revoked" | "all";
910
+ capability?: string;
911
+ minTrustScore?: number;
912
+ riskTier?: "low" | "guarded" | "elevated" | "high";
913
+ includeReputation?: boolean;
914
+ reputationVersion?: "v1" | "v2";
915
+ reputationWindow?: "7d" | "30d" | "allTime";
916
+ scoreStrategy?: "balanced" | "recent_bias";
917
+ limit?: number;
918
+ offset?: number;
919
+ },
920
+ opts?: RequestOptions
921
+ ): Promise<
922
+ SettldResponse<{
923
+ reputationVersion: "v1" | "v2";
924
+ reputationWindow: "7d" | "30d" | "allTime";
925
+ scoreStrategy: "balanced" | "recent_bias";
926
+ total: number;
927
+ limit: number;
928
+ offset: number;
929
+ results: Array<{
930
+ rank: number;
931
+ rankingScore: number;
932
+ riskTier: "low" | "guarded" | "elevated" | "high";
933
+ agentIdentity: AgentIdentityV1;
934
+ reputation?: AgentReputation;
935
+ }>;
936
+ }>
937
+ >;
938
+ upsertMarketplaceSettlementPolicy(
939
+ body: {
940
+ policyId: string;
941
+ policyVersion?: number;
942
+ verificationMethod?: {
943
+ verificationMethodHash?: string;
944
+ mode?: "deterministic" | "attested" | "discretionary";
945
+ source?: string;
946
+ attestor?: string;
947
+ notes?: string;
948
+ };
949
+ policy: {
950
+ policyHash?: string;
951
+ policyVersion?: number;
952
+ mode?: "automatic" | "manual-review";
953
+ rules?: {
954
+ requireDeterministicVerification?: boolean;
955
+ autoReleaseOnGreen?: boolean;
956
+ autoReleaseOnAmber?: boolean;
957
+ autoReleaseOnRed?: boolean;
958
+ greenReleaseRatePct?: number;
959
+ amberReleaseRatePct?: number;
960
+ redReleaseRatePct?: number;
961
+ maxAutoReleaseAmountCents?: number;
962
+ manualReason?: string;
963
+ };
964
+ };
965
+ description?: string;
966
+ metadata?: Record<string, unknown>;
967
+ },
968
+ opts?: RequestOptions
969
+ ): Promise<SettldResponse<{ policy: TenantSettlementPolicyV1 }>>;
970
+ listMarketplaceSettlementPolicies(
971
+ params?: { policyId?: string; limit?: number; offset?: number },
972
+ opts?: RequestOptions
973
+ ): Promise<SettldResponse<{ policies: TenantSettlementPolicyV1[]; total: number; limit: number; offset: number }>>;
974
+ getMarketplaceSettlementPolicy(
975
+ policyId: string,
976
+ policyVersion: number,
977
+ opts?: RequestOptions
978
+ ): Promise<SettldResponse<{ policy: TenantSettlementPolicyV1 }>>;
979
+ createMarketplaceRfq(
980
+ body: {
981
+ rfqId?: string;
982
+ title?: string;
983
+ description?: string;
984
+ capability?: string;
985
+ fromType?: InteractionEntityType;
986
+ toType?: InteractionEntityType;
987
+ posterAgentId?: string;
988
+ budgetCents?: number;
989
+ currency?: string;
990
+ deadlineAt?: string;
991
+ counterOfferPolicy?: {
992
+ allowPosterCounterOffers?: boolean;
993
+ allowBidderCounterOffers?: boolean;
994
+ maxRevisions?: number;
995
+ timeoutSeconds?: number;
996
+ };
997
+ metadata?: Record<string, unknown>;
998
+ },
999
+ opts?: RequestOptions
1000
+ ): Promise<SettldResponse<{ rfq: MarketplaceRfqV1 }>>;
1001
+ listMarketplaceRfqs(
1002
+ params?: {
1003
+ status?: "open" | "assigned" | "cancelled" | "closed" | "all";
1004
+ capability?: string;
1005
+ posterAgentId?: string;
1006
+ limit?: number;
1007
+ offset?: number;
1008
+ },
1009
+ opts?: RequestOptions
1010
+ ): Promise<SettldResponse<{ rfqs: MarketplaceRfqV1[]; total: number; limit: number; offset: number }>>;
1011
+ submitMarketplaceBid(
1012
+ rfqId: string,
1013
+ body: {
1014
+ bidId?: string;
1015
+ proposalId?: string;
1016
+ fromType?: InteractionEntityType;
1017
+ toType?: InteractionEntityType;
1018
+ bidderAgentId: string;
1019
+ amountCents: number;
1020
+ currency?: string;
1021
+ etaSeconds?: number;
1022
+ note?: string;
1023
+ verificationMethod?: {
1024
+ verificationMethodHash?: string;
1025
+ mode?: "deterministic" | "attested" | "discretionary";
1026
+ source?: string;
1027
+ attestor?: string;
1028
+ notes?: string;
1029
+ };
1030
+ policy?: {
1031
+ policyHash?: string;
1032
+ policyVersion?: number;
1033
+ mode?: "automatic" | "manual-review";
1034
+ rules?: {
1035
+ requireDeterministicVerification?: boolean;
1036
+ autoReleaseOnGreen?: boolean;
1037
+ autoReleaseOnAmber?: boolean;
1038
+ autoReleaseOnRed?: boolean;
1039
+ greenReleaseRatePct?: number;
1040
+ amberReleaseRatePct?: number;
1041
+ redReleaseRatePct?: number;
1042
+ maxAutoReleaseAmountCents?: number;
1043
+ manualReason?: string;
1044
+ };
1045
+ };
1046
+ policyRef?: {
1047
+ source?: "tenant_registry" | "inline";
1048
+ policyId?: string;
1049
+ policyVersion?: number;
1050
+ policyHash?: string;
1051
+ verificationMethodHash?: string;
1052
+ };
1053
+ metadata?: Record<string, unknown>;
1054
+ },
1055
+ opts?: RequestOptions
1056
+ ): Promise<SettldResponse<{ rfq: MarketplaceRfqV1; bid: MarketplaceRfqBidV1 }>>;
1057
+ listMarketplaceBids(
1058
+ rfqId: string,
1059
+ params?: {
1060
+ status?: "pending" | "accepted" | "rejected" | "all";
1061
+ bidderAgentId?: string;
1062
+ limit?: number;
1063
+ offset?: number;
1064
+ },
1065
+ opts?: RequestOptions
1066
+ ): Promise<SettldResponse<{ rfqId: string; bids: MarketplaceRfqBidV1[]; total: number; limit: number; offset: number }>>;
1067
+ applyMarketplaceBidCounterOffer(
1068
+ rfqId: string,
1069
+ bidId: string,
1070
+ body: {
1071
+ proposalId?: string;
1072
+ proposerAgentId: string;
1073
+ amountCents?: number;
1074
+ currency?: string;
1075
+ etaSeconds?: number | null;
1076
+ note?: string | null;
1077
+ verificationMethod?: {
1078
+ verificationMethodHash?: string;
1079
+ mode?: "deterministic" | "attested" | "discretionary";
1080
+ source?: string;
1081
+ attestor?: string;
1082
+ notes?: string;
1083
+ };
1084
+ policy?: {
1085
+ policyHash?: string;
1086
+ policyVersion?: number;
1087
+ mode?: "automatic" | "manual-review";
1088
+ rules?: {
1089
+ requireDeterministicVerification?: boolean;
1090
+ autoReleaseOnGreen?: boolean;
1091
+ autoReleaseOnAmber?: boolean;
1092
+ autoReleaseOnRed?: boolean;
1093
+ greenReleaseRatePct?: number;
1094
+ amberReleaseRatePct?: number;
1095
+ redReleaseRatePct?: number;
1096
+ maxAutoReleaseAmountCents?: number;
1097
+ manualReason?: string;
1098
+ };
1099
+ };
1100
+ policyRef?: {
1101
+ source?: "tenant_registry" | "inline";
1102
+ policyId?: string;
1103
+ policyVersion?: number;
1104
+ policyHash?: string;
1105
+ verificationMethodHash?: string;
1106
+ };
1107
+ metadata?: Record<string, unknown> | null;
1108
+ },
1109
+ opts?: RequestOptions
1110
+ ): Promise<
1111
+ SettldResponse<{
1112
+ rfq: MarketplaceRfqV1;
1113
+ bid: MarketplaceRfqBidV1;
1114
+ negotiation: MarketplaceBidNegotiationV1;
1115
+ proposal: MarketplaceBidNegotiationProposalV1;
1116
+ }>
1117
+ >;
1118
+ acceptMarketplaceBid(
1119
+ rfqId: string,
1120
+ body: {
1121
+ bidId: string;
1122
+ acceptedByAgentId?: string;
1123
+ runId?: string;
1124
+ taskType?: string;
1125
+ inputRef?: string;
1126
+ payerAgentId?: string;
1127
+ fromType?: InteractionEntityType;
1128
+ toType?: InteractionEntityType;
1129
+ disputeWindowDays?: number;
1130
+ acceptanceSignature?: MarketplaceAgreementAcceptanceSignatureInput;
1131
+ agreementTerms?: MarketplaceAgreementTermsInput;
1132
+ verificationMethod?: {
1133
+ verificationMethodHash?: string;
1134
+ mode?: "deterministic" | "attested" | "discretionary";
1135
+ source?: string;
1136
+ attestor?: string;
1137
+ notes?: string;
1138
+ };
1139
+ policy?: {
1140
+ policyHash?: string;
1141
+ policyVersion?: number;
1142
+ mode?: "automatic" | "manual-review";
1143
+ rules?: {
1144
+ requireDeterministicVerification?: boolean;
1145
+ autoReleaseOnGreen?: boolean;
1146
+ autoReleaseOnAmber?: boolean;
1147
+ autoReleaseOnRed?: boolean;
1148
+ greenReleaseRatePct?: number;
1149
+ amberReleaseRatePct?: number;
1150
+ redReleaseRatePct?: number;
1151
+ maxAutoReleaseAmountCents?: number;
1152
+ manualReason?: string;
1153
+ };
1154
+ };
1155
+ policyRef?: {
1156
+ source?: "tenant_registry" | "inline";
1157
+ policyId?: string;
1158
+ policyVersion?: number;
1159
+ policyHash?: string;
1160
+ verificationMethodHash?: string;
1161
+ };
1162
+ settlement?: {
1163
+ payerAgentId?: string;
1164
+ fromType?: InteractionEntityType;
1165
+ toType?: InteractionEntityType;
1166
+ amountCents?: number;
1167
+ currency?: string;
1168
+ disputeWindowDays?: number;
1169
+ agreementTerms?: MarketplaceAgreementTermsInput;
1170
+ verificationMethod?: {
1171
+ verificationMethodHash?: string;
1172
+ mode?: "deterministic" | "attested" | "discretionary";
1173
+ source?: string;
1174
+ attestor?: string;
1175
+ notes?: string;
1176
+ };
1177
+ policy?: {
1178
+ policyHash?: string;
1179
+ policyVersion?: number;
1180
+ mode?: "automatic" | "manual-review";
1181
+ rules?: {
1182
+ requireDeterministicVerification?: boolean;
1183
+ autoReleaseOnGreen?: boolean;
1184
+ autoReleaseOnAmber?: boolean;
1185
+ autoReleaseOnRed?: boolean;
1186
+ greenReleaseRatePct?: number;
1187
+ amberReleaseRatePct?: number;
1188
+ redReleaseRatePct?: number;
1189
+ maxAutoReleaseAmountCents?: number;
1190
+ manualReason?: string;
1191
+ };
1192
+ };
1193
+ policyRef?: {
1194
+ source?: "tenant_registry" | "inline";
1195
+ policyId?: string;
1196
+ policyVersion?: number;
1197
+ policyHash?: string;
1198
+ verificationMethodHash?: string;
1199
+ };
1200
+ };
1201
+ },
1202
+ opts?: RequestOptions
1203
+ ): Promise<
1204
+ SettldResponse<{
1205
+ rfq: MarketplaceRfqV1;
1206
+ acceptedBid: MarketplaceRfqBidV1 | null;
1207
+ run: AgentRunV1;
1208
+ settlement: AgentRunSettlementV1;
1209
+ agreement: MarketplaceTaskAgreementV2;
1210
+ }>
1211
+ >;
1212
+ getAgentWallet(agentId: string, opts?: RequestOptions): Promise<SettldResponse<{ wallet: AgentWalletV1 }>>;
1213
+ creditAgentWallet(
1214
+ agentId: string,
1215
+ body: { amountCents: number; currency?: string },
1216
+ opts?: RequestOptions
1217
+ ): Promise<SettldResponse<{ wallet: AgentWalletV1 }>>;
1218
+ createAgentRun(
1219
+ agentId: string,
1220
+ body?: {
1221
+ runId?: string;
1222
+ taskType?: string;
1223
+ inputRef?: string;
1224
+ settlement?: { payerAgentId: string; amountCents: number; currency?: string };
1225
+ },
1226
+ opts?: RequestOptions
1227
+ ): Promise<SettldResponse<{ run: AgentRunV1; event: AgentEventV1; settlement?: AgentRunSettlementV1 | null }>>;
1228
+ listAgentRuns(
1229
+ agentId: string,
1230
+ params?: { status?: "created" | "running" | "completed" | "failed"; limit?: number; offset?: number },
1231
+ opts?: RequestOptions
1232
+ ): Promise<SettldResponse<{ runs: AgentRunV1[]; total: number; limit: number; offset: number }>>;
1233
+ getAgentRun(
1234
+ agentId: string,
1235
+ runId: string,
1236
+ opts?: RequestOptions
1237
+ ): Promise<SettldResponse<{ run: AgentRunV1; verification: Record<string, unknown>; settlement?: AgentRunSettlementV1 | null }>>;
1238
+ listAgentRunEvents(agentId: string, runId: string, opts?: RequestOptions): Promise<SettldResponse<{ events: AgentEventV1[] }>>;
1239
+ appendAgentRunEvent(
1240
+ agentId: string,
1241
+ runId: string,
1242
+ body: {
1243
+ type: "RUN_STARTED" | "RUN_HEARTBEAT" | "EVIDENCE_ADDED" | "RUN_COMPLETED" | "RUN_FAILED";
1244
+ at?: string;
1245
+ actor?: Record<string, unknown>;
1246
+ payload: Record<string, unknown>;
1247
+ },
1248
+ opts: RequestOptions
1249
+ ): Promise<SettldResponse<{ event: AgentEventV1; run: AgentRunV1; settlement?: AgentRunSettlementV1 | null }>>;
1250
+ getRunVerification(runId: string, opts?: RequestOptions): Promise<SettldResponse<Record<string, unknown>>>;
1251
+ getRunSettlement(runId: string, opts?: RequestOptions): Promise<SettldResponse<{ settlement: AgentRunSettlementV1 }>>;
1252
+ getRunAgreement(
1253
+ runId: string,
1254
+ opts?: RequestOptions
1255
+ ): Promise<
1256
+ SettldResponse<{
1257
+ runId: string;
1258
+ rfqId?: string | null;
1259
+ agreementId?: string | null;
1260
+ agreement: MarketplaceTaskAgreementV2;
1261
+ policyRef?: MarketplaceSettlementPolicyRefV1 | null;
1262
+ policyHash?: string | null;
1263
+ verificationMethodHash?: string | null;
1264
+ policyBindingVerification: Record<string, unknown>;
1265
+ acceptanceSignatureVerification: Record<string, unknown>;
1266
+ }>
1267
+ >;
1268
+ applyRunAgreementChangeOrder(
1269
+ runId: string,
1270
+ body: {
1271
+ changeOrderId?: string;
1272
+ requestedByAgentId: string;
1273
+ acceptedByAgentId?: string;
1274
+ acceptanceSignature?: MarketplaceAgreementAcceptanceSignatureInput;
1275
+ reason: string;
1276
+ note?: string;
1277
+ milestones?: MarketplaceAgreementTermsInput["milestones"];
1278
+ cancellation?: MarketplaceAgreementTermsInput["cancellation"];
1279
+ },
1280
+ opts?: RequestOptions
1281
+ ): Promise<
1282
+ SettldResponse<{
1283
+ runId: string;
1284
+ rfq: MarketplaceRfqV1;
1285
+ agreement: MarketplaceTaskAgreementV2;
1286
+ changeOrder: Record<string, unknown>;
1287
+ acceptanceSignatureVerification: Record<string, unknown>;
1288
+ }>
1289
+ >;
1290
+ cancelRunAgreement(
1291
+ runId: string,
1292
+ body: {
1293
+ cancellationId?: string;
1294
+ cancelledByAgentId: string;
1295
+ acceptedByAgentId?: string;
1296
+ acceptanceSignature?: MarketplaceAgreementAcceptanceSignatureInput;
1297
+ reason: string;
1298
+ evidenceRef?: string;
1299
+ },
1300
+ opts?: RequestOptions
1301
+ ): Promise<
1302
+ SettldResponse<{
1303
+ runId: string;
1304
+ rfq: MarketplaceRfqV1;
1305
+ run: AgentRunV1;
1306
+ settlement: AgentRunSettlementV1;
1307
+ agreement: MarketplaceTaskAgreementV2 | null;
1308
+ cancellation: Record<string, unknown>;
1309
+ acceptanceSignatureVerification: Record<string, unknown>;
1310
+ }>
1311
+ >;
1312
+ getRunSettlementPolicyReplay(
1313
+ runId: string,
1314
+ opts?: RequestOptions
1315
+ ): Promise<
1316
+ SettldResponse<{
1317
+ runId: string;
1318
+ agreementId?: string | null;
1319
+ policyVersion?: number | null;
1320
+ policyHash?: string | null;
1321
+ verificationMethodHash?: string | null;
1322
+ policyRef?: MarketplaceSettlementPolicyRefV1 | null;
1323
+ policyBinding?: MarketplaceAgreementPolicyBindingV2 | null;
1324
+ policyBindingVerification: Record<string, unknown>;
1325
+ acceptanceSignatureVerification: Record<string, unknown>;
1326
+ runStatus?: string | null;
1327
+ verificationStatus: "green" | "amber" | "red";
1328
+ replay: Record<string, unknown>;
1329
+ settlement: AgentRunSettlementV1;
1330
+ matchesStoredDecision: boolean;
1331
+ }>
1332
+ >;
1333
+ resolveRunSettlement(
1334
+ runId: string,
1335
+ body: {
1336
+ status: "released" | "refunded";
1337
+ releaseRatePct?: number;
1338
+ releasedAmountCents?: number;
1339
+ refundedAmountCents?: number;
1340
+ reason?: string;
1341
+ resolvedByAgentId?: string;
1342
+ resolutionEventId?: string;
1343
+ },
1344
+ opts?: RequestOptions
1345
+ ): Promise<SettldResponse<{ settlement: AgentRunSettlementV1 }>>;
1346
+
1347
+ opsLockToolCallHold(body: Record<string, unknown>, opts?: RequestOptions): Promise<SettldResponse<{ hold: Record<string, unknown> }>>;
1348
+ opsListToolCallHolds(
1349
+ params?: { agreementHash?: string; status?: string; limit?: number; offset?: number },
1350
+ opts?: RequestOptions
1351
+ ): Promise<
1352
+ SettldResponse<{
1353
+ ok: boolean;
1354
+ tenantId: string;
1355
+ agreementHash: string | null;
1356
+ status: string | null;
1357
+ limit: number;
1358
+ offset: number;
1359
+ holds: Array<Record<string, unknown>>;
1360
+ }>
1361
+ >;
1362
+ opsGetToolCallReplayEvaluate(
1363
+ agreementHash: string,
1364
+ opts?: RequestOptions
1365
+ ): Promise<
1366
+ SettldResponse<{
1367
+ ok: boolean;
1368
+ tenantId: string;
1369
+ agreementHash: string;
1370
+ runId: string;
1371
+ replay: Record<string, unknown>;
1372
+ stored: Record<string, unknown>;
1373
+ comparisons: Record<string, unknown>;
1374
+ issues: string[];
1375
+ }>
1376
+ >;
1377
+ opsGetToolCallHold(holdHash: string, opts?: RequestOptions): Promise<SettldResponse<{ ok: boolean; tenantId: string; hold: Record<string, unknown> }>>;
1378
+ opsGetReputationFacts(
1379
+ params: {
1380
+ agentId: string;
1381
+ toolId?: string;
1382
+ window?: "7d" | "30d" | "allTime";
1383
+ asOf?: string;
1384
+ includeEvents?: boolean;
1385
+ },
1386
+ opts?: RequestOptions
1387
+ ): Promise<
1388
+ SettldResponse<{
1389
+ ok: boolean;
1390
+ tenantId: string;
1391
+ agentId: string;
1392
+ toolId: string | null;
1393
+ window: "7d" | "30d" | "allTime";
1394
+ asOf: string;
1395
+ windowStartAt: string | null;
1396
+ facts: Record<string, unknown>;
1397
+ events?: Array<Record<string, unknown>>;
1398
+ }>
1399
+ >;
1400
+ opsRunToolCallHoldbackMaintenance(
1401
+ body?: { dryRun?: boolean; limit?: number; maxHolds?: number } & Record<string, unknown>,
1402
+ opts?: RequestOptions
1403
+ ): Promise<SettldResponse<Record<string, unknown>>>;
1404
+ toolCallListArbitrationCases(
1405
+ params?: { agreementHash?: string; status?: string },
1406
+ opts?: RequestOptions
1407
+ ): Promise<
1408
+ SettldResponse<{
1409
+ agreementHash: string;
1410
+ runId: string;
1411
+ cases: Array<Record<string, unknown>>;
1412
+ }>
1413
+ >;
1414
+ toolCallGetArbitrationCase(caseId: string, opts?: RequestOptions): Promise<SettldResponse<{ caseId: string; arbitrationCase: Record<string, unknown> }>>;
1415
+ toolCallOpenArbitration(body: Record<string, unknown>, opts?: RequestOptions): Promise<SettldResponse<Record<string, unknown>>>;
1416
+ toolCallSubmitArbitrationVerdict(body: Record<string, unknown>, opts?: RequestOptions): Promise<SettldResponse<Record<string, unknown>>>;
1417
+ opsGetSettlementAdjustment(adjustmentId: string, opts?: RequestOptions): Promise<SettldResponse<{ ok: boolean; tenantId: string; adjustment: Record<string, unknown> }>>;
1418
+ getArtifact(artifactId: string, opts?: RequestOptions): Promise<SettldResponse<{ artifact: Record<string, unknown> }>>;
1419
+ getArtifacts(
1420
+ params: { artifactIds: string[] } | string[],
1421
+ opts?: RequestOptions
1422
+ ): Promise<{ artifacts: Array<{ artifactId: string; artifact: Record<string, unknown> | null }>; responses: Array<SettldResponse<{ artifact: Record<string, unknown> }>> }>;
1423
+
1424
+ createAgreement(params: {
1425
+ toolId: string;
1426
+ manifestHash: string;
1427
+ callId: string;
1428
+ input?: Record<string, unknown>;
1429
+ acceptanceCriteria?: Record<string, unknown> | null;
1430
+ settlementTerms?: Record<string, unknown> | null;
1431
+ payerAgentId?: string;
1432
+ payeeAgentId?: string;
1433
+ createdAt?: string;
1434
+ }): {
1435
+ agreement: ToolCallAgreementV1;
1436
+ agreementHash: string;
1437
+ inputHash: string;
1438
+ canonicalJson: string;
1439
+ };
1440
+ signEvidence(params: {
1441
+ agreement?: ToolCallAgreementV1;
1442
+ agreementHash?: string;
1443
+ callId?: string;
1444
+ inputHash?: string;
1445
+ output?: Record<string, unknown>;
1446
+ outputRef?: string;
1447
+ metrics?: Record<string, unknown> | null;
1448
+ startedAt?: string;
1449
+ completedAt?: string;
1450
+ createdAt?: string;
1451
+ signerKeyId?: string;
1452
+ signerPrivateKeyPem?: string;
1453
+ }): {
1454
+ evidence: ToolCallEvidenceV1;
1455
+ evidenceHash: string;
1456
+ outputHash: string;
1457
+ canonicalJson: string;
1458
+ };
1459
+ createHold(
1460
+ params: {
1461
+ agreement?: ToolCallAgreementV1;
1462
+ agreementHash?: string;
1463
+ receiptHash: string;
1464
+ payerAgentId: string;
1465
+ payeeAgentId: string;
1466
+ amountCents: number;
1467
+ currency?: string;
1468
+ holdbackBps?: number;
1469
+ challengeWindowMs?: number;
1470
+ },
1471
+ opts?: RequestOptions
1472
+ ): Promise<SettldResponse<{ hold: Record<string, unknown> }>>;
1473
+ settle(
1474
+ params: {
1475
+ agreement?: ToolCallAgreementV1;
1476
+ agreementHash?: string;
1477
+ evidence?: ToolCallEvidenceV1;
1478
+ evidenceHash?: string;
1479
+ payerAgentId: string;
1480
+ payeeAgentId: string;
1481
+ amountCents: number;
1482
+ currency?: string;
1483
+ holdbackBps?: number;
1484
+ challengeWindowMs?: number;
1485
+ settledAt?: string;
1486
+ receiptHash?: string;
1487
+ },
1488
+ opts?: RequestOptions
1489
+ ): Promise<ToolCallSettleResult>;
1490
+ openDispute(
1491
+ params: {
1492
+ agreementHash: string;
1493
+ receiptHash: string;
1494
+ holdHash: string;
1495
+ openedByAgentId?: string;
1496
+ arbiterAgentId: string;
1497
+ summary: string;
1498
+ evidenceRefs?: string[];
1499
+ disputeOpenEnvelope?: Record<string, unknown>;
1500
+ signerKeyId?: string;
1501
+ signerPrivateKeyPem?: string;
1502
+ signature?: string;
1503
+ caseId?: string;
1504
+ envelopeId?: string;
1505
+ reasonCode?: string;
1506
+ nonce?: string;
1507
+ openedAt?: string;
1508
+ tenantId?: string;
1509
+ adminOverride?: { enabled?: boolean; reason?: string };
1510
+ },
1511
+ opts?: RequestOptions
1512
+ ): Promise<SettldResponse<Record<string, unknown>>>;
1513
+ buildDisputeOpenEnvelope(params: {
1514
+ agreementHash: string;
1515
+ receiptHash: string;
1516
+ holdHash: string;
1517
+ openedByAgentId: string;
1518
+ signerKeyId: string;
1519
+ signerPrivateKeyPem?: string;
1520
+ signature?: string;
1521
+ caseId?: string;
1522
+ envelopeId?: string;
1523
+ reasonCode?: string;
1524
+ nonce?: string;
1525
+ openedAt?: string;
1526
+ tenantId?: string;
1527
+ }): {
1528
+ disputeOpenEnvelope: Record<string, unknown>;
1529
+ envelopeHash: string;
1530
+ canonicalJson: string;
1531
+ };
1532
+
1533
+ openRunDispute(
1534
+ runId: string,
1535
+ body?: {
1536
+ disputeId?: string;
1537
+ disputeType?: "quality" | "delivery" | "fraud" | "policy" | "payment" | "other";
1538
+ disputePriority?: "low" | "normal" | "high" | "critical";
1539
+ disputeChannel?: "counterparty" | "policy_engine" | "arbiter" | "external";
1540
+ escalationLevel?: "l1_counterparty" | "l2_arbiter" | "l3_external";
1541
+ openedByAgentId?: string;
1542
+ reason?: string;
1543
+ evidenceRefs?: string[];
1544
+ },
1545
+ opts?: RequestOptions
1546
+ ): Promise<
1547
+ SettldResponse<{
1548
+ settlement: AgentRunSettlementV1;
1549
+ disputeEvidence?: RunDisputeEvidenceSubmissionV1 | null;
1550
+ disputeEscalation?: RunDisputeEscalationV1 | null;
1551
+ verdict?: Record<string, unknown> | null;
1552
+ verdictArtifact?: Record<string, unknown> | null;
1553
+ }>
1554
+ >;
1555
+ closeRunDispute(
1556
+ runId: string,
1557
+ body?: {
1558
+ disputeId?: string;
1559
+ resolution?: Partial<RunDisputeResolutionV1> | null;
1560
+ resolutionOutcome?: "accepted" | "rejected" | "partial" | "withdrawn" | "unresolved";
1561
+ resolutionEscalationLevel?: "l1_counterparty" | "l2_arbiter" | "l3_external";
1562
+ resolutionSummary?: string;
1563
+ closedByAgentId?: string;
1564
+ resolutionEvidenceRefs?: string[];
1565
+ verdict?: Record<string, unknown>;
1566
+ },
1567
+ opts?: RequestOptions
1568
+ ): Promise<
1569
+ SettldResponse<{
1570
+ settlement: AgentRunSettlementV1;
1571
+ disputeEvidence?: RunDisputeEvidenceSubmissionV1 | null;
1572
+ disputeEscalation?: RunDisputeEscalationV1 | null;
1573
+ verdict?: Record<string, unknown> | null;
1574
+ verdictArtifact?: Record<string, unknown> | null;
1575
+ }>
1576
+ >;
1577
+ submitRunDisputeEvidence(
1578
+ runId: string,
1579
+ body: {
1580
+ evidenceRef: string;
1581
+ disputeId?: string;
1582
+ submittedByAgentId?: string;
1583
+ reason?: string;
1584
+ },
1585
+ opts?: RequestOptions
1586
+ ): Promise<
1587
+ SettldResponse<{
1588
+ settlement: AgentRunSettlementV1;
1589
+ disputeEvidence?: RunDisputeEvidenceSubmissionV1 | null;
1590
+ disputeEscalation?: RunDisputeEscalationV1 | null;
1591
+ verdict?: Record<string, unknown> | null;
1592
+ verdictArtifact?: Record<string, unknown> | null;
1593
+ }>
1594
+ >;
1595
+ escalateRunDispute(
1596
+ runId: string,
1597
+ body: {
1598
+ escalationLevel: "l1_counterparty" | "l2_arbiter" | "l3_external";
1599
+ disputeId?: string;
1600
+ channel?: "counterparty" | "policy_engine" | "arbiter" | "external";
1601
+ escalatedByAgentId?: string;
1602
+ reason?: string;
1603
+ },
1604
+ opts?: RequestOptions
1605
+ ): Promise<
1606
+ SettldResponse<{
1607
+ settlement: AgentRunSettlementV1;
1608
+ disputeEvidence?: RunDisputeEvidenceSubmissionV1 | null;
1609
+ disputeEscalation?: RunDisputeEscalationV1 | null;
1610
+ verdict?: Record<string, unknown> | null;
1611
+ verdictArtifact?: Record<string, unknown> | null;
1612
+ }>
1613
+ >;
1614
+ firstVerifiedRun(params: FirstVerifiedRunParams, opts?: FirstVerifiedRunOptions): Promise<FirstVerifiedRunResult>;
1615
+ quoteJob(jobId: string, body: Record<string, unknown>, opts: RequestOptions): Promise<SettldResponse<Record<string, unknown>>>;
1616
+ bookJob(jobId: string, body: Record<string, unknown>, opts: RequestOptions): Promise<SettldResponse<Record<string, unknown>>>;
1617
+ appendJobEvent(jobId: string, body: Record<string, unknown>, opts?: RequestOptions): Promise<SettldResponse<Record<string, unknown>>>;
1618
+
1619
+ opsStatus(opts?: RequestOptions): Promise<SettldResponse<Record<string, unknown>>>;
1620
+ listPartyStatements(
1621
+ params: { period: string; partyId?: string; status?: string },
1622
+ opts?: RequestOptions
1623
+ ): Promise<SettldResponse<Record<string, unknown>>>;
1624
+ getPartyStatement(partyId: string, period: string, opts?: RequestOptions): Promise<SettldResponse<Record<string, unknown>>>;
1625
+ enqueuePayout(partyId: string, period: string, opts?: RequestOptions): Promise<SettldResponse<Record<string, unknown>>>;
1626
+
1627
+ requestMonthClose(body: { month: string; basis?: string }, opts?: RequestOptions): Promise<SettldResponse<Record<string, unknown>>>;
1628
+ getTenantAnalytics(
1629
+ tenantId: string,
1630
+ params?: TenantAnalyticsQuery,
1631
+ opts?: RequestOptions
1632
+ ): Promise<SettldResponse<{ ok: true; report: Record<string, unknown> }>>;
1633
+ getTenantTrustGraph(
1634
+ tenantId: string,
1635
+ params?: TenantTrustGraphQuery,
1636
+ opts?: RequestOptions
1637
+ ): Promise<SettldResponse<{ ok: true; graph: Record<string, unknown> }>>;
1638
+ listTenantTrustGraphSnapshots(
1639
+ tenantId: string,
1640
+ params?: { limit?: number },
1641
+ opts?: RequestOptions
1642
+ ): Promise<
1643
+ SettldResponse<{
1644
+ ok: true;
1645
+ schemaVersion: "MagicLinkTrustGraphSnapshotList.v1";
1646
+ tenantId: string;
1647
+ generatedAt: string;
1648
+ count: number;
1649
+ rows: Array<Record<string, unknown>>;
1650
+ }>
1651
+ >;
1652
+ createTenantTrustGraphSnapshot(
1653
+ tenantId: string,
1654
+ body?: TenantTrustGraphSnapshotCreateInput,
1655
+ opts?: RequestOptions
1656
+ ): Promise<SettldResponse<{ ok: true; snapshot: Record<string, unknown> }>>;
1657
+ diffTenantTrustGraph(
1658
+ tenantId: string,
1659
+ params?: TenantTrustGraphDiffQuery,
1660
+ opts?: RequestOptions
1661
+ ): Promise<SettldResponse<{ ok: true; diff: Record<string, unknown> }>>;
1662
+ }