@vorionsys/contracts 0.1.1 → 0.1.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.
Files changed (85) 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 +3 -69
  5. package/dist/aci/index.d.ts.map +1 -1
  6. package/dist/aci/index.js +17 -372
  7. package/dist/aci/index.js.map +1 -1
  8. package/dist/canonical/agent.d.ts +1 -1
  9. package/dist/canonical/agent.d.ts.map +1 -1
  10. package/dist/car/car-string.d.ts +6 -6
  11. package/dist/car/effective-permission.d.ts +2 -2
  12. package/dist/car/identity.d.ts +34 -34
  13. package/dist/car/jwt-claims.d.ts +126 -126
  14. package/dist/car/tiers.js +6 -6
  15. package/dist/db/agents.d.ts +545 -5
  16. package/dist/db/agents.d.ts.map +1 -1
  17. package/dist/db/api-keys.d.ts +144 -3
  18. package/dist/db/api-keys.d.ts.map +1 -1
  19. package/dist/db/escalations.d.ts +156 -2
  20. package/dist/db/escalations.d.ts.map +1 -1
  21. package/dist/db/intents.d.ts +154 -3
  22. package/dist/db/intents.d.ts.map +1 -1
  23. package/dist/db/merkle.d.ts +134 -3
  24. package/dist/db/merkle.d.ts.map +1 -1
  25. package/dist/db/operations.d.ts +71 -2
  26. package/dist/db/operations.d.ts.map +1 -1
  27. package/dist/db/policy-versions.d.ts +38 -1
  28. package/dist/db/policy-versions.d.ts.map +1 -1
  29. package/dist/db/proofs.d.ts +119 -3
  30. package/dist/db/proofs.d.ts.map +1 -1
  31. package/dist/db/rbac.d.ts +233 -6
  32. package/dist/db/rbac.d.ts.map +1 -1
  33. package/dist/db/service-accounts.d.ts +218 -6
  34. package/dist/db/service-accounts.d.ts.map +1 -1
  35. package/dist/db/trust.d.ts +168 -2
  36. package/dist/db/trust.d.ts.map +1 -1
  37. package/dist/db/webhooks.d.ts +103 -1
  38. package/dist/db/webhooks.d.ts.map +1 -1
  39. package/dist/v2/proof-event.d.ts +3 -1
  40. package/dist/v2/proof-event.d.ts.map +1 -1
  41. package/dist/validators/proof-event.d.ts +3 -0
  42. package/dist/validators/proof-event.d.ts.map +1 -1
  43. package/dist/validators/proof-event.js +2 -1
  44. package/dist/validators/proof-event.js.map +1 -1
  45. package/package.json +24 -10
  46. package/dist/aci/aci-string.d.ts +0 -539
  47. package/dist/aci/aci-string.d.ts.map +0 -1
  48. package/dist/aci/aci-string.js +0 -581
  49. package/dist/aci/aci-string.js.map +0 -1
  50. package/dist/aci/attestation.d.ts +0 -648
  51. package/dist/aci/attestation.d.ts.map +0 -1
  52. package/dist/aci/attestation.js +0 -299
  53. package/dist/aci/attestation.js.map +0 -1
  54. package/dist/aci/domains.d.ts +0 -260
  55. package/dist/aci/domains.d.ts.map +0 -1
  56. package/dist/aci/domains.js +0 -340
  57. package/dist/aci/domains.js.map +0 -1
  58. package/dist/aci/effective-permission.d.ts +0 -371
  59. package/dist/aci/effective-permission.d.ts.map +0 -1
  60. package/dist/aci/effective-permission.js +0 -364
  61. package/dist/aci/effective-permission.js.map +0 -1
  62. package/dist/aci/identity.d.ts +0 -1100
  63. package/dist/aci/identity.d.ts.map +0 -1
  64. package/dist/aci/identity.js +0 -338
  65. package/dist/aci/identity.js.map +0 -1
  66. package/dist/aci/jwt-claims.d.ts +0 -756
  67. package/dist/aci/jwt-claims.d.ts.map +0 -1
  68. package/dist/aci/jwt-claims.js +0 -345
  69. package/dist/aci/jwt-claims.js.map +0 -1
  70. package/dist/aci/levels.d.ts +0 -279
  71. package/dist/aci/levels.d.ts.map +0 -1
  72. package/dist/aci/levels.js +0 -486
  73. package/dist/aci/levels.js.map +0 -1
  74. package/dist/aci/mapping.d.ts +0 -291
  75. package/dist/aci/mapping.d.ts.map +0 -1
  76. package/dist/aci/mapping.js +0 -447
  77. package/dist/aci/mapping.js.map +0 -1
  78. package/dist/aci/skills.d.ts +0 -314
  79. package/dist/aci/skills.d.ts.map +0 -1
  80. package/dist/aci/skills.js +0 -426
  81. package/dist/aci/skills.js.map +0 -1
  82. package/dist/aci/tiers.d.ts +0 -403
  83. package/dist/aci/tiers.d.ts.map +0 -1
  84. package/dist/aci/tiers.js +0 -686
  85. package/dist/aci/tiers.js.map +0 -1
@@ -1,581 +0,0 @@
1
- "use strict";
2
- /**
3
- * @fileoverview ACI String Parser and Generator
4
- *
5
- * Provides parsing, generation, and validation for Agent Classification
6
- * Identifier (ACI) strings. ACI strings follow the format:
7
- *
8
- * `{registry}.{organization}.{agentClass}:{domains}-L{level}@{version}[#extensions]`
9
- *
10
- * Example: `a3i.acme-corp.invoice-bot:ABF-L3@1.0.0`
11
- *
12
- * **CRITICAL DESIGN PRINCIPLE:**
13
- * The ACI is an IMMUTABLE identifier (like a certificate or passport number).
14
- * Trust is NOT encoded in the ACI - it is computed at RUNTIME based on:
15
- * - Attestations (stored separately)
16
- * - Behavioral signals
17
- * - Deployment context policies
18
- *
19
- * The optional extensions (section 5+) are mutable and can be defined by
20
- * industry or community standards.
21
- *
22
- * @module @vorionsys/contracts/aci/aci-string
23
- */
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.aciValidationResultSchema = exports.aciValidationWarningSchema = exports.aciValidationErrorSchema = exports.generateACIOptionsSchema = exports.aciSchema = exports.aciStringSchema = exports.ACIParseError = exports.parsedACISchema = exports.ACI_LEGACY_REGEX = exports.ACI_PARTIAL_REGEX = exports.ACI_REGEX = void 0;
26
- exports.getACIIdentity = getACIIdentity;
27
- exports.parseACI = parseACI;
28
- exports.parseLegacyACI = parseLegacyACI;
29
- exports.tryParseACI = tryParseACI;
30
- exports.safeParseACI = safeParseACI;
31
- exports.generateACI = generateACI;
32
- exports.generateACIString = generateACIString;
33
- exports.validateACI = validateACI;
34
- exports.isValidACI = isValidACI;
35
- exports.isACIString = isACIString;
36
- exports.updateACI = updateACI;
37
- exports.addACIExtensions = addACIExtensions;
38
- exports.removeACIExtensions = removeACIExtensions;
39
- exports.incrementACIVersion = incrementACIVersion;
40
- const zod_1 = require("zod");
41
- const domains_js_1 = require("./domains.js");
42
- const levels_js_1 = require("./levels.js");
43
- // ============================================================================
44
- // ACI Regex Pattern
45
- // ============================================================================
46
- /**
47
- * Regular expression for parsing ACI strings.
48
- *
49
- * Format: `{registry}.{organization}.{agentClass}:{domains}-L{level}@{version}[#extensions]`
50
- *
51
- * Groups:
52
- * 1. registry - Certifying registry (e.g., 'a3i')
53
- * 2. organization - Operating organization (e.g., 'acme-corp')
54
- * 3. agentClass - Agent classification (e.g., 'invoice-bot')
55
- * 4. domains - Capability domain codes (e.g., 'ABF')
56
- * 5. level - Autonomy level (0-5)
57
- * 6. version - Semantic version (e.g., '1.0.0')
58
- * 7. extensions - Optional comma-separated extensions (e.g., 'gov,audit')
59
- *
60
- * NOTE: Trust tier is NOT part of the ACI. Trust is computed at runtime
61
- * from attestations, behavioral signals, and deployment context.
62
- */
63
- exports.ACI_REGEX = /^([a-z0-9]+)\.([a-z0-9-]+)\.([a-z0-9-]+):([A-Z]+)-L([0-5])@(\d+\.\d+\.\d+)(?:#([a-z0-9,_-]+))?$/;
64
- /**
65
- * Looser regex for partial ACI validation.
66
- */
67
- exports.ACI_PARTIAL_REGEX = /^([a-z0-9]+)\.([a-z0-9-]+)\.([a-z0-9-]+):([A-Z]+)-L([0-5])(@\d+\.\d+\.\d+)?(?:#([a-z0-9,_-]+))?$/;
68
- /**
69
- * Legacy regex for parsing old-format ACI strings that include trust tier.
70
- * Used for migration/compatibility only.
71
- * @deprecated Use ACI_REGEX instead - trust tier should not be in the identifier
72
- */
73
- exports.ACI_LEGACY_REGEX = /^([a-z0-9]+)\.([a-z0-9-]+)\.([a-z0-9-]+):([A-Z]+)-L([0-5])-T([0-5])@(\d+\.\d+\.\d+)$/;
74
- /**
75
- * Extracts the identity portion from a parsed ACI.
76
- */
77
- function getACIIdentity(parsed) {
78
- return `${parsed.registry}.${parsed.organization}.${parsed.agentClass}`;
79
- }
80
- /**
81
- * Zod schema for ParsedACI validation.
82
- */
83
- exports.parsedACISchema = zod_1.z.object({
84
- aci: zod_1.z.string().min(1),
85
- registry: zod_1.z.string().min(1).regex(/^[a-z0-9]+$/),
86
- organization: zod_1.z.string().min(1).regex(/^[a-z0-9-]+$/),
87
- agentClass: zod_1.z.string().min(1).regex(/^[a-z0-9-]+$/),
88
- domains: zod_1.z.array(zod_1.z.enum(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'S'])).min(1),
89
- domainsBitmask: zod_1.z.number().int().min(0),
90
- level: zod_1.z.nativeEnum(levels_js_1.CapabilityLevel),
91
- version: zod_1.z.string().regex(/^\d+\.\d+\.\d+$/),
92
- extensions: zod_1.z.array(zod_1.z.string()).default([]),
93
- });
94
- // ============================================================================
95
- // ACI Parse Error
96
- // ============================================================================
97
- /**
98
- * Error thrown when ACI parsing fails.
99
- */
100
- class ACIParseError extends Error {
101
- /** The invalid ACI string that caused the error */
102
- aci;
103
- /** Error code for programmatic handling */
104
- code;
105
- constructor(message, aci, code = 'INVALID_FORMAT') {
106
- super(message);
107
- this.name = 'ACIParseError';
108
- this.aci = aci;
109
- this.code = code;
110
- }
111
- }
112
- exports.ACIParseError = ACIParseError;
113
- // ============================================================================
114
- // Parsing Functions
115
- // ============================================================================
116
- /**
117
- * Parses an ACI string into its components.
118
- *
119
- * @param aci - The ACI string to parse
120
- * @returns Parsed ACI components
121
- * @throws ACIParseError if the ACI string is invalid
122
- *
123
- * @example
124
- * ```typescript
125
- * const parsed = parseACI('a3i.acme-corp.invoice-bot:ABF-L3@1.0.0');
126
- * // {
127
- * // aci: 'a3i.acme-corp.invoice-bot:ABF-L3@1.0.0',
128
- * // registry: 'a3i',
129
- * // organization: 'acme-corp',
130
- * // agentClass: 'invoice-bot',
131
- * // domains: ['A', 'B', 'F'],
132
- * // domainsBitmask: 0x023,
133
- * // level: CapabilityLevel.L3_EXECUTE,
134
- * // version: '1.0.0',
135
- * // extensions: []
136
- * // }
137
- * ```
138
- */
139
- function parseACI(aci) {
140
- // Check for legacy format with embedded trust tier
141
- if (exports.ACI_LEGACY_REGEX.test(aci)) {
142
- throw new ACIParseError(`Legacy ACI format detected with embedded trust tier. ` +
143
- `Trust should not be part of the identifier - use parseLegacyACI() for migration.`, aci, 'LEGACY_FORMAT');
144
- }
145
- const match = aci.match(exports.ACI_REGEX);
146
- if (!match) {
147
- throw new ACIParseError(`Invalid ACI format: ${aci}`, aci, 'INVALID_FORMAT');
148
- }
149
- const [, registry, organization, agentClass, domainsStr, levelStr, version, extensionsStr] = match;
150
- // Validate and parse domains
151
- const domainChars = domainsStr.split('');
152
- const invalidDomains = domainChars.filter((d) => !(0, domains_js_1.isDomainCode)(d));
153
- if (invalidDomains.length > 0) {
154
- throw new ACIParseError(`Invalid domain codes: ${invalidDomains.join(', ')}`, aci, 'INVALID_DOMAINS');
155
- }
156
- if (domainChars.length === 0) {
157
- throw new ACIParseError('ACI must have at least one domain', aci, 'NO_DOMAINS');
158
- }
159
- const domains = domainChars;
160
- const domainsBitmask = (0, domains_js_1.encodeDomains)(domains);
161
- // Parse level (no tier - trust is computed at runtime)
162
- const level = parseInt(levelStr, 10);
163
- // Parse optional extensions
164
- const extensions = extensionsStr ? extensionsStr.split(',').filter((e) => e.length > 0) : [];
165
- return {
166
- aci,
167
- registry: registry,
168
- organization: organization,
169
- agentClass: agentClass,
170
- domains,
171
- domainsBitmask,
172
- level,
173
- version: version,
174
- extensions,
175
- };
176
- }
177
- /**
178
- * Parses a legacy ACI string that includes trust tier.
179
- * Returns the parsed ACI (without tier) plus the extracted tier value.
180
- *
181
- * @deprecated Use parseACI() - trust should not be in the identifier
182
- * @param aci - Legacy ACI string with embedded tier
183
- * @returns Parsed ACI plus extracted tier
184
- */
185
- function parseLegacyACI(aci) {
186
- const match = aci.match(exports.ACI_LEGACY_REGEX);
187
- if (!match) {
188
- throw new ACIParseError(`Invalid legacy ACI format: ${aci}`, aci, 'INVALID_FORMAT');
189
- }
190
- const [, registry, organization, agentClass, domainsStr, levelStr, tierStr, version] = match;
191
- // Validate and parse domains
192
- const domainChars = domainsStr.split('');
193
- const invalidDomains = domainChars.filter((d) => !(0, domains_js_1.isDomainCode)(d));
194
- if (invalidDomains.length > 0) {
195
- throw new ACIParseError(`Invalid domain codes: ${invalidDomains.join(', ')}`, aci, 'INVALID_DOMAINS');
196
- }
197
- const domains = domainChars;
198
- const domainsBitmask = (0, domains_js_1.encodeDomains)(domains);
199
- const level = parseInt(levelStr, 10);
200
- const legacyTier = parseInt(tierStr, 10);
201
- // Generate the new ACI format (without tier)
202
- const newAci = `${registry}.${organization}.${agentClass}:${(0, domains_js_1.formatDomainString)(domains)}-L${level}@${version}`;
203
- return {
204
- parsed: {
205
- aci: newAci,
206
- registry: registry,
207
- organization: organization,
208
- agentClass: agentClass,
209
- domains,
210
- domainsBitmask,
211
- level,
212
- version: version,
213
- extensions: [],
214
- },
215
- legacyTier,
216
- };
217
- }
218
- /**
219
- * Safely parses an ACI string, returning null on failure.
220
- *
221
- * @param aci - The ACI string to parse
222
- * @returns Parsed ACI or null if invalid
223
- */
224
- function tryParseACI(aci) {
225
- try {
226
- return parseACI(aci);
227
- }
228
- catch {
229
- return null;
230
- }
231
- }
232
- /**
233
- * Safely parses an ACI string, returning a result object.
234
- *
235
- * @param aci - The ACI string to parse
236
- * @returns Result object with success flag and parsed ACI or error
237
- */
238
- function safeParseACI(aci) {
239
- try {
240
- return { success: true, data: parseACI(aci) };
241
- }
242
- catch (error) {
243
- if (error instanceof ACIParseError) {
244
- return { success: false, error };
245
- }
246
- return {
247
- success: false,
248
- error: new ACIParseError(String(error), aci, 'INVALID_FORMAT'),
249
- };
250
- }
251
- }
252
- /**
253
- * Generates an ACI string from components.
254
- *
255
- * @param options - ACI components
256
- * @returns Generated ACI string
257
- *
258
- * @example
259
- * ```typescript
260
- * const aci = generateACI({
261
- * registry: 'a3i',
262
- * organization: 'acme-corp',
263
- * agentClass: 'invoice-bot',
264
- * domains: ['A', 'B', 'F'],
265
- * level: CapabilityLevel.L3_EXECUTE,
266
- * version: '1.0.0',
267
- * });
268
- * // 'a3i.acme-corp.invoice-bot:ABF-L3@1.0.0'
269
- *
270
- * // With extensions:
271
- * const aciWithExt = generateACI({
272
- * registry: 'a3i',
273
- * organization: 'acme-corp',
274
- * agentClass: 'invoice-bot',
275
- * domains: ['A', 'B', 'F'],
276
- * level: CapabilityLevel.L3_EXECUTE,
277
- * version: '1.0.0',
278
- * extensions: ['gov', 'audit'],
279
- * });
280
- * // 'a3i.acme-corp.invoice-bot:ABF-L3@1.0.0#gov,audit'
281
- * ```
282
- */
283
- function generateACI(options) {
284
- const { registry, organization, agentClass, domains, level, version, extensions = [] } = options;
285
- // Validate components
286
- if (!/^[a-z0-9]+$/.test(registry)) {
287
- throw new Error(`Invalid registry: ${registry}. Must be lowercase alphanumeric.`);
288
- }
289
- if (!/^[a-z0-9-]+$/.test(organization)) {
290
- throw new Error(`Invalid organization: ${organization}. Must be lowercase alphanumeric with hyphens.`);
291
- }
292
- if (!/^[a-z0-9-]+$/.test(agentClass)) {
293
- throw new Error(`Invalid agent class: ${agentClass}. Must be lowercase alphanumeric with hyphens.`);
294
- }
295
- if (domains.length === 0) {
296
- throw new Error('At least one domain is required.');
297
- }
298
- const invalidDomains = domains.filter((d) => !(0, domains_js_1.isDomainCode)(d));
299
- if (invalidDomains.length > 0) {
300
- throw new Error(`Invalid domain codes: ${invalidDomains.join(', ')}`);
301
- }
302
- if (!(0, levels_js_1.isCapabilityLevel)(level)) {
303
- throw new Error(`Invalid level: ${level}. Must be 0-5.`);
304
- }
305
- if (!/^\d+\.\d+\.\d+$/.test(version)) {
306
- throw new Error(`Invalid version: ${version}. Must be semantic version (e.g., 1.0.0).`);
307
- }
308
- // Validate extensions if provided
309
- if (extensions.length > 0) {
310
- const invalidExtensions = extensions.filter((e) => !/^[a-z0-9_-]+$/.test(e));
311
- if (invalidExtensions.length > 0) {
312
- throw new Error(`Invalid extensions: ${invalidExtensions.join(', ')}. Must be lowercase alphanumeric with hyphens/underscores.`);
313
- }
314
- }
315
- // Format domains (sorted, deduplicated)
316
- const domainsStr = (0, domains_js_1.formatDomainString)(domains);
317
- // Build ACI string
318
- let aci = `${registry}.${organization}.${agentClass}:${domainsStr}-L${level}@${version}`;
319
- // Append extensions if present
320
- if (extensions.length > 0) {
321
- aci += `#${extensions.join(',')}`;
322
- }
323
- return aci;
324
- }
325
- /**
326
- * Generates an ACI string from individual parameters.
327
- *
328
- * @param registry - Certifying registry
329
- * @param organization - Operating organization
330
- * @param agentClass - Agent classification
331
- * @param domains - Capability domains
332
- * @param level - Autonomy level
333
- * @param version - Semantic version
334
- * @param extensions - Optional extensions
335
- * @returns Generated ACI string
336
- */
337
- function generateACIString(registry, organization, agentClass, domains, level, version, extensions) {
338
- return generateACI({
339
- registry,
340
- organization,
341
- agentClass,
342
- domains,
343
- level,
344
- version,
345
- extensions,
346
- });
347
- }
348
- /**
349
- * Validates an ACI string.
350
- *
351
- * @param aci - The ACI string to validate
352
- * @returns Validation result
353
- *
354
- * @example
355
- * ```typescript
356
- * const result = validateACI('a3i.acme-corp.bot:A-L5@1.0.0');
357
- * // {
358
- * // valid: true,
359
- * // errors: [],
360
- * // warnings: [],
361
- * // parsed: { ... }
362
- * // }
363
- * ```
364
- */
365
- function validateACI(aci) {
366
- const errors = [];
367
- const warnings = [];
368
- // Check for legacy format with embedded trust tier
369
- if (exports.ACI_LEGACY_REGEX.test(aci)) {
370
- warnings.push({
371
- code: 'LEGACY_FORMAT',
372
- message: 'ACI contains embedded trust tier which is deprecated. ' +
373
- 'Trust should be computed at runtime, not encoded in the identifier.',
374
- });
375
- }
376
- try {
377
- const parsed = parseACI(aci);
378
- // Validate capability level constraints
379
- // Note: Trust checks are now done at RUNTIME, not in the ACI itself
380
- // L7 agents operate at maximum autonomy - should be rare
381
- if (parsed.level === levels_js_1.CapabilityLevel.L7_AUTONOMOUS) {
382
- warnings.push({
383
- code: 'L7_AUTONOMOUS_LEVEL',
384
- message: 'L7 (Autonomous) level grants maximum autonomy. ' +
385
- 'Ensure runtime trust policies are configured appropriately.',
386
- });
387
- }
388
- // Security domain agents require careful runtime trust
389
- if (parsed.domains.includes('S')) {
390
- warnings.push({
391
- code: 'SECURITY_DOMAIN',
392
- message: 'Security domain agent. Runtime attestations and behavioral scoring ' +
393
- 'should be configured to enforce appropriate trust levels.',
394
- });
395
- }
396
- // Finance domain agents require careful runtime trust
397
- if (parsed.domains.includes('F')) {
398
- warnings.push({
399
- code: 'FINANCE_DOMAIN',
400
- message: 'Finance domain agent. Runtime attestations and behavioral scoring ' +
401
- 'should be configured to enforce appropriate trust levels.',
402
- });
403
- }
404
- return {
405
- valid: true,
406
- errors,
407
- warnings,
408
- parsed,
409
- };
410
- }
411
- catch (e) {
412
- if (e instanceof ACIParseError) {
413
- // If it's a legacy format error, try parsing with legacy parser
414
- if (e.code === 'LEGACY_FORMAT') {
415
- try {
416
- const { parsed } = parseLegacyACI(aci);
417
- warnings.push({
418
- code: 'LEGACY_FORMAT_MIGRATED',
419
- message: 'Legacy ACI migrated to new format. Trust tier has been removed from identifier.',
420
- });
421
- return {
422
- valid: true,
423
- errors,
424
- warnings,
425
- parsed,
426
- };
427
- }
428
- catch {
429
- errors.push({ code: e.code, message: e.message });
430
- }
431
- }
432
- else {
433
- errors.push({ code: e.code, message: e.message });
434
- }
435
- }
436
- else {
437
- errors.push({ code: 'UNKNOWN_ERROR', message: String(e) });
438
- }
439
- return { valid: false, errors, warnings };
440
- }
441
- }
442
- /**
443
- * Checks if a string is a valid ACI format.
444
- *
445
- * @param aci - String to check
446
- * @returns True if the string is a valid ACI
447
- */
448
- function isValidACI(aci) {
449
- return exports.ACI_REGEX.test(aci) && validateACI(aci).valid;
450
- }
451
- /**
452
- * Type guard to check if a value is a valid ACI string.
453
- *
454
- * @param value - Value to check
455
- * @returns True if value is a valid ACI string
456
- */
457
- function isACIString(value) {
458
- return typeof value === 'string' && isValidACI(value);
459
- }
460
- // ============================================================================
461
- // ACI Manipulation
462
- // ============================================================================
463
- /**
464
- * Updates specific fields in an ACI and returns a new ACI string.
465
- *
466
- * @param aci - Original ACI string
467
- * @param updates - Fields to update
468
- * @returns New ACI string with updates applied
469
- */
470
- function updateACI(aci, updates) {
471
- const parsed = parseACI(aci);
472
- return generateACI({
473
- registry: parsed.registry,
474
- organization: parsed.organization,
475
- agentClass: parsed.agentClass,
476
- domains: updates.domains ?? parsed.domains,
477
- level: updates.level ?? parsed.level,
478
- version: updates.version ?? parsed.version,
479
- extensions: updates.extensions ?? parsed.extensions,
480
- });
481
- }
482
- /**
483
- * Adds extensions to an ACI string.
484
- *
485
- * @param aci - Original ACI string
486
- * @param newExtensions - Extensions to add
487
- * @returns New ACI string with extensions added
488
- */
489
- function addACIExtensions(aci, newExtensions) {
490
- const parsed = parseACI(aci);
491
- const allExtensions = [...new Set([...parsed.extensions, ...newExtensions])];
492
- return updateACI(aci, { extensions: allExtensions });
493
- }
494
- /**
495
- * Removes extensions from an ACI string.
496
- *
497
- * @param aci - Original ACI string
498
- * @param extensionsToRemove - Extensions to remove
499
- * @returns New ACI string with extensions removed
500
- */
501
- function removeACIExtensions(aci, extensionsToRemove) {
502
- const parsed = parseACI(aci);
503
- const remaining = parsed.extensions.filter((e) => !extensionsToRemove.includes(e));
504
- return updateACI(aci, { extensions: remaining });
505
- }
506
- /**
507
- * Increments the version in an ACI string.
508
- *
509
- * @param aci - Original ACI string
510
- * @param type - Version component to increment ('major' | 'minor' | 'patch')
511
- * @returns New ACI string with incremented version
512
- */
513
- function incrementACIVersion(aci, type = 'patch') {
514
- const parsed = parseACI(aci);
515
- const [major, minor, patch] = parsed.version.split('.').map(Number);
516
- let newVersion;
517
- switch (type) {
518
- case 'major':
519
- newVersion = `${major + 1}.0.0`;
520
- break;
521
- case 'minor':
522
- newVersion = `${major}.${minor + 1}.0`;
523
- break;
524
- case 'patch':
525
- default:
526
- newVersion = `${major}.${minor}.${patch + 1}`;
527
- break;
528
- }
529
- return updateACI(aci, { version: newVersion });
530
- }
531
- // ============================================================================
532
- // Zod Schemas
533
- // ============================================================================
534
- /**
535
- * Zod schema for ACI string validation.
536
- */
537
- exports.aciStringSchema = zod_1.z.string().refine((val) => exports.ACI_REGEX.test(val), {
538
- message: 'Invalid ACI format. Expected: registry.org.class:DOMAINS-Ln@x.y.z[#extensions]',
539
- });
540
- /**
541
- * Zod schema for ACI string with parsing transform.
542
- */
543
- exports.aciSchema = exports.aciStringSchema.transform((aci) => parseACI(aci));
544
- /**
545
- * Zod schema for GenerateACIOptions.
546
- */
547
- exports.generateACIOptionsSchema = zod_1.z.object({
548
- registry: zod_1.z.string().min(1).regex(/^[a-z0-9]+$/),
549
- organization: zod_1.z.string().min(1).regex(/^[a-z0-9-]+$/),
550
- agentClass: zod_1.z.string().min(1).regex(/^[a-z0-9-]+$/),
551
- domains: zod_1.z.array(zod_1.z.enum(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'S'])).min(1),
552
- level: zod_1.z.nativeEnum(levels_js_1.CapabilityLevel),
553
- version: zod_1.z.string().regex(/^\d+\.\d+\.\d+$/),
554
- extensions: zod_1.z.array(zod_1.z.string().regex(/^[a-z0-9_-]+$/)).optional(),
555
- });
556
- /**
557
- * Zod schema for ACIValidationError.
558
- */
559
- exports.aciValidationErrorSchema = zod_1.z.object({
560
- code: zod_1.z.string(),
561
- message: zod_1.z.string(),
562
- path: zod_1.z.string().optional(),
563
- });
564
- /**
565
- * Zod schema for ACIValidationWarning.
566
- */
567
- exports.aciValidationWarningSchema = zod_1.z.object({
568
- code: zod_1.z.string(),
569
- message: zod_1.z.string(),
570
- path: zod_1.z.string().optional(),
571
- });
572
- /**
573
- * Zod schema for ACIValidationResult.
574
- */
575
- exports.aciValidationResultSchema = zod_1.z.object({
576
- valid: zod_1.z.boolean(),
577
- errors: zod_1.z.array(exports.aciValidationErrorSchema),
578
- warnings: zod_1.z.array(exports.aciValidationWarningSchema),
579
- parsed: exports.parsedACISchema.optional(),
580
- });
581
- //# sourceMappingURL=aci-string.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aci-string.js","sourceRoot":"","sources":["../../src/aci/aci-string.ts"],"names":[],"mappings":"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"}