@agentunion/fastaun 0.5.26 → 0.5.27

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 (70) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/_packed_docs/CHANGELOG.md +41 -0
  3. package/_packed_docs/INDEX.md +22 -14
  4. package/_packed_docs/KITE_DOCS_GUIDE.md +11 -6
  5. package/_packed_docs/aun/345/210/206/345/270/203/345/274/217/346/265/213/350/257/225/350/277/220/350/241/214/346/214/207/345/215/227.md +16 -1
  6. package/_packed_docs/aun/346/265/213/350/257/225/350/277/220/350/241/214/346/214/207/345/215/227.md +37 -9
  7. package/_packed_docs/cli/AUN-CLI/350/256/276/350/256/241/346/226/207/346/241/243.md +20 -9
  8. package/_packed_docs/cli/CLI/346/211/213/345/206/214.md +57 -12
  9. package/_packed_docs/cli//345/207/255/350/257/201/344/270/216/347/273/204/347/273/207/346/234/215/345/212/241CLI/345/274/200/345/217/221/344/270/216/344/275/277/347/224/250/346/214/207/345/215/227.md +869 -0
  10. package/_packed_docs/sdk/0.5.22-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +2 -2
  11. package/_packed_docs/sdk/0.5.27-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +408 -0
  12. package/_packed_docs/sdk/0.5.27-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +410 -0
  13. package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +2 -2
  14. package/_packed_docs/sdk/09-/345/207/255/350/257/201/346/234/215/345/212/241RPC/346/211/213/345/206/214.md +187 -73
  15. package/_packed_docs/sdk/09-/347/273/204/347/273/207/346/234/215/345/212/241RPC/346/211/213/345/206/214.md +1 -1
  16. package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +13 -9
  17. package/_packed_docs/sdk/INDEX.md +21 -13
  18. package/_packed_docs/sdk//345/207/255/350/257/201/344/270/216/347/273/204/347/273/207/346/234/215/345/212/241SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +973 -266
  19. package/_packed_docs/sdk//345/207/255/350/257/201/344/270/216/347/273/204/347/273/207/346/234/215/345/212/241SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +950 -242
  20. package/dist/agent-md-schema.js +1 -1
  21. package/dist/agent-md-schema.js.map +1 -1
  22. package/dist/agent-md.js +5 -0
  23. package/dist/agent-md.js.map +1 -1
  24. package/dist/aid.js +3 -3
  25. package/dist/aid.js.map +1 -1
  26. package/dist/auth.js +21 -19
  27. package/dist/auth.js.map +1 -1
  28. package/dist/cert-utils.d.ts +1 -1
  29. package/dist/cert-utils.js +4 -4
  30. package/dist/cert-utils.js.map +1 -1
  31. package/dist/client/lifecycle.d.ts +1 -1
  32. package/dist/client/lifecycle.js.map +1 -1
  33. package/dist/client/rpc-pipeline.js +8 -1
  34. package/dist/client/rpc-pipeline.js.map +1 -1
  35. package/dist/client/v2-e2ee.js +7 -0
  36. package/dist/client/v2-e2ee.js.map +1 -1
  37. package/dist/client.d.ts +12 -0
  38. package/dist/client.js +305 -29
  39. package/dist/client.js.map +1 -1
  40. package/dist/facades.d.ts +38 -0
  41. package/dist/facades.js +49 -5
  42. package/dist/facades.js.map +1 -1
  43. package/dist/index.d.ts +4 -0
  44. package/dist/index.js +3 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/org-protocol.d.ts +1 -0
  47. package/dist/org-protocol.js +39 -36
  48. package/dist/org-protocol.js.map +1 -1
  49. package/dist/ownership-v21.js +7 -7
  50. package/dist/ownership-v21.js.map +1 -1
  51. package/dist/register-flow.js +2 -2
  52. package/dist/register-flow.js.map +1 -1
  53. package/dist/semantic-facade.d.ts +176 -0
  54. package/dist/semantic-facade.js +611 -0
  55. package/dist/semantic-facade.js.map +1 -0
  56. package/dist/semantic-protocol.d.ts +810 -0
  57. package/dist/semantic-protocol.js +894 -0
  58. package/dist/semantic-protocol.js.map +1 -0
  59. package/dist/tools/cross-sdk-agent.d.ts +11 -1
  60. package/dist/tools/cross-sdk-agent.js +388 -7
  61. package/dist/tools/cross-sdk-agent.js.map +1 -1
  62. package/dist/transport.d.ts +1 -0
  63. package/dist/transport.js +28 -2
  64. package/dist/transport.js.map +1 -1
  65. package/dist/v2/e2ee/decrypt.d.ts +5 -0
  66. package/dist/v2/e2ee/decrypt.js +22 -2
  67. package/dist/v2/e2ee/decrypt.js.map +1 -1
  68. package/dist/version.d.ts +1 -1
  69. package/dist/version.js +1 -1
  70. package/package.json +1 -1
@@ -0,0 +1,810 @@
1
+ import type { CredentialSigner } from './org-protocol.js';
2
+ export type AID = string;
3
+ export type Digest = `sha256:${string}`;
4
+ export type UnixSeconds = number;
5
+ export type NonEmpty<T> = [T, ...T[]];
6
+ export type JsonValue = null | boolean | number | string | JsonValue[] | JsonObject;
7
+ export type JsonObject = {
8
+ [key: string]: JsonValue;
9
+ };
10
+ export interface PolicyRef {
11
+ authority: AID;
12
+ id: string;
13
+ version: string;
14
+ hash: Digest;
15
+ }
16
+ export interface CAPSignature {
17
+ cert_fingerprint: Digest;
18
+ public_key_fingerprint?: Digest;
19
+ timestamp: UnixSeconds;
20
+ signature: string;
21
+ }
22
+ export interface ExtensionSignature extends CAPSignature {
23
+ profile: "aun-cap-sign/1";
24
+ }
25
+ export interface Constraint {
26
+ type: string;
27
+ field: string;
28
+ value: JsonValue;
29
+ operator?: string;
30
+ unit?: string;
31
+ }
32
+ export interface Capability {
33
+ ns: string;
34
+ action: string;
35
+ resource: string;
36
+ constraints: Constraint[];
37
+ }
38
+ export interface CredentialCore {
39
+ cid: string;
40
+ iss: AID;
41
+ sub: AID;
42
+ aud: NonEmpty<AID>;
43
+ iat: UnixSeconds;
44
+ exp: UnixSeconds;
45
+ signature: CAPSignature;
46
+ delegate?: boolean;
47
+ parent?: string;
48
+ delegation_depth?: number;
49
+ proof_chain?: JsonObject[];
50
+ security_level?: "low" | "medium" | "high";
51
+ revocation_endpoint?: JsonValue;
52
+ credential_service?: JsonObject;
53
+ ext?: JsonObject;
54
+ }
55
+ export interface StructuredCredential extends CredentialCore {
56
+ ver: "aun-cap/1";
57
+ nbf: UnixSeconds;
58
+ key_version: string;
59
+ cap: NonEmpty<Capability>;
60
+ authorization?: never;
61
+ }
62
+ export type SemanticBasis = {
63
+ kind: "text";
64
+ text: string;
65
+ evidence?: EvidenceRef[];
66
+ } | {
67
+ kind: "message_ref";
68
+ message: MessageBodyRef;
69
+ evidence?: EvidenceRef[];
70
+ };
71
+ export interface SemanticCredential {
72
+ ver: "aun-cap/semantic-1";
73
+ cid: string;
74
+ cap: Capability[];
75
+ authorization: SemanticBasis;
76
+ signature: ExtensionSignature;
77
+ iss?: AID;
78
+ sub?: AID;
79
+ aud?: NonEmpty<AID>;
80
+ iat?: UnixSeconds;
81
+ nbf?: UnixSeconds;
82
+ exp?: UnixSeconds;
83
+ key_version?: string;
84
+ delegate?: boolean;
85
+ parent?: string;
86
+ delegation_depth?: number;
87
+ proof_chain?: JsonObject[];
88
+ security_level?: "low" | "medium" | "high";
89
+ revocation_endpoint?: JsonValue;
90
+ credential_service?: JsonObject;
91
+ ext?: JsonObject;
92
+ }
93
+ export type AuthorizationCredential = StructuredCredential | SemanticCredential;
94
+ export interface MetadataConfirmation {
95
+ authority: AID;
96
+ authorization: PolicyRef;
97
+ audiences: NonEmpty<AID>;
98
+ signature: ExtensionSignature;
99
+ }
100
+ export type LedgerBinding = {
101
+ scope: "global";
102
+ authority: AID;
103
+ } | {
104
+ scope: "per_aud";
105
+ authorities: Record<AID, AID>;
106
+ };
107
+ export interface UsageRef {
108
+ epoch: number;
109
+ hash: Digest;
110
+ }
111
+ export interface UsageContract {
112
+ grant_key: Digest;
113
+ epoch: number;
114
+ audiences: NonEmpty<AID>;
115
+ ledger: LedgerBinding;
116
+ limits: NonEmpty<{
117
+ id: string;
118
+ metric: string;
119
+ unit: string;
120
+ limit: string;
121
+ }>;
122
+ allocations?: EvidenceRef[];
123
+ }
124
+ export interface UsageAllocation {
125
+ allocation_id: string;
126
+ grant_key: Digest;
127
+ parent_original_hash: Digest;
128
+ child_original_hash: Digest;
129
+ parent_epoch: number;
130
+ child_epoch: number;
131
+ parent_authority: AID;
132
+ child_authority: AID;
133
+ audiences: NonEmpty<AID>;
134
+ budgets: NonEmpty<{
135
+ parent_limit_id: string;
136
+ child_limit_id: string;
137
+ metric: string;
138
+ unit: string;
139
+ amount: string;
140
+ }>;
141
+ nbf: UnixSeconds;
142
+ exp: UnixSeconds;
143
+ signature: ExtensionSignature;
144
+ }
145
+ export interface RegistrationMetadata {
146
+ original_hash: Digest;
147
+ version: string;
148
+ confirmed_at: UnixSeconds;
149
+ iss: AID;
150
+ sub: AID;
151
+ aud: NonEmpty<AID>;
152
+ nbf: UnixSeconds;
153
+ exp: UnixSeconds | null;
154
+ use_limit: number | null;
155
+ usage?: UsageContract;
156
+ delegate: boolean;
157
+ parent?: string;
158
+ delegation_depth?: number;
159
+ proof_chain?: JsonObject[];
160
+ policy: PolicyRef;
161
+ confirmation: MetadataConfirmation;
162
+ }
163
+ export interface AudienceRevision {
164
+ audience: AID;
165
+ revision: CredentialRevisionRef;
166
+ }
167
+ export interface WithdrawnAudience {
168
+ audience: AID;
169
+ state_seq: number;
170
+ last_revision: CredentialRevisionRef;
171
+ }
172
+ export interface RevokedAudience extends AudienceRevision {
173
+ state_seq: number;
174
+ }
175
+ export interface SemanticRevocationEvent {
176
+ event_seq: number;
177
+ cid: string;
178
+ original_hash: Digest;
179
+ affected: NonEmpty<RevokedAudience>;
180
+ revoked_at: UnixSeconds;
181
+ actor: AID;
182
+ authorization: PolicyRef;
183
+ authority_evidence_hashes: Digest[];
184
+ reason_code: string;
185
+ reason?: string;
186
+ }
187
+ export interface SemanticRevocationPage {
188
+ service_aid: AID;
189
+ scope: {
190
+ audiences: NonEmpty<AID>;
191
+ };
192
+ query: {
193
+ params_hash: Digest;
194
+ nonce: string;
195
+ };
196
+ after_event_seq: number;
197
+ upper_event_seq: number;
198
+ cursor: string | null;
199
+ events: SemanticRevocationEvent[];
200
+ next_cursor: string | null;
201
+ as_of: UnixSeconds;
202
+ valid_until: UnixSeconds;
203
+ signature: ExtensionSignature;
204
+ }
205
+ export interface UsageTransitionBinding {
206
+ service_aid: AID;
207
+ cid: string;
208
+ original_hash: Digest;
209
+ transition_id: string;
210
+ fence: number;
211
+ candidate_hash: Digest;
212
+ from_usage: UsageRef;
213
+ to_usage: UsageRef;
214
+ }
215
+ export interface UsageTransitionSnapshot extends UsageTransitionBinding {
216
+ expected: NonEmpty<AudienceRevision>;
217
+ expected_absent: AID[];
218
+ expected_withdrawn: WithdrawnAudience[];
219
+ withdraw: AID[];
220
+ candidate: NonEmpty<AudienceRevision>;
221
+ prepared_at: UnixSeconds;
222
+ as_of: UnixSeconds;
223
+ signature: ExtensionSignature;
224
+ }
225
+ export type UsageTransitionReceipt = UsageTransitionSnapshot & ({
226
+ state: "prepared";
227
+ terminal_at?: never;
228
+ published?: never;
229
+ checkpoint_hashes?: never;
230
+ acceptance_hashes?: never;
231
+ recovery?: never;
232
+ } | {
233
+ state: "committed";
234
+ terminal_at: UnixSeconds;
235
+ published: NonEmpty<AudienceRevision>;
236
+ checkpoint_hashes: NonEmpty<Digest>;
237
+ acceptance_hashes: NonEmpty<Digest>;
238
+ recovery?: never;
239
+ } | {
240
+ state: "aborted";
241
+ terminal_at: UnixSeconds;
242
+ published?: never;
243
+ checkpoint_hashes?: never;
244
+ acceptance_hashes?: never;
245
+ recovery: {
246
+ eligible: true;
247
+ reason: "cancelled";
248
+ } | {
249
+ eligible: false;
250
+ reason: "credential_revoked";
251
+ };
252
+ });
253
+ export interface UsageAccountValue {
254
+ grant_key: Digest;
255
+ original_hash: Digest;
256
+ limit_id: string;
257
+ scope_key: string;
258
+ metric: string;
259
+ unit: string;
260
+ used: string;
261
+ }
262
+ export interface UsageCheckpoint extends UsageTransitionBinding {
263
+ authority: AID;
264
+ audiences: NonEmpty<AID>;
265
+ accounts: NonEmpty<UsageAccountValue>;
266
+ in_flight: 0;
267
+ unknown: 0;
268
+ reserved: "0";
269
+ closed_allocations: Digest[];
270
+ as_of: UnixSeconds;
271
+ signature: ExtensionSignature;
272
+ }
273
+ export interface UsageAcceptance extends UsageTransitionBinding {
274
+ authority: AID;
275
+ audiences: NonEmpty<AID>;
276
+ checkpoint_hashes: NonEmpty<Digest>;
277
+ accounts: NonEmpty<UsageAccountValue>;
278
+ usage: UsageContract;
279
+ as_of: UnixSeconds;
280
+ signature: ExtensionSignature;
281
+ }
282
+ export interface LedgerAbortAck extends UsageTransitionBinding {
283
+ authority: AID;
284
+ audiences: NonEmpty<AID>;
285
+ aborted_receipt_hash: Digest;
286
+ usage: UsageRef;
287
+ result: "resumed" | "frozen";
288
+ as_of: UnixSeconds;
289
+ signature: ExtensionSignature;
290
+ }
291
+ export interface EvidenceRef {
292
+ profile: string;
293
+ hash: Digest;
294
+ location: {
295
+ kind: "inline";
296
+ data_base64: string;
297
+ } | {
298
+ kind: "aun_ref";
299
+ ref: string;
300
+ };
301
+ }
302
+ export interface AUNEvidenceLocator {
303
+ resolver: "aun-evidence-archive/1";
304
+ service_aid: AID;
305
+ object_id: string;
306
+ object_version: string;
307
+ }
308
+ export type EvidenceResolver = (locator: AUNEvidenceLocator) => Promise<Uint8Array>;
309
+ export interface SemanticMessageArchive {
310
+ envelope: EvidenceRef;
311
+ envelope_bytes: Uint8Array;
312
+ received_by: AID;
313
+ received_at: UnixSeconds;
314
+ source: string;
315
+ }
316
+ export interface SemanticMessageVerificationContext extends Partial<RecordVerificationContext> {
317
+ selfAid: string;
318
+ selfDeviceId: string;
319
+ selfIkPrivate?: Uint8Array;
320
+ selfSpkPrivate?: Uint8Array;
321
+ resolveDecryptionKeys?: (envelope: Record<string, unknown>) => {
322
+ ikPriv: Uint8Array;
323
+ spkPriv?: Uint8Array;
324
+ } | Promise<{
325
+ ikPriv: Uint8Array;
326
+ spkPriv?: Uint8Array;
327
+ }>;
328
+ resolvers?: Record<string, EvidenceResolver>;
329
+ resolveSenderKey: (sender: string, device: string, fingerprint: string, signedAt: number) => Uint8Array | Promise<Uint8Array>;
330
+ verifySenderIdentity: (sender: string, device: string, fingerprint: string, signedAt: number, publicKey: Uint8Array) => void | Promise<void>;
331
+ }
332
+ export interface MessageBodyRef {
333
+ sender: AID;
334
+ message_id: string;
335
+ signed_core_hash: Digest;
336
+ conversation: {
337
+ kind: "p2p";
338
+ to: AID;
339
+ } | {
340
+ kind: "group";
341
+ group_id: string;
342
+ epoch: number;
343
+ state_commitment: JsonObject;
344
+ };
345
+ envelope: EvidenceRef;
346
+ context?: EvidenceRef[];
347
+ attachments?: EvidenceRef[];
348
+ }
349
+ export interface CredentialPackage {
350
+ lineage: NonEmpty<CredentialLineageEntry>;
351
+ }
352
+ export interface CredentialRevisionRef {
353
+ cid: string;
354
+ original_hash: Digest;
355
+ metadata_hash: Digest;
356
+ metadata_version: string;
357
+ }
358
+ export interface RegistrationReceipt extends CredentialRevisionRef {
359
+ audiences: NonEmpty<AID>;
360
+ service_aid: AID;
361
+ registered_at: UnixSeconds;
362
+ usage?: UsageRef;
363
+ signature: ExtensionSignature;
364
+ }
365
+ export interface CredentialStatusProof extends CredentialRevisionRef {
366
+ audience: AID;
367
+ status: "active" | "revoked" | "expired";
368
+ state_seq: number;
369
+ usage?: UsageRef;
370
+ query?: {
371
+ request_hash: Digest;
372
+ nonce: string;
373
+ };
374
+ as_of: UnixSeconds;
375
+ valid_until: UnixSeconds;
376
+ signature: ExtensionSignature;
377
+ }
378
+ export type LineageRevisionRef = CredentialRevisionRef | {
379
+ cid: string;
380
+ original_hash: Digest;
381
+ };
382
+ export type CredentialLineageEntry = {
383
+ credential: SemanticCredential;
384
+ metadata: RegistrationMetadata;
385
+ registration_receipt: RegistrationReceipt;
386
+ status: CredentialStatusProof;
387
+ } | {
388
+ credential: StructuredCredential;
389
+ legacy: {
390
+ registration_receipt?: JsonObject;
391
+ status_proof: JsonObject;
392
+ };
393
+ };
394
+ export type StateCheckPolicy = {
395
+ mode: "online";
396
+ } | {
397
+ mode: "bounded";
398
+ max_staleness_seconds: number;
399
+ };
400
+ export interface AllocationStatusProof {
401
+ allocation_id: string;
402
+ allocation_hash: Digest;
403
+ authority: AID;
404
+ state: "active" | "draining" | "closed";
405
+ state_seq: number;
406
+ query: {
407
+ request_hash: Digest;
408
+ nonce: string;
409
+ };
410
+ as_of: UnixSeconds;
411
+ valid_until: UnixSeconds;
412
+ signature: ExtensionSignature;
413
+ }
414
+ export interface AuthenticatedAUNContext {
415
+ actor: AID;
416
+ service_aid: AID;
417
+ authentication_ref: string;
418
+ }
419
+ export interface RequestBinding {
420
+ profile: "aun-cap-request/1";
421
+ request_hash: Digest;
422
+ }
423
+ export interface AuthorizationRequest {
424
+ request_id: string;
425
+ nonce: string;
426
+ actor: AID;
427
+ sub: AID;
428
+ target: AID;
429
+ aud: AID;
430
+ ns: string;
431
+ action: string;
432
+ resource: string;
433
+ params: JsonObject;
434
+ params_hash: Digest;
435
+ expires_at: UnixSeconds;
436
+ grant: CredentialPackage;
437
+ request_binding: RequestBinding;
438
+ }
439
+ export type RequestDigestInput = Omit<AuthorizationRequest, "grant" | "request_binding"> & {
440
+ lineage: NonEmpty<{
441
+ revision: LineageRevisionRef;
442
+ receipt_hash?: Digest;
443
+ }>;
444
+ };
445
+ export interface DecisionInput {
446
+ credential_hash: Digest;
447
+ metadata_hash: Digest;
448
+ metadata_version: string;
449
+ lineage_hash: Digest;
450
+ request_hash: Digest;
451
+ evidence_hashes: Digest[];
452
+ bodies: NonEmpty<{
453
+ credential_hash: Digest;
454
+ body_hash: Digest;
455
+ text: string;
456
+ }>;
457
+ operation: {
458
+ actor: AID;
459
+ sub: AID;
460
+ target: AID;
461
+ aud: AID;
462
+ ns: string;
463
+ action: string;
464
+ resource: string;
465
+ params: JsonObject;
466
+ };
467
+ facts: JsonObject;
468
+ facts_hash: Digest;
469
+ policy: PolicyRef;
470
+ }
471
+ export interface SemanticResult {
472
+ verdict: "allow" | "deny" | "indeterminate";
473
+ reason: string;
474
+ support: {
475
+ source_hash: Digest;
476
+ quote: string;
477
+ }[];
478
+ }
479
+ export interface DecisionRecord {
480
+ decision_id: string;
481
+ grant_key: Digest;
482
+ request_hash: Digest;
483
+ lineage_hash: Digest;
484
+ credential_hash: Digest;
485
+ metadata_hash: Digest;
486
+ body_hashes: Digest[];
487
+ semantic?: SemanticResult;
488
+ policy: PolicyRef;
489
+ model_version?: string;
490
+ facts_hash: Digest;
491
+ status_versions: Record<string, string>;
492
+ as_of: UnixSeconds;
493
+ expires_at: UnixSeconds;
494
+ }
495
+ export interface ExecutionReceipt {
496
+ request_id: string;
497
+ decision_id?: string;
498
+ status: "committed" | "rejected" | "failed" | "unknown";
499
+ ledger_ref?: string;
500
+ }
501
+ export interface SignedJsonBytes {
502
+ bytes_base64: string;
503
+ }
504
+ export interface ManagementAuthority {
505
+ policy: PolicyRef;
506
+ evidence: EvidenceRef[];
507
+ }
508
+ export type SemanticMethod = "credential.semantic.register" | "credential.semantic.revise" | "credential.semantic.get" | "credential.semantic.status" | "credential.semantic.revoke" | "credential.semantic.revocationList";
509
+ export interface SemanticManagementBinding {
510
+ request_id: string;
511
+ nonce: string;
512
+ target: AID;
513
+ method: SemanticMethod;
514
+ params_hash: Digest;
515
+ iat: UnixSeconds;
516
+ exp: UnixSeconds;
517
+ credential_cid: string;
518
+ }
519
+ export interface SemanticManagementBase {
520
+ request_id: string;
521
+ nonce: string;
522
+ credential_cid: string;
523
+ request_binding: SemanticManagementBinding;
524
+ authority: ManagementAuthority;
525
+ }
526
+ export interface SemanticRegisteredAudience extends AudienceRevision {
527
+ state_seq: number;
528
+ registration_receipt: RegistrationReceipt;
529
+ }
530
+ export interface SemanticRegisterParams extends SemanticManagementBase {
531
+ original: SignedJsonBytes;
532
+ metadata: NonEmpty<SignedJsonBytes>;
533
+ lineage_evidence: CredentialLineageEntry[];
534
+ }
535
+ export interface SemanticRegisterResult {
536
+ cid: string;
537
+ original_hash: Digest;
538
+ audiences: NonEmpty<SemanticRegisteredAudience>;
539
+ }
540
+ export interface MetadataChange {
541
+ expected: AudienceRevision[];
542
+ metadata: SignedJsonBytes[];
543
+ expected_absent?: AID[];
544
+ withdraw?: AID[];
545
+ expected_withdrawn?: WithdrawnAudience[];
546
+ }
547
+ export type SemanticReviseParams = SemanticManagementBase & ({
548
+ kind: "metadata";
549
+ change: MetadataChange;
550
+ } | {
551
+ kind: "usage_prepare";
552
+ transition_id: string;
553
+ from_usage: UsageRef;
554
+ to_usage: UsageRef;
555
+ change: MetadataChange;
556
+ previous_abort_acks: SignedJsonBytes[];
557
+ } | {
558
+ kind: "usage_commit";
559
+ transition_id: string;
560
+ fence: number;
561
+ checkpoints: NonEmpty<SignedJsonBytes>;
562
+ allocation_closures: SignedJsonBytes[];
563
+ acceptances: NonEmpty<SignedJsonBytes>;
564
+ } | {
565
+ kind: "usage_abort";
566
+ transition_id: string;
567
+ fence: number;
568
+ from_usage: UsageRef;
569
+ });
570
+ export type SemanticRevisionKind = SemanticReviseParams["kind"];
571
+ export type SemanticReviseResult = {
572
+ kind: "metadata";
573
+ cid: string;
574
+ original_hash: Digest;
575
+ audiences: SemanticRegisteredAudience[];
576
+ withdrawn: WithdrawnAudience[];
577
+ } | {
578
+ kind: "usage_prepare" | "usage_commit" | "usage_abort";
579
+ transition: UsageTransitionReceipt;
580
+ };
581
+ export type SemanticGetParams = SemanticManagementBase & {
582
+ audience: AID;
583
+ } & ({
584
+ metadata_version?: never;
585
+ transition_id?: never;
586
+ } | {
587
+ metadata_version: string;
588
+ transition_id?: never;
589
+ } | {
590
+ transition_id: string;
591
+ metadata_version?: never;
592
+ });
593
+ export type SemanticAudienceHead = {
594
+ state: "current";
595
+ audience: AID;
596
+ revision: CredentialRevisionRef;
597
+ state_seq: number;
598
+ } | {
599
+ state: "withdrawn";
600
+ audience: AID;
601
+ last_revision: CredentialRevisionRef;
602
+ state_seq: number;
603
+ };
604
+ export type SemanticGetResult = {
605
+ kind: "revision";
606
+ original: SignedJsonBytes;
607
+ metadata: SignedJsonBytes;
608
+ revision: CredentialRevisionRef;
609
+ registration_receipt: RegistrationReceipt;
610
+ head: SemanticAudienceHead;
611
+ } | {
612
+ kind: "transition";
613
+ original: SignedJsonBytes;
614
+ transition: UsageTransitionReceipt;
615
+ change: MetadataChange;
616
+ };
617
+ export type SemanticStatusParams = SemanticManagementBase & {
618
+ audience: AID;
619
+ expected_revision: CredentialRevisionRef;
620
+ } & ({
621
+ policy: {
622
+ mode: "online";
623
+ };
624
+ query: {
625
+ request_hash: Digest;
626
+ nonce: string;
627
+ };
628
+ } | {
629
+ policy: {
630
+ mode: "bounded";
631
+ max_staleness_seconds: number;
632
+ };
633
+ query?: never;
634
+ });
635
+ export type SemanticStatusResult = CredentialStatusProof;
636
+ export interface SemanticRevokeParams extends SemanticManagementBase {
637
+ reason_code: string;
638
+ reason?: string;
639
+ }
640
+ export interface SemanticRevokeResult {
641
+ cid: string;
642
+ original_hash: Digest;
643
+ revoked_at: UnixSeconds;
644
+ event_seq: number;
645
+ affected: NonEmpty<RevokedAudience>;
646
+ transition?: UsageTransitionReceipt;
647
+ }
648
+ export interface SemanticRevocationListParams extends SemanticManagementBase {
649
+ credential_cid: "";
650
+ scope: {
651
+ audiences: NonEmpty<AID>;
652
+ };
653
+ after_event_seq: number;
654
+ cursor: string | null;
655
+ limit: number;
656
+ }
657
+ export type SemanticRevocationListResult = SemanticRevocationPage;
658
+ export type SemanticFacadeInput<P> = P extends SemanticManagementBase ? Omit<P, "request_binding"> : never;
659
+ export type SemanticUsageInput<K extends "usage_prepare" | "usage_commit" | "usage_abort"> = Omit<Extract<SemanticReviseParams, {
660
+ kind: K;
661
+ }>, "kind" | "request_binding">;
662
+ export interface SemanticVerificationReport {
663
+ original_hash: Digest;
664
+ signatures_verified: boolean;
665
+ identities_bound: boolean;
666
+ revisions_bound: boolean;
667
+ checked: string[];
668
+ required: string[];
669
+ }
670
+ export interface VerifiedBody {
671
+ credential_hash: Digest;
672
+ body_hash: Digest;
673
+ payload_hash?: Digest;
674
+ text: string;
675
+ evidence_hashes: Digest[];
676
+ }
677
+ export interface FactSnapshot {
678
+ facts: JsonObject;
679
+ hash: Digest;
680
+ valid_until: UnixSeconds;
681
+ sources: EvidenceRef[];
682
+ }
683
+ export interface DecisionModelAdapter {
684
+ evaluate(input: DecisionInput): Promise<{
685
+ result: SemanticResult;
686
+ model_version: string;
687
+ }>;
688
+ }
689
+ export interface UsageReservation {
690
+ reservation_id: string;
691
+ request_hash: Digest;
692
+ usage: UsageRef[];
693
+ }
694
+ export interface ExecutionAdapter {
695
+ execute(request: AuthorizationRequest, reservation?: UsageReservation): Promise<ExecutionReceipt>;
696
+ reconcile(request_id: string): Promise<ExecutionReceipt>;
697
+ }
698
+ export type SemanticErrorCode = "SEMANTIC_FORMAT_INVALID" | "SEMANTIC_SIGNATURE_INVALID" | "SEMANTIC_IDENTITY_INVALID" | "SEMANTIC_PERMISSION_DENIED" | "SEMANTIC_NOT_FOUND" | "SEMANTIC_REVISION_CONFLICT" | "SEMANTIC_TRANSITION_CONFLICT" | "SEMANTIC_BINDING_INVALID" | "SEMANTIC_IDEMPOTENCY_CONFLICT" | "SEMANTIC_STATE_UNAVAILABLE";
699
+ export interface SemanticRequiredMaterial {
700
+ kind: "authority" | "policy" | "lineage" | "checkpoint" | "allocation_closure" | "acceptance" | "abort_ack";
701
+ id: string;
702
+ hash?: Digest;
703
+ audience?: AID;
704
+ }
705
+ export interface SemanticErrorData {
706
+ error_code: SemanticErrorCode;
707
+ retryable: boolean;
708
+ request_id?: string;
709
+ credential_cid?: string;
710
+ field?: string;
711
+ current?: NonEmpty<SemanticAudienceHead>;
712
+ current_usage?: UsageRef;
713
+ transition?: UsageTransitionReceipt;
714
+ required?: NonEmpty<SemanticRequiredMaterial>;
715
+ binding?: {
716
+ server_time: UnixSeconds;
717
+ clock_skew_seconds: 300;
718
+ };
719
+ }
720
+ export interface SemanticRPCError {
721
+ code: -32000;
722
+ message: string;
723
+ data: SemanticErrorData;
724
+ }
725
+ export declare const CLOCK_SKEW_SECONDS = 300;
726
+ export declare const SIGNATURE_PROFILE = "aun-cap-sign/1";
727
+ export declare const SEMANTIC_VERSION = "aun-cap/semantic-1";
728
+ export declare const SIGNATURE_DOMAINS: readonly ["semantic-credential", "registration-metadata", "registration-receipt", "credential-status", "usage-allocation", "allocation-status", "semantic-crl", "usage-transition", "usage-checkpoint", "usage-acceptance", "ledger-abort"];
729
+ export type SignatureDomain = typeof SIGNATURE_DOMAINS[number];
730
+ export declare class SemanticProtocolError extends Error {
731
+ readonly code: SemanticErrorCode;
732
+ readonly field?: string | undefined;
733
+ readonly retryable: boolean;
734
+ constructor(code: SemanticErrorCode, message: string, field?: string | undefined);
735
+ }
736
+ type RecordValue = Record<string, any>;
737
+ export declare function canonicalJson(value: unknown): Uint8Array;
738
+ export declare function parseJsonStrict(value: string | Uint8Array): unknown;
739
+ export declare function digest(value: unknown): Digest;
740
+ export declare function bytesDigest(value: Uint8Array): Digest;
741
+ export declare function decodeBase64(value: unknown): Uint8Array;
742
+ export declare function decodeSignedJson(value: unknown): unknown;
743
+ export declare function encodeSignedJson(value: unknown): SignedJsonBytes;
744
+ export declare function signingPayload(domain: SignatureDomain, value: unknown): Uint8Array;
745
+ export declare function validateWindow(nbf: number, exp: number | null, now: number): void;
746
+ export declare function validateAuthorizationRequestTime(value: {
747
+ expires_at: number;
748
+ }, now: number): void;
749
+ export declare function validateEvidenceRef(value: unknown): asserts value is EvidenceRef;
750
+ export declare function createEvidenceRef(bytes: Uint8Array, profile: string, locator?: AUNEvidenceLocator): Promise<EvidenceRef>;
751
+ export declare function resolveEvidence(ref: EvidenceRef, resolvers?: Record<string, EvidenceResolver>): Promise<Uint8Array>;
752
+ export declare function archiveMessage(envelope: Uint8Array | string | Record<string, unknown>, received: {
753
+ received_by: string;
754
+ received_at: number;
755
+ source: string;
756
+ }): Promise<SemanticMessageArchive>;
757
+ export declare function verifyMessageBody(value: SemanticCredential | SignedJsonBytes, context: SemanticMessageVerificationContext): Promise<VerifiedBody>;
758
+ export declare function validateSemanticCredential(value: unknown, now?: number): asserts value is SemanticCredential;
759
+ export declare function validateUsageContract(value: unknown): asserts value is UsageContract;
760
+ export declare function validateRegistrationMetadata(value: unknown, now?: number): asserts value is RegistrationMetadata;
761
+ export declare function validateSignedRecord(domain: SignatureDomain, value: unknown, now?: number): void;
762
+ export declare function validateUsageRecord(domain: SignatureDomain, value: unknown, now?: number): void;
763
+ export interface StatusValidationContext {
764
+ now: number;
765
+ elapsedSeconds: number;
766
+ query?: {
767
+ request_hash: Digest;
768
+ nonce: string;
769
+ };
770
+ }
771
+ export declare function validateStatusProof(value: unknown, policy: StateCheckPolicy, context: StatusValidationContext): asserts value is CredentialStatusProof;
772
+ export declare const MANAGEMENT_CONTEXT_FIELDS: readonly ["_auth", "_caller_id"];
773
+ export declare function projectManagementParams(params: unknown): RecordValue;
774
+ export interface ManagementBindingContext {
775
+ method: string;
776
+ target: string;
777
+ params: RecordValue;
778
+ }
779
+ export declare function validateManagementBinding(value: unknown, now?: number, context?: ManagementBindingContext): asserts value is SemanticManagementBinding;
780
+ export declare function buildManagementBinding(method: SemanticMethod, target: string, params: RecordValue, now?: number): SemanticManagementBinding;
781
+ export declare function validateMetadataChange(value: unknown): asserts value is MetadataChange;
782
+ export declare function validateLineageEntry(value: unknown): asserts value is CredentialLineageEntry;
783
+ export declare function validateManagementParams(method: SemanticMethod, value: unknown, context?: {
784
+ now?: number;
785
+ target?: string;
786
+ }): void;
787
+ export type CertificateMaterial = string | Uint8Array;
788
+ export type SemanticCertificateResolver = (fingerprint: string, aid: string, timestamp: number) => CertificateMaterial | {
789
+ certificatePem: CertificateMaterial;
790
+ chain?: CertificateMaterial[];
791
+ } | null | undefined | Promise<CertificateMaterial | {
792
+ certificatePem: CertificateMaterial;
793
+ chain?: CertificateMaterial[];
794
+ } | null | undefined>;
795
+ export interface RecordVerificationContext {
796
+ expectedAid?: string;
797
+ resolveCertificate: SemanticCertificateResolver;
798
+ verifyCertificateTrust: (certificate: CertificateMaterial, context: {
799
+ expectedAID: string;
800
+ signedAt: number;
801
+ now: number;
802
+ }) => void | Promise<void>;
803
+ now?: number;
804
+ requireCurrentValidity?: boolean;
805
+ }
806
+ export declare function verifyRecord(domain: SignatureDomain, value: unknown, context: RecordVerificationContext): Promise<SemanticVerificationReport>;
807
+ export declare function signRecord(domain: SignatureDomain, value: unknown, signer: CredentialSigner, options?: {
808
+ timestamp?: number;
809
+ }): Promise<SignedJsonBytes>;
810
+ export {};