@auctra/sdk 0.6.0 → 0.6.2

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.
@@ -0,0 +1,477 @@
1
+ /** @auctra/sdk — Authority Protocol client (Stage 1.0 modular layout). */
2
+ export declare const AUCTRA_SDK_VERSION = "0.6.2";
3
+ /** Production API + console host (Architecture A: colocated on app.auctra.tech). */
4
+ export declare const DEFAULT_BASE_URL = "https://app.auctra.tech";
5
+ export type AgentEnvironment = "dev" | "staging" | "production";
6
+ export type AuthorityLevel = "low" | "medium" | "high" | "critical";
7
+ export type Decision = "allowed" | "blocked" | "require_approval";
8
+ export type PolicyType = "spending" | "data_access" | "communication" | "approval";
9
+ export type ActorType = "human" | "agent" | "service" | "tool";
10
+ export type RiskLevel = "low" | "medium" | "high" | "critical";
11
+ export type IntentStatus = "active" | "expired" | "completed" | "revoked" | "suspended";
12
+ export type EvaluateActionInput = {
13
+ agentId: string;
14
+ actionType: string;
15
+ payload?: Record<string, unknown>;
16
+ claimedIntentId?: string;
17
+ intentAnchorToken?: string;
18
+ parentActionId?: string;
19
+ actor?: {
20
+ id?: string;
21
+ type?: ActorType;
22
+ name?: string;
23
+ };
24
+ action?: {
25
+ target?: string;
26
+ description?: string;
27
+ riskLevel?: RiskLevel;
28
+ metadata?: Record<string, unknown>;
29
+ };
30
+ };
31
+ export type EvaluateActionResponse = {
32
+ decision: Decision;
33
+ risk_score: number;
34
+ reason: string;
35
+ delegation_id: string | null;
36
+ authority_id: string | null;
37
+ delegator: string | null;
38
+ sponsor: string;
39
+ matched_policies: string[];
40
+ action_request_id: string;
41
+ evidence: DecisionEvidence;
42
+ evidence_payload: DecisionEvidencePayload;
43
+ protocol?: {
44
+ version: string;
45
+ action?: Record<string, unknown>;
46
+ decision?: Record<string, unknown>;
47
+ };
48
+ intelligence?: {
49
+ authority_valid: boolean;
50
+ root_intent_valid: boolean;
51
+ intent_status: string;
52
+ trust_summary?: string;
53
+ };
54
+ };
55
+ export type RequestOptions = {
56
+ idempotencyKey?: string;
57
+ signal?: AbortSignal;
58
+ };
59
+ export type AuctraClientOptions = {
60
+ apiKey: string;
61
+ /** Defaults to {@link DEFAULT_BASE_URL}. Override for staging/local. */
62
+ baseUrl?: string;
63
+ timeoutMs?: number;
64
+ maxRetries?: number;
65
+ fetch?: typeof fetch;
66
+ };
67
+ export type Agent = {
68
+ id: string;
69
+ identity_id: string;
70
+ name: string;
71
+ description: string | null;
72
+ model_provider: "openai" | "anthropic" | "gemini" | "local";
73
+ model_name: string;
74
+ environment: AgentEnvironment;
75
+ authority_level: AuthorityLevel;
76
+ status: "active" | "suspended" | "restricted" | "compromised";
77
+ trust_rating: number;
78
+ sponsor: {
79
+ id: string;
80
+ full_name: string;
81
+ email: string;
82
+ };
83
+ created_at: string;
84
+ };
85
+ export type CreateAgentInput = {
86
+ name: string;
87
+ modelProvider: Agent["model_provider"];
88
+ modelName: string;
89
+ description?: string;
90
+ environment?: AgentEnvironment;
91
+ authorityLevel?: AuthorityLevel;
92
+ sponsorUserId?: string;
93
+ };
94
+ export type Delegation = {
95
+ id: string;
96
+ agent: {
97
+ id: string;
98
+ name: string;
99
+ };
100
+ delegator: {
101
+ id: string;
102
+ full_name: string;
103
+ email: string;
104
+ };
105
+ scope: {
106
+ action_types: string[];
107
+ };
108
+ limits: {
109
+ max_amount?: number;
110
+ max_count?: number;
111
+ currency?: string;
112
+ environment?: AgentEnvironment;
113
+ max_actions_per_window?: {
114
+ count: number;
115
+ window_seconds: number;
116
+ action_type?: string;
117
+ };
118
+ max_amount_per_window?: {
119
+ amount: number;
120
+ window_seconds: number;
121
+ };
122
+ };
123
+ valid_from: string;
124
+ valid_until: string;
125
+ status: "active" | "revoked" | "expired";
126
+ is_active: boolean;
127
+ mandate?: MandateEvidence | null;
128
+ mandate_payload?: MandatePayload | null;
129
+ evidence?: DecisionEvidence | null;
130
+ evidence_payload?: DecisionEvidencePayload | null;
131
+ created_at: string;
132
+ };
133
+ export type CreateDelegationInput = {
134
+ agentId: string;
135
+ actionTypes: string[];
136
+ validUntil: string;
137
+ maxAmount?: number;
138
+ maxCount?: number;
139
+ environment?: AgentEnvironment;
140
+ currency?: string;
141
+ delegatorUserId?: string;
142
+ /** Parent authority/delegation id for subset-constrained delegation chains. */
143
+ parentAuthorityId?: string;
144
+ parentDelegationId?: string;
145
+ maxDelegationDepth?: number;
146
+ maxActionsPerWindow?: {
147
+ count: number;
148
+ windowSeconds: number;
149
+ actionType?: string;
150
+ };
151
+ maxAmountPerWindow?: {
152
+ amount: number;
153
+ windowSeconds: number;
154
+ };
155
+ };
156
+ export type AuthoritySummary = {
157
+ id: string;
158
+ protocol_version: string;
159
+ status: string;
160
+ payload_hash: string;
161
+ signed: boolean;
162
+ parent_authority_id: string | null;
163
+ capabilities: unknown;
164
+ };
165
+ export type IssueAuthorityInput = {
166
+ /** Subject agent id */
167
+ subject: string;
168
+ capabilities: string[];
169
+ expiresAt: string;
170
+ constraints?: {
171
+ maxAmount?: number;
172
+ currency?: string;
173
+ maxCount?: number;
174
+ environment?: AgentEnvironment;
175
+ };
176
+ delegation?: {
177
+ allowed?: boolean;
178
+ maxDepth?: number;
179
+ };
180
+ issuer?: string;
181
+ delegatorUserId?: string;
182
+ maxActionsPerWindow?: {
183
+ count: number;
184
+ windowSeconds: number;
185
+ actionType?: string;
186
+ };
187
+ maxAmountPerWindow?: {
188
+ amount: number;
189
+ windowSeconds: number;
190
+ };
191
+ };
192
+ export type DelegateAuthorityInput = IssueAuthorityInput & {
193
+ /** Parent authority id — child must be a subset of parent */
194
+ parent: string;
195
+ };
196
+ export type ActionRequest = {
197
+ id: string;
198
+ agent_name: string;
199
+ action_type: string;
200
+ action_summary: string;
201
+ payload: Record<string, unknown>;
202
+ decision: string;
203
+ decision_reason: string | null;
204
+ risk_score: number;
205
+ delegation_id: string | null;
206
+ policy_ids: string[];
207
+ claimed_intent_id: string | null;
208
+ parent_action_id: string | null;
209
+ actor_id: string | null;
210
+ actor_type: ActorType;
211
+ action_target: string | null;
212
+ action_description: string | null;
213
+ action_risk_level: RiskLevel | null;
214
+ action_metadata: Record<string, unknown>;
215
+ pending_approval_id: string | null;
216
+ created_at: string;
217
+ decided_at: string | null;
218
+ };
219
+ export type Intent = {
220
+ id: string;
221
+ title: string;
222
+ description: string | null;
223
+ intent_type: string | null;
224
+ status: IntentStatus;
225
+ risk_level: RiskLevel;
226
+ max_risk_level: RiskLevel;
227
+ expires_at: string | null;
228
+ created_at: string;
229
+ owner: {
230
+ id: string;
231
+ full_name: string;
232
+ email: string;
233
+ } | null;
234
+ linked_actions: number;
235
+ };
236
+ export type IntentDetail = Omit<Intent, "linked_actions"> & {
237
+ linked_actions: Array<{
238
+ action_request_id: string;
239
+ action_type: string;
240
+ summary: string;
241
+ decision: string;
242
+ alignment_status: string;
243
+ alignment_score: number | null;
244
+ }>;
245
+ };
246
+ export type CreateAuthorityEdgeInput = {
247
+ fromActorId: string;
248
+ fromActorType: ActorType;
249
+ toActorId: string;
250
+ toActorType: ActorType;
251
+ authorityScope: string;
252
+ conditions?: Record<string, unknown>;
253
+ maxRiskLevel?: RiskLevel;
254
+ expiresAt?: string;
255
+ };
256
+ export type CreateIntentInput = {
257
+ title: string;
258
+ description?: string;
259
+ intentType?: string;
260
+ riskLevel?: RiskLevel;
261
+ maxRiskLevel?: RiskLevel;
262
+ expiresAt?: string;
263
+ allowedActionTypes?: string[];
264
+ targetPattern?: string;
265
+ resourceAllowlist?: string[];
266
+ };
267
+ export type UpdateIntentInput = {
268
+ status?: Exclude<IntentStatus, "expired">;
269
+ title?: string;
270
+ description?: string | null;
271
+ intentType?: string | null;
272
+ riskLevel?: RiskLevel;
273
+ maxRiskLevel?: RiskLevel;
274
+ expiresAt?: string | null;
275
+ };
276
+ export type UpdateAgentStatusInput = {
277
+ status: Agent["status"];
278
+ reason?: string;
279
+ /** Permanently revoke instead of quarantine (default: quarantine on restrict/suspend). */
280
+ revokeDelegations?: boolean;
281
+ /** Restore quarantined delegations when reactivating (default: true). */
282
+ restoreDelegations?: boolean;
283
+ };
284
+ export type AuthorityGraph = {
285
+ nodes: Array<{
286
+ id: string;
287
+ type: ActorType;
288
+ label: string;
289
+ }>;
290
+ edges: Array<{
291
+ id: string;
292
+ from: string;
293
+ to: string;
294
+ fromType: ActorType;
295
+ toType: ActorType;
296
+ scope: string;
297
+ status: string;
298
+ edgeType: string;
299
+ }>;
300
+ };
301
+ export type ActionEvaluation = {
302
+ id: string;
303
+ action_request_id: string;
304
+ intent_id: string | null;
305
+ decision: "allowed" | "requires_approval" | "blocked";
306
+ risk_score: number;
307
+ authority_valid: boolean;
308
+ intent_valid: boolean;
309
+ root_intent_valid: boolean;
310
+ reasons: string[];
311
+ created_at: string;
312
+ };
313
+ export type RootIntentChain = {
314
+ valid: boolean;
315
+ root_human_id: string | null;
316
+ root_intent_id: string | null;
317
+ reason: string | null;
318
+ chain: Array<{
319
+ actionId?: string;
320
+ actorId: string;
321
+ actorType: ActorType;
322
+ intentId?: string;
323
+ parentActionId?: string;
324
+ label?: string;
325
+ }>;
326
+ };
327
+ export type Policy = {
328
+ id: string;
329
+ name: string;
330
+ description: string | null;
331
+ policy_type: PolicyType;
332
+ status: "active" | "draft" | "archived";
333
+ priority: number;
334
+ conditions: Record<string, unknown>;
335
+ actions: Record<string, unknown>;
336
+ created_at: string;
337
+ };
338
+ export type CreatePolicyInput = {
339
+ name: string;
340
+ description?: string;
341
+ policyType: PolicyType;
342
+ status?: "active" | "draft";
343
+ priority?: number;
344
+ actionType?: string;
345
+ amountGreaterThan?: number;
346
+ resourceSensitivity?: "public" | "internal" | "confidential" | "pii";
347
+ externalRecipient?: boolean;
348
+ environment?: AgentEnvironment;
349
+ decision: "block" | "require_approval";
350
+ approverRole?: "owner" | "admin" | "reviewer";
351
+ maxActionsPerWindow?: {
352
+ count: number;
353
+ windowSeconds: number;
354
+ actionType?: string;
355
+ };
356
+ maxAmountPerWindow?: {
357
+ amount: number;
358
+ windowSeconds: number;
359
+ };
360
+ };
361
+ export type CustomActionType = {
362
+ id: string;
363
+ label: string;
364
+ description: string | null;
365
+ category: string;
366
+ policy_type: PolicyType;
367
+ payload_schema: Record<string, unknown>;
368
+ source: "builtin" | "custom";
369
+ template?: boolean;
370
+ created_at?: string | null;
371
+ };
372
+ export type CreateCustomActionTypeInput = {
373
+ id: string;
374
+ label: string;
375
+ description?: string;
376
+ category?: string;
377
+ policyType: PolicyType;
378
+ payloadSchema?: Record<string, unknown>;
379
+ };
380
+ export type PolicySimulation = {
381
+ policy_id: string;
382
+ policy_name: string;
383
+ policy_status: string;
384
+ sample_size: number;
385
+ changed_count: number;
386
+ unchanged_count: number;
387
+ would_block_count: number;
388
+ replay_source?: "audit_events" | "action_requests" | "mixed";
389
+ deltas: Array<{
390
+ action_request_id: string;
391
+ action_type: string;
392
+ current_decision: string;
393
+ simulated_decision: string;
394
+ changed: boolean;
395
+ }>;
396
+ };
397
+ export type MandateEvidence = {
398
+ format: "auctra-mandate.v0.1";
399
+ payload_hash: string;
400
+ signed: false;
401
+ } | {
402
+ format: "auctra-mandate.v0.1";
403
+ signed: true;
404
+ payload_hash: string;
405
+ payload: Record<string, unknown>;
406
+ signature: {
407
+ alg: "Ed25519";
408
+ key_id: string;
409
+ value: string;
410
+ };
411
+ };
412
+ export type MandatePayload = Record<string, unknown>;
413
+ export type DecisionEvidencePayload = Record<string, unknown>;
414
+ export type DecisionEvidence = {
415
+ format: "auctra-evidence.v0.1";
416
+ payload_hash: string;
417
+ signed: false;
418
+ } | {
419
+ format: "auctra-evidence.v0.1";
420
+ signed: true;
421
+ payload_hash: string;
422
+ payload: Record<string, unknown>;
423
+ signature: {
424
+ alg: "Ed25519";
425
+ key_id: string;
426
+ value: string;
427
+ };
428
+ };
429
+ export type AuditChainVerification = {
430
+ valid: boolean;
431
+ total: number;
432
+ sealed_total: number;
433
+ legacy_unsealed_total: number;
434
+ events: Array<{
435
+ id: string;
436
+ hashValid: boolean;
437
+ linkValid: boolean;
438
+ sequenceValid: boolean;
439
+ valid: boolean;
440
+ legacy: boolean;
441
+ }>;
442
+ };
443
+ export type ArtifactVerification = {
444
+ valid: boolean;
445
+ hashValid: boolean;
446
+ signatureValid: boolean;
447
+ };
448
+ export type AuditEvent = {
449
+ id: string;
450
+ event_type: string;
451
+ event_summary: string;
452
+ decision: string | null;
453
+ decision_reason: string | null;
454
+ authority_valid_at_action: boolean | null;
455
+ actor_name: string;
456
+ approver_name: string | null;
457
+ policy_applied: string | null;
458
+ delegation_id: string | null;
459
+ hash: string | null;
460
+ previous_hash: string | null;
461
+ chain_index?: number;
462
+ mandate?: MandateEvidence | null;
463
+ evidence?: DecisionEvidence | null;
464
+ payload?: Record<string, unknown>;
465
+ created_at: string;
466
+ };
467
+ export type ApiKeySummary = {
468
+ id: string;
469
+ name: string;
470
+ key_prefix: string;
471
+ environment: "development" | "production";
472
+ permissions: string[];
473
+ status: "active" | "revoked";
474
+ last_used_at: string | null;
475
+ created_at: string;
476
+ };
477
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAE1C,oFAAoF;AACpF,eAAO,MAAM,gBAAgB,4BAA4B,CAAC;AAE1D,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,SAAS,GAAG,YAAY,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AACpE,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,kBAAkB,CAAC;AAClE,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,aAAa,GAAG,eAAe,GAAG,UAAU,CAAC;AACnF,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAC/D,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAC/D,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAExF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE;QACN,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,SAAS,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,CAAC,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,CAAC;IACF,YAAY,CAAC,EAAE;QACb,eAAe,EAAE,OAAO,CAAC;QACzB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,eAAe,EAAE,cAAc,CAAC;IAChC,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,aAAa,CAAC;IAC9D,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,SAAS,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAClC,MAAM,EAAE;QACN,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,gBAAgB,CAAC;QAC/B,sBAAsB,CAAC,EAAE;YACvB,KAAK,EAAE,MAAM,CAAC;YACd,cAAc,EAAE,MAAM,CAAC;YACvB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;QACF,qBAAqB,CAAC,EAAE;YACtB,MAAM,EAAE,MAAM,CAAC;YACf,cAAc,EAAE,MAAM,CAAC;SACxB,CAAC;KACH,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IACzC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,gBAAgB,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAClD,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,kBAAkB,CAAC,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,gBAAgB,CAAC;KAChC,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,kBAAkB,CAAC,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,GAAG;IACzD,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,SAAS,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,iBAAiB,EAAE,SAAS,GAAG,IAAI,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,cAAc,EAAE,SAAS,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/D,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG;IAC1D,cAAc,EAAE,KAAK,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC,CAAC;CACJ,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,SAAS,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,KAAK,EAAE,KAAK,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,SAAS,CAAC;QACpB,MAAM,EAAE,SAAS,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACJ,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,SAAS,GAAG,mBAAmB,GAAG,SAAS,CAAC;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;QACX,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,SAAS,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,UAAU,CAAC;IACxB,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,cAAc,GAAG,KAAK,CAAC;IACrE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,EAAE,OAAO,GAAG,kBAAkB,CAAC;IACvC,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;IAC9C,mBAAmB,CAAC,EAAE;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,kBAAkB,CAAC,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,UAAU,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,cAAc,GAAG,iBAAiB,GAAG,OAAO,CAAC;IAC7D,MAAM,EAAE,KAAK,CAAC;QACZ,iBAAiB,EAAE,MAAM,CAAC;QAC1B,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;CACJ,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB;IACE,MAAM,EAAE,qBAAqB,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,KAAK,CAAC;CACf,GACD;IACE,MAAM,EAAE,qBAAqB,CAAC;IAC9B,MAAM,EAAE,IAAI,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,EAAE;QAAE,GAAG,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D,CAAC;AAEN,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErD,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE9D,MAAM,MAAM,gBAAgB,GACxB;IACE,MAAM,EAAE,sBAAsB,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,KAAK,CAAC;CACf,GACD;IACE,MAAM,EAAE,sBAAsB,CAAC;IAC/B,MAAM,EAAE,IAAI,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,EAAE;QAAE,GAAG,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D,CAAC;AAEN,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC,CAAC;CACJ,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,yBAAyB,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,aAAa,GAAG,YAAY,CAAC;IAC1C,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** @auctra/sdk — Authority Protocol client (Stage 1.0 modular layout). */
2
+ export const AUCTRA_SDK_VERSION = "0.6.2";
3
+ /** Production API + console host (Architecture A: colocated on app.auctra.tech). */
4
+ export const DEFAULT_BASE_URL = "https://app.auctra.tech";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@auctra/sdk",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "description": "Authority Protocol SDK — issue portable authority, evaluate/execute actions, verify evidence",
5
5
  "homepage": "https://auctra.tech/docs",
6
6
  "bugs": {
package/src/action.ts ADDED
@@ -0,0 +1,2 @@
1
+ /** Action Protocol client surface — evaluate (dry-run) / execute (enforce + evidence). */
2
+ export type { ActionEvaluation, EvaluateActionInput, EvaluateActionResponse } from "./types.js";
@@ -0,0 +1,140 @@
1
+ /** @auctra/sdk — Authority Protocol client (Stage 1.0 modular layout). */
2
+ import { createHash, createPublicKey, verify as cryptoVerify, type KeyObject } from "node:crypto";
3
+
4
+ import type {
5
+ ArtifactVerification,
6
+ DecisionEvidence,
7
+ DecisionEvidencePayload,
8
+ MandateEvidence,
9
+ MandatePayload,
10
+ } from "./types.js";
11
+
12
+ export class AuctraApiError extends Error {
13
+ readonly status: number;
14
+ readonly code?: string;
15
+ readonly details?: unknown;
16
+ readonly requestId?: string;
17
+
18
+ constructor(
19
+ message: string,
20
+ options: { status: number; code?: string; details?: unknown; requestId?: string },
21
+ ) {
22
+ super(message);
23
+ this.name = "AuctraApiError";
24
+ this.status = options.status;
25
+ this.code = options.code;
26
+ this.details = options.details;
27
+ this.requestId = options.requestId;
28
+ }
29
+ }
30
+
31
+ export function retryDelay(response: Response | undefined, attempt: number) {
32
+ const retryAfter = response?.headers.get("retry-after");
33
+ if (retryAfter) {
34
+ const seconds = Number(retryAfter);
35
+ if (Number.isFinite(seconds)) return Math.min(30_000, Math.max(0, seconds * 1_000));
36
+ const dateDelay = Date.parse(retryAfter) - Date.now();
37
+ if (Number.isFinite(dateDelay)) return Math.min(30_000, Math.max(0, dateDelay));
38
+ }
39
+ return Math.min(5_000, 150 * 2 ** attempt);
40
+ }
41
+
42
+ export function wait(ms: number, signal?: AbortSignal) {
43
+ if (signal?.aborted) return Promise.reject(signal.reason);
44
+ return new Promise<void>((resolve, reject) => {
45
+ const timeout = setTimeout(resolve, ms);
46
+ signal?.addEventListener(
47
+ "abort",
48
+ () => {
49
+ clearTimeout(timeout);
50
+ reject(signal.reason);
51
+ },
52
+ { once: true },
53
+ );
54
+ });
55
+ }
56
+
57
+ function canonicalizeJson(value: unknown): unknown {
58
+ if (Array.isArray(value)) return value.map(canonicalizeJson);
59
+ if (value && typeof value === "object" && !(value instanceof Date)) {
60
+ return Object.fromEntries(
61
+ Object.entries(value as Record<string, unknown>)
62
+ .filter(([, child]) => child !== undefined)
63
+ .sort(([left], [right]) => left.localeCompare(right))
64
+ .map(([key, child]) => [key, canonicalizeJson(child)]),
65
+ );
66
+ }
67
+ if (value instanceof Date) return value.toISOString();
68
+ return value;
69
+ }
70
+
71
+ function hashJson(value: unknown) {
72
+ return createHash("sha256")
73
+ .update(JSON.stringify(canonicalizeJson(value)))
74
+ .digest("hex");
75
+ }
76
+
77
+ function verifyEd25519(input: {
78
+ payload: unknown;
79
+ signature: { alg: "Ed25519"; value: string };
80
+ publicKeyPem?: string | KeyObject;
81
+ }) {
82
+ if (!input.publicKeyPem) return false;
83
+ if (input.signature.alg !== "Ed25519") return false;
84
+ return cryptoVerify(
85
+ null,
86
+ Buffer.from(JSON.stringify(canonicalizeJson(input.payload))),
87
+ typeof input.publicKeyPem === "string"
88
+ ? createPublicKey(input.publicKeyPem)
89
+ : input.publicKeyPem,
90
+ Buffer.from(input.signature.value, "base64url"),
91
+ );
92
+ }
93
+
94
+ export function verifyMandateArtifact(input: {
95
+ payload: MandatePayload;
96
+ evidence: MandateEvidence;
97
+ publicKeyPem?: string | KeyObject;
98
+ }): ArtifactVerification {
99
+ const expectedHash = hashJson(input.payload);
100
+ if (input.evidence.format !== "auctra-mandate.v0.1") {
101
+ return { valid: false, hashValid: false, signatureValid: false };
102
+ }
103
+ if (!input.evidence.signed) {
104
+ const hashValid = input.evidence.payload_hash === expectedHash;
105
+ return { valid: hashValid, hashValid, signatureValid: false };
106
+ }
107
+ const hashValid = input.evidence.payload_hash === expectedHash;
108
+ const signatureValid =
109
+ hashValid &&
110
+ verifyEd25519({
111
+ payload: input.payload,
112
+ signature: input.evidence.signature,
113
+ publicKeyPem: input.publicKeyPem,
114
+ });
115
+ return { valid: hashValid && signatureValid, hashValid, signatureValid };
116
+ }
117
+
118
+ export function verifyDecisionArtifact(input: {
119
+ payload: DecisionEvidencePayload;
120
+ evidence: DecisionEvidence;
121
+ publicKeyPem?: string | KeyObject;
122
+ }): ArtifactVerification {
123
+ const expectedHash = hashJson(input.payload);
124
+ if (input.evidence.format !== "auctra-evidence.v0.1") {
125
+ return { valid: false, hashValid: false, signatureValid: false };
126
+ }
127
+ if (!input.evidence.signed) {
128
+ const hashValid = input.evidence.payload_hash === expectedHash;
129
+ return { valid: hashValid, hashValid, signatureValid: false };
130
+ }
131
+ const hashValid = input.evidence.payload_hash === expectedHash;
132
+ const signatureValid =
133
+ hashValid &&
134
+ verifyEd25519({
135
+ payload: input.payload,
136
+ signature: input.evidence.signature,
137
+ publicKeyPem: input.publicKeyPem,
138
+ });
139
+ return { valid: hashValid && signatureValid, hashValid, signatureValid };
140
+ }
@@ -0,0 +1,2 @@
1
+ /** Authority Protocol client surface — issue / verify / delegate / revoke. */
2
+ export type { AuthoritySummary, DelegateAuthorityInput, IssueAuthorityInput } from "./types.js";