@vorionsys/contracts 0.1.1 → 0.1.3

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 (151) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/LICENSE +190 -0
  3. package/README.md +373 -84
  4. package/dist/aci/index.d.ts +4 -70
  5. package/dist/aci/index.d.ts.map +1 -1
  6. package/dist/aci/index.js +18 -373
  7. package/dist/aci/index.js.map +1 -1
  8. package/dist/canonical/agent.d.ts +15 -15
  9. package/dist/canonical/agent.d.ts.map +1 -1
  10. package/dist/canonical/governance.d.ts +8 -8
  11. package/dist/canonical/intent.d.ts +18 -18
  12. package/dist/canonical/middleware.d.ts +4 -4
  13. package/dist/canonical/trust-signal.d.ts +48 -45
  14. package/dist/canonical/trust-signal.d.ts.map +1 -1
  15. package/dist/canonical/trust-signal.js +7 -2
  16. package/dist/canonical/trust-signal.js.map +1 -1
  17. package/dist/canonical/validation.d.ts +11 -26
  18. package/dist/canonical/validation.d.ts.map +1 -1
  19. package/dist/canonical/validation.js +30 -101
  20. package/dist/canonical/validation.js.map +1 -1
  21. package/dist/car/attestation.d.ts +30 -30
  22. package/dist/car/attestation.d.ts.map +1 -1
  23. package/dist/car/attestation.js +3 -1
  24. package/dist/car/attestation.js.map +1 -1
  25. package/dist/car/car-string.d.ts +47 -47
  26. package/dist/car/car-string.d.ts.map +1 -1
  27. package/dist/car/car-string.js +36 -36
  28. package/dist/car/car-string.js.map +1 -1
  29. package/dist/car/domains.d.ts +34 -18
  30. package/dist/car/domains.d.ts.map +1 -1
  31. package/dist/car/domains.js +53 -15
  32. package/dist/car/domains.js.map +1 -1
  33. package/dist/car/effective-permission.d.ts +61 -13
  34. package/dist/car/effective-permission.d.ts.map +1 -1
  35. package/dist/car/effective-permission.js +30 -2
  36. package/dist/car/effective-permission.js.map +1 -1
  37. package/dist/car/identity.d.ts +327 -108
  38. package/dist/car/identity.d.ts.map +1 -1
  39. package/dist/car/identity.js +112 -10
  40. package/dist/car/identity.js.map +1 -1
  41. package/dist/car/index.d.ts +3 -3
  42. package/dist/car/index.d.ts.map +1 -1
  43. package/dist/car/index.js +15 -7
  44. package/dist/car/index.js.map +1 -1
  45. package/dist/car/jwt-claims.d.ts +273 -273
  46. package/dist/car/jwt-claims.d.ts.map +1 -1
  47. package/dist/car/jwt-claims.js +39 -46
  48. package/dist/car/jwt-claims.js.map +1 -1
  49. package/dist/car/levels.d.ts +2 -2
  50. package/dist/car/mapping.d.ts +36 -36
  51. package/dist/car/mapping.d.ts.map +1 -1
  52. package/dist/car/mapping.js +107 -43
  53. package/dist/car/mapping.js.map +1 -1
  54. package/dist/car/skills.d.ts +4 -4
  55. package/dist/car/tiers.d.ts +7 -7
  56. package/dist/car/tiers.js +10 -10
  57. package/dist/car/tiers.js.map +1 -1
  58. package/dist/common/primitives.d.ts +2 -2
  59. package/dist/db/agents.d.ts +549 -9
  60. package/dist/db/agents.d.ts.map +1 -1
  61. package/dist/db/agents.js +4 -4
  62. package/dist/db/agents.js.map +1 -1
  63. package/dist/db/api-keys.d.ts +144 -3
  64. package/dist/db/api-keys.d.ts.map +1 -1
  65. package/dist/db/escalations.d.ts +156 -2
  66. package/dist/db/escalations.d.ts.map +1 -1
  67. package/dist/db/intents.d.ts +154 -3
  68. package/dist/db/intents.d.ts.map +1 -1
  69. package/dist/db/merkle.d.ts +134 -3
  70. package/dist/db/merkle.d.ts.map +1 -1
  71. package/dist/db/operations.d.ts +71 -2
  72. package/dist/db/operations.d.ts.map +1 -1
  73. package/dist/db/policy-versions.d.ts +38 -1
  74. package/dist/db/policy-versions.d.ts.map +1 -1
  75. package/dist/db/proofs.d.ts +119 -3
  76. package/dist/db/proofs.d.ts.map +1 -1
  77. package/dist/db/rbac.d.ts +233 -6
  78. package/dist/db/rbac.d.ts.map +1 -1
  79. package/dist/db/service-accounts.d.ts +218 -6
  80. package/dist/db/service-accounts.d.ts.map +1 -1
  81. package/dist/db/trust.d.ts +168 -2
  82. package/dist/db/trust.d.ts.map +1 -1
  83. package/dist/db/webhooks.d.ts +103 -1
  84. package/dist/db/webhooks.d.ts.map +1 -1
  85. package/dist/v2/enums.d.ts +5 -0
  86. package/dist/v2/enums.d.ts.map +1 -1
  87. package/dist/v2/enums.js +5 -0
  88. package/dist/v2/enums.js.map +1 -1
  89. package/dist/v2/evidence.d.ts +20 -20
  90. package/dist/v2/pre-action-gate.js +5 -5
  91. package/dist/v2/pre-action-gate.js.map +1 -1
  92. package/dist/v2/proof-event.d.ts +3 -1
  93. package/dist/v2/proof-event.d.ts.map +1 -1
  94. package/dist/v2/retention.d.ts +14 -14
  95. package/dist/v2/trust-delta.d.ts +6 -6
  96. package/dist/v2/trust-delta.d.ts.map +1 -1
  97. package/dist/v2/trust-profile.d.ts +116 -54
  98. package/dist/v2/trust-profile.d.ts.map +1 -1
  99. package/dist/v2/trust-profile.js +22 -17
  100. package/dist/v2/trust-profile.js.map +1 -1
  101. package/dist/validators/decision.d.ts +6 -6
  102. package/dist/validators/intent.d.ts +8 -8
  103. package/dist/validators/proof-event.d.ts +57 -54
  104. package/dist/validators/proof-event.d.ts.map +1 -1
  105. package/dist/validators/proof-event.js +2 -1
  106. package/dist/validators/proof-event.js.map +1 -1
  107. package/dist/validators/trust-profile.d.ts +76 -244
  108. package/dist/validators/trust-profile.d.ts.map +1 -1
  109. package/dist/validators/trust-profile.js +21 -35
  110. package/dist/validators/trust-profile.js.map +1 -1
  111. package/package.json +26 -11
  112. package/dist/aci/aci-string.d.ts +0 -539
  113. package/dist/aci/aci-string.d.ts.map +0 -1
  114. package/dist/aci/aci-string.js +0 -581
  115. package/dist/aci/aci-string.js.map +0 -1
  116. package/dist/aci/attestation.d.ts +0 -648
  117. package/dist/aci/attestation.d.ts.map +0 -1
  118. package/dist/aci/attestation.js +0 -299
  119. package/dist/aci/attestation.js.map +0 -1
  120. package/dist/aci/domains.d.ts +0 -260
  121. package/dist/aci/domains.d.ts.map +0 -1
  122. package/dist/aci/domains.js +0 -340
  123. package/dist/aci/domains.js.map +0 -1
  124. package/dist/aci/effective-permission.d.ts +0 -371
  125. package/dist/aci/effective-permission.d.ts.map +0 -1
  126. package/dist/aci/effective-permission.js +0 -364
  127. package/dist/aci/effective-permission.js.map +0 -1
  128. package/dist/aci/identity.d.ts +0 -1100
  129. package/dist/aci/identity.d.ts.map +0 -1
  130. package/dist/aci/identity.js +0 -338
  131. package/dist/aci/identity.js.map +0 -1
  132. package/dist/aci/jwt-claims.d.ts +0 -756
  133. package/dist/aci/jwt-claims.d.ts.map +0 -1
  134. package/dist/aci/jwt-claims.js +0 -345
  135. package/dist/aci/jwt-claims.js.map +0 -1
  136. package/dist/aci/levels.d.ts +0 -279
  137. package/dist/aci/levels.d.ts.map +0 -1
  138. package/dist/aci/levels.js +0 -486
  139. package/dist/aci/levels.js.map +0 -1
  140. package/dist/aci/mapping.d.ts +0 -291
  141. package/dist/aci/mapping.d.ts.map +0 -1
  142. package/dist/aci/mapping.js +0 -447
  143. package/dist/aci/mapping.js.map +0 -1
  144. package/dist/aci/skills.d.ts +0 -314
  145. package/dist/aci/skills.d.ts.map +0 -1
  146. package/dist/aci/skills.js +0 -426
  147. package/dist/aci/skills.js.map +0 -1
  148. package/dist/aci/tiers.d.ts +0 -403
  149. package/dist/aci/tiers.d.ts.map +0 -1
  150. package/dist/aci/tiers.js +0 -686
  151. package/dist/aci/tiers.js.map +0 -1
@@ -1,299 +0,0 @@
1
- "use strict";
2
- /**
3
- * @fileoverview ACI Attestation Types
4
- *
5
- * Defines types for attestations - cryptographic proofs issued by certification
6
- * authorities that verify agent capabilities, identity, or compliance.
7
- *
8
- * Attestations are the foundation of trust in the ACI system, providing
9
- * verifiable evidence that an agent has been certified at a particular level.
10
- *
11
- * @module @vorionsys/contracts/aci/attestation
12
- */
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.attestationVerificationResultSchema = exports.attestationVerificationWarningSchema = exports.attestationVerificationErrorSchema = exports.attestationSchema = exports.attestationProofSchema = exports.attestationEvidenceSchema = exports.attestationStatusSchema = exports.ATTESTATION_SCOPE_DESCRIPTIONS = exports.attestationScopeSchema = exports.ATTESTATION_SCOPES = void 0;
15
- exports.createAttestation = createAttestation;
16
- exports.verifyAttestation = verifyAttestation;
17
- exports.isAttestationValid = isAttestationValid;
18
- exports.getAttestationRemainingValidity = getAttestationRemainingValidity;
19
- exports.attestationCoversDomain = attestationCoversDomain;
20
- exports.isAttestationScope = isAttestationScope;
21
- exports.isAttestationStatus = isAttestationStatus;
22
- const zod_1 = require("zod");
23
- const tiers_js_1 = require("./tiers.js");
24
- const domains_js_1 = require("./domains.js");
25
- /**
26
- * Array of all attestation scopes.
27
- */
28
- exports.ATTESTATION_SCOPES = [
29
- 'full',
30
- 'domain',
31
- 'level',
32
- 'training',
33
- 'security',
34
- 'compliance',
35
- 'identity',
36
- ];
37
- /**
38
- * Zod schema for AttestationScope validation.
39
- */
40
- exports.attestationScopeSchema = zod_1.z.enum(['full', 'domain', 'level', 'training', 'security', 'compliance', 'identity'], { errorMap: () => ({ message: 'Invalid attestation scope' }) });
41
- /**
42
- * Descriptions for attestation scopes.
43
- */
44
- exports.ATTESTATION_SCOPE_DESCRIPTIONS = {
45
- full: 'Complete capability attestation covering all aspects of agent certification',
46
- domain: 'Attestation for a specific capability domain',
47
- level: 'Attestation for a specific autonomy level',
48
- training: 'Attestation for training data quality and methodology',
49
- security: 'Security audit attestation',
50
- compliance: 'Regulatory compliance attestation',
51
- identity: 'Identity verification attestation',
52
- };
53
- /**
54
- * Zod schema for AttestationStatus validation.
55
- */
56
- exports.attestationStatusSchema = zod_1.z.enum(['active', 'expired', 'revoked', 'suspended', 'pending'], { errorMap: () => ({ message: 'Invalid attestation status' }) });
57
- /**
58
- * Zod schema for AttestationEvidence validation.
59
- */
60
- exports.attestationEvidenceSchema = zod_1.z.object({
61
- testResults: zod_1.z.string().url().optional(),
62
- auditReport: zod_1.z.string().url().optional(),
63
- trainingVerification: zod_1.z.string().url().optional(),
64
- complianceDocumentation: zod_1.z.string().url().optional(),
65
- }).catchall(zod_1.z.string().url().optional());
66
- /**
67
- * Zod schema for AttestationProof validation.
68
- */
69
- exports.attestationProofSchema = zod_1.z.object({
70
- type: zod_1.z.string().min(1),
71
- created: zod_1.z.string().datetime(),
72
- verificationMethod: zod_1.z.string().min(1),
73
- proofPurpose: zod_1.z.string().min(1),
74
- jws: zod_1.z.string().min(1),
75
- nonce: zod_1.z.string().optional(),
76
- challenge: zod_1.z.string().optional(),
77
- domain: zod_1.z.string().optional(),
78
- });
79
- /**
80
- * Zod schema for Attestation validation.
81
- */
82
- exports.attestationSchema = zod_1.z.object({
83
- id: zod_1.z.string().min(1),
84
- issuer: zod_1.z.string().min(1),
85
- subject: zod_1.z.string().min(1),
86
- scope: exports.attestationScopeSchema,
87
- certificationTier: tiers_js_1.certificationTierSchema,
88
- domains: zod_1.z.array(domains_js_1.domainCodeSchema).optional(),
89
- issuedAt: zod_1.z.date(),
90
- expiresAt: zod_1.z.date(),
91
- status: exports.attestationStatusSchema,
92
- evidence: exports.attestationEvidenceSchema.optional(),
93
- proof: exports.attestationProofSchema.optional(),
94
- metadata: zod_1.z.record(zod_1.z.unknown()).optional(),
95
- });
96
- /**
97
- * Zod schema for AttestationVerificationError.
98
- */
99
- exports.attestationVerificationErrorSchema = zod_1.z.object({
100
- code: zod_1.z.enum([
101
- 'INVALID_SIGNATURE',
102
- 'EXPIRED',
103
- 'REVOKED',
104
- 'SUSPENDED',
105
- 'ISSUER_NOT_TRUSTED',
106
- 'SUBJECT_MISMATCH',
107
- 'INVALID_FORMAT',
108
- 'PROOF_MISSING',
109
- 'VERIFICATION_FAILED',
110
- ]),
111
- message: zod_1.z.string(),
112
- });
113
- /**
114
- * Zod schema for AttestationVerificationWarning.
115
- */
116
- exports.attestationVerificationWarningSchema = zod_1.z.object({
117
- code: zod_1.z.string(),
118
- message: zod_1.z.string(),
119
- });
120
- /**
121
- * Zod schema for AttestationVerificationResult.
122
- */
123
- exports.attestationVerificationResultSchema = zod_1.z.object({
124
- valid: zod_1.z.boolean(),
125
- errors: zod_1.z.array(exports.attestationVerificationErrorSchema),
126
- warnings: zod_1.z.array(exports.attestationVerificationWarningSchema),
127
- attestation: exports.attestationSchema.optional(),
128
- verifiedAt: zod_1.z.date(),
129
- verificationMethod: zod_1.z.string().optional(),
130
- });
131
- /**
132
- * Creates a new attestation.
133
- *
134
- * @param options - Attestation creation options
135
- * @returns New attestation (without proof - must be signed separately)
136
- *
137
- * @example
138
- * ```typescript
139
- * const attestation = createAttestation({
140
- * issuer: 'did:web:certifier.example.com',
141
- * subject: 'did:web:agent.acme.com',
142
- * scope: 'full',
143
- * certificationTier: CertificationTier.T3_CERTIFIED,
144
- * validityMs: 365 * 24 * 60 * 60 * 1000, // 1 year
145
- * });
146
- * ```
147
- */
148
- function createAttestation(options) {
149
- const now = new Date();
150
- const validityMs = options.validityMs ?? 365 * 24 * 60 * 60 * 1000; // Default: 1 year
151
- return {
152
- id: options.id ?? `urn:uuid:${crypto.randomUUID()}`,
153
- issuer: options.issuer,
154
- subject: options.subject,
155
- scope: options.scope,
156
- certificationTier: options.certificationTier,
157
- domains: options.domains,
158
- issuedAt: now,
159
- expiresAt: new Date(now.getTime() + validityMs),
160
- status: 'active',
161
- evidence: options.evidence,
162
- metadata: options.metadata,
163
- };
164
- }
165
- /**
166
- * Verifies an attestation (basic validation without cryptographic verification).
167
- *
168
- * This function performs structural and temporal validation. Cryptographic
169
- * verification of the proof requires additional libraries and is not
170
- * performed here.
171
- *
172
- * @param attestation - The attestation to verify
173
- * @param expectedSubject - Optional expected subject DID
174
- * @param trustedIssuers - Optional list of trusted issuer DIDs
175
- * @returns Verification result
176
- */
177
- function verifyAttestation(attestation, expectedSubject, trustedIssuers) {
178
- const errors = [];
179
- const warnings = [];
180
- const now = new Date();
181
- // Check expiration
182
- if (attestation.expiresAt < now) {
183
- errors.push({
184
- code: 'EXPIRED',
185
- message: `Attestation expired on ${attestation.expiresAt.toISOString()}`,
186
- });
187
- }
188
- // Check status
189
- if (attestation.status === 'revoked') {
190
- errors.push({
191
- code: 'REVOKED',
192
- message: 'Attestation has been revoked',
193
- });
194
- }
195
- else if (attestation.status === 'suspended') {
196
- errors.push({
197
- code: 'SUSPENDED',
198
- message: 'Attestation is currently suspended',
199
- });
200
- }
201
- else if (attestation.status === 'pending') {
202
- warnings.push({
203
- code: 'PENDING',
204
- message: 'Attestation is still pending validation',
205
- });
206
- }
207
- // Check subject match
208
- if (expectedSubject && attestation.subject !== expectedSubject) {
209
- errors.push({
210
- code: 'SUBJECT_MISMATCH',
211
- message: `Attestation subject ${attestation.subject} does not match expected ${expectedSubject}`,
212
- });
213
- }
214
- // Check trusted issuer
215
- if (trustedIssuers && !trustedIssuers.includes(attestation.issuer)) {
216
- errors.push({
217
- code: 'ISSUER_NOT_TRUSTED',
218
- message: `Issuer ${attestation.issuer} is not in the trusted issuers list`,
219
- });
220
- }
221
- // Check proof presence
222
- if (!attestation.proof) {
223
- warnings.push({
224
- code: 'NO_PROOF',
225
- message: 'Attestation does not include cryptographic proof',
226
- });
227
- }
228
- // Check for near expiration
229
- const daysUntilExpiry = (attestation.expiresAt.getTime() - now.getTime()) / (24 * 60 * 60 * 1000);
230
- if (daysUntilExpiry > 0 && daysUntilExpiry < 30) {
231
- warnings.push({
232
- code: 'EXPIRING_SOON',
233
- message: `Attestation expires in ${Math.ceil(daysUntilExpiry)} days`,
234
- });
235
- }
236
- return {
237
- valid: errors.length === 0,
238
- errors,
239
- warnings,
240
- attestation: errors.length === 0 ? attestation : undefined,
241
- verifiedAt: now,
242
- };
243
- }
244
- // ============================================================================
245
- // Attestation Helpers
246
- // ============================================================================
247
- /**
248
- * Checks if an attestation is currently valid.
249
- *
250
- * @param attestation - The attestation to check
251
- * @returns True if the attestation is valid
252
- */
253
- function isAttestationValid(attestation) {
254
- const now = new Date();
255
- return (attestation.status === 'active' &&
256
- attestation.issuedAt <= now &&
257
- attestation.expiresAt > now);
258
- }
259
- /**
260
- * Gets the remaining validity duration of an attestation.
261
- *
262
- * @param attestation - The attestation to check
263
- * @returns Remaining validity in milliseconds (negative if expired)
264
- */
265
- function getAttestationRemainingValidity(attestation) {
266
- return attestation.expiresAt.getTime() - Date.now();
267
- }
268
- /**
269
- * Checks if an attestation covers a specific domain.
270
- *
271
- * @param attestation - The attestation to check
272
- * @param domain - The domain to check for
273
- * @returns True if the attestation covers the domain
274
- */
275
- function attestationCoversDomain(attestation, domain) {
276
- // Full scope covers all domains
277
- if (attestation.scope === 'full') {
278
- return true;
279
- }
280
- // Domain scope must include the specific domain
281
- if (attestation.scope === 'domain' && attestation.domains) {
282
- return attestation.domains.includes(domain);
283
- }
284
- return false;
285
- }
286
- /**
287
- * Type guard to check if a value is a valid AttestationScope.
288
- */
289
- function isAttestationScope(value) {
290
- return typeof value === 'string' && exports.ATTESTATION_SCOPES.includes(value);
291
- }
292
- /**
293
- * Type guard to check if a value is a valid AttestationStatus.
294
- */
295
- function isAttestationStatus(value) {
296
- return (typeof value === 'string' &&
297
- ['active', 'expired', 'revoked', 'suspended', 'pending'].includes(value));
298
- }
299
- //# sourceMappingURL=attestation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attestation.js","sourceRoot":"","sources":["../../src/aci/attestation.ts"],"names":[],"mappings":"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"}
@@ -1,260 +0,0 @@
1
- /**
2
- * @fileoverview ACI Domain Codes and Bitmask Operations
3
- *
4
- * Defines the capability domain codes used in ACI strings, with bitmask
5
- * encoding for efficient queries and domain matching.
6
- *
7
- * Domain codes represent high-level capability areas that agents can operate in.
8
- * Each domain has a single-character code, a human-readable name, a bitmask value,
9
- * and a description of its scope.
10
- *
11
- * @module @vorionsys/contracts/aci/domains
12
- */
13
- import { z } from 'zod';
14
- /**
15
- * Single-character domain codes representing capability areas.
16
- *
17
- * Each code maps to a specific area of agent capability:
18
- * - A: Administration - System administration, user management
19
- * - B: Business - Business logic, workflows, approvals
20
- * - C: Communications - Email, messaging, notifications
21
- * - D: Data - Data processing, analytics, reporting
22
- * - E: External - Third-party integrations, APIs
23
- * - F: Finance - Financial operations, payments, accounting
24
- * - G: Governance - Policy, compliance, oversight
25
- * - H: Hospitality - Venue, events, catering management
26
- * - I: Infrastructure - Compute, storage, networking
27
- * - S: Security - Authentication, authorization, audit
28
- */
29
- export type DomainCode = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'S';
30
- /**
31
- * Array of all valid domain codes.
32
- */
33
- export declare const DOMAIN_CODES: readonly DomainCode[];
34
- /**
35
- * Zod schema for DomainCode validation.
36
- */
37
- export declare const domainCodeSchema: z.ZodEnum<["A", "B", "C", "D", "E", "F", "G", "H", "I", "S"]>;
38
- /**
39
- * Complete definition for a capability domain.
40
- */
41
- export interface DomainDefinition {
42
- /** Single-character domain code */
43
- readonly code: DomainCode;
44
- /** Human-readable domain name */
45
- readonly name: string;
46
- /** Bitmask value for efficient queries (power of 2) */
47
- readonly bit: number;
48
- /** Description of the domain's scope */
49
- readonly description: string;
50
- }
51
- /**
52
- * Capability domains with their definitions.
53
- *
54
- * Each domain has a unique bitmask value (power of 2) for efficient
55
- * storage and querying of domain combinations.
56
- */
57
- export declare const CAPABILITY_DOMAINS: Readonly<Record<DomainCode, DomainDefinition>>;
58
- /**
59
- * Human-readable domain names indexed by code.
60
- */
61
- export declare const DOMAIN_NAMES: Readonly<Record<DomainCode, string>>;
62
- /**
63
- * Bitmask value representing all domains combined.
64
- */
65
- export declare const ALL_DOMAINS_BITMASK: number;
66
- /**
67
- * Encodes an array of domain codes into a bitmask.
68
- *
69
- * @param domains - Array of domain codes to encode
70
- * @returns Bitmask integer representing the domains
71
- *
72
- * @example
73
- * ```typescript
74
- * encodeDomains(['A', 'B']); // 0x003 (3)
75
- * encodeDomains(['A', 'S']); // 0x201 (513)
76
- * encodeDomains([]); // 0
77
- * ```
78
- */
79
- export declare function encodeDomains(domains: readonly DomainCode[]): number;
80
- /**
81
- * Decodes a bitmask into an array of domain codes.
82
- *
83
- * @param bitmask - Bitmask integer to decode
84
- * @returns Array of domain codes present in the bitmask
85
- *
86
- * @example
87
- * ```typescript
88
- * decodeDomains(0x003); // ['A', 'B']
89
- * decodeDomains(0x201); // ['A', 'S']
90
- * decodeDomains(0); // []
91
- * ```
92
- */
93
- export declare function decodeDomains(bitmask: number): DomainCode[];
94
- /**
95
- * Converts a domain string (e.g., "ABS") to an array of domain codes.
96
- *
97
- * @param domainString - String containing domain codes (e.g., "ABS")
98
- * @returns Array of domain codes
99
- * @throws Error if any character is not a valid domain code
100
- *
101
- * @example
102
- * ```typescript
103
- * parseDomainString('ABS'); // ['A', 'B', 'S']
104
- * parseDomainString('D'); // ['D']
105
- * ```
106
- */
107
- export declare function parseDomainString(domainString: string): DomainCode[];
108
- /**
109
- * Converts an array of domain codes to a domain string.
110
- *
111
- * @param domains - Array of domain codes
112
- * @param sort - Whether to sort the codes alphabetically (default: true)
113
- * @returns String containing the domain codes
114
- *
115
- * @example
116
- * ```typescript
117
- * formatDomainString(['S', 'A', 'B']); // 'ABS'
118
- * formatDomainString(['S', 'A'], false); // 'SA'
119
- * ```
120
- */
121
- export declare function formatDomainString(domains: readonly DomainCode[], sort?: boolean): string;
122
- /**
123
- * Checks if a set of domains includes all required domains.
124
- *
125
- * @param agentDomains - Domains the agent has (array or bitmask)
126
- * @param requiredDomains - Domains required (array or bitmask)
127
- * @returns True if agent has all required domains
128
- *
129
- * @example
130
- * ```typescript
131
- * hasDomains(['A', 'B', 'C'], ['A', 'B']); // true
132
- * hasDomains(['A', 'B'], ['A', 'B', 'C']); // false
133
- * hasDomains(0x007, 0x003); // true (ABC has AB)
134
- * ```
135
- */
136
- export declare function hasDomains(agentDomains: readonly DomainCode[] | number, requiredDomains: readonly DomainCode[] | number): boolean;
137
- /**
138
- * Checks if a set of domains satisfies domain requirements.
139
- *
140
- * This is an alias for hasDomains with more semantic naming for
141
- * authorization contexts.
142
- *
143
- * @param agentDomains - Domains the agent has
144
- * @param requirements - Domain requirements to satisfy
145
- * @returns True if all requirements are satisfied
146
- */
147
- export declare function satisfiesDomainRequirements(agentDomains: readonly DomainCode[] | number, requirements: readonly DomainCode[] | number): boolean;
148
- /**
149
- * Gets the intersection of two domain sets.
150
- *
151
- * @param domainsA - First domain set
152
- * @param domainsB - Second domain set
153
- * @returns Array of domains present in both sets
154
- *
155
- * @example
156
- * ```typescript
157
- * intersectDomains(['A', 'B', 'C'], ['B', 'C', 'D']); // ['B', 'C']
158
- * ```
159
- */
160
- export declare function intersectDomains(domainsA: readonly DomainCode[] | number, domainsB: readonly DomainCode[] | number): DomainCode[];
161
- /**
162
- * Gets the union of two domain sets.
163
- *
164
- * @param domainsA - First domain set
165
- * @param domainsB - Second domain set
166
- * @returns Array of domains present in either set
167
- *
168
- * @example
169
- * ```typescript
170
- * unionDomains(['A', 'B'], ['B', 'C']); // ['A', 'B', 'C']
171
- * ```
172
- */
173
- export declare function unionDomains(domainsA: readonly DomainCode[] | number, domainsB: readonly DomainCode[] | number): DomainCode[];
174
- /**
175
- * Gets domains in the first set that are not in the second.
176
- *
177
- * @param domainsA - First domain set
178
- * @param domainsB - Second domain set
179
- * @returns Array of domains in A but not in B
180
- *
181
- * @example
182
- * ```typescript
183
- * differenceDomains(['A', 'B', 'C'], ['B', 'C']); // ['A']
184
- * ```
185
- */
186
- export declare function differenceDomains(domainsA: readonly DomainCode[] | number, domainsB: readonly DomainCode[] | number): DomainCode[];
187
- /**
188
- * Gets the full definition for a domain code.
189
- *
190
- * @param code - Domain code
191
- * @returns Domain definition
192
- */
193
- export declare function getDomainDefinition(code: DomainCode): DomainDefinition;
194
- /**
195
- * Gets the human-readable name for a domain code.
196
- *
197
- * @param code - Domain code
198
- * @returns Domain name
199
- */
200
- export declare function getDomainName(code: DomainCode): string;
201
- /**
202
- * Gets the bitmask value for a domain code.
203
- *
204
- * @param code - Domain code
205
- * @returns Bitmask value
206
- */
207
- export declare function getDomainBit(code: DomainCode): number;
208
- /**
209
- * Counts the number of domains in a bitmask.
210
- *
211
- * @param bitmask - Domain bitmask
212
- * @returns Number of domains
213
- */
214
- export declare function countDomains(bitmask: number): number;
215
- /**
216
- * Type guard to check if a value is a valid DomainCode.
217
- *
218
- * @param value - Value to check
219
- * @returns True if value is a valid DomainCode
220
- */
221
- export declare function isDomainCode(value: unknown): value is DomainCode;
222
- /**
223
- * Type guard to check if all values in an array are valid DomainCodes.
224
- *
225
- * @param values - Array to check
226
- * @returns True if all values are valid DomainCodes
227
- */
228
- export declare function isDomainCodeArray(values: unknown): values is DomainCode[];
229
- /**
230
- * Zod schema for domain definition.
231
- */
232
- export declare const domainDefinitionSchema: z.ZodObject<{
233
- code: z.ZodEnum<["A", "B", "C", "D", "E", "F", "G", "H", "I", "S"]>;
234
- name: z.ZodString;
235
- bit: z.ZodNumber;
236
- description: z.ZodString;
237
- }, "strip", z.ZodTypeAny, {
238
- name: string;
239
- code: "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "S";
240
- description: string;
241
- bit: number;
242
- }, {
243
- name: string;
244
- code: "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "S";
245
- description: string;
246
- bit: number;
247
- }>;
248
- /**
249
- * Zod schema for an array of domain codes.
250
- */
251
- export declare const domainCodeArraySchema: z.ZodArray<z.ZodEnum<["A", "B", "C", "D", "E", "F", "G", "H", "I", "S"]>, "many">;
252
- /**
253
- * Zod schema for a domain bitmask (positive integer).
254
- */
255
- export declare const domainBitmaskSchema: z.ZodNumber;
256
- /**
257
- * Zod schema for domain string (e.g., "ABS").
258
- */
259
- export declare const domainStringSchema: z.ZodEffects<z.ZodString, DomainCode[], string>;
260
- //# sourceMappingURL=domains.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../src/aci/domains.ts"],"names":[],"mappings":"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"}