@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.
- package/README.md +146 -0
- package/dist/aci/aci-string.d.ts +7 -7
- package/dist/aci/aci-string.js +87 -69
- package/dist/aci/aci-string.js.map +1 -1
- package/dist/aci/attestation.d.ts +71 -71
- package/dist/aci/attestation.js +67 -57
- package/dist/aci/attestation.js.map +1 -1
- package/dist/aci/domains.d.ts +1 -1
- package/dist/aci/domains.js +55 -37
- package/dist/aci/domains.js.map +1 -1
- package/dist/aci/effective-permission.d.ts +6 -6
- package/dist/aci/effective-permission.js +59 -46
- package/dist/aci/effective-permission.js.map +1 -1
- package/dist/aci/identity.d.ts +99 -99
- package/dist/aci/identity.js +95 -85
- package/dist/aci/identity.js.map +1 -1
- package/dist/aci/index.d.ts +13 -3
- package/dist/aci/index.d.ts.map +1 -1
- package/dist/aci/index.js +268 -43
- package/dist/aci/index.js.map +1 -1
- package/dist/aci/jwt-claims.d.ts +29 -29
- package/dist/aci/jwt-claims.js +72 -62
- package/dist/aci/jwt-claims.js.map +1 -1
- package/dist/aci/levels.d.ts +3 -3
- package/dist/aci/levels.js +79 -60
- package/dist/aci/levels.js.map +1 -1
- package/dist/aci/mapping.d.ts +3 -3
- package/dist/aci/mapping.js +94 -74
- package/dist/aci/mapping.js.map +1 -1
- package/dist/aci/skills.d.ts +3 -3
- package/dist/aci/skills.js +71 -49
- package/dist/aci/skills.js.map +1 -1
- package/dist/aci/tiers.d.ts +1 -1
- package/dist/aci/tiers.js +144 -117
- package/dist/aci/tiers.js.map +1 -1
- package/dist/canonical/agent.d.ts +1 -1
- package/dist/canonical/agent.js +146 -130
- package/dist/canonical/agent.js.map +1 -1
- package/dist/canonical/governance.d.ts +1 -1
- package/dist/canonical/governance.js +134 -120
- package/dist/canonical/governance.js.map +1 -1
- package/dist/canonical/index.d.ts +1 -0
- package/dist/canonical/index.d.ts.map +1 -1
- package/dist/canonical/index.js +26 -8
- package/dist/canonical/index.js.map +1 -1
- package/dist/canonical/intent.d.ts +8 -15
- package/dist/canonical/intent.d.ts.map +1 -1
- package/dist/canonical/intent.js +91 -82
- package/dist/canonical/intent.js.map +1 -1
- package/dist/canonical/middleware.d.ts +513 -0
- package/dist/canonical/middleware.d.ts.map +1 -0
- package/dist/canonical/middleware.js +218 -0
- package/dist/canonical/middleware.js.map +1 -0
- package/dist/canonical/risk-level.d.ts +1 -1
- package/dist/canonical/risk-level.js +66 -46
- package/dist/canonical/risk-level.js.map +1 -1
- package/dist/canonical/trust-band.d.ts +1 -1
- package/dist/canonical/trust-band.js +39 -28
- package/dist/canonical/trust-band.js.map +1 -1
- package/dist/canonical/trust-score.d.ts +1 -1
- package/dist/canonical/trust-score.js +46 -29
- package/dist/canonical/trust-score.js.map +1 -1
- package/dist/canonical/trust-signal.d.ts +13 -13
- package/dist/canonical/trust-signal.js +91 -78
- package/dist/canonical/trust-signal.js.map +1 -1
- package/dist/canonical/validation.js +148 -102
- package/dist/canonical/validation.js.map +1 -1
- package/dist/car/attestation.d.ts +648 -0
- package/dist/car/attestation.d.ts.map +1 -0
- package/dist/car/attestation.js +299 -0
- package/dist/car/attestation.js.map +1 -0
- package/dist/car/car-string.d.ts +846 -0
- package/dist/car/car-string.d.ts.map +1 -0
- package/dist/car/car-string.js +734 -0
- package/dist/car/car-string.js.map +1 -0
- package/dist/car/domains.d.ts +260 -0
- package/dist/car/domains.d.ts.map +1 -0
- package/dist/car/domains.js +340 -0
- package/dist/car/domains.js.map +1 -0
- package/dist/car/effective-permission.d.ts +371 -0
- package/dist/car/effective-permission.d.ts.map +1 -0
- package/dist/car/effective-permission.js +364 -0
- package/dist/car/effective-permission.js.map +1 -0
- package/dist/car/identity.d.ts +1206 -0
- package/dist/car/identity.d.ts.map +1 -0
- package/dist/car/identity.js +348 -0
- package/dist/car/identity.js.map +1 -0
- package/dist/car/index.d.ts +104 -0
- package/dist/car/index.d.ts.map +1 -0
- package/dist/car/index.js +401 -0
- package/dist/car/index.js.map +1 -0
- package/dist/car/jwt-claims.d.ts +1364 -0
- package/dist/car/jwt-claims.d.ts.map +1 -0
- package/dist/car/jwt-claims.js +388 -0
- package/dist/car/jwt-claims.js.map +1 -0
- package/dist/car/levels.d.ts +279 -0
- package/dist/car/levels.d.ts.map +1 -0
- package/dist/car/levels.js +486 -0
- package/dist/car/levels.js.map +1 -0
- package/dist/car/mapping.d.ts +291 -0
- package/dist/car/mapping.d.ts.map +1 -0
- package/dist/car/mapping.js +447 -0
- package/dist/car/mapping.js.map +1 -0
- package/dist/car/skills.d.ts +314 -0
- package/dist/car/skills.d.ts.map +1 -0
- package/dist/car/skills.js +426 -0
- package/dist/car/skills.js.map +1 -0
- package/dist/car/tiers.d.ts +403 -0
- package/dist/car/tiers.d.ts.map +1 -0
- package/dist/car/tiers.js +686 -0
- package/dist/car/tiers.js.map +1 -0
- package/dist/common/index.d.ts +1 -0
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +18 -1
- package/dist/common/index.js.map +1 -1
- package/dist/common/primitives.d.ts +9 -7
- package/dist/common/primitives.d.ts.map +1 -1
- package/dist/common/primitives.js +30 -25
- package/dist/common/primitives.js.map +1 -1
- package/dist/common/types.d.ts +328 -0
- package/dist/common/types.d.ts.map +1 -0
- package/dist/common/types.js +61 -0
- package/dist/common/types.js.map +1 -0
- package/dist/db/agents.d.ts +1374 -0
- package/dist/db/agents.d.ts.map +1 -0
- package/dist/db/agents.js +283 -0
- package/dist/db/agents.js.map +1 -0
- package/dist/db/api-keys.d.ts +365 -0
- package/dist/db/api-keys.d.ts.map +1 -0
- package/dist/db/api-keys.js +101 -0
- package/dist/db/api-keys.js.map +1 -0
- package/dist/db/escalations.d.ts +400 -0
- package/dist/db/escalations.d.ts.map +1 -0
- package/dist/db/escalations.js +100 -0
- package/dist/db/escalations.js.map +1 -0
- package/dist/db/index.d.ts +20 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +47 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/intents.d.ts +384 -0
- package/dist/db/intents.d.ts.map +1 -0
- package/dist/db/intents.js +93 -0
- package/dist/db/intents.js.map +1 -0
- package/dist/db/merkle.d.ts +344 -0
- package/dist/db/merkle.d.ts.map +1 -0
- package/dist/db/merkle.js +103 -0
- package/dist/db/merkle.js.map +1 -0
- package/dist/db/operations.d.ts +187 -0
- package/dist/db/operations.d.ts.map +1 -0
- package/dist/db/operations.js +68 -0
- package/dist/db/operations.js.map +1 -0
- package/dist/db/policy-versions.d.ts +112 -0
- package/dist/db/policy-versions.d.ts.map +1 -0
- package/dist/db/policy-versions.js +44 -0
- package/dist/db/policy-versions.js.map +1 -0
- package/dist/db/proofs.d.ts +296 -0
- package/dist/db/proofs.d.ts.map +1 -0
- package/dist/db/proofs.js +66 -0
- package/dist/db/proofs.js.map +1 -0
- package/dist/db/rbac.d.ts +655 -0
- package/dist/db/rbac.d.ts.map +1 -0
- package/dist/db/rbac.js +189 -0
- package/dist/db/rbac.js.map +1 -0
- package/dist/db/service-accounts.d.ts +571 -0
- package/dist/db/service-accounts.d.ts.map +1 -0
- package/dist/db/service-accounts.js +179 -0
- package/dist/db/service-accounts.js.map +1 -0
- package/dist/db/trust.d.ts +437 -0
- package/dist/db/trust.d.ts.map +1 -0
- package/dist/db/trust.js +111 -0
- package/dist/db/trust.js.map +1 -0
- package/dist/db/webhooks.d.ts +280 -0
- package/dist/db/webhooks.d.ts.map +1 -0
- package/dist/db/webhooks.js +94 -0
- package/dist/db/webhooks.js.map +1 -0
- package/dist/flags.d.ts +214 -0
- package/dist/flags.d.ts.map +1 -0
- package/dist/flags.js +443 -0
- package/dist/flags.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +47 -4
- package/dist/index.js.map +1 -1
- package/dist/v2/canary-probe.js +10 -7
- package/dist/v2/canary-probe.js.map +1 -1
- package/dist/v2/component.js +2 -1
- package/dist/v2/component.js.map +1 -1
- package/dist/v2/decision.js +5 -2
- package/dist/v2/decision.js.map +1 -1
- package/dist/v2/enums.js +28 -25
- package/dist/v2/enums.js.map +1 -1
- package/dist/v2/evidence.js +75 -72
- package/dist/v2/evidence.js.map +1 -1
- package/dist/v2/execution.js +2 -1
- package/dist/v2/execution.js.map +1 -1
- package/dist/v2/index.js +29 -13
- package/dist/v2/index.js.map +1 -1
- package/dist/v2/intent.js +2 -1
- package/dist/v2/intent.js.map +1 -1
- package/dist/v2/policy-bundle.js +5 -2
- package/dist/v2/policy-bundle.js.map +1 -1
- package/dist/v2/pre-action-gate.js +10 -7
- package/dist/v2/pre-action-gate.js.map +1 -1
- package/dist/v2/proof-event.js +2 -1
- package/dist/v2/proof-event.js.map +1 -1
- package/dist/v2/retention.js +104 -101
- package/dist/v2/retention.js.map +1 -1
- package/dist/v2/trust-delta.js +5 -2
- package/dist/v2/trust-delta.js.map +1 -1
- package/dist/v2/trust-profile.js +12 -9
- package/dist/v2/trust-profile.js.map +1 -1
- package/dist/validators/decision.d.ts +2 -2
- package/dist/validators/decision.js +49 -46
- package/dist/validators/decision.js.map +1 -1
- package/dist/validators/enums.js +14 -11
- package/dist/validators/enums.js.map +1 -1
- package/dist/validators/index.js +30 -9
- package/dist/validators/index.js.map +1 -1
- package/dist/validators/intent.js +40 -37
- package/dist/validators/intent.js.map +1 -1
- package/dist/validators/proof-event.js +101 -98
- package/dist/validators/proof-event.js.map +1 -1
- package/dist/validators/trust-profile.js +40 -37
- package/dist/validators/trust-profile.js.map +1 -1
- package/package.json +65 -13
package/dist/aci/domains.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* @fileoverview ACI Domain Codes and Bitmask Operations
|
|
3
4
|
*
|
|
@@ -8,19 +9,36 @@
|
|
|
8
9
|
* Each domain has a single-character code, a human-readable name, a bitmask value,
|
|
9
10
|
* and a description of its scope.
|
|
10
11
|
*
|
|
11
|
-
* @module @
|
|
12
|
+
* @module @vorionsys/contracts/aci/domains
|
|
12
13
|
*/
|
|
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");
|
|
14
32
|
/**
|
|
15
33
|
* Array of all valid domain codes.
|
|
16
34
|
*/
|
|
17
|
-
|
|
35
|
+
exports.DOMAIN_CODES = [
|
|
18
36
|
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'S',
|
|
19
37
|
];
|
|
20
38
|
/**
|
|
21
39
|
* Zod schema for DomainCode validation.
|
|
22
40
|
*/
|
|
23
|
-
|
|
41
|
+
exports.domainCodeSchema = zod_1.z.enum(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'S'], {
|
|
24
42
|
errorMap: () => ({ message: 'Invalid domain code. Must be one of: A, B, C, D, E, F, G, H, I, S' }),
|
|
25
43
|
});
|
|
26
44
|
/**
|
|
@@ -29,7 +47,7 @@ export const domainCodeSchema = z.enum(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
|
|
|
29
47
|
* Each domain has a unique bitmask value (power of 2) for efficient
|
|
30
48
|
* storage and querying of domain combinations.
|
|
31
49
|
*/
|
|
32
|
-
|
|
50
|
+
exports.CAPABILITY_DOMAINS = {
|
|
33
51
|
A: { code: 'A', name: 'Administration', bit: 0x001, description: 'System administration, user management' },
|
|
34
52
|
B: { code: 'B', name: 'Business', bit: 0x002, description: 'Business logic, workflows, approvals' },
|
|
35
53
|
C: { code: 'C', name: 'Communications', bit: 0x004, description: 'Email, messaging, notifications' },
|
|
@@ -44,7 +62,7 @@ export const CAPABILITY_DOMAINS = {
|
|
|
44
62
|
/**
|
|
45
63
|
* Human-readable domain names indexed by code.
|
|
46
64
|
*/
|
|
47
|
-
|
|
65
|
+
exports.DOMAIN_NAMES = {
|
|
48
66
|
A: 'Administration',
|
|
49
67
|
B: 'Business',
|
|
50
68
|
C: 'Communications',
|
|
@@ -59,7 +77,7 @@ export const DOMAIN_NAMES = {
|
|
|
59
77
|
/**
|
|
60
78
|
* Bitmask value representing all domains combined.
|
|
61
79
|
*/
|
|
62
|
-
|
|
80
|
+
exports.ALL_DOMAINS_BITMASK = Object.values(exports.CAPABILITY_DOMAINS).reduce((mask, domain) => mask | domain.bit, 0);
|
|
63
81
|
// ============================================================================
|
|
64
82
|
// Bitmask Encoding/Decoding
|
|
65
83
|
// ============================================================================
|
|
@@ -76,9 +94,9 @@ export const ALL_DOMAINS_BITMASK = Object.values(CAPABILITY_DOMAINS).reduce((mas
|
|
|
76
94
|
* encodeDomains([]); // 0
|
|
77
95
|
* ```
|
|
78
96
|
*/
|
|
79
|
-
|
|
97
|
+
function encodeDomains(domains) {
|
|
80
98
|
return domains.reduce((mask, code) => {
|
|
81
|
-
const domain = CAPABILITY_DOMAINS[code];
|
|
99
|
+
const domain = exports.CAPABILITY_DOMAINS[code];
|
|
82
100
|
return mask | domain.bit;
|
|
83
101
|
}, 0);
|
|
84
102
|
}
|
|
@@ -95,8 +113,8 @@ export function encodeDomains(domains) {
|
|
|
95
113
|
* decodeDomains(0); // []
|
|
96
114
|
* ```
|
|
97
115
|
*/
|
|
98
|
-
|
|
99
|
-
return DOMAIN_CODES.filter((code) => (bitmask & CAPABILITY_DOMAINS[code].bit) !== 0);
|
|
116
|
+
function decodeDomains(bitmask) {
|
|
117
|
+
return exports.DOMAIN_CODES.filter((code) => (bitmask & exports.CAPABILITY_DOMAINS[code].bit) !== 0);
|
|
100
118
|
}
|
|
101
119
|
/**
|
|
102
120
|
* Converts a domain string (e.g., "ABS") to an array of domain codes.
|
|
@@ -111,9 +129,9 @@ export function decodeDomains(bitmask) {
|
|
|
111
129
|
* parseDomainString('D'); // ['D']
|
|
112
130
|
* ```
|
|
113
131
|
*/
|
|
114
|
-
|
|
132
|
+
function parseDomainString(domainString) {
|
|
115
133
|
const codes = domainString.split('');
|
|
116
|
-
const invalidCodes = codes.filter((c) => !DOMAIN_CODES.includes(c));
|
|
134
|
+
const invalidCodes = codes.filter((c) => !exports.DOMAIN_CODES.includes(c));
|
|
117
135
|
if (invalidCodes.length > 0) {
|
|
118
136
|
throw new Error(`Invalid domain codes: ${invalidCodes.join(', ')}`);
|
|
119
137
|
}
|
|
@@ -132,7 +150,7 @@ export function parseDomainString(domainString) {
|
|
|
132
150
|
* formatDomainString(['S', 'A'], false); // 'SA'
|
|
133
151
|
* ```
|
|
134
152
|
*/
|
|
135
|
-
|
|
153
|
+
function formatDomainString(domains, sort = true) {
|
|
136
154
|
const uniqueDomains = [...new Set(domains)];
|
|
137
155
|
return sort ? uniqueDomains.sort().join('') : uniqueDomains.join('');
|
|
138
156
|
}
|
|
@@ -153,7 +171,7 @@ export function formatDomainString(domains, sort = true) {
|
|
|
153
171
|
* hasDomains(0x007, 0x003); // true (ABC has AB)
|
|
154
172
|
* ```
|
|
155
173
|
*/
|
|
156
|
-
|
|
174
|
+
function hasDomains(agentDomains, requiredDomains) {
|
|
157
175
|
const agentMask = typeof agentDomains === 'number'
|
|
158
176
|
? agentDomains
|
|
159
177
|
: encodeDomains(agentDomains);
|
|
@@ -172,7 +190,7 @@ export function hasDomains(agentDomains, requiredDomains) {
|
|
|
172
190
|
* @param requirements - Domain requirements to satisfy
|
|
173
191
|
* @returns True if all requirements are satisfied
|
|
174
192
|
*/
|
|
175
|
-
|
|
193
|
+
function satisfiesDomainRequirements(agentDomains, requirements) {
|
|
176
194
|
return hasDomains(agentDomains, requirements);
|
|
177
195
|
}
|
|
178
196
|
/**
|
|
@@ -187,7 +205,7 @@ export function satisfiesDomainRequirements(agentDomains, requirements) {
|
|
|
187
205
|
* intersectDomains(['A', 'B', 'C'], ['B', 'C', 'D']); // ['B', 'C']
|
|
188
206
|
* ```
|
|
189
207
|
*/
|
|
190
|
-
|
|
208
|
+
function intersectDomains(domainsA, domainsB) {
|
|
191
209
|
const maskA = typeof domainsA === 'number' ? domainsA : encodeDomains(domainsA);
|
|
192
210
|
const maskB = typeof domainsB === 'number' ? domainsB : encodeDomains(domainsB);
|
|
193
211
|
return decodeDomains(maskA & maskB);
|
|
@@ -204,7 +222,7 @@ export function intersectDomains(domainsA, domainsB) {
|
|
|
204
222
|
* unionDomains(['A', 'B'], ['B', 'C']); // ['A', 'B', 'C']
|
|
205
223
|
* ```
|
|
206
224
|
*/
|
|
207
|
-
|
|
225
|
+
function unionDomains(domainsA, domainsB) {
|
|
208
226
|
const maskA = typeof domainsA === 'number' ? domainsA : encodeDomains(domainsA);
|
|
209
227
|
const maskB = typeof domainsB === 'number' ? domainsB : encodeDomains(domainsB);
|
|
210
228
|
return decodeDomains(maskA | maskB);
|
|
@@ -221,7 +239,7 @@ export function unionDomains(domainsA, domainsB) {
|
|
|
221
239
|
* differenceDomains(['A', 'B', 'C'], ['B', 'C']); // ['A']
|
|
222
240
|
* ```
|
|
223
241
|
*/
|
|
224
|
-
|
|
242
|
+
function differenceDomains(domainsA, domainsB) {
|
|
225
243
|
const maskA = typeof domainsA === 'number' ? domainsA : encodeDomains(domainsA);
|
|
226
244
|
const maskB = typeof domainsB === 'number' ? domainsB : encodeDomains(domainsB);
|
|
227
245
|
return decodeDomains(maskA & ~maskB);
|
|
@@ -235,8 +253,8 @@ export function differenceDomains(domainsA, domainsB) {
|
|
|
235
253
|
* @param code - Domain code
|
|
236
254
|
* @returns Domain definition
|
|
237
255
|
*/
|
|
238
|
-
|
|
239
|
-
return CAPABILITY_DOMAINS[code];
|
|
256
|
+
function getDomainDefinition(code) {
|
|
257
|
+
return exports.CAPABILITY_DOMAINS[code];
|
|
240
258
|
}
|
|
241
259
|
/**
|
|
242
260
|
* Gets the human-readable name for a domain code.
|
|
@@ -244,8 +262,8 @@ export function getDomainDefinition(code) {
|
|
|
244
262
|
* @param code - Domain code
|
|
245
263
|
* @returns Domain name
|
|
246
264
|
*/
|
|
247
|
-
|
|
248
|
-
return DOMAIN_NAMES[code];
|
|
265
|
+
function getDomainName(code) {
|
|
266
|
+
return exports.DOMAIN_NAMES[code];
|
|
249
267
|
}
|
|
250
268
|
/**
|
|
251
269
|
* Gets the bitmask value for a domain code.
|
|
@@ -253,8 +271,8 @@ export function getDomainName(code) {
|
|
|
253
271
|
* @param code - Domain code
|
|
254
272
|
* @returns Bitmask value
|
|
255
273
|
*/
|
|
256
|
-
|
|
257
|
-
return CAPABILITY_DOMAINS[code].bit;
|
|
274
|
+
function getDomainBit(code) {
|
|
275
|
+
return exports.CAPABILITY_DOMAINS[code].bit;
|
|
258
276
|
}
|
|
259
277
|
/**
|
|
260
278
|
* Counts the number of domains in a bitmask.
|
|
@@ -262,7 +280,7 @@ export function getDomainBit(code) {
|
|
|
262
280
|
* @param bitmask - Domain bitmask
|
|
263
281
|
* @returns Number of domains
|
|
264
282
|
*/
|
|
265
|
-
|
|
283
|
+
function countDomains(bitmask) {
|
|
266
284
|
let count = 0;
|
|
267
285
|
let mask = bitmask;
|
|
268
286
|
while (mask) {
|
|
@@ -280,8 +298,8 @@ export function countDomains(bitmask) {
|
|
|
280
298
|
* @param value - Value to check
|
|
281
299
|
* @returns True if value is a valid DomainCode
|
|
282
300
|
*/
|
|
283
|
-
|
|
284
|
-
return typeof value === 'string' && DOMAIN_CODES.includes(value);
|
|
301
|
+
function isDomainCode(value) {
|
|
302
|
+
return typeof value === 'string' && exports.DOMAIN_CODES.includes(value);
|
|
285
303
|
}
|
|
286
304
|
/**
|
|
287
305
|
* Type guard to check if all values in an array are valid DomainCodes.
|
|
@@ -289,7 +307,7 @@ export function isDomainCode(value) {
|
|
|
289
307
|
* @param values - Array to check
|
|
290
308
|
* @returns True if all values are valid DomainCodes
|
|
291
309
|
*/
|
|
292
|
-
|
|
310
|
+
function isDomainCodeArray(values) {
|
|
293
311
|
return Array.isArray(values) && values.every(isDomainCode);
|
|
294
312
|
}
|
|
295
313
|
// ============================================================================
|
|
@@ -298,24 +316,24 @@ export function isDomainCodeArray(values) {
|
|
|
298
316
|
/**
|
|
299
317
|
* Zod schema for domain definition.
|
|
300
318
|
*/
|
|
301
|
-
|
|
302
|
-
code: domainCodeSchema,
|
|
303
|
-
name: z.string().min(1),
|
|
304
|
-
bit: z.number().int().positive(),
|
|
305
|
-
description: z.string().min(1),
|
|
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),
|
|
306
324
|
});
|
|
307
325
|
/**
|
|
308
326
|
* Zod schema for an array of domain codes.
|
|
309
327
|
*/
|
|
310
|
-
|
|
328
|
+
exports.domainCodeArraySchema = zod_1.z.array(exports.domainCodeSchema);
|
|
311
329
|
/**
|
|
312
330
|
* Zod schema for a domain bitmask (positive integer).
|
|
313
331
|
*/
|
|
314
|
-
|
|
332
|
+
exports.domainBitmaskSchema = zod_1.z.number().int().min(0).max(exports.ALL_DOMAINS_BITMASK);
|
|
315
333
|
/**
|
|
316
334
|
* Zod schema for domain string (e.g., "ABS").
|
|
317
335
|
*/
|
|
318
|
-
|
|
336
|
+
exports.domainStringSchema = zod_1.z
|
|
319
337
|
.string()
|
|
320
338
|
.regex(/^[ABCDEFGHIS]+$/, 'Domain string must only contain valid domain codes (A-I, S)')
|
|
321
339
|
.transform((str) => parseDomainString(str));
|
package/dist/aci/domains.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/aci/domains.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/aci/domains.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* The effective permission is the minimum of all applicable ceilings, ensuring
|
|
9
9
|
* that agents can never exceed the most restrictive constraint in any dimension.
|
|
10
10
|
*
|
|
11
|
-
* @module @
|
|
11
|
+
* @module @vorionsys/contracts/aci/effective-permission
|
|
12
12
|
*/
|
|
13
13
|
import { z } from 'zod';
|
|
14
14
|
import { CapabilityLevel } from './levels.js';
|
|
@@ -295,9 +295,6 @@ export declare const permissionCheckResultSchema: z.ZodObject<{
|
|
|
295
295
|
}>;
|
|
296
296
|
}, "strip", z.ZodTypeAny, {
|
|
297
297
|
allowed: boolean;
|
|
298
|
-
effectiveLevel: CapabilityLevel;
|
|
299
|
-
requestedLevel: CapabilityLevel;
|
|
300
|
-
levelGap: number;
|
|
301
298
|
permission: {
|
|
302
299
|
level: CapabilityLevel;
|
|
303
300
|
constrained: boolean;
|
|
@@ -311,11 +308,11 @@ export declare const permissionCheckResultSchema: z.ZodObject<{
|
|
|
311
308
|
constrainingFactor?: "certification_tier" | "competence_level" | "runtime_tier" | "observability_ceiling" | "context_policy_ceiling" | "multiple" | undefined;
|
|
312
309
|
recommendations?: string[] | undefined;
|
|
313
310
|
};
|
|
314
|
-
}, {
|
|
315
|
-
allowed: boolean;
|
|
316
311
|
effectiveLevel: CapabilityLevel;
|
|
317
312
|
requestedLevel: CapabilityLevel;
|
|
318
313
|
levelGap: number;
|
|
314
|
+
}, {
|
|
315
|
+
allowed: boolean;
|
|
319
316
|
permission: {
|
|
320
317
|
level: CapabilityLevel;
|
|
321
318
|
constrained: boolean;
|
|
@@ -329,6 +326,9 @@ export declare const permissionCheckResultSchema: z.ZodObject<{
|
|
|
329
326
|
constrainingFactor?: "certification_tier" | "competence_level" | "runtime_tier" | "observability_ceiling" | "context_policy_ceiling" | "multiple" | undefined;
|
|
330
327
|
recommendations?: string[] | undefined;
|
|
331
328
|
};
|
|
329
|
+
effectiveLevel: CapabilityLevel;
|
|
330
|
+
requestedLevel: CapabilityLevel;
|
|
331
|
+
levelGap: number;
|
|
332
332
|
}>;
|
|
333
333
|
/**
|
|
334
334
|
* Creates a new context with a modified ceiling.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* @fileoverview Effective Permission Calculation
|
|
3
4
|
*
|
|
@@ -8,25 +9,37 @@
|
|
|
8
9
|
* The effective permission is the minimum of all applicable ceilings, ensuring
|
|
9
10
|
* that agents can never exceed the most restrictive constraint in any dimension.
|
|
10
11
|
*
|
|
11
|
-
* @module @
|
|
12
|
+
* @module @vorionsys/contracts/aci/effective-permission
|
|
12
13
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.permissionCheckResultSchema = exports.effectivePermissionSchema = exports.permissionCeilingsSchema = exports.constrainingFactorSchema = exports.effectivePermissionContextSchema = void 0;
|
|
16
|
+
exports.calculateEffectivePermission = calculateEffectivePermission;
|
|
17
|
+
exports.permissionAllowsLevel = permissionAllowsLevel;
|
|
18
|
+
exports.contextAllowsLevel = contextAllowsLevel;
|
|
19
|
+
exports.checkPermission = checkPermission;
|
|
20
|
+
exports.modifyContextCeiling = modifyContextCeiling;
|
|
21
|
+
exports.calculateRequiredChanges = calculateRequiredChanges;
|
|
22
|
+
exports.createDefaultContext = createDefaultContext;
|
|
23
|
+
exports.createMaxPermissionContext = createMaxPermissionContext;
|
|
24
|
+
exports.isEffectivePermissionContext = isEffectivePermissionContext;
|
|
25
|
+
exports.isEffectivePermission = isEffectivePermission;
|
|
26
|
+
const zod_1 = require("zod");
|
|
27
|
+
const levels_js_1 = require("./levels.js");
|
|
28
|
+
const tiers_js_1 = require("./tiers.js");
|
|
16
29
|
/**
|
|
17
30
|
* Zod schema for EffectivePermissionContext.
|
|
18
31
|
*/
|
|
19
|
-
|
|
20
|
-
certificationTier: certificationTierSchema,
|
|
21
|
-
competenceLevel: capabilityLevelSchema,
|
|
22
|
-
runtimeTier: runtimeTierSchema,
|
|
23
|
-
observabilityCeiling: z.number().int().min(0).max(7),
|
|
24
|
-
contextPolicyCeiling: z.number().int().min(0).max(7),
|
|
32
|
+
exports.effectivePermissionContextSchema = zod_1.z.object({
|
|
33
|
+
certificationTier: tiers_js_1.certificationTierSchema,
|
|
34
|
+
competenceLevel: levels_js_1.capabilityLevelSchema,
|
|
35
|
+
runtimeTier: tiers_js_1.runtimeTierSchema,
|
|
36
|
+
observabilityCeiling: zod_1.z.number().int().min(0).max(7),
|
|
37
|
+
contextPolicyCeiling: zod_1.z.number().int().min(0).max(7),
|
|
25
38
|
});
|
|
26
39
|
/**
|
|
27
40
|
* Zod schema for ConstrainingFactor.
|
|
28
41
|
*/
|
|
29
|
-
|
|
42
|
+
exports.constrainingFactorSchema = zod_1.z.enum([
|
|
30
43
|
'certification_tier',
|
|
31
44
|
'competence_level',
|
|
32
45
|
'runtime_tier',
|
|
@@ -37,22 +50,22 @@ export const constrainingFactorSchema = z.enum([
|
|
|
37
50
|
/**
|
|
38
51
|
* Zod schema for PermissionCeilings.
|
|
39
52
|
*/
|
|
40
|
-
|
|
41
|
-
certificationCeiling: capabilityLevelSchema,
|
|
42
|
-
competenceCeiling: capabilityLevelSchema,
|
|
43
|
-
runtimeCeiling: capabilityLevelSchema,
|
|
44
|
-
observabilityCeiling: capabilityLevelSchema,
|
|
45
|
-
contextPolicyCeiling: capabilityLevelSchema,
|
|
53
|
+
exports.permissionCeilingsSchema = zod_1.z.object({
|
|
54
|
+
certificationCeiling: levels_js_1.capabilityLevelSchema,
|
|
55
|
+
competenceCeiling: levels_js_1.capabilityLevelSchema,
|
|
56
|
+
runtimeCeiling: levels_js_1.capabilityLevelSchema,
|
|
57
|
+
observabilityCeiling: levels_js_1.capabilityLevelSchema,
|
|
58
|
+
contextPolicyCeiling: levels_js_1.capabilityLevelSchema,
|
|
46
59
|
});
|
|
47
60
|
/**
|
|
48
61
|
* Zod schema for EffectivePermission.
|
|
49
62
|
*/
|
|
50
|
-
|
|
51
|
-
level: capabilityLevelSchema,
|
|
52
|
-
constrained: z.boolean(),
|
|
53
|
-
constrainingFactor: constrainingFactorSchema.optional(),
|
|
54
|
-
ceilings: permissionCeilingsSchema,
|
|
55
|
-
recommendations: z.array(z.string()).optional(),
|
|
63
|
+
exports.effectivePermissionSchema = zod_1.z.object({
|
|
64
|
+
level: levels_js_1.capabilityLevelSchema,
|
|
65
|
+
constrained: zod_1.z.boolean(),
|
|
66
|
+
constrainingFactor: exports.constrainingFactorSchema.optional(),
|
|
67
|
+
ceilings: exports.permissionCeilingsSchema,
|
|
68
|
+
recommendations: zod_1.z.array(zod_1.z.string()).optional(),
|
|
56
69
|
});
|
|
57
70
|
// ============================================================================
|
|
58
71
|
// Permission Calculation
|
|
@@ -61,7 +74,7 @@ export const effectivePermissionSchema = z.object({
|
|
|
61
74
|
* Maps certification tier to maximum capability level.
|
|
62
75
|
*/
|
|
63
76
|
function certificationTierToCeiling(tier) {
|
|
64
|
-
return CERTIFICATION_TIER_CONFIGS[tier].maxCapabilityLevel;
|
|
77
|
+
return tiers_js_1.CERTIFICATION_TIER_CONFIGS[tier].maxCapabilityLevel;
|
|
65
78
|
}
|
|
66
79
|
/**
|
|
67
80
|
* Maps runtime tier to maximum capability level.
|
|
@@ -105,7 +118,7 @@ function runtimeTierToCeiling(tier) {
|
|
|
105
118
|
* // result.constrainingFactor === 'context_policy_ceiling'
|
|
106
119
|
* ```
|
|
107
120
|
*/
|
|
108
|
-
|
|
121
|
+
function calculateEffectivePermission(ctx) {
|
|
109
122
|
// Calculate individual ceilings
|
|
110
123
|
const certificationCeiling = certificationTierToCeiling(ctx.certificationTier);
|
|
111
124
|
const competenceCeiling = ctx.competenceLevel;
|
|
@@ -179,7 +192,7 @@ export function calculateEffectivePermission(ctx) {
|
|
|
179
192
|
* @param requiredLevel - Required capability level
|
|
180
193
|
* @returns True if the permission allows the required level
|
|
181
194
|
*/
|
|
182
|
-
|
|
195
|
+
function permissionAllowsLevel(permission, requiredLevel) {
|
|
183
196
|
return permission.level >= requiredLevel;
|
|
184
197
|
}
|
|
185
198
|
/**
|
|
@@ -189,7 +202,7 @@ export function permissionAllowsLevel(permission, requiredLevel) {
|
|
|
189
202
|
* @param requiredLevel - Required capability level
|
|
190
203
|
* @returns True if the context allows the required level
|
|
191
204
|
*/
|
|
192
|
-
|
|
205
|
+
function contextAllowsLevel(ctx, requiredLevel) {
|
|
193
206
|
const permission = calculateEffectivePermission(ctx);
|
|
194
207
|
return permissionAllowsLevel(permission, requiredLevel);
|
|
195
208
|
}
|
|
@@ -200,7 +213,7 @@ export function contextAllowsLevel(ctx, requiredLevel) {
|
|
|
200
213
|
* @param requiredLevel - Required capability level
|
|
201
214
|
* @returns Detailed permission check result
|
|
202
215
|
*/
|
|
203
|
-
|
|
216
|
+
function checkPermission(ctx, requiredLevel) {
|
|
204
217
|
const permission = calculateEffectivePermission(ctx);
|
|
205
218
|
return {
|
|
206
219
|
allowed: permission.level >= requiredLevel,
|
|
@@ -213,12 +226,12 @@ export function checkPermission(ctx, requiredLevel) {
|
|
|
213
226
|
/**
|
|
214
227
|
* Zod schema for PermissionCheckResult.
|
|
215
228
|
*/
|
|
216
|
-
|
|
217
|
-
allowed: z.boolean(),
|
|
218
|
-
effectiveLevel: capabilityLevelSchema,
|
|
219
|
-
requestedLevel: capabilityLevelSchema,
|
|
220
|
-
levelGap: z.number().int().min(0),
|
|
221
|
-
permission: effectivePermissionSchema,
|
|
229
|
+
exports.permissionCheckResultSchema = zod_1.z.object({
|
|
230
|
+
allowed: zod_1.z.boolean(),
|
|
231
|
+
effectiveLevel: levels_js_1.capabilityLevelSchema,
|
|
232
|
+
requestedLevel: levels_js_1.capabilityLevelSchema,
|
|
233
|
+
levelGap: zod_1.z.number().int().min(0),
|
|
234
|
+
permission: exports.effectivePermissionSchema,
|
|
222
235
|
});
|
|
223
236
|
// ============================================================================
|
|
224
237
|
// Permission Modification
|
|
@@ -231,7 +244,7 @@ export const permissionCheckResultSchema = z.object({
|
|
|
231
244
|
* @param newValue - New value for the factor
|
|
232
245
|
* @returns New context with modified value
|
|
233
246
|
*/
|
|
234
|
-
|
|
247
|
+
function modifyContextCeiling(ctx, factor, newValue) {
|
|
235
248
|
const newCtx = { ...ctx };
|
|
236
249
|
switch (factor) {
|
|
237
250
|
case 'certification_tier':
|
|
@@ -259,7 +272,7 @@ export function modifyContextCeiling(ctx, factor, newValue) {
|
|
|
259
272
|
* @param targetLevel - Desired capability level
|
|
260
273
|
* @returns Map of factors to required values
|
|
261
274
|
*/
|
|
262
|
-
|
|
275
|
+
function calculateRequiredChanges(ctx, targetLevel) {
|
|
263
276
|
const changes = new Map();
|
|
264
277
|
const permission = calculateEffectivePermission(ctx);
|
|
265
278
|
if (permission.level >= targetLevel) {
|
|
@@ -299,11 +312,11 @@ export function calculateRequiredChanges(ctx, targetLevel) {
|
|
|
299
312
|
* @param overrides - Optional overrides
|
|
300
313
|
* @returns Default context with any overrides applied
|
|
301
314
|
*/
|
|
302
|
-
|
|
315
|
+
function createDefaultContext(overrides) {
|
|
303
316
|
return {
|
|
304
|
-
certificationTier: CertificationTier.T0_SANDBOX,
|
|
305
|
-
competenceLevel: CapabilityLevel.L0_OBSERVE,
|
|
306
|
-
runtimeTier: RuntimeTier.T0_SANDBOX,
|
|
317
|
+
certificationTier: tiers_js_1.CertificationTier.T0_SANDBOX,
|
|
318
|
+
competenceLevel: levels_js_1.CapabilityLevel.L0_OBSERVE,
|
|
319
|
+
runtimeTier: tiers_js_1.RuntimeTier.T0_SANDBOX,
|
|
307
320
|
observabilityCeiling: 7,
|
|
308
321
|
contextPolicyCeiling: 7,
|
|
309
322
|
...overrides,
|
|
@@ -314,11 +327,11 @@ export function createDefaultContext(overrides) {
|
|
|
314
327
|
*
|
|
315
328
|
* @returns Context with all ceilings at maximum
|
|
316
329
|
*/
|
|
317
|
-
|
|
330
|
+
function createMaxPermissionContext() {
|
|
318
331
|
return {
|
|
319
|
-
certificationTier: CertificationTier.T7_AUTONOMOUS,
|
|
320
|
-
competenceLevel: CapabilityLevel.L7_AUTONOMOUS,
|
|
321
|
-
runtimeTier: RuntimeTier.T7_AUTONOMOUS,
|
|
332
|
+
certificationTier: tiers_js_1.CertificationTier.T7_AUTONOMOUS,
|
|
333
|
+
competenceLevel: levels_js_1.CapabilityLevel.L7_AUTONOMOUS,
|
|
334
|
+
runtimeTier: tiers_js_1.RuntimeTier.T7_AUTONOMOUS,
|
|
322
335
|
observabilityCeiling: 7,
|
|
323
336
|
contextPolicyCeiling: 7,
|
|
324
337
|
};
|
|
@@ -329,7 +342,7 @@ export function createMaxPermissionContext() {
|
|
|
329
342
|
/**
|
|
330
343
|
* Type guard for EffectivePermissionContext.
|
|
331
344
|
*/
|
|
332
|
-
|
|
345
|
+
function isEffectivePermissionContext(value) {
|
|
333
346
|
return (typeof value === 'object' &&
|
|
334
347
|
value !== null &&
|
|
335
348
|
'certificationTier' in value &&
|
|
@@ -341,7 +354,7 @@ export function isEffectivePermissionContext(value) {
|
|
|
341
354
|
/**
|
|
342
355
|
* Type guard for EffectivePermission.
|
|
343
356
|
*/
|
|
344
|
-
|
|
357
|
+
function isEffectivePermission(value) {
|
|
345
358
|
return (typeof value === 'object' &&
|
|
346
359
|
value !== null &&
|
|
347
360
|
'level' in value &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effective-permission.js","sourceRoot":"","sources":["../../src/aci/effective-permission.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"effective-permission.js","sourceRoot":"","sources":["../../src/aci/effective-permission.ts"],"names":[],"mappings":"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"}
|