@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,426 +0,0 @@
1
- "use strict";
2
- /**
3
- * @fileoverview ACI Skill Codes and Bitmask Operations
4
- *
5
- * Defines the skill codes used for fine-grained capability matching,
6
- * with bitmask encoding for efficient queries and skill matching.
7
- *
8
- * Skills represent specific capabilities within domains. While domains
9
- * define broad capability areas (A-I, S), skills provide granular
10
- * specialization within those areas.
11
- *
12
- * @module @vorionsys/contracts/aci/skills
13
- */
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.skillStringSchema = exports.skillBitmaskSchema = exports.skillCodeArraySchema = exports.skillDefinitionSchema = exports.LEGACY_ID_TO_SKILL = exports.SKILLS_BY_CATEGORY = exports.ALL_SKILLS_BITMASK = exports.SKILL_NAMES = exports.SKILL_DEFINITIONS = exports.skillCodeSchema = exports.SKILL_CODES = void 0;
16
- exports.legacyIdToSkillCode = legacyIdToSkillCode;
17
- exports.legacyIdsToSkillCodes = legacyIdsToSkillCodes;
18
- exports.encodeSkills = encodeSkills;
19
- exports.decodeSkills = decodeSkills;
20
- exports.parseSkillString = parseSkillString;
21
- exports.formatSkillString = formatSkillString;
22
- exports.hasSkills = hasSkills;
23
- exports.satisfiesSkillRequirements = satisfiesSkillRequirements;
24
- exports.intersectSkills = intersectSkills;
25
- exports.unionSkills = unionSkills;
26
- exports.differenceSkills = differenceSkills;
27
- exports.getSkillDefinition = getSkillDefinition;
28
- exports.getSkillName = getSkillName;
29
- exports.getSkillBit = getSkillBit;
30
- exports.getSkillCategory = getSkillCategory;
31
- exports.getSkillsInCategory = getSkillsInCategory;
32
- exports.countSkills = countSkills;
33
- exports.isSkillCode = isSkillCode;
34
- exports.isSkillCodeArray = isSkillCodeArray;
35
- const zod_1 = require("zod");
36
- /**
37
- * Array of all valid skill codes.
38
- */
39
- exports.SKILL_CODES = [
40
- 'TG', 'CW', 'CR', 'TD', 'TR', 'SM', // Content & Generation
41
- 'DA', 'RS', 'QA', // Analysis & Research
42
- 'CA', 'DV', 'RV', 'WS', 'FO', 'AI', // Development & Technical
43
- 'PL', 'CM', 'CS', 'AU', // Business & Operations
44
- 'SC', 'GV', // Security & Governance
45
- ];
46
- /**
47
- * Zod schema for SkillCode validation.
48
- */
49
- exports.skillCodeSchema = zod_1.z.enum([
50
- 'TG', 'CW', 'CR', 'TD', 'TR', 'SM',
51
- 'DA', 'RS', 'QA',
52
- 'CA', 'DV', 'RV', 'WS', 'FO', 'AI',
53
- 'PL', 'CM', 'CS', 'AU',
54
- 'SC', 'GV',
55
- ], {
56
- errorMap: () => ({ message: `Invalid skill code. Must be one of: ${exports.SKILL_CODES.join(', ')}` }),
57
- });
58
- /**
59
- * Skill definitions with their bitmask values.
60
- *
61
- * Each skill has a unique bitmask value (power of 2) for efficient
62
- * storage and querying of skill combinations.
63
- *
64
- * Using 32-bit integers, we can support up to 32 skills (21 currently defined).
65
- */
66
- exports.SKILL_DEFINITIONS = {
67
- // Content & Generation (bits 0-5)
68
- TG: { code: 'TG', name: 'Text Generation', bit: 0x00001, description: 'General text creation and composition', category: 'content', legacyId: 'text_generation' },
69
- CW: { code: 'CW', name: 'Content Writing', bit: 0x00002, description: 'Blog posts, articles, marketing copy', category: 'content', legacyId: 'content_writing' },
70
- CR: { code: 'CR', name: 'Creative Writing', bit: 0x00004, description: 'Fiction, storytelling, creative content', category: 'content', legacyId: 'creative_writing' },
71
- TD: { code: 'TD', name: 'Technical Documentation', bit: 0x00008, description: 'Docs, guides, specifications', category: 'content', legacyId: 'technical_documentation' },
72
- TR: { code: 'TR', name: 'Translation', bit: 0x00010, description: 'Language translation services', category: 'content', legacyId: 'translation' },
73
- SM: { code: 'SM', name: 'Summarization', bit: 0x00020, description: 'Content condensation and extraction', category: 'content', legacyId: 'summarization' },
74
- // Analysis & Research (bits 6-8)
75
- DA: { code: 'DA', name: 'Data Analysis', bit: 0x00040, description: 'Statistical analysis, data processing', category: 'analysis', legacyId: 'data_analysis' },
76
- RS: { code: 'RS', name: 'Research', bit: 0x00080, description: 'Information gathering and synthesis', category: 'analysis' },
77
- QA: { code: 'QA', name: 'Question Answering', bit: 0x00100, description: 'Q&A, knowledge retrieval', category: 'analysis', legacyId: 'question_answering' },
78
- // Development & Technical (bits 9-14)
79
- CA: { code: 'CA', name: 'Code Assistance', bit: 0x00200, description: 'Programming help, debugging', category: 'development', legacyId: 'code_assistance' },
80
- DV: { code: 'DV', name: 'Development', bit: 0x00400, description: 'Software development tasks', category: 'development' },
81
- RV: { code: 'RV', name: 'Review', bit: 0x00800, description: 'Code review, content review', category: 'development' },
82
- WS: { code: 'WS', name: 'Web Search', bit: 0x01000, description: 'Internet search and retrieval', category: 'development', legacyId: 'web_search' },
83
- FO: { code: 'FO', name: 'File Operations', bit: 0x02000, description: 'File manipulation, I/O', category: 'development', legacyId: 'file_operations' },
84
- AI: { code: 'AI', name: 'API Integration', bit: 0x04000, description: 'External API interactions', category: 'development', legacyId: 'api_integration' },
85
- // Business & Operations (bits 15-18)
86
- PL: { code: 'PL', name: 'Planning', bit: 0x08000, description: 'Task planning, scheduling', category: 'business' },
87
- CM: { code: 'CM', name: 'Communication', bit: 0x10000, description: 'Messaging, notifications', category: 'business' },
88
- CS: { code: 'CS', name: 'Customer Support', bit: 0x20000, description: 'Customer service interactions', category: 'business', legacyId: 'customer_support' },
89
- AU: { code: 'AU', name: 'Automation', bit: 0x40000, description: 'Workflow automation', category: 'business' },
90
- // Security & Governance (bits 19-20)
91
- SC: { code: 'SC', name: 'Security', bit: 0x80000, description: 'Security-related operations', category: 'security' },
92
- GV: { code: 'GV', name: 'Governance', bit: 0x100000, description: 'Policy and compliance', category: 'security' },
93
- };
94
- /**
95
- * Human-readable skill names indexed by code.
96
- */
97
- exports.SKILL_NAMES = Object.fromEntries(Object.entries(exports.SKILL_DEFINITIONS).map(([code, def]) => [code, def.name]));
98
- /**
99
- * Bitmask value representing all skills combined.
100
- */
101
- exports.ALL_SKILLS_BITMASK = Object.values(exports.SKILL_DEFINITIONS).reduce((mask, skill) => mask | skill.bit, 0);
102
- /**
103
- * Skills grouped by category.
104
- */
105
- exports.SKILLS_BY_CATEGORY = {
106
- content: ['TG', 'CW', 'CR', 'TD', 'TR', 'SM'],
107
- analysis: ['DA', 'RS', 'QA'],
108
- development: ['CA', 'DV', 'RV', 'WS', 'FO', 'AI'],
109
- business: ['PL', 'CM', 'CS', 'AU'],
110
- security: ['SC', 'GV'],
111
- };
112
- // ============================================================================
113
- // Legacy ID Mapping
114
- // ============================================================================
115
- /**
116
- * Map legacy string identifiers to skill codes.
117
- */
118
- exports.LEGACY_ID_TO_SKILL = {
119
- text_generation: 'TG',
120
- content_writing: 'CW',
121
- creative_writing: 'CR',
122
- technical_documentation: 'TD',
123
- translation: 'TR',
124
- summarization: 'SM',
125
- data_analysis: 'DA',
126
- question_answering: 'QA',
127
- code_assistance: 'CA',
128
- web_search: 'WS',
129
- file_operations: 'FO',
130
- api_integration: 'AI',
131
- customer_support: 'CS',
132
- };
133
- /**
134
- * Converts a legacy skill ID to a skill code.
135
- *
136
- * @param legacyId - Legacy string identifier
137
- * @returns Skill code or undefined if not found
138
- */
139
- function legacyIdToSkillCode(legacyId) {
140
- return exports.LEGACY_ID_TO_SKILL[legacyId];
141
- }
142
- /**
143
- * Converts an array of legacy skill IDs to skill codes.
144
- *
145
- * @param legacyIds - Array of legacy string identifiers
146
- * @returns Array of skill codes (unrecognized IDs are filtered out)
147
- */
148
- function legacyIdsToSkillCodes(legacyIds) {
149
- return legacyIds
150
- .map((id) => exports.LEGACY_ID_TO_SKILL[id])
151
- .filter((code) => code !== undefined);
152
- }
153
- // ============================================================================
154
- // Bitmask Encoding/Decoding
155
- // ============================================================================
156
- /**
157
- * Encodes an array of skill codes into a bitmask.
158
- *
159
- * @param skills - Array of skill codes to encode
160
- * @returns Bitmask integer representing the skills
161
- *
162
- * @example
163
- * ```typescript
164
- * encodeSkills(['TG', 'CA']); // 0x201 (513)
165
- * encodeSkills(['DA', 'RS']); // 0x0C0 (192)
166
- * encodeSkills([]); // 0
167
- * ```
168
- */
169
- function encodeSkills(skills) {
170
- return skills.reduce((mask, code) => {
171
- const skill = exports.SKILL_DEFINITIONS[code];
172
- return mask | skill.bit;
173
- }, 0);
174
- }
175
- /**
176
- * Decodes a bitmask into an array of skill codes.
177
- *
178
- * @param bitmask - Bitmask integer to decode
179
- * @returns Array of skill codes present in the bitmask
180
- *
181
- * @example
182
- * ```typescript
183
- * decodeSkills(0x201); // ['TG', 'CA']
184
- * decodeSkills(0x0C0); // ['DA', 'RS']
185
- * decodeSkills(0); // []
186
- * ```
187
- */
188
- function decodeSkills(bitmask) {
189
- return exports.SKILL_CODES.filter((code) => (bitmask & exports.SKILL_DEFINITIONS[code].bit) !== 0);
190
- }
191
- /**
192
- * Parses a skill string (e.g., "TG,CA,DA") into an array of codes.
193
- *
194
- * @param skillString - Comma-separated skill codes
195
- * @returns Array of valid skill codes
196
- *
197
- * @example
198
- * ```typescript
199
- * parseSkillString('TG,CA,DA'); // ['TG', 'CA', 'DA']
200
- * parseSkillString('TGCADA'); // ['TG', 'CA', 'DA']
201
- * parseSkillString(''); // []
202
- * ```
203
- */
204
- function parseSkillString(skillString) {
205
- if (!skillString)
206
- return [];
207
- // Try comma-separated first
208
- if (skillString.includes(',')) {
209
- return skillString
210
- .split(',')
211
- .map((s) => s.trim().toUpperCase())
212
- .filter((s) => isSkillCode(s));
213
- }
214
- // Try parsing as concatenated two-letter codes
215
- const codes = [];
216
- for (let i = 0; i < skillString.length; i += 2) {
217
- const code = skillString.slice(i, i + 2).toUpperCase();
218
- if (isSkillCode(code)) {
219
- codes.push(code);
220
- }
221
- }
222
- return codes;
223
- }
224
- /**
225
- * Formats an array of skill codes into a sorted string.
226
- *
227
- * @param skills - Array of skill codes
228
- * @returns Sorted, deduplicated comma-separated string
229
- *
230
- * @example
231
- * ```typescript
232
- * formatSkillString(['DA', 'TG', 'CA']); // 'CA,DA,TG'
233
- * formatSkillString(['TG', 'TG']); // 'TG'
234
- * ```
235
- */
236
- function formatSkillString(skills) {
237
- const unique = [...new Set(skills)];
238
- return unique.sort().join(',');
239
- }
240
- // ============================================================================
241
- // Skill Matching Operations
242
- // ============================================================================
243
- /**
244
- * Checks if a skill bitmask contains all required skills.
245
- *
246
- * @param agentSkills - Agent's skill bitmask
247
- * @param requiredSkills - Required skills bitmask
248
- * @returns True if agent has all required skills
249
- *
250
- * @example
251
- * ```typescript
252
- * const agentMask = encodeSkills(['TG', 'CA', 'DA']);
253
- * const required = encodeSkills(['TG', 'CA']);
254
- * hasSkills(agentMask, required); // true
255
- * ```
256
- */
257
- function hasSkills(agentSkills, requiredSkills) {
258
- return (agentSkills & requiredSkills) === requiredSkills;
259
- }
260
- /**
261
- * Checks if an agent satisfies skill requirements.
262
- *
263
- * @param agentSkills - Agent's skill codes
264
- * @param requiredSkills - Required skill codes
265
- * @returns True if agent has all required skills
266
- */
267
- function satisfiesSkillRequirements(agentSkills, requiredSkills) {
268
- const agentMask = encodeSkills(agentSkills);
269
- const requiredMask = encodeSkills(requiredSkills);
270
- return hasSkills(agentMask, requiredMask);
271
- }
272
- /**
273
- * Returns the intersection of two skill sets.
274
- *
275
- * @param skills1 - First skill set
276
- * @param skills2 - Second skill set
277
- * @returns Skills present in both sets
278
- */
279
- function intersectSkills(skills1, skills2) {
280
- const mask1 = encodeSkills(skills1);
281
- const mask2 = encodeSkills(skills2);
282
- return decodeSkills(mask1 & mask2);
283
- }
284
- /**
285
- * Returns the union of two skill sets.
286
- *
287
- * @param skills1 - First skill set
288
- * @param skills2 - Second skill set
289
- * @returns All skills from both sets
290
- */
291
- function unionSkills(skills1, skills2) {
292
- const mask1 = encodeSkills(skills1);
293
- const mask2 = encodeSkills(skills2);
294
- return decodeSkills(mask1 | mask2);
295
- }
296
- /**
297
- * Returns skills in the first set but not in the second.
298
- *
299
- * @param skills1 - First skill set
300
- * @param skills2 - Second skill set
301
- * @returns Skills unique to the first set
302
- */
303
- function differenceSkills(skills1, skills2) {
304
- const mask1 = encodeSkills(skills1);
305
- const mask2 = encodeSkills(skills2);
306
- return decodeSkills(mask1 & ~mask2);
307
- }
308
- // ============================================================================
309
- // Skill Metadata Functions
310
- // ============================================================================
311
- /**
312
- * Gets the complete definition for a skill code.
313
- *
314
- * @param code - Skill code
315
- * @returns Skill definition or undefined if not found
316
- */
317
- function getSkillDefinition(code) {
318
- return exports.SKILL_DEFINITIONS[code];
319
- }
320
- /**
321
- * Gets the human-readable name for a skill code.
322
- *
323
- * @param code - Skill code
324
- * @returns Skill name
325
- */
326
- function getSkillName(code) {
327
- return exports.SKILL_DEFINITIONS[code].name;
328
- }
329
- /**
330
- * Gets the bitmask value for a skill code.
331
- *
332
- * @param code - Skill code
333
- * @returns Bitmask value
334
- */
335
- function getSkillBit(code) {
336
- return exports.SKILL_DEFINITIONS[code].bit;
337
- }
338
- /**
339
- * Gets the category for a skill code.
340
- *
341
- * @param code - Skill code
342
- * @returns Skill category
343
- */
344
- function getSkillCategory(code) {
345
- return exports.SKILL_DEFINITIONS[code].category;
346
- }
347
- /**
348
- * Gets all skills in a category.
349
- *
350
- * @param category - Skill category
351
- * @returns Array of skill codes in that category
352
- */
353
- function getSkillsInCategory(category) {
354
- return exports.SKILLS_BY_CATEGORY[category];
355
- }
356
- /**
357
- * Counts the number of skills in a bitmask.
358
- *
359
- * @param bitmask - Skill bitmask
360
- * @returns Number of skills
361
- */
362
- function countSkills(bitmask) {
363
- let count = 0;
364
- let mask = bitmask;
365
- while (mask) {
366
- count += mask & 1;
367
- mask >>>= 1;
368
- }
369
- return count;
370
- }
371
- // ============================================================================
372
- // Type Guards and Validation
373
- // ============================================================================
374
- /**
375
- * Type guard to check if a value is a valid skill code.
376
- *
377
- * @param value - Value to check
378
- * @returns True if value is a valid SkillCode
379
- */
380
- function isSkillCode(value) {
381
- return typeof value === 'string' && exports.SKILL_CODES.includes(value);
382
- }
383
- /**
384
- * Type guard to check if an array contains only valid skill codes.
385
- *
386
- * @param values - Array to check
387
- * @returns True if all values are valid SkillCodes
388
- */
389
- function isSkillCodeArray(values) {
390
- return Array.isArray(values) && values.every(isSkillCode);
391
- }
392
- // ============================================================================
393
- // Zod Schemas
394
- // ============================================================================
395
- /**
396
- * Zod schema for SkillDefinition validation.
397
- */
398
- exports.skillDefinitionSchema = zod_1.z.object({
399
- code: exports.skillCodeSchema,
400
- name: zod_1.z.string().min(1),
401
- bit: zod_1.z.number().int().positive(),
402
- description: zod_1.z.string().min(1),
403
- category: zod_1.z.enum(['content', 'analysis', 'development', 'business', 'security']),
404
- legacyId: zod_1.z.string().optional(),
405
- });
406
- /**
407
- * Zod schema for skill code array validation.
408
- */
409
- exports.skillCodeArraySchema = zod_1.z.array(exports.skillCodeSchema);
410
- /**
411
- * Zod schema for skill bitmask validation (21 bits max).
412
- */
413
- exports.skillBitmaskSchema = zod_1.z.number().int().min(0).max(exports.ALL_SKILLS_BITMASK);
414
- /**
415
- * Zod schema for skill string validation (comma-separated codes).
416
- */
417
- exports.skillStringSchema = zod_1.z
418
- .string()
419
- .refine((val) => {
420
- if (!val)
421
- return true;
422
- const codes = parseSkillString(val);
423
- return codes.length > 0;
424
- }, { message: 'Invalid skill string format' })
425
- .transform((val) => parseSkillString(val));
426
- //# sourceMappingURL=skills.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/aci/skills.ts"],"names":[],"mappings":"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"}