@vorionsys/contracts 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/README.md +146 -0
  2. package/dist/aci/aci-string.d.ts +7 -7
  3. package/dist/aci/aci-string.js +87 -69
  4. package/dist/aci/aci-string.js.map +1 -1
  5. package/dist/aci/attestation.d.ts +71 -71
  6. package/dist/aci/attestation.js +67 -57
  7. package/dist/aci/attestation.js.map +1 -1
  8. package/dist/aci/domains.d.ts +1 -1
  9. package/dist/aci/domains.js +55 -37
  10. package/dist/aci/domains.js.map +1 -1
  11. package/dist/aci/effective-permission.d.ts +6 -6
  12. package/dist/aci/effective-permission.js +59 -46
  13. package/dist/aci/effective-permission.js.map +1 -1
  14. package/dist/aci/identity.d.ts +99 -99
  15. package/dist/aci/identity.js +95 -85
  16. package/dist/aci/identity.js.map +1 -1
  17. package/dist/aci/index.d.ts +13 -3
  18. package/dist/aci/index.d.ts.map +1 -1
  19. package/dist/aci/index.js +268 -43
  20. package/dist/aci/index.js.map +1 -1
  21. package/dist/aci/jwt-claims.d.ts +29 -29
  22. package/dist/aci/jwt-claims.js +72 -62
  23. package/dist/aci/jwt-claims.js.map +1 -1
  24. package/dist/aci/levels.d.ts +3 -3
  25. package/dist/aci/levels.js +79 -60
  26. package/dist/aci/levels.js.map +1 -1
  27. package/dist/aci/mapping.d.ts +3 -3
  28. package/dist/aci/mapping.js +94 -74
  29. package/dist/aci/mapping.js.map +1 -1
  30. package/dist/aci/skills.d.ts +3 -3
  31. package/dist/aci/skills.js +71 -49
  32. package/dist/aci/skills.js.map +1 -1
  33. package/dist/aci/tiers.d.ts +1 -1
  34. package/dist/aci/tiers.js +144 -117
  35. package/dist/aci/tiers.js.map +1 -1
  36. package/dist/canonical/agent.d.ts +1 -1
  37. package/dist/canonical/agent.js +146 -130
  38. package/dist/canonical/agent.js.map +1 -1
  39. package/dist/canonical/governance.d.ts +1 -1
  40. package/dist/canonical/governance.js +134 -120
  41. package/dist/canonical/governance.js.map +1 -1
  42. package/dist/canonical/index.d.ts +1 -0
  43. package/dist/canonical/index.d.ts.map +1 -1
  44. package/dist/canonical/index.js +26 -8
  45. package/dist/canonical/index.js.map +1 -1
  46. package/dist/canonical/intent.d.ts +8 -15
  47. package/dist/canonical/intent.d.ts.map +1 -1
  48. package/dist/canonical/intent.js +91 -82
  49. package/dist/canonical/intent.js.map +1 -1
  50. package/dist/canonical/middleware.d.ts +513 -0
  51. package/dist/canonical/middleware.d.ts.map +1 -0
  52. package/dist/canonical/middleware.js +218 -0
  53. package/dist/canonical/middleware.js.map +1 -0
  54. package/dist/canonical/risk-level.d.ts +1 -1
  55. package/dist/canonical/risk-level.js +66 -46
  56. package/dist/canonical/risk-level.js.map +1 -1
  57. package/dist/canonical/trust-band.d.ts +1 -1
  58. package/dist/canonical/trust-band.js +39 -28
  59. package/dist/canonical/trust-band.js.map +1 -1
  60. package/dist/canonical/trust-score.d.ts +1 -1
  61. package/dist/canonical/trust-score.js +46 -29
  62. package/dist/canonical/trust-score.js.map +1 -1
  63. package/dist/canonical/trust-signal.d.ts +13 -13
  64. package/dist/canonical/trust-signal.js +91 -78
  65. package/dist/canonical/trust-signal.js.map +1 -1
  66. package/dist/canonical/validation.js +148 -102
  67. package/dist/canonical/validation.js.map +1 -1
  68. package/dist/car/attestation.d.ts +648 -0
  69. package/dist/car/attestation.d.ts.map +1 -0
  70. package/dist/car/attestation.js +299 -0
  71. package/dist/car/attestation.js.map +1 -0
  72. package/dist/car/car-string.d.ts +846 -0
  73. package/dist/car/car-string.d.ts.map +1 -0
  74. package/dist/car/car-string.js +734 -0
  75. package/dist/car/car-string.js.map +1 -0
  76. package/dist/car/domains.d.ts +260 -0
  77. package/dist/car/domains.d.ts.map +1 -0
  78. package/dist/car/domains.js +340 -0
  79. package/dist/car/domains.js.map +1 -0
  80. package/dist/car/effective-permission.d.ts +371 -0
  81. package/dist/car/effective-permission.d.ts.map +1 -0
  82. package/dist/car/effective-permission.js +364 -0
  83. package/dist/car/effective-permission.js.map +1 -0
  84. package/dist/car/identity.d.ts +1206 -0
  85. package/dist/car/identity.d.ts.map +1 -0
  86. package/dist/car/identity.js +348 -0
  87. package/dist/car/identity.js.map +1 -0
  88. package/dist/car/index.d.ts +104 -0
  89. package/dist/car/index.d.ts.map +1 -0
  90. package/dist/car/index.js +401 -0
  91. package/dist/car/index.js.map +1 -0
  92. package/dist/car/jwt-claims.d.ts +1364 -0
  93. package/dist/car/jwt-claims.d.ts.map +1 -0
  94. package/dist/car/jwt-claims.js +388 -0
  95. package/dist/car/jwt-claims.js.map +1 -0
  96. package/dist/car/levels.d.ts +279 -0
  97. package/dist/car/levels.d.ts.map +1 -0
  98. package/dist/car/levels.js +486 -0
  99. package/dist/car/levels.js.map +1 -0
  100. package/dist/car/mapping.d.ts +291 -0
  101. package/dist/car/mapping.d.ts.map +1 -0
  102. package/dist/car/mapping.js +447 -0
  103. package/dist/car/mapping.js.map +1 -0
  104. package/dist/car/skills.d.ts +314 -0
  105. package/dist/car/skills.d.ts.map +1 -0
  106. package/dist/car/skills.js +426 -0
  107. package/dist/car/skills.js.map +1 -0
  108. package/dist/car/tiers.d.ts +403 -0
  109. package/dist/car/tiers.d.ts.map +1 -0
  110. package/dist/car/tiers.js +686 -0
  111. package/dist/car/tiers.js.map +1 -0
  112. package/dist/common/index.d.ts +1 -0
  113. package/dist/common/index.d.ts.map +1 -1
  114. package/dist/common/index.js +18 -1
  115. package/dist/common/index.js.map +1 -1
  116. package/dist/common/primitives.d.ts +9 -7
  117. package/dist/common/primitives.d.ts.map +1 -1
  118. package/dist/common/primitives.js +30 -25
  119. package/dist/common/primitives.js.map +1 -1
  120. package/dist/common/types.d.ts +328 -0
  121. package/dist/common/types.d.ts.map +1 -0
  122. package/dist/common/types.js +61 -0
  123. package/dist/common/types.js.map +1 -0
  124. package/dist/db/agents.d.ts +1374 -0
  125. package/dist/db/agents.d.ts.map +1 -0
  126. package/dist/db/agents.js +283 -0
  127. package/dist/db/agents.js.map +1 -0
  128. package/dist/db/api-keys.d.ts +365 -0
  129. package/dist/db/api-keys.d.ts.map +1 -0
  130. package/dist/db/api-keys.js +101 -0
  131. package/dist/db/api-keys.js.map +1 -0
  132. package/dist/db/escalations.d.ts +400 -0
  133. package/dist/db/escalations.d.ts.map +1 -0
  134. package/dist/db/escalations.js +100 -0
  135. package/dist/db/escalations.js.map +1 -0
  136. package/dist/db/index.d.ts +20 -0
  137. package/dist/db/index.d.ts.map +1 -0
  138. package/dist/db/index.js +47 -0
  139. package/dist/db/index.js.map +1 -0
  140. package/dist/db/intents.d.ts +384 -0
  141. package/dist/db/intents.d.ts.map +1 -0
  142. package/dist/db/intents.js +93 -0
  143. package/dist/db/intents.js.map +1 -0
  144. package/dist/db/merkle.d.ts +344 -0
  145. package/dist/db/merkle.d.ts.map +1 -0
  146. package/dist/db/merkle.js +103 -0
  147. package/dist/db/merkle.js.map +1 -0
  148. package/dist/db/operations.d.ts +187 -0
  149. package/dist/db/operations.d.ts.map +1 -0
  150. package/dist/db/operations.js +68 -0
  151. package/dist/db/operations.js.map +1 -0
  152. package/dist/db/policy-versions.d.ts +112 -0
  153. package/dist/db/policy-versions.d.ts.map +1 -0
  154. package/dist/db/policy-versions.js +44 -0
  155. package/dist/db/policy-versions.js.map +1 -0
  156. package/dist/db/proofs.d.ts +296 -0
  157. package/dist/db/proofs.d.ts.map +1 -0
  158. package/dist/db/proofs.js +66 -0
  159. package/dist/db/proofs.js.map +1 -0
  160. package/dist/db/rbac.d.ts +655 -0
  161. package/dist/db/rbac.d.ts.map +1 -0
  162. package/dist/db/rbac.js +189 -0
  163. package/dist/db/rbac.js.map +1 -0
  164. package/dist/db/service-accounts.d.ts +571 -0
  165. package/dist/db/service-accounts.d.ts.map +1 -0
  166. package/dist/db/service-accounts.js +179 -0
  167. package/dist/db/service-accounts.js.map +1 -0
  168. package/dist/db/trust.d.ts +437 -0
  169. package/dist/db/trust.d.ts.map +1 -0
  170. package/dist/db/trust.js +111 -0
  171. package/dist/db/trust.js.map +1 -0
  172. package/dist/db/webhooks.d.ts +280 -0
  173. package/dist/db/webhooks.d.ts.map +1 -0
  174. package/dist/db/webhooks.js +94 -0
  175. package/dist/db/webhooks.js.map +1 -0
  176. package/dist/flags.d.ts +214 -0
  177. package/dist/flags.d.ts.map +1 -0
  178. package/dist/flags.js +443 -0
  179. package/dist/flags.js.map +1 -0
  180. package/dist/index.d.ts +3 -1
  181. package/dist/index.d.ts.map +1 -1
  182. package/dist/index.js +47 -4
  183. package/dist/index.js.map +1 -1
  184. package/dist/v2/canary-probe.js +10 -7
  185. package/dist/v2/canary-probe.js.map +1 -1
  186. package/dist/v2/component.js +2 -1
  187. package/dist/v2/component.js.map +1 -1
  188. package/dist/v2/decision.js +5 -2
  189. package/dist/v2/decision.js.map +1 -1
  190. package/dist/v2/enums.js +28 -25
  191. package/dist/v2/enums.js.map +1 -1
  192. package/dist/v2/evidence.js +75 -72
  193. package/dist/v2/evidence.js.map +1 -1
  194. package/dist/v2/execution.js +2 -1
  195. package/dist/v2/execution.js.map +1 -1
  196. package/dist/v2/index.js +29 -13
  197. package/dist/v2/index.js.map +1 -1
  198. package/dist/v2/intent.js +2 -1
  199. package/dist/v2/intent.js.map +1 -1
  200. package/dist/v2/policy-bundle.js +5 -2
  201. package/dist/v2/policy-bundle.js.map +1 -1
  202. package/dist/v2/pre-action-gate.js +10 -7
  203. package/dist/v2/pre-action-gate.js.map +1 -1
  204. package/dist/v2/proof-event.js +2 -1
  205. package/dist/v2/proof-event.js.map +1 -1
  206. package/dist/v2/retention.js +104 -101
  207. package/dist/v2/retention.js.map +1 -1
  208. package/dist/v2/trust-delta.js +5 -2
  209. package/dist/v2/trust-delta.js.map +1 -1
  210. package/dist/v2/trust-profile.js +12 -9
  211. package/dist/v2/trust-profile.js.map +1 -1
  212. package/dist/validators/decision.d.ts +2 -2
  213. package/dist/validators/decision.js +49 -46
  214. package/dist/validators/decision.js.map +1 -1
  215. package/dist/validators/enums.js +14 -11
  216. package/dist/validators/enums.js.map +1 -1
  217. package/dist/validators/index.js +30 -9
  218. package/dist/validators/index.js.map +1 -1
  219. package/dist/validators/intent.js +40 -37
  220. package/dist/validators/intent.js.map +1 -1
  221. package/dist/validators/proof-event.js +101 -98
  222. package/dist/validators/proof-event.js.map +1 -1
  223. package/dist/validators/trust-profile.js +40 -37
  224. package/dist/validators/trust-profile.js.map +1 -1
  225. package/package.json +65 -13
@@ -0,0 +1,486 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview CAR Capability Levels (L0-L7)
4
+ *
5
+ * Defines the autonomy/capability levels used in CAR strings. Levels represent
6
+ * what actions an agent is permitted to perform, ranging from read-only
7
+ * observation (L0) to full autonomy (L7).
8
+ *
9
+ * The 8-tier system (L0-L7) maps to trust bands:
10
+ * - L0: Observe - Read-only access (Sandbox tier)
11
+ * - L1: Advise - Suggest and recommend (Observed tier)
12
+ * - L2: Draft - Prepare changes for review (Provisional tier)
13
+ * - L3: Execute - Execute with approval (Monitored tier)
14
+ * - L4: Autonomous - Self-directed within bounds (Standard tier)
15
+ * - L5: Trusted - Expanded autonomy (Trusted tier)
16
+ * - L6: Certified - Independent operation (Certified tier)
17
+ * - L7: Sovereign - Full autonomy (Autonomous tier)
18
+ *
19
+ * @module @vorionsys/contracts/car/levels
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.levelStringSchema = exports.capabilityLevelConfigSchema = exports.CAPABILITY_LEVEL_CONFIGS = exports.CAPABILITY_LEVEL_ABILITIES = exports.CAPABILITY_LEVEL_DESCRIPTIONS = exports.CAPABILITY_LEVEL_CODES = exports.CAPABILITY_LEVEL_NAMES = exports.capabilityLevelSchema = exports.CAPABILITY_LEVELS = exports.CapabilityLevel = void 0;
23
+ exports.isLevelHigher = isLevelHigher;
24
+ exports.meetsLevel = meetsLevel;
25
+ exports.compareLevels = compareLevels;
26
+ exports.minLevel = minLevel;
27
+ exports.maxLevel = maxLevel;
28
+ exports.clampLevel = clampLevel;
29
+ exports.getLevelConfig = getLevelConfig;
30
+ exports.getLevelName = getLevelName;
31
+ exports.getLevelCode = getLevelCode;
32
+ exports.getLevelDescription = getLevelDescription;
33
+ exports.hasAbility = hasAbility;
34
+ exports.requiresApproval = requiresApproval;
35
+ exports.canOperateAutonomously = canOperateAutonomously;
36
+ exports.parseLevel = parseLevel;
37
+ exports.tryParseLevel = tryParseLevel;
38
+ exports.isCapabilityLevel = isCapabilityLevel;
39
+ const zod_1 = require("zod");
40
+ // ============================================================================
41
+ // Capability Level Enum
42
+ // ============================================================================
43
+ /**
44
+ * Capability levels defining agent autonomy.
45
+ *
46
+ * Levels form a hierarchy where higher levels include the capabilities
47
+ * of all lower levels:
48
+ *
49
+ * - L0: Read-only access, monitoring, observation
50
+ * - L1: Can suggest and recommend, but not modify
51
+ * - L2: Can prepare drafts and stage changes for review
52
+ * - L3: Can execute operations with human approval
53
+ * - L4: Self-directed operation within defined bounds
54
+ * - L5: Expanded autonomy with minimal oversight
55
+ * - L6: Independent operation with comprehensive audit trail
56
+ * - L7: Full autonomy for mission-critical operations
57
+ */
58
+ var CapabilityLevel;
59
+ (function (CapabilityLevel) {
60
+ /** Read-only, monitoring - Can observe but not interact */
61
+ CapabilityLevel[CapabilityLevel["L0_OBSERVE"] = 0] = "L0_OBSERVE";
62
+ /** Advisory - Can suggest and recommend actions */
63
+ CapabilityLevel[CapabilityLevel["L1_ADVISE"] = 1] = "L1_ADVISE";
64
+ /** Drafting - Can prepare changes for human review */
65
+ CapabilityLevel[CapabilityLevel["L2_DRAFT"] = 2] = "L2_DRAFT";
66
+ /** Execute - Can execute with human approval */
67
+ CapabilityLevel[CapabilityLevel["L3_EXECUTE"] = 3] = "L3_EXECUTE";
68
+ /** Autonomous - Self-directed within bounds */
69
+ CapabilityLevel[CapabilityLevel["L4_AUTONOMOUS"] = 4] = "L4_AUTONOMOUS";
70
+ /** Trusted - Expanded autonomy with minimal oversight */
71
+ CapabilityLevel[CapabilityLevel["L5_TRUSTED"] = 5] = "L5_TRUSTED";
72
+ /** Certified - Independent operation with audit trail */
73
+ CapabilityLevel[CapabilityLevel["L6_CERTIFIED"] = 6] = "L6_CERTIFIED";
74
+ /** Autonomous - Full autonomy for mission-critical operations */
75
+ CapabilityLevel[CapabilityLevel["L7_AUTONOMOUS"] = 7] = "L7_AUTONOMOUS";
76
+ })(CapabilityLevel || (exports.CapabilityLevel = CapabilityLevel = {}));
77
+ /**
78
+ * Array of all capability levels in ascending order.
79
+ */
80
+ exports.CAPABILITY_LEVELS = [
81
+ CapabilityLevel.L0_OBSERVE,
82
+ CapabilityLevel.L1_ADVISE,
83
+ CapabilityLevel.L2_DRAFT,
84
+ CapabilityLevel.L3_EXECUTE,
85
+ CapabilityLevel.L4_AUTONOMOUS,
86
+ CapabilityLevel.L5_TRUSTED,
87
+ CapabilityLevel.L6_CERTIFIED,
88
+ CapabilityLevel.L7_AUTONOMOUS,
89
+ ];
90
+ /**
91
+ * Zod schema for CapabilityLevel enum validation.
92
+ */
93
+ exports.capabilityLevelSchema = zod_1.z.nativeEnum(CapabilityLevel, {
94
+ errorMap: () => ({ message: 'Invalid capability level. Must be L0-L7 (0-7).' }),
95
+ });
96
+ // ============================================================================
97
+ // Level Names and Descriptions
98
+ // ============================================================================
99
+ /**
100
+ * Human-readable names for capability levels.
101
+ */
102
+ exports.CAPABILITY_LEVEL_NAMES = {
103
+ [CapabilityLevel.L0_OBSERVE]: 'Observe',
104
+ [CapabilityLevel.L1_ADVISE]: 'Advise',
105
+ [CapabilityLevel.L2_DRAFT]: 'Draft',
106
+ [CapabilityLevel.L3_EXECUTE]: 'Execute',
107
+ [CapabilityLevel.L4_AUTONOMOUS]: 'Autonomous',
108
+ [CapabilityLevel.L5_TRUSTED]: 'Trusted',
109
+ [CapabilityLevel.L6_CERTIFIED]: 'Certified',
110
+ [CapabilityLevel.L7_AUTONOMOUS]: 'Sovereign',
111
+ };
112
+ /**
113
+ * Short codes for capability levels (without the L prefix).
114
+ */
115
+ exports.CAPABILITY_LEVEL_CODES = {
116
+ [CapabilityLevel.L0_OBSERVE]: 'L0',
117
+ [CapabilityLevel.L1_ADVISE]: 'L1',
118
+ [CapabilityLevel.L2_DRAFT]: 'L2',
119
+ [CapabilityLevel.L3_EXECUTE]: 'L3',
120
+ [CapabilityLevel.L4_AUTONOMOUS]: 'L4',
121
+ [CapabilityLevel.L5_TRUSTED]: 'L5',
122
+ [CapabilityLevel.L6_CERTIFIED]: 'L6',
123
+ [CapabilityLevel.L7_AUTONOMOUS]: 'L7',
124
+ };
125
+ /**
126
+ * Detailed descriptions for each capability level.
127
+ */
128
+ exports.CAPABILITY_LEVEL_DESCRIPTIONS = {
129
+ [CapabilityLevel.L0_OBSERVE]: 'Read-only access for monitoring and observation. Cannot modify state or interact with systems.',
130
+ [CapabilityLevel.L1_ADVISE]: 'Can analyze and provide recommendations. May suggest actions but cannot execute them.',
131
+ [CapabilityLevel.L2_DRAFT]: 'Can prepare drafts, stage changes, and create proposals. All changes require review before application.',
132
+ [CapabilityLevel.L3_EXECUTE]: 'Can execute operations with explicit human approval. Each action requires confirmation.',
133
+ [CapabilityLevel.L4_AUTONOMOUS]: 'Self-directed operation within predefined bounds. Can act independently within policy constraints.',
134
+ [CapabilityLevel.L5_TRUSTED]: 'Expanded capabilities with minimal oversight. Trusted for complex operations.',
135
+ [CapabilityLevel.L6_CERTIFIED]: 'Independent operation with comprehensive audit trail. Certified for mission-critical tasks.',
136
+ [CapabilityLevel.L7_AUTONOMOUS]: 'Full autonomy for mission-critical operations. Reserved for highest-certified agents.',
137
+ };
138
+ /**
139
+ * Capabilities granted at each level (cumulative).
140
+ */
141
+ exports.CAPABILITY_LEVEL_ABILITIES = {
142
+ [CapabilityLevel.L0_OBSERVE]: ['read', 'monitor', 'report'],
143
+ [CapabilityLevel.L1_ADVISE]: ['read', 'monitor', 'report', 'analyze', 'recommend'],
144
+ [CapabilityLevel.L2_DRAFT]: ['read', 'monitor', 'report', 'analyze', 'recommend', 'draft', 'stage'],
145
+ [CapabilityLevel.L3_EXECUTE]: [
146
+ 'read', 'monitor', 'report', 'analyze', 'recommend', 'draft', 'stage',
147
+ 'execute_with_approval', 'modify_with_approval',
148
+ ],
149
+ [CapabilityLevel.L4_AUTONOMOUS]: [
150
+ 'read', 'monitor', 'report', 'analyze', 'recommend', 'draft', 'stage',
151
+ 'execute_with_approval', 'modify_with_approval',
152
+ 'execute_within_bounds', 'modify_within_bounds', 'delegate',
153
+ ],
154
+ [CapabilityLevel.L5_TRUSTED]: [
155
+ 'read', 'monitor', 'report', 'analyze', 'recommend', 'draft', 'stage',
156
+ 'execute_with_approval', 'modify_with_approval',
157
+ 'execute_within_bounds', 'modify_within_bounds', 'delegate',
158
+ 'execute_expanded', 'modify_expanded',
159
+ ],
160
+ [CapabilityLevel.L6_CERTIFIED]: [
161
+ 'read', 'monitor', 'report', 'analyze', 'recommend', 'draft', 'stage',
162
+ 'execute_with_approval', 'modify_with_approval',
163
+ 'execute_within_bounds', 'modify_within_bounds', 'delegate',
164
+ 'execute_expanded', 'modify_expanded',
165
+ 'execute_independent', 'spawn_agents',
166
+ ],
167
+ [CapabilityLevel.L7_AUTONOMOUS]: [
168
+ 'read', 'monitor', 'report', 'analyze', 'recommend', 'draft', 'stage',
169
+ 'execute_with_approval', 'modify_with_approval',
170
+ 'execute_within_bounds', 'modify_within_bounds', 'delegate',
171
+ 'execute_expanded', 'modify_expanded',
172
+ 'execute_independent', 'spawn_agents',
173
+ 'execute_any', 'modify_any', 'override_constraints',
174
+ ],
175
+ };
176
+ /**
177
+ * Complete configuration for all capability levels.
178
+ */
179
+ exports.CAPABILITY_LEVEL_CONFIGS = {
180
+ [CapabilityLevel.L0_OBSERVE]: {
181
+ level: CapabilityLevel.L0_OBSERVE,
182
+ code: 'L0',
183
+ name: 'Observe',
184
+ description: exports.CAPABILITY_LEVEL_DESCRIPTIONS[CapabilityLevel.L0_OBSERVE],
185
+ abilities: exports.CAPABILITY_LEVEL_ABILITIES[CapabilityLevel.L0_OBSERVE],
186
+ requiresApproval: false,
187
+ canOperateAutonomously: false,
188
+ minCertificationTier: 0,
189
+ },
190
+ [CapabilityLevel.L1_ADVISE]: {
191
+ level: CapabilityLevel.L1_ADVISE,
192
+ code: 'L1',
193
+ name: 'Advise',
194
+ description: exports.CAPABILITY_LEVEL_DESCRIPTIONS[CapabilityLevel.L1_ADVISE],
195
+ abilities: exports.CAPABILITY_LEVEL_ABILITIES[CapabilityLevel.L1_ADVISE],
196
+ requiresApproval: false,
197
+ canOperateAutonomously: false,
198
+ minCertificationTier: 1,
199
+ },
200
+ [CapabilityLevel.L2_DRAFT]: {
201
+ level: CapabilityLevel.L2_DRAFT,
202
+ code: 'L2',
203
+ name: 'Draft',
204
+ description: exports.CAPABILITY_LEVEL_DESCRIPTIONS[CapabilityLevel.L2_DRAFT],
205
+ abilities: exports.CAPABILITY_LEVEL_ABILITIES[CapabilityLevel.L2_DRAFT],
206
+ requiresApproval: true,
207
+ canOperateAutonomously: false,
208
+ minCertificationTier: 2,
209
+ },
210
+ [CapabilityLevel.L3_EXECUTE]: {
211
+ level: CapabilityLevel.L3_EXECUTE,
212
+ code: 'L3',
213
+ name: 'Execute',
214
+ description: exports.CAPABILITY_LEVEL_DESCRIPTIONS[CapabilityLevel.L3_EXECUTE],
215
+ abilities: exports.CAPABILITY_LEVEL_ABILITIES[CapabilityLevel.L3_EXECUTE],
216
+ requiresApproval: true,
217
+ canOperateAutonomously: false,
218
+ minCertificationTier: 3,
219
+ },
220
+ [CapabilityLevel.L4_AUTONOMOUS]: {
221
+ level: CapabilityLevel.L4_AUTONOMOUS,
222
+ code: 'L4',
223
+ name: 'Autonomous',
224
+ description: exports.CAPABILITY_LEVEL_DESCRIPTIONS[CapabilityLevel.L4_AUTONOMOUS],
225
+ abilities: exports.CAPABILITY_LEVEL_ABILITIES[CapabilityLevel.L4_AUTONOMOUS],
226
+ requiresApproval: false,
227
+ canOperateAutonomously: true,
228
+ minCertificationTier: 4,
229
+ },
230
+ [CapabilityLevel.L5_TRUSTED]: {
231
+ level: CapabilityLevel.L5_TRUSTED,
232
+ code: 'L5',
233
+ name: 'Trusted',
234
+ description: exports.CAPABILITY_LEVEL_DESCRIPTIONS[CapabilityLevel.L5_TRUSTED],
235
+ abilities: exports.CAPABILITY_LEVEL_ABILITIES[CapabilityLevel.L5_TRUSTED],
236
+ requiresApproval: false,
237
+ canOperateAutonomously: true,
238
+ minCertificationTier: 5,
239
+ },
240
+ [CapabilityLevel.L6_CERTIFIED]: {
241
+ level: CapabilityLevel.L6_CERTIFIED,
242
+ code: 'L6',
243
+ name: 'Certified',
244
+ description: exports.CAPABILITY_LEVEL_DESCRIPTIONS[CapabilityLevel.L6_CERTIFIED],
245
+ abilities: exports.CAPABILITY_LEVEL_ABILITIES[CapabilityLevel.L6_CERTIFIED],
246
+ requiresApproval: false,
247
+ canOperateAutonomously: true,
248
+ minCertificationTier: 6,
249
+ },
250
+ [CapabilityLevel.L7_AUTONOMOUS]: {
251
+ level: CapabilityLevel.L7_AUTONOMOUS,
252
+ code: 'L7',
253
+ name: 'Sovereign',
254
+ description: exports.CAPABILITY_LEVEL_DESCRIPTIONS[CapabilityLevel.L7_AUTONOMOUS],
255
+ abilities: exports.CAPABILITY_LEVEL_ABILITIES[CapabilityLevel.L7_AUTONOMOUS],
256
+ requiresApproval: false,
257
+ canOperateAutonomously: true,
258
+ minCertificationTier: 7,
259
+ },
260
+ };
261
+ // ============================================================================
262
+ // Level Comparison Helpers
263
+ // ============================================================================
264
+ /**
265
+ * Checks if one level is higher than another.
266
+ *
267
+ * @param level - The level to check
268
+ * @param other - The level to compare against
269
+ * @returns True if level is higher than other
270
+ *
271
+ * @example
272
+ * ```typescript
273
+ * isLevelHigher(CapabilityLevel.L3_EXECUTE, CapabilityLevel.L2_DRAFT); // true
274
+ * isLevelHigher(CapabilityLevel.L1_ADVISE, CapabilityLevel.L3_EXECUTE); // false
275
+ * ```
276
+ */
277
+ function isLevelHigher(level, other) {
278
+ return level > other;
279
+ }
280
+ /**
281
+ * Checks if one level is at least as high as another.
282
+ *
283
+ * @param level - The level to check
284
+ * @param minLevel - The minimum level required
285
+ * @returns True if level meets or exceeds minLevel
286
+ *
287
+ * @example
288
+ * ```typescript
289
+ * meetsLevel(CapabilityLevel.L3_EXECUTE, CapabilityLevel.L2_DRAFT); // true
290
+ * meetsLevel(CapabilityLevel.L2_DRAFT, CapabilityLevel.L2_DRAFT); // true
291
+ * meetsLevel(CapabilityLevel.L1_ADVISE, CapabilityLevel.L3_EXECUTE); // false
292
+ * ```
293
+ */
294
+ function meetsLevel(level, minLevel) {
295
+ return level >= minLevel;
296
+ }
297
+ /**
298
+ * Compares two capability levels.
299
+ *
300
+ * @param a - First level
301
+ * @param b - Second level
302
+ * @returns -1 if a < b, 0 if equal, 1 if a > b
303
+ */
304
+ function compareLevels(a, b) {
305
+ if (a < b)
306
+ return -1;
307
+ if (a > b)
308
+ return 1;
309
+ return 0;
310
+ }
311
+ /**
312
+ * Gets the minimum of two capability levels.
313
+ *
314
+ * @param a - First level
315
+ * @param b - Second level
316
+ * @returns The lower level
317
+ */
318
+ function minLevel(a, b) {
319
+ return Math.min(a, b);
320
+ }
321
+ /**
322
+ * Gets the maximum of two capability levels.
323
+ *
324
+ * @param a - First level
325
+ * @param b - Second level
326
+ * @returns The higher level
327
+ */
328
+ function maxLevel(a, b) {
329
+ return Math.max(a, b);
330
+ }
331
+ /**
332
+ * Clamps a level to a range.
333
+ *
334
+ * @param level - The level to clamp
335
+ * @param min - Minimum allowed level
336
+ * @param max - Maximum allowed level
337
+ * @returns The clamped level
338
+ */
339
+ function clampLevel(level, min = CapabilityLevel.L0_OBSERVE, max = CapabilityLevel.L7_AUTONOMOUS) {
340
+ return Math.max(min, Math.min(max, level));
341
+ }
342
+ // ============================================================================
343
+ // Level Information Helpers
344
+ // ============================================================================
345
+ /**
346
+ * Gets the configuration for a capability level.
347
+ *
348
+ * @param level - The capability level
349
+ * @returns Level configuration
350
+ */
351
+ function getLevelConfig(level) {
352
+ return exports.CAPABILITY_LEVEL_CONFIGS[level];
353
+ }
354
+ /**
355
+ * Gets the human-readable name for a capability level.
356
+ *
357
+ * @param level - The capability level
358
+ * @returns Level name
359
+ */
360
+ function getLevelName(level) {
361
+ return exports.CAPABILITY_LEVEL_NAMES[level];
362
+ }
363
+ /**
364
+ * Gets the short code (L0-L7) for a capability level.
365
+ *
366
+ * @param level - The capability level
367
+ * @returns Level code
368
+ */
369
+ function getLevelCode(level) {
370
+ return exports.CAPABILITY_LEVEL_CODES[level];
371
+ }
372
+ /**
373
+ * Gets the description for a capability level.
374
+ *
375
+ * @param level - The capability level
376
+ * @returns Level description
377
+ */
378
+ function getLevelDescription(level) {
379
+ return exports.CAPABILITY_LEVEL_DESCRIPTIONS[level];
380
+ }
381
+ /**
382
+ * Checks if a level has a specific ability.
383
+ *
384
+ * @param level - The capability level
385
+ * @param ability - The ability to check
386
+ * @returns True if the level grants this ability
387
+ */
388
+ function hasAbility(level, ability) {
389
+ return exports.CAPABILITY_LEVEL_ABILITIES[level].includes(ability);
390
+ }
391
+ /**
392
+ * Checks if a level requires approval for actions.
393
+ *
394
+ * @param level - The capability level
395
+ * @returns True if approval is required
396
+ */
397
+ function requiresApproval(level) {
398
+ return exports.CAPABILITY_LEVEL_CONFIGS[level].requiresApproval;
399
+ }
400
+ /**
401
+ * Checks if a level can operate autonomously.
402
+ *
403
+ * @param level - The capability level
404
+ * @returns True if autonomous operation is allowed
405
+ */
406
+ function canOperateAutonomously(level) {
407
+ return exports.CAPABILITY_LEVEL_CONFIGS[level].canOperateAutonomously;
408
+ }
409
+ // ============================================================================
410
+ // Parsing and Validation
411
+ // ============================================================================
412
+ /**
413
+ * Parses a level string (e.g., "L3" or "3") to a CapabilityLevel.
414
+ *
415
+ * @param levelStr - Level string to parse
416
+ * @returns Parsed CapabilityLevel
417
+ * @throws Error if the string is not a valid level
418
+ *
419
+ * @example
420
+ * ```typescript
421
+ * parseLevel('L3'); // CapabilityLevel.L3_EXECUTE
422
+ * parseLevel('3'); // CapabilityLevel.L3_EXECUTE
423
+ * parseLevel('L0'); // CapabilityLevel.L0_OBSERVE
424
+ * ```
425
+ */
426
+ function parseLevel(levelStr) {
427
+ const normalized = levelStr.toUpperCase().replace(/^L/, '');
428
+ const level = parseInt(normalized, 10);
429
+ if (isNaN(level) || level < 0 || level > 7) {
430
+ throw new Error(`Invalid capability level: ${levelStr}. Must be L0-L7 or 0-7.`);
431
+ }
432
+ return level;
433
+ }
434
+ /**
435
+ * Safely parses a level string, returning null on failure.
436
+ *
437
+ * @param levelStr - Level string to parse
438
+ * @returns Parsed CapabilityLevel or null
439
+ */
440
+ function tryParseLevel(levelStr) {
441
+ try {
442
+ return parseLevel(levelStr);
443
+ }
444
+ catch {
445
+ return null;
446
+ }
447
+ }
448
+ // ============================================================================
449
+ // Type Guards
450
+ // ============================================================================
451
+ /**
452
+ * Type guard to check if a value is a valid CapabilityLevel.
453
+ *
454
+ * @param value - Value to check
455
+ * @returns True if value is a valid CapabilityLevel
456
+ */
457
+ function isCapabilityLevel(value) {
458
+ return (typeof value === 'number' &&
459
+ Number.isInteger(value) &&
460
+ value >= 0 &&
461
+ value <= 7);
462
+ }
463
+ // ============================================================================
464
+ // Zod Schemas
465
+ // ============================================================================
466
+ /**
467
+ * Zod schema for level configuration.
468
+ */
469
+ exports.capabilityLevelConfigSchema = zod_1.z.object({
470
+ level: exports.capabilityLevelSchema,
471
+ code: zod_1.z.string().regex(/^L[0-7]$/),
472
+ name: zod_1.z.string().min(1),
473
+ description: zod_1.z.string().min(1),
474
+ abilities: zod_1.z.array(zod_1.z.string()).readonly(),
475
+ requiresApproval: zod_1.z.boolean(),
476
+ canOperateAutonomously: zod_1.z.boolean(),
477
+ minCertificationTier: zod_1.z.number().int().min(0).max(7),
478
+ });
479
+ /**
480
+ * Zod schema for parsing level strings.
481
+ */
482
+ exports.levelStringSchema = zod_1.z
483
+ .string()
484
+ .regex(/^[Ll]?[0-7]$/, 'Level must be L0-L7 or 0-7')
485
+ .transform((str) => parseLevel(str));
486
+ //# sourceMappingURL=levels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"levels.js","sourceRoot":"","sources":["../../src/car/levels.ts"],"names":[],"mappings":"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"}