@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 @@
1
+ {"version":3,"file":"car-string.js","sourceRoot":"","sources":["../../src/car/car-string.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,260 @@
1
+ /**
2
+ * @fileoverview CAR Domain Codes and Bitmask Operations
3
+ *
4
+ * Defines the capability domain codes used in CAR 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/car/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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../src/car/domains.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,340 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview CAR Domain Codes and Bitmask Operations
4
+ *
5
+ * Defines the capability domain codes used in CAR strings, with bitmask
6
+ * encoding for efficient queries and domain matching.
7
+ *
8
+ * Domain codes represent high-level capability areas that agents can operate in.
9
+ * Each domain has a single-character code, a human-readable name, a bitmask value,
10
+ * and a description of its scope.
11
+ *
12
+ * @module @vorionsys/contracts/car/domains
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.domainStringSchema = exports.domainBitmaskSchema = exports.domainCodeArraySchema = exports.domainDefinitionSchema = exports.ALL_DOMAINS_BITMASK = exports.DOMAIN_NAMES = exports.CAPABILITY_DOMAINS = exports.domainCodeSchema = exports.DOMAIN_CODES = void 0;
16
+ exports.encodeDomains = encodeDomains;
17
+ exports.decodeDomains = decodeDomains;
18
+ exports.parseDomainString = parseDomainString;
19
+ exports.formatDomainString = formatDomainString;
20
+ exports.hasDomains = hasDomains;
21
+ exports.satisfiesDomainRequirements = satisfiesDomainRequirements;
22
+ exports.intersectDomains = intersectDomains;
23
+ exports.unionDomains = unionDomains;
24
+ exports.differenceDomains = differenceDomains;
25
+ exports.getDomainDefinition = getDomainDefinition;
26
+ exports.getDomainName = getDomainName;
27
+ exports.getDomainBit = getDomainBit;
28
+ exports.countDomains = countDomains;
29
+ exports.isDomainCode = isDomainCode;
30
+ exports.isDomainCodeArray = isDomainCodeArray;
31
+ const zod_1 = require("zod");
32
+ /**
33
+ * Array of all valid domain codes.
34
+ */
35
+ exports.DOMAIN_CODES = [
36
+ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'S',
37
+ ];
38
+ /**
39
+ * Zod schema for DomainCode validation.
40
+ */
41
+ exports.domainCodeSchema = zod_1.z.enum(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'S'], {
42
+ errorMap: () => ({ message: 'Invalid domain code. Must be one of: A, B, C, D, E, F, G, H, I, S' }),
43
+ });
44
+ /**
45
+ * Capability domains with their definitions.
46
+ *
47
+ * Each domain has a unique bitmask value (power of 2) for efficient
48
+ * storage and querying of domain combinations.
49
+ */
50
+ exports.CAPABILITY_DOMAINS = {
51
+ A: { code: 'A', name: 'Administration', bit: 0x001, description: 'System administration, user management' },
52
+ B: { code: 'B', name: 'Business', bit: 0x002, description: 'Business logic, workflows, approvals' },
53
+ C: { code: 'C', name: 'Communications', bit: 0x004, description: 'Email, messaging, notifications' },
54
+ D: { code: 'D', name: 'Data', bit: 0x008, description: 'Data processing, analytics, reporting' },
55
+ E: { code: 'E', name: 'External', bit: 0x010, description: 'Third-party integrations, APIs' },
56
+ F: { code: 'F', name: 'Finance', bit: 0x020, description: 'Financial operations, payments, accounting' },
57
+ G: { code: 'G', name: 'Governance', bit: 0x040, description: 'Policy, compliance, oversight' },
58
+ H: { code: 'H', name: 'Hospitality', bit: 0x080, description: 'Venue, events, catering management' },
59
+ I: { code: 'I', name: 'Infrastructure', bit: 0x100, description: 'Compute, storage, networking' },
60
+ S: { code: 'S', name: 'Security', bit: 0x200, description: 'Authentication, authorization, audit' },
61
+ };
62
+ /**
63
+ * Human-readable domain names indexed by code.
64
+ */
65
+ exports.DOMAIN_NAMES = {
66
+ A: 'Administration',
67
+ B: 'Business',
68
+ C: 'Communications',
69
+ D: 'Data',
70
+ E: 'External',
71
+ F: 'Finance',
72
+ G: 'Governance',
73
+ H: 'Hospitality',
74
+ I: 'Infrastructure',
75
+ S: 'Security',
76
+ };
77
+ /**
78
+ * Bitmask value representing all domains combined.
79
+ */
80
+ exports.ALL_DOMAINS_BITMASK = Object.values(exports.CAPABILITY_DOMAINS).reduce((mask, domain) => mask | domain.bit, 0);
81
+ // ============================================================================
82
+ // Bitmask Encoding/Decoding
83
+ // ============================================================================
84
+ /**
85
+ * Encodes an array of domain codes into a bitmask.
86
+ *
87
+ * @param domains - Array of domain codes to encode
88
+ * @returns Bitmask integer representing the domains
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * encodeDomains(['A', 'B']); // 0x003 (3)
93
+ * encodeDomains(['A', 'S']); // 0x201 (513)
94
+ * encodeDomains([]); // 0
95
+ * ```
96
+ */
97
+ function encodeDomains(domains) {
98
+ return domains.reduce((mask, code) => {
99
+ const domain = exports.CAPABILITY_DOMAINS[code];
100
+ return mask | domain.bit;
101
+ }, 0);
102
+ }
103
+ /**
104
+ * Decodes a bitmask into an array of domain codes.
105
+ *
106
+ * @param bitmask - Bitmask integer to decode
107
+ * @returns Array of domain codes present in the bitmask
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * decodeDomains(0x003); // ['A', 'B']
112
+ * decodeDomains(0x201); // ['A', 'S']
113
+ * decodeDomains(0); // []
114
+ * ```
115
+ */
116
+ function decodeDomains(bitmask) {
117
+ return exports.DOMAIN_CODES.filter((code) => (bitmask & exports.CAPABILITY_DOMAINS[code].bit) !== 0);
118
+ }
119
+ /**
120
+ * Converts a domain string (e.g., "ABS") to an array of domain codes.
121
+ *
122
+ * @param domainString - String containing domain codes (e.g., "ABS")
123
+ * @returns Array of domain codes
124
+ * @throws Error if any character is not a valid domain code
125
+ *
126
+ * @example
127
+ * ```typescript
128
+ * parseDomainString('ABS'); // ['A', 'B', 'S']
129
+ * parseDomainString('D'); // ['D']
130
+ * ```
131
+ */
132
+ function parseDomainString(domainString) {
133
+ const codes = domainString.split('');
134
+ const invalidCodes = codes.filter((c) => !exports.DOMAIN_CODES.includes(c));
135
+ if (invalidCodes.length > 0) {
136
+ throw new Error(`Invalid domain codes: ${invalidCodes.join(', ')}`);
137
+ }
138
+ return codes;
139
+ }
140
+ /**
141
+ * Converts an array of domain codes to a domain string.
142
+ *
143
+ * @param domains - Array of domain codes
144
+ * @param sort - Whether to sort the codes alphabetically (default: true)
145
+ * @returns String containing the domain codes
146
+ *
147
+ * @example
148
+ * ```typescript
149
+ * formatDomainString(['S', 'A', 'B']); // 'ABS'
150
+ * formatDomainString(['S', 'A'], false); // 'SA'
151
+ * ```
152
+ */
153
+ function formatDomainString(domains, sort = true) {
154
+ const uniqueDomains = [...new Set(domains)];
155
+ return sort ? uniqueDomains.sort().join('') : uniqueDomains.join('');
156
+ }
157
+ // ============================================================================
158
+ // Domain Matching
159
+ // ============================================================================
160
+ /**
161
+ * Checks if a set of domains includes all required domains.
162
+ *
163
+ * @param agentDomains - Domains the agent has (array or bitmask)
164
+ * @param requiredDomains - Domains required (array or bitmask)
165
+ * @returns True if agent has all required domains
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * hasDomains(['A', 'B', 'C'], ['A', 'B']); // true
170
+ * hasDomains(['A', 'B'], ['A', 'B', 'C']); // false
171
+ * hasDomains(0x007, 0x003); // true (ABC has AB)
172
+ * ```
173
+ */
174
+ function hasDomains(agentDomains, requiredDomains) {
175
+ const agentMask = typeof agentDomains === 'number'
176
+ ? agentDomains
177
+ : encodeDomains(agentDomains);
178
+ const requiredMask = typeof requiredDomains === 'number'
179
+ ? requiredDomains
180
+ : encodeDomains(requiredDomains);
181
+ return (agentMask & requiredMask) === requiredMask;
182
+ }
183
+ /**
184
+ * Checks if a set of domains satisfies domain requirements.
185
+ *
186
+ * This is an alias for hasDomains with more semantic naming for
187
+ * authorization contexts.
188
+ *
189
+ * @param agentDomains - Domains the agent has
190
+ * @param requirements - Domain requirements to satisfy
191
+ * @returns True if all requirements are satisfied
192
+ */
193
+ function satisfiesDomainRequirements(agentDomains, requirements) {
194
+ return hasDomains(agentDomains, requirements);
195
+ }
196
+ /**
197
+ * Gets the intersection of two domain sets.
198
+ *
199
+ * @param domainsA - First domain set
200
+ * @param domainsB - Second domain set
201
+ * @returns Array of domains present in both sets
202
+ *
203
+ * @example
204
+ * ```typescript
205
+ * intersectDomains(['A', 'B', 'C'], ['B', 'C', 'D']); // ['B', 'C']
206
+ * ```
207
+ */
208
+ function intersectDomains(domainsA, domainsB) {
209
+ const maskA = typeof domainsA === 'number' ? domainsA : encodeDomains(domainsA);
210
+ const maskB = typeof domainsB === 'number' ? domainsB : encodeDomains(domainsB);
211
+ return decodeDomains(maskA & maskB);
212
+ }
213
+ /**
214
+ * Gets the union of two domain sets.
215
+ *
216
+ * @param domainsA - First domain set
217
+ * @param domainsB - Second domain set
218
+ * @returns Array of domains present in either set
219
+ *
220
+ * @example
221
+ * ```typescript
222
+ * unionDomains(['A', 'B'], ['B', 'C']); // ['A', 'B', 'C']
223
+ * ```
224
+ */
225
+ function unionDomains(domainsA, domainsB) {
226
+ const maskA = typeof domainsA === 'number' ? domainsA : encodeDomains(domainsA);
227
+ const maskB = typeof domainsB === 'number' ? domainsB : encodeDomains(domainsB);
228
+ return decodeDomains(maskA | maskB);
229
+ }
230
+ /**
231
+ * Gets domains in the first set that are not in the second.
232
+ *
233
+ * @param domainsA - First domain set
234
+ * @param domainsB - Second domain set
235
+ * @returns Array of domains in A but not in B
236
+ *
237
+ * @example
238
+ * ```typescript
239
+ * differenceDomains(['A', 'B', 'C'], ['B', 'C']); // ['A']
240
+ * ```
241
+ */
242
+ function differenceDomains(domainsA, domainsB) {
243
+ const maskA = typeof domainsA === 'number' ? domainsA : encodeDomains(domainsA);
244
+ const maskB = typeof domainsB === 'number' ? domainsB : encodeDomains(domainsB);
245
+ return decodeDomains(maskA & ~maskB);
246
+ }
247
+ // ============================================================================
248
+ // Domain Information
249
+ // ============================================================================
250
+ /**
251
+ * Gets the full definition for a domain code.
252
+ *
253
+ * @param code - Domain code
254
+ * @returns Domain definition
255
+ */
256
+ function getDomainDefinition(code) {
257
+ return exports.CAPABILITY_DOMAINS[code];
258
+ }
259
+ /**
260
+ * Gets the human-readable name for a domain code.
261
+ *
262
+ * @param code - Domain code
263
+ * @returns Domain name
264
+ */
265
+ function getDomainName(code) {
266
+ return exports.DOMAIN_NAMES[code];
267
+ }
268
+ /**
269
+ * Gets the bitmask value for a domain code.
270
+ *
271
+ * @param code - Domain code
272
+ * @returns Bitmask value
273
+ */
274
+ function getDomainBit(code) {
275
+ return exports.CAPABILITY_DOMAINS[code].bit;
276
+ }
277
+ /**
278
+ * Counts the number of domains in a bitmask.
279
+ *
280
+ * @param bitmask - Domain bitmask
281
+ * @returns Number of domains
282
+ */
283
+ function countDomains(bitmask) {
284
+ let count = 0;
285
+ let mask = bitmask;
286
+ while (mask) {
287
+ count += mask & 1;
288
+ mask >>>= 1;
289
+ }
290
+ return count;
291
+ }
292
+ // ============================================================================
293
+ // Type Guards
294
+ // ============================================================================
295
+ /**
296
+ * Type guard to check if a value is a valid DomainCode.
297
+ *
298
+ * @param value - Value to check
299
+ * @returns True if value is a valid DomainCode
300
+ */
301
+ function isDomainCode(value) {
302
+ return typeof value === 'string' && exports.DOMAIN_CODES.includes(value);
303
+ }
304
+ /**
305
+ * Type guard to check if all values in an array are valid DomainCodes.
306
+ *
307
+ * @param values - Array to check
308
+ * @returns True if all values are valid DomainCodes
309
+ */
310
+ function isDomainCodeArray(values) {
311
+ return Array.isArray(values) && values.every(isDomainCode);
312
+ }
313
+ // ============================================================================
314
+ // Zod Schemas
315
+ // ============================================================================
316
+ /**
317
+ * Zod schema for domain definition.
318
+ */
319
+ exports.domainDefinitionSchema = zod_1.z.object({
320
+ code: exports.domainCodeSchema,
321
+ name: zod_1.z.string().min(1),
322
+ bit: zod_1.z.number().int().positive(),
323
+ description: zod_1.z.string().min(1),
324
+ });
325
+ /**
326
+ * Zod schema for an array of domain codes.
327
+ */
328
+ exports.domainCodeArraySchema = zod_1.z.array(exports.domainCodeSchema);
329
+ /**
330
+ * Zod schema for a domain bitmask (positive integer).
331
+ */
332
+ exports.domainBitmaskSchema = zod_1.z.number().int().min(0).max(exports.ALL_DOMAINS_BITMASK);
333
+ /**
334
+ * Zod schema for domain string (e.g., "ABS").
335
+ */
336
+ exports.domainStringSchema = zod_1.z
337
+ .string()
338
+ .regex(/^[ABCDEFGHIS]+$/, 'Domain string must only contain valid domain codes (A-I, S)')
339
+ .transform((str) => parseDomainString(str));
340
+ //# sourceMappingURL=domains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/car/domains.ts"],"names":[],"mappings":"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"}