@auctra/sdk 0.3.5 → 0.6.1

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,474 @@
1
+ /** @auctra/sdk — Authority Protocol client (Stage 1.0 modular layout). */
2
+ export declare const AUCTRA_SDK_VERSION = "0.6.1";
3
+ export type AgentEnvironment = "dev" | "staging" | "production";
4
+ export type AuthorityLevel = "low" | "medium" | "high" | "critical";
5
+ export type Decision = "allowed" | "blocked" | "require_approval";
6
+ export type PolicyType = "spending" | "data_access" | "communication" | "approval";
7
+ export type ActorType = "human" | "agent" | "service" | "tool";
8
+ export type RiskLevel = "low" | "medium" | "high" | "critical";
9
+ export type IntentStatus = "active" | "expired" | "completed" | "revoked" | "suspended";
10
+ export type EvaluateActionInput = {
11
+ agentId: string;
12
+ actionType: string;
13
+ payload?: Record<string, unknown>;
14
+ claimedIntentId?: string;
15
+ intentAnchorToken?: string;
16
+ parentActionId?: string;
17
+ actor?: {
18
+ id?: string;
19
+ type?: ActorType;
20
+ name?: string;
21
+ };
22
+ action?: {
23
+ target?: string;
24
+ description?: string;
25
+ riskLevel?: RiskLevel;
26
+ metadata?: Record<string, unknown>;
27
+ };
28
+ };
29
+ export type EvaluateActionResponse = {
30
+ decision: Decision;
31
+ risk_score: number;
32
+ reason: string;
33
+ delegation_id: string | null;
34
+ authority_id: string | null;
35
+ delegator: string | null;
36
+ sponsor: string;
37
+ matched_policies: string[];
38
+ action_request_id: string;
39
+ evidence: DecisionEvidence;
40
+ evidence_payload: DecisionEvidencePayload;
41
+ protocol?: {
42
+ version: string;
43
+ action?: Record<string, unknown>;
44
+ decision?: Record<string, unknown>;
45
+ };
46
+ intelligence?: {
47
+ authority_valid: boolean;
48
+ root_intent_valid: boolean;
49
+ intent_status: string;
50
+ trust_summary?: string;
51
+ };
52
+ };
53
+ export type RequestOptions = {
54
+ idempotencyKey?: string;
55
+ signal?: AbortSignal;
56
+ };
57
+ export type AuctraClientOptions = {
58
+ apiKey: string;
59
+ baseUrl?: string;
60
+ timeoutMs?: number;
61
+ maxRetries?: number;
62
+ fetch?: typeof fetch;
63
+ };
64
+ export type Agent = {
65
+ id: string;
66
+ identity_id: string;
67
+ name: string;
68
+ description: string | null;
69
+ model_provider: "openai" | "anthropic" | "gemini" | "local";
70
+ model_name: string;
71
+ environment: AgentEnvironment;
72
+ authority_level: AuthorityLevel;
73
+ status: "active" | "suspended" | "restricted" | "compromised";
74
+ trust_rating: number;
75
+ sponsor: {
76
+ id: string;
77
+ full_name: string;
78
+ email: string;
79
+ };
80
+ created_at: string;
81
+ };
82
+ export type CreateAgentInput = {
83
+ name: string;
84
+ modelProvider: Agent["model_provider"];
85
+ modelName: string;
86
+ description?: string;
87
+ environment?: AgentEnvironment;
88
+ authorityLevel?: AuthorityLevel;
89
+ sponsorUserId?: string;
90
+ };
91
+ export type Delegation = {
92
+ id: string;
93
+ agent: {
94
+ id: string;
95
+ name: string;
96
+ };
97
+ delegator: {
98
+ id: string;
99
+ full_name: string;
100
+ email: string;
101
+ };
102
+ scope: {
103
+ action_types: string[];
104
+ };
105
+ limits: {
106
+ max_amount?: number;
107
+ max_count?: number;
108
+ currency?: string;
109
+ environment?: AgentEnvironment;
110
+ max_actions_per_window?: {
111
+ count: number;
112
+ window_seconds: number;
113
+ action_type?: string;
114
+ };
115
+ max_amount_per_window?: {
116
+ amount: number;
117
+ window_seconds: number;
118
+ };
119
+ };
120
+ valid_from: string;
121
+ valid_until: string;
122
+ status: "active" | "revoked" | "expired";
123
+ is_active: boolean;
124
+ mandate?: MandateEvidence | null;
125
+ mandate_payload?: MandatePayload | null;
126
+ evidence?: DecisionEvidence | null;
127
+ evidence_payload?: DecisionEvidencePayload | null;
128
+ created_at: string;
129
+ };
130
+ export type CreateDelegationInput = {
131
+ agentId: string;
132
+ actionTypes: string[];
133
+ validUntil: string;
134
+ maxAmount?: number;
135
+ maxCount?: number;
136
+ environment?: AgentEnvironment;
137
+ currency?: string;
138
+ delegatorUserId?: string;
139
+ /** Parent authority/delegation id for subset-constrained delegation chains. */
140
+ parentAuthorityId?: string;
141
+ parentDelegationId?: string;
142
+ maxDelegationDepth?: number;
143
+ maxActionsPerWindow?: {
144
+ count: number;
145
+ windowSeconds: number;
146
+ actionType?: string;
147
+ };
148
+ maxAmountPerWindow?: {
149
+ amount: number;
150
+ windowSeconds: number;
151
+ };
152
+ };
153
+ export type AuthoritySummary = {
154
+ id: string;
155
+ protocol_version: string;
156
+ status: string;
157
+ payload_hash: string;
158
+ signed: boolean;
159
+ parent_authority_id: string | null;
160
+ capabilities: unknown;
161
+ };
162
+ export type IssueAuthorityInput = {
163
+ /** Subject agent id */
164
+ subject: string;
165
+ capabilities: string[];
166
+ expiresAt: string;
167
+ constraints?: {
168
+ maxAmount?: number;
169
+ currency?: string;
170
+ maxCount?: number;
171
+ environment?: AgentEnvironment;
172
+ };
173
+ delegation?: {
174
+ allowed?: boolean;
175
+ maxDepth?: number;
176
+ };
177
+ issuer?: string;
178
+ delegatorUserId?: string;
179
+ maxActionsPerWindow?: {
180
+ count: number;
181
+ windowSeconds: number;
182
+ actionType?: string;
183
+ };
184
+ maxAmountPerWindow?: {
185
+ amount: number;
186
+ windowSeconds: number;
187
+ };
188
+ };
189
+ export type DelegateAuthorityInput = IssueAuthorityInput & {
190
+ /** Parent authority id — child must be a subset of parent */
191
+ parent: string;
192
+ };
193
+ export type ActionRequest = {
194
+ id: string;
195
+ agent_name: string;
196
+ action_type: string;
197
+ action_summary: string;
198
+ payload: Record<string, unknown>;
199
+ decision: string;
200
+ decision_reason: string | null;
201
+ risk_score: number;
202
+ delegation_id: string | null;
203
+ policy_ids: string[];
204
+ claimed_intent_id: string | null;
205
+ parent_action_id: string | null;
206
+ actor_id: string | null;
207
+ actor_type: ActorType;
208
+ action_target: string | null;
209
+ action_description: string | null;
210
+ action_risk_level: RiskLevel | null;
211
+ action_metadata: Record<string, unknown>;
212
+ pending_approval_id: string | null;
213
+ created_at: string;
214
+ decided_at: string | null;
215
+ };
216
+ export type Intent = {
217
+ id: string;
218
+ title: string;
219
+ description: string | null;
220
+ intent_type: string | null;
221
+ status: IntentStatus;
222
+ risk_level: RiskLevel;
223
+ max_risk_level: RiskLevel;
224
+ expires_at: string | null;
225
+ created_at: string;
226
+ owner: {
227
+ id: string;
228
+ full_name: string;
229
+ email: string;
230
+ } | null;
231
+ linked_actions: number;
232
+ };
233
+ export type IntentDetail = Omit<Intent, "linked_actions"> & {
234
+ linked_actions: Array<{
235
+ action_request_id: string;
236
+ action_type: string;
237
+ summary: string;
238
+ decision: string;
239
+ alignment_status: string;
240
+ alignment_score: number | null;
241
+ }>;
242
+ };
243
+ export type CreateAuthorityEdgeInput = {
244
+ fromActorId: string;
245
+ fromActorType: ActorType;
246
+ toActorId: string;
247
+ toActorType: ActorType;
248
+ authorityScope: string;
249
+ conditions?: Record<string, unknown>;
250
+ maxRiskLevel?: RiskLevel;
251
+ expiresAt?: string;
252
+ };
253
+ export type CreateIntentInput = {
254
+ title: string;
255
+ description?: string;
256
+ intentType?: string;
257
+ riskLevel?: RiskLevel;
258
+ maxRiskLevel?: RiskLevel;
259
+ expiresAt?: string;
260
+ allowedActionTypes?: string[];
261
+ targetPattern?: string;
262
+ resourceAllowlist?: string[];
263
+ };
264
+ export type UpdateIntentInput = {
265
+ status?: Exclude<IntentStatus, "expired">;
266
+ title?: string;
267
+ description?: string | null;
268
+ intentType?: string | null;
269
+ riskLevel?: RiskLevel;
270
+ maxRiskLevel?: RiskLevel;
271
+ expiresAt?: string | null;
272
+ };
273
+ export type UpdateAgentStatusInput = {
274
+ status: Agent["status"];
275
+ reason?: string;
276
+ /** Permanently revoke instead of quarantine (default: quarantine on restrict/suspend). */
277
+ revokeDelegations?: boolean;
278
+ /** Restore quarantined delegations when reactivating (default: true). */
279
+ restoreDelegations?: boolean;
280
+ };
281
+ export type AuthorityGraph = {
282
+ nodes: Array<{
283
+ id: string;
284
+ type: ActorType;
285
+ label: string;
286
+ }>;
287
+ edges: Array<{
288
+ id: string;
289
+ from: string;
290
+ to: string;
291
+ fromType: ActorType;
292
+ toType: ActorType;
293
+ scope: string;
294
+ status: string;
295
+ edgeType: string;
296
+ }>;
297
+ };
298
+ export type ActionEvaluation = {
299
+ id: string;
300
+ action_request_id: string;
301
+ intent_id: string | null;
302
+ decision: "allowed" | "requires_approval" | "blocked";
303
+ risk_score: number;
304
+ authority_valid: boolean;
305
+ intent_valid: boolean;
306
+ root_intent_valid: boolean;
307
+ reasons: string[];
308
+ created_at: string;
309
+ };
310
+ export type RootIntentChain = {
311
+ valid: boolean;
312
+ root_human_id: string | null;
313
+ root_intent_id: string | null;
314
+ reason: string | null;
315
+ chain: Array<{
316
+ actionId?: string;
317
+ actorId: string;
318
+ actorType: ActorType;
319
+ intentId?: string;
320
+ parentActionId?: string;
321
+ label?: string;
322
+ }>;
323
+ };
324
+ export type Policy = {
325
+ id: string;
326
+ name: string;
327
+ description: string | null;
328
+ policy_type: PolicyType;
329
+ status: "active" | "draft" | "archived";
330
+ priority: number;
331
+ conditions: Record<string, unknown>;
332
+ actions: Record<string, unknown>;
333
+ created_at: string;
334
+ };
335
+ export type CreatePolicyInput = {
336
+ name: string;
337
+ description?: string;
338
+ policyType: PolicyType;
339
+ status?: "active" | "draft";
340
+ priority?: number;
341
+ actionType?: string;
342
+ amountGreaterThan?: number;
343
+ resourceSensitivity?: "public" | "internal" | "confidential" | "pii";
344
+ externalRecipient?: boolean;
345
+ environment?: AgentEnvironment;
346
+ decision: "block" | "require_approval";
347
+ approverRole?: "owner" | "admin" | "reviewer";
348
+ maxActionsPerWindow?: {
349
+ count: number;
350
+ windowSeconds: number;
351
+ actionType?: string;
352
+ };
353
+ maxAmountPerWindow?: {
354
+ amount: number;
355
+ windowSeconds: number;
356
+ };
357
+ };
358
+ export type CustomActionType = {
359
+ id: string;
360
+ label: string;
361
+ description: string | null;
362
+ category: string;
363
+ policy_type: PolicyType;
364
+ payload_schema: Record<string, unknown>;
365
+ source: "builtin" | "custom";
366
+ template?: boolean;
367
+ created_at?: string | null;
368
+ };
369
+ export type CreateCustomActionTypeInput = {
370
+ id: string;
371
+ label: string;
372
+ description?: string;
373
+ category?: string;
374
+ policyType: PolicyType;
375
+ payloadSchema?: Record<string, unknown>;
376
+ };
377
+ export type PolicySimulation = {
378
+ policy_id: string;
379
+ policy_name: string;
380
+ policy_status: string;
381
+ sample_size: number;
382
+ changed_count: number;
383
+ unchanged_count: number;
384
+ would_block_count: number;
385
+ replay_source?: "audit_events" | "action_requests" | "mixed";
386
+ deltas: Array<{
387
+ action_request_id: string;
388
+ action_type: string;
389
+ current_decision: string;
390
+ simulated_decision: string;
391
+ changed: boolean;
392
+ }>;
393
+ };
394
+ export type MandateEvidence = {
395
+ format: "auctra-mandate.v0.1";
396
+ payload_hash: string;
397
+ signed: false;
398
+ } | {
399
+ format: "auctra-mandate.v0.1";
400
+ signed: true;
401
+ payload_hash: string;
402
+ payload: Record<string, unknown>;
403
+ signature: {
404
+ alg: "Ed25519";
405
+ key_id: string;
406
+ value: string;
407
+ };
408
+ };
409
+ export type MandatePayload = Record<string, unknown>;
410
+ export type DecisionEvidencePayload = Record<string, unknown>;
411
+ export type DecisionEvidence = {
412
+ format: "auctra-evidence.v0.1";
413
+ payload_hash: string;
414
+ signed: false;
415
+ } | {
416
+ format: "auctra-evidence.v0.1";
417
+ signed: true;
418
+ payload_hash: string;
419
+ payload: Record<string, unknown>;
420
+ signature: {
421
+ alg: "Ed25519";
422
+ key_id: string;
423
+ value: string;
424
+ };
425
+ };
426
+ export type AuditChainVerification = {
427
+ valid: boolean;
428
+ total: number;
429
+ sealed_total: number;
430
+ legacy_unsealed_total: number;
431
+ events: Array<{
432
+ id: string;
433
+ hashValid: boolean;
434
+ linkValid: boolean;
435
+ sequenceValid: boolean;
436
+ valid: boolean;
437
+ legacy: boolean;
438
+ }>;
439
+ };
440
+ export type ArtifactVerification = {
441
+ valid: boolean;
442
+ hashValid: boolean;
443
+ signatureValid: boolean;
444
+ };
445
+ export type AuditEvent = {
446
+ id: string;
447
+ event_type: string;
448
+ event_summary: string;
449
+ decision: string | null;
450
+ decision_reason: string | null;
451
+ authority_valid_at_action: boolean | null;
452
+ actor_name: string;
453
+ approver_name: string | null;
454
+ policy_applied: string | null;
455
+ delegation_id: string | null;
456
+ hash: string | null;
457
+ previous_hash: string | null;
458
+ chain_index?: number;
459
+ mandate?: MandateEvidence | null;
460
+ evidence?: DecisionEvidence | null;
461
+ payload?: Record<string, unknown>;
462
+ created_at: string;
463
+ };
464
+ export type ApiKeySummary = {
465
+ id: string;
466
+ name: string;
467
+ key_prefix: string;
468
+ environment: "development" | "production";
469
+ permissions: string[];
470
+ status: "active" | "revoked";
471
+ last_used_at: string | null;
472
+ created_at: string;
473
+ };
474
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ /** @auctra/sdk — Authority Protocol client (Stage 1.0 modular layout). */
2
+ export const AUCTRA_SDK_VERSION = "0.6.1";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@auctra/sdk",
3
- "version": "0.3.5",
4
- "description": "Authority delegation SDK for AI agents evaluate agent actions against delegated authority and org policies",
3
+ "version": "0.6.1",
4
+ "description": "Authority Protocol SDK issue portable authority, evaluate/execute actions, verify evidence",
5
5
  "homepage": "https://auctra.tech/docs",
6
6
  "bugs": {
7
7
  "url": "https://github.com/Matik103/auctra/issues"
@@ -52,6 +52,7 @@
52
52
  ],
53
53
  "license": "MIT",
54
54
  "devDependencies": {
55
+ "@types/node": "^22.20.1",
55
56
  "typescript": "^5.8.3"
56
57
  },
57
58
  "engines": {
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";