@vorionsys/contracts 0.1.0
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/dist/aci/aci-string.d.ts +539 -0
- package/dist/aci/aci-string.d.ts.map +1 -0
- package/dist/aci/aci-string.js +563 -0
- package/dist/aci/aci-string.js.map +1 -0
- package/dist/aci/attestation.d.ts +648 -0
- package/dist/aci/attestation.d.ts.map +1 -0
- package/dist/aci/attestation.js +289 -0
- package/dist/aci/attestation.js.map +1 -0
- package/dist/aci/domains.d.ts +260 -0
- package/dist/aci/domains.d.ts.map +1 -0
- package/dist/aci/domains.js +322 -0
- package/dist/aci/domains.js.map +1 -0
- package/dist/aci/effective-permission.d.ts +371 -0
- package/dist/aci/effective-permission.d.ts.map +1 -0
- package/dist/aci/effective-permission.js +351 -0
- package/dist/aci/effective-permission.js.map +1 -0
- package/dist/aci/identity.d.ts +1100 -0
- package/dist/aci/identity.d.ts.map +1 -0
- package/dist/aci/identity.js +328 -0
- package/dist/aci/identity.js.map +1 -0
- package/dist/aci/index.d.ts +67 -0
- package/dist/aci/index.d.ts.map +1 -0
- package/dist/aci/index.js +157 -0
- package/dist/aci/index.js.map +1 -0
- package/dist/aci/jwt-claims.d.ts +756 -0
- package/dist/aci/jwt-claims.d.ts.map +1 -0
- package/dist/aci/jwt-claims.js +335 -0
- package/dist/aci/jwt-claims.js.map +1 -0
- package/dist/aci/levels.d.ts +279 -0
- package/dist/aci/levels.d.ts.map +1 -0
- package/dist/aci/levels.js +467 -0
- package/dist/aci/levels.js.map +1 -0
- package/dist/aci/mapping.d.ts +291 -0
- package/dist/aci/mapping.d.ts.map +1 -0
- package/dist/aci/mapping.js +427 -0
- package/dist/aci/mapping.js.map +1 -0
- package/dist/aci/skills.d.ts +314 -0
- package/dist/aci/skills.d.ts.map +1 -0
- package/dist/aci/skills.js +404 -0
- package/dist/aci/skills.js.map +1 -0
- package/dist/aci/tiers.d.ts +403 -0
- package/dist/aci/tiers.d.ts.map +1 -0
- package/dist/aci/tiers.js +659 -0
- package/dist/aci/tiers.js.map +1 -0
- package/dist/canonical/agent.d.ts +796 -0
- package/dist/canonical/agent.d.ts.map +1 -0
- package/dist/canonical/agent.js +527 -0
- package/dist/canonical/agent.js.map +1 -0
- package/dist/canonical/governance.d.ts +905 -0
- package/dist/canonical/governance.d.ts.map +1 -0
- package/dist/canonical/governance.js +454 -0
- package/dist/canonical/governance.js.map +1 -0
- package/dist/canonical/index.d.ts +17 -0
- package/dist/canonical/index.d.ts.map +1 -0
- package/dist/canonical/index.js +21 -0
- package/dist/canonical/index.js.map +1 -0
- package/dist/canonical/intent.d.ts +727 -0
- package/dist/canonical/intent.d.ts.map +1 -0
- package/dist/canonical/intent.js +203 -0
- package/dist/canonical/intent.js.map +1 -0
- package/dist/canonical/risk-level.d.ts +344 -0
- package/dist/canonical/risk-level.d.ts.map +1 -0
- package/dist/canonical/risk-level.js +472 -0
- package/dist/canonical/risk-level.js.map +1 -0
- package/dist/canonical/trust-band.d.ts +239 -0
- package/dist/canonical/trust-band.d.ts.map +1 -0
- package/dist/canonical/trust-band.js +298 -0
- package/dist/canonical/trust-band.js.map +1 -0
- package/dist/canonical/trust-score.d.ts +301 -0
- package/dist/canonical/trust-score.d.ts.map +1 -0
- package/dist/canonical/trust-score.js +390 -0
- package/dist/canonical/trust-score.js.map +1 -0
- package/dist/canonical/trust-signal.d.ts +617 -0
- package/dist/canonical/trust-signal.d.ts.map +1 -0
- package/dist/canonical/trust-signal.js +355 -0
- package/dist/canonical/trust-signal.js.map +1 -0
- package/dist/canonical/validation.d.ts +231 -0
- package/dist/canonical/validation.d.ts.map +1 -0
- package/dist/canonical/validation.js +558 -0
- package/dist/canonical/validation.js.map +1 -0
- package/dist/common/index.d.ts +7 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +7 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/primitives.d.ts +56 -0
- package/dist/common/primitives.d.ts.map +1 -0
- package/dist/common/primitives.js +70 -0
- package/dist/common/primitives.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/v2/canary-probe.d.ts +201 -0
- package/dist/v2/canary-probe.d.ts.map +1 -0
- package/dist/v2/canary-probe.js +99 -0
- package/dist/v2/canary-probe.js.map +1 -0
- package/dist/v2/component.d.ts +132 -0
- package/dist/v2/component.d.ts.map +1 -0
- package/dist/v2/component.js +5 -0
- package/dist/v2/component.js.map +1 -0
- package/dist/v2/decision.d.ts +310 -0
- package/dist/v2/decision.d.ts.map +1 -0
- package/dist/v2/decision.js +21 -0
- package/dist/v2/decision.js.map +1 -0
- package/dist/v2/enums.d.ts +185 -0
- package/dist/v2/enums.d.ts.map +1 -0
- package/dist/v2/enums.js +203 -0
- package/dist/v2/enums.js.map +1 -0
- package/dist/v2/evidence.d.ts +368 -0
- package/dist/v2/evidence.d.ts.map +1 -0
- package/dist/v2/evidence.js +152 -0
- package/dist/v2/evidence.js.map +1 -0
- package/dist/v2/execution.d.ts +190 -0
- package/dist/v2/execution.d.ts.map +1 -0
- package/dist/v2/execution.js +5 -0
- package/dist/v2/execution.js.map +1 -0
- package/dist/v2/index.d.ts +19 -0
- package/dist/v2/index.d.ts.map +1 -0
- package/dist/v2/index.js +32 -0
- package/dist/v2/index.js.map +1 -0
- package/dist/v2/intent.d.ts +89 -0
- package/dist/v2/intent.d.ts.map +1 -0
- package/dist/v2/intent.js +5 -0
- package/dist/v2/intent.js.map +1 -0
- package/dist/v2/policy-bundle.d.ts +166 -0
- package/dist/v2/policy-bundle.d.ts.map +1 -0
- package/dist/v2/policy-bundle.js +20 -0
- package/dist/v2/policy-bundle.js.map +1 -0
- package/dist/v2/pre-action-gate.d.ts +185 -0
- package/dist/v2/pre-action-gate.d.ts.map +1 -0
- package/dist/v2/pre-action-gate.js +64 -0
- package/dist/v2/pre-action-gate.js.map +1 -0
- package/dist/v2/proof-event.d.ts +201 -0
- package/dist/v2/proof-event.d.ts.map +1 -0
- package/dist/v2/proof-event.js +5 -0
- package/dist/v2/proof-event.js.map +1 -0
- package/dist/v2/retention.d.ts +329 -0
- package/dist/v2/retention.d.ts.map +1 -0
- package/dist/v2/retention.js +162 -0
- package/dist/v2/retention.js.map +1 -0
- package/dist/v2/trust-delta.d.ts +119 -0
- package/dist/v2/trust-delta.d.ts.map +1 -0
- package/dist/v2/trust-delta.js +28 -0
- package/dist/v2/trust-delta.js.map +1 -0
- package/dist/v2/trust-profile.d.ts +337 -0
- package/dist/v2/trust-profile.d.ts.map +1 -0
- package/dist/v2/trust-profile.js +96 -0
- package/dist/v2/trust-profile.js.map +1 -0
- package/dist/validators/decision.d.ts +430 -0
- package/dist/validators/decision.d.ts.map +1 -0
- package/dist/validators/decision.js +61 -0
- package/dist/validators/decision.js.map +1 -0
- package/dist/validators/enums.d.ts +24 -0
- package/dist/validators/enums.d.ts.map +1 -0
- package/dist/validators/enums.js +24 -0
- package/dist/validators/enums.js.map +1 -0
- package/dist/validators/index.d.ts +30 -0
- package/dist/validators/index.d.ts.map +1 -0
- package/dist/validators/index.js +42 -0
- package/dist/validators/index.js.map +1 -0
- package/dist/validators/intent.d.ts +229 -0
- package/dist/validators/intent.d.ts.map +1 -0
- package/dist/validators/intent.js +47 -0
- package/dist/validators/intent.js.map +1 -0
- package/dist/validators/proof-event.d.ts +981 -0
- package/dist/validators/proof-event.d.ts.map +1 -0
- package/dist/validators/proof-event.js +134 -0
- package/dist/validators/proof-event.js.map +1 -0
- package/dist/validators/trust-profile.d.ts +350 -0
- package/dist/validators/trust-profile.d.ts.map +1 -0
- package/dist/validators/trust-profile.js +65 -0
- package/dist/validators/trust-profile.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Canonical TrustBand definitions for the Vorion Platform.
|
|
3
|
+
*
|
|
4
|
+
* This file provides the authoritative definition for trust bands (T0-T7),
|
|
5
|
+
* including thresholds, conversion utilities, and Zod validation schemas.
|
|
6
|
+
*
|
|
7
|
+
* Trust bands represent discrete levels of autonomy granted to agents based
|
|
8
|
+
* on their accumulated trust score. The system uses an 8-tier model with
|
|
9
|
+
* variable divisions on a 0-1000 scale.
|
|
10
|
+
*
|
|
11
|
+
* @module @vorion/contracts/canonical/trust-band
|
|
12
|
+
*/
|
|
13
|
+
import { z } from 'zod';
|
|
14
|
+
/**
|
|
15
|
+
* Trust bands representing agent autonomy levels.
|
|
16
|
+
*
|
|
17
|
+
* The 8-tier system (T0-T7) maps trust scores to discrete autonomy levels:
|
|
18
|
+
* - T0: Sandbox - Isolated testing, no real operations
|
|
19
|
+
* - T1: Observed - Under active observation and supervision
|
|
20
|
+
* - T2: Provisional - Limited operations with strict constraints
|
|
21
|
+
* - T3: Monitored - Continuous monitoring with expanding freedom
|
|
22
|
+
* - T4: Standard - Trusted for routine operations
|
|
23
|
+
* - T5: Trusted - Expanded capabilities with minimal oversight
|
|
24
|
+
* - T6: Certified - Independent operation with audit trail
|
|
25
|
+
* - T7: Autonomous - Full autonomy for mission-critical operations
|
|
26
|
+
*
|
|
27
|
+
* @enum {number}
|
|
28
|
+
*/
|
|
29
|
+
export declare enum TrustBand {
|
|
30
|
+
/** Sandbox - Isolated testing environment, no real operations */
|
|
31
|
+
T0_SANDBOX = 0,
|
|
32
|
+
/** Observed - Under active observation and supervision */
|
|
33
|
+
T1_OBSERVED = 1,
|
|
34
|
+
/** Provisional - Limited operations with strict constraints */
|
|
35
|
+
T2_PROVISIONAL = 2,
|
|
36
|
+
/** Monitored - Continuous monitoring with expanding freedom */
|
|
37
|
+
T3_MONITORED = 3,
|
|
38
|
+
/** Standard - Trusted for routine operations */
|
|
39
|
+
T4_STANDARD = 4,
|
|
40
|
+
/** Trusted - Expanded capabilities with minimal oversight */
|
|
41
|
+
T5_TRUSTED = 5,
|
|
42
|
+
/** Certified - Independent operation with audit trail */
|
|
43
|
+
T6_CERTIFIED = 6,
|
|
44
|
+
/** Autonomous - Full autonomy for mission-critical operations */
|
|
45
|
+
T7_AUTONOMOUS = 7
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Threshold configuration for a single trust band.
|
|
49
|
+
*
|
|
50
|
+
* Defines the score range and human-readable label for a trust band.
|
|
51
|
+
*/
|
|
52
|
+
export interface TrustBandThreshold {
|
|
53
|
+
/** Minimum score (inclusive) for this band */
|
|
54
|
+
readonly min: number;
|
|
55
|
+
/** Maximum score (inclusive) for this band */
|
|
56
|
+
readonly max: number;
|
|
57
|
+
/** Human-readable label for display */
|
|
58
|
+
readonly label: string;
|
|
59
|
+
/** Brief description of the autonomy level */
|
|
60
|
+
readonly description: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Trust band thresholds mapping each band to its score range.
|
|
64
|
+
*
|
|
65
|
+
* Uses a 0-1000 scale with variable divisions that tighten at higher tiers
|
|
66
|
+
* to reflect the increasing difficulty of achieving higher trust levels.
|
|
67
|
+
*
|
|
68
|
+
* @constant
|
|
69
|
+
*/
|
|
70
|
+
export declare const TRUST_BAND_THRESHOLDS: Readonly<Record<TrustBand, TrustBandThreshold>>;
|
|
71
|
+
/**
|
|
72
|
+
* Array of all trust bands in ascending order.
|
|
73
|
+
*
|
|
74
|
+
* Useful for iteration and mapping operations.
|
|
75
|
+
*/
|
|
76
|
+
export declare const TRUST_BANDS: readonly [TrustBand.T0_SANDBOX, TrustBand.T1_OBSERVED, TrustBand.T2_PROVISIONAL, TrustBand.T3_MONITORED, TrustBand.T4_STANDARD, TrustBand.T5_TRUSTED, TrustBand.T6_CERTIFIED, TrustBand.T7_AUTONOMOUS];
|
|
77
|
+
/**
|
|
78
|
+
* Converts a trust score (0-1000) to its corresponding trust band.
|
|
79
|
+
*
|
|
80
|
+
* Uses the canonical threshold boundaries defined in TRUST_BAND_THRESHOLDS.
|
|
81
|
+
*
|
|
82
|
+
* @param score - Trust score on 0-1000 scale
|
|
83
|
+
* @returns The corresponding TrustBand
|
|
84
|
+
* @throws {Error} If score is outside valid range (0-1000)
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* scoreToTrustBand(0); // TrustBand.T0_SANDBOX
|
|
89
|
+
* scoreToTrustBand(500); // TrustBand.T3_MONITORED
|
|
90
|
+
* scoreToTrustBand(975); // TrustBand.T7_AUTONOMOUS
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
export declare function scoreToTrustBand(score: number): TrustBand;
|
|
94
|
+
/**
|
|
95
|
+
* Converts a trust band to its midpoint score.
|
|
96
|
+
*
|
|
97
|
+
* Returns the midpoint of the band's score range, useful for
|
|
98
|
+
* initializing agents at a given trust level.
|
|
99
|
+
*
|
|
100
|
+
* @param band - The trust band to convert
|
|
101
|
+
* @returns The midpoint score for the band (0-1000 scale)
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```typescript
|
|
105
|
+
* trustBandToScore(TrustBand.T0_SANDBOX); // 100
|
|
106
|
+
* trustBandToScore(TrustBand.T4_STANDARD); // 725
|
|
107
|
+
* trustBandToScore(TrustBand.T7_AUTONOMOUS); // 976
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
export declare function trustBandToScore(band: TrustBand): number;
|
|
111
|
+
/**
|
|
112
|
+
* Gets the minimum score required to achieve a trust band.
|
|
113
|
+
*
|
|
114
|
+
* @param band - The target trust band
|
|
115
|
+
* @returns The minimum score needed to reach this band
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```typescript
|
|
119
|
+
* getTrustBandMinScore(TrustBand.T4_STANDARD); // 650
|
|
120
|
+
* getTrustBandMinScore(TrustBand.T7_AUTONOMOUS); // 951
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
export declare function getTrustBandMinScore(band: TrustBand): number;
|
|
124
|
+
/**
|
|
125
|
+
* Gets the maximum score for a trust band.
|
|
126
|
+
*
|
|
127
|
+
* @param band - The target trust band
|
|
128
|
+
* @returns The maximum score within this band
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* ```typescript
|
|
132
|
+
* getTrustBandMaxScore(TrustBand.T0_SANDBOX); // 199
|
|
133
|
+
* getTrustBandMaxScore(TrustBand.T7_AUTONOMOUS); // 1000
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
export declare function getTrustBandMaxScore(band: TrustBand): number;
|
|
137
|
+
/**
|
|
138
|
+
* Gets the human-readable label for a trust band.
|
|
139
|
+
*
|
|
140
|
+
* @param band - The trust band
|
|
141
|
+
* @returns Human-readable label string
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```typescript
|
|
145
|
+
* getTrustBandLabel(TrustBand.T4_STANDARD); // "Standard"
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
export declare function getTrustBandLabel(band: TrustBand): string;
|
|
149
|
+
/**
|
|
150
|
+
* Gets the description for a trust band.
|
|
151
|
+
*
|
|
152
|
+
* @param band - The trust band
|
|
153
|
+
* @returns Description of the autonomy level
|
|
154
|
+
*/
|
|
155
|
+
export declare function getTrustBandDescription(band: TrustBand): string;
|
|
156
|
+
/**
|
|
157
|
+
* Checks if a given band is higher (more trusted) than another.
|
|
158
|
+
*
|
|
159
|
+
* @param band - The band to check
|
|
160
|
+
* @param otherBand - The band to compare against
|
|
161
|
+
* @returns True if band is higher than otherBand
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* ```typescript
|
|
165
|
+
* isTrustBandHigher(TrustBand.T5_TRUSTED, TrustBand.T2_PROVISIONAL); // true
|
|
166
|
+
* isTrustBandHigher(TrustBand.T1_OBSERVED, TrustBand.T4_STANDARD); // false
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
169
|
+
export declare function isTrustBandHigher(band: TrustBand, otherBand: TrustBand): boolean;
|
|
170
|
+
/**
|
|
171
|
+
* Checks if a given band meets or exceeds a required minimum band.
|
|
172
|
+
*
|
|
173
|
+
* @param band - The band to check
|
|
174
|
+
* @param requiredBand - The minimum required band
|
|
175
|
+
* @returns True if band meets or exceeds the requirement
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* ```typescript
|
|
179
|
+
* meetsMinimumTrustBand(TrustBand.T5_TRUSTED, TrustBand.T4_STANDARD); // true
|
|
180
|
+
* meetsMinimumTrustBand(TrustBand.T2_PROVISIONAL, TrustBand.T4_STANDARD); // false
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
export declare function meetsMinimumTrustBand(band: TrustBand, requiredBand: TrustBand): boolean;
|
|
184
|
+
/**
|
|
185
|
+
* Zod schema for TrustBand enum validation.
|
|
186
|
+
*
|
|
187
|
+
* Validates that a value is a valid TrustBand enum member.
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* ```typescript
|
|
191
|
+
* trustBandSchema.parse(TrustBand.T4_STANDARD); // Success
|
|
192
|
+
* trustBandSchema.parse(4); // Success
|
|
193
|
+
* trustBandSchema.parse(8); // Throws ZodError
|
|
194
|
+
* ```
|
|
195
|
+
*/
|
|
196
|
+
export declare const trustBandSchema: z.ZodNativeEnum<typeof TrustBand>;
|
|
197
|
+
/**
|
|
198
|
+
* Zod schema for TrustBandThreshold validation.
|
|
199
|
+
*/
|
|
200
|
+
export declare const trustBandThresholdSchema: z.ZodEffects<z.ZodObject<{
|
|
201
|
+
min: z.ZodNumber;
|
|
202
|
+
max: z.ZodNumber;
|
|
203
|
+
label: z.ZodString;
|
|
204
|
+
description: z.ZodString;
|
|
205
|
+
}, "strip", z.ZodTypeAny, {
|
|
206
|
+
description: string;
|
|
207
|
+
min: number;
|
|
208
|
+
max: number;
|
|
209
|
+
label: string;
|
|
210
|
+
}, {
|
|
211
|
+
description: string;
|
|
212
|
+
min: number;
|
|
213
|
+
max: number;
|
|
214
|
+
label: string;
|
|
215
|
+
}>, {
|
|
216
|
+
description: string;
|
|
217
|
+
min: number;
|
|
218
|
+
max: number;
|
|
219
|
+
label: string;
|
|
220
|
+
}, {
|
|
221
|
+
description: string;
|
|
222
|
+
min: number;
|
|
223
|
+
max: number;
|
|
224
|
+
label: string;
|
|
225
|
+
}>;
|
|
226
|
+
/**
|
|
227
|
+
* Zod schema for validating band comparison requests.
|
|
228
|
+
*/
|
|
229
|
+
export declare const bandComparisonSchema: z.ZodObject<{
|
|
230
|
+
band: z.ZodNativeEnum<typeof TrustBand>;
|
|
231
|
+
otherBand: z.ZodNativeEnum<typeof TrustBand>;
|
|
232
|
+
}, "strip", z.ZodTypeAny, {
|
|
233
|
+
band: TrustBand;
|
|
234
|
+
otherBand: TrustBand;
|
|
235
|
+
}, {
|
|
236
|
+
band: TrustBand;
|
|
237
|
+
otherBand: TrustBand;
|
|
238
|
+
}>;
|
|
239
|
+
//# sourceMappingURL=trust-band.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trust-band.d.ts","sourceRoot":"","sources":["../../src/canonical/trust-band.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;GAcG;AACH,oBAAY,SAAS;IACnB,iEAAiE;IACjE,UAAU,IAAI;IACd,0DAA0D;IAC1D,WAAW,IAAI;IACf,+DAA+D;IAC/D,cAAc,IAAI;IAClB,+DAA+D;IAC/D,YAAY,IAAI;IAChB,gDAAgD;IAChD,WAAW,IAAI;IACf,6DAA6D;IAC7D,UAAU,IAAI;IACd,yDAAyD;IACzD,YAAY,IAAI;IAChB,iEAAiE;IACjE,aAAa,IAAI;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAiDxE,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,WAAW,wMASd,CAAC;AAEX;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAazD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAGxD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAE5D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAE5D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAE/D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAEhF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,GAAG,OAAO,CAEvF;AASD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,mCAE1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;EAQpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;EAG/B,CAAC"}
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Canonical TrustBand definitions for the Vorion Platform.
|
|
3
|
+
*
|
|
4
|
+
* This file provides the authoritative definition for trust bands (T0-T7),
|
|
5
|
+
* including thresholds, conversion utilities, and Zod validation schemas.
|
|
6
|
+
*
|
|
7
|
+
* Trust bands represent discrete levels of autonomy granted to agents based
|
|
8
|
+
* on their accumulated trust score. The system uses an 8-tier model with
|
|
9
|
+
* variable divisions on a 0-1000 scale.
|
|
10
|
+
*
|
|
11
|
+
* @module @vorion/contracts/canonical/trust-band
|
|
12
|
+
*/
|
|
13
|
+
import { z } from 'zod';
|
|
14
|
+
/**
|
|
15
|
+
* Trust bands representing agent autonomy levels.
|
|
16
|
+
*
|
|
17
|
+
* The 8-tier system (T0-T7) maps trust scores to discrete autonomy levels:
|
|
18
|
+
* - T0: Sandbox - Isolated testing, no real operations
|
|
19
|
+
* - T1: Observed - Under active observation and supervision
|
|
20
|
+
* - T2: Provisional - Limited operations with strict constraints
|
|
21
|
+
* - T3: Monitored - Continuous monitoring with expanding freedom
|
|
22
|
+
* - T4: Standard - Trusted for routine operations
|
|
23
|
+
* - T5: Trusted - Expanded capabilities with minimal oversight
|
|
24
|
+
* - T6: Certified - Independent operation with audit trail
|
|
25
|
+
* - T7: Autonomous - Full autonomy for mission-critical operations
|
|
26
|
+
*
|
|
27
|
+
* @enum {number}
|
|
28
|
+
*/
|
|
29
|
+
export var TrustBand;
|
|
30
|
+
(function (TrustBand) {
|
|
31
|
+
/** Sandbox - Isolated testing environment, no real operations */
|
|
32
|
+
TrustBand[TrustBand["T0_SANDBOX"] = 0] = "T0_SANDBOX";
|
|
33
|
+
/** Observed - Under active observation and supervision */
|
|
34
|
+
TrustBand[TrustBand["T1_OBSERVED"] = 1] = "T1_OBSERVED";
|
|
35
|
+
/** Provisional - Limited operations with strict constraints */
|
|
36
|
+
TrustBand[TrustBand["T2_PROVISIONAL"] = 2] = "T2_PROVISIONAL";
|
|
37
|
+
/** Monitored - Continuous monitoring with expanding freedom */
|
|
38
|
+
TrustBand[TrustBand["T3_MONITORED"] = 3] = "T3_MONITORED";
|
|
39
|
+
/** Standard - Trusted for routine operations */
|
|
40
|
+
TrustBand[TrustBand["T4_STANDARD"] = 4] = "T4_STANDARD";
|
|
41
|
+
/** Trusted - Expanded capabilities with minimal oversight */
|
|
42
|
+
TrustBand[TrustBand["T5_TRUSTED"] = 5] = "T5_TRUSTED";
|
|
43
|
+
/** Certified - Independent operation with audit trail */
|
|
44
|
+
TrustBand[TrustBand["T6_CERTIFIED"] = 6] = "T6_CERTIFIED";
|
|
45
|
+
/** Autonomous - Full autonomy for mission-critical operations */
|
|
46
|
+
TrustBand[TrustBand["T7_AUTONOMOUS"] = 7] = "T7_AUTONOMOUS";
|
|
47
|
+
})(TrustBand || (TrustBand = {}));
|
|
48
|
+
/**
|
|
49
|
+
* Trust band thresholds mapping each band to its score range.
|
|
50
|
+
*
|
|
51
|
+
* Uses a 0-1000 scale with variable divisions that tighten at higher tiers
|
|
52
|
+
* to reflect the increasing difficulty of achieving higher trust levels.
|
|
53
|
+
*
|
|
54
|
+
* @constant
|
|
55
|
+
*/
|
|
56
|
+
export const TRUST_BAND_THRESHOLDS = {
|
|
57
|
+
[TrustBand.T0_SANDBOX]: {
|
|
58
|
+
min: 0,
|
|
59
|
+
max: 199,
|
|
60
|
+
label: 'Sandbox',
|
|
61
|
+
description: 'Isolated testing environment - no real operations allowed',
|
|
62
|
+
},
|
|
63
|
+
[TrustBand.T1_OBSERVED]: {
|
|
64
|
+
min: 200,
|
|
65
|
+
max: 349,
|
|
66
|
+
label: 'Observed',
|
|
67
|
+
description: 'Under active observation - actions are supervised',
|
|
68
|
+
},
|
|
69
|
+
[TrustBand.T2_PROVISIONAL]: {
|
|
70
|
+
min: 350,
|
|
71
|
+
max: 499,
|
|
72
|
+
label: 'Provisional',
|
|
73
|
+
description: 'Limited operations - strict constraints and guardrails',
|
|
74
|
+
},
|
|
75
|
+
[TrustBand.T3_MONITORED]: {
|
|
76
|
+
min: 500,
|
|
77
|
+
max: 649,
|
|
78
|
+
label: 'Monitored',
|
|
79
|
+
description: 'Continuous monitoring - expanding operational freedom',
|
|
80
|
+
},
|
|
81
|
+
[TrustBand.T4_STANDARD]: {
|
|
82
|
+
min: 650,
|
|
83
|
+
max: 799,
|
|
84
|
+
label: 'Standard',
|
|
85
|
+
description: 'Standard autonomy - trusted for routine operations',
|
|
86
|
+
},
|
|
87
|
+
[TrustBand.T5_TRUSTED]: {
|
|
88
|
+
min: 800,
|
|
89
|
+
max: 875,
|
|
90
|
+
label: 'Trusted',
|
|
91
|
+
description: 'Expanded capabilities - minimal oversight required',
|
|
92
|
+
},
|
|
93
|
+
[TrustBand.T6_CERTIFIED]: {
|
|
94
|
+
min: 876,
|
|
95
|
+
max: 950,
|
|
96
|
+
label: 'Certified',
|
|
97
|
+
description: 'Independent operation - comprehensive audit trail',
|
|
98
|
+
},
|
|
99
|
+
[TrustBand.T7_AUTONOMOUS]: {
|
|
100
|
+
min: 951,
|
|
101
|
+
max: 1000,
|
|
102
|
+
label: 'Autonomous',
|
|
103
|
+
description: 'Full autonomy - mission-critical with autonomous decision-making',
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Array of all trust bands in ascending order.
|
|
108
|
+
*
|
|
109
|
+
* Useful for iteration and mapping operations.
|
|
110
|
+
*/
|
|
111
|
+
export const TRUST_BANDS = [
|
|
112
|
+
TrustBand.T0_SANDBOX,
|
|
113
|
+
TrustBand.T1_OBSERVED,
|
|
114
|
+
TrustBand.T2_PROVISIONAL,
|
|
115
|
+
TrustBand.T3_MONITORED,
|
|
116
|
+
TrustBand.T4_STANDARD,
|
|
117
|
+
TrustBand.T5_TRUSTED,
|
|
118
|
+
TrustBand.T6_CERTIFIED,
|
|
119
|
+
TrustBand.T7_AUTONOMOUS,
|
|
120
|
+
];
|
|
121
|
+
/**
|
|
122
|
+
* Converts a trust score (0-1000) to its corresponding trust band.
|
|
123
|
+
*
|
|
124
|
+
* Uses the canonical threshold boundaries defined in TRUST_BAND_THRESHOLDS.
|
|
125
|
+
*
|
|
126
|
+
* @param score - Trust score on 0-1000 scale
|
|
127
|
+
* @returns The corresponding TrustBand
|
|
128
|
+
* @throws {Error} If score is outside valid range (0-1000)
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* ```typescript
|
|
132
|
+
* scoreToTrustBand(0); // TrustBand.T0_SANDBOX
|
|
133
|
+
* scoreToTrustBand(500); // TrustBand.T3_MONITORED
|
|
134
|
+
* scoreToTrustBand(975); // TrustBand.T7_AUTONOMOUS
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
export function scoreToTrustBand(score) {
|
|
138
|
+
if (score < 0 || score > 1000) {
|
|
139
|
+
throw new Error(`Trust score must be between 0 and 1000, got ${score}`);
|
|
140
|
+
}
|
|
141
|
+
if (score < 200)
|
|
142
|
+
return TrustBand.T0_SANDBOX;
|
|
143
|
+
if (score < 350)
|
|
144
|
+
return TrustBand.T1_OBSERVED;
|
|
145
|
+
if (score < 500)
|
|
146
|
+
return TrustBand.T2_PROVISIONAL;
|
|
147
|
+
if (score < 650)
|
|
148
|
+
return TrustBand.T3_MONITORED;
|
|
149
|
+
if (score < 800)
|
|
150
|
+
return TrustBand.T4_STANDARD;
|
|
151
|
+
if (score < 876)
|
|
152
|
+
return TrustBand.T5_TRUSTED;
|
|
153
|
+
if (score < 951)
|
|
154
|
+
return TrustBand.T6_CERTIFIED;
|
|
155
|
+
return TrustBand.T7_AUTONOMOUS;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Converts a trust band to its midpoint score.
|
|
159
|
+
*
|
|
160
|
+
* Returns the midpoint of the band's score range, useful for
|
|
161
|
+
* initializing agents at a given trust level.
|
|
162
|
+
*
|
|
163
|
+
* @param band - The trust band to convert
|
|
164
|
+
* @returns The midpoint score for the band (0-1000 scale)
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```typescript
|
|
168
|
+
* trustBandToScore(TrustBand.T0_SANDBOX); // 100
|
|
169
|
+
* trustBandToScore(TrustBand.T4_STANDARD); // 725
|
|
170
|
+
* trustBandToScore(TrustBand.T7_AUTONOMOUS); // 976
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
export function trustBandToScore(band) {
|
|
174
|
+
const threshold = TRUST_BAND_THRESHOLDS[band];
|
|
175
|
+
return Math.round((threshold.min + threshold.max) / 2);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Gets the minimum score required to achieve a trust band.
|
|
179
|
+
*
|
|
180
|
+
* @param band - The target trust band
|
|
181
|
+
* @returns The minimum score needed to reach this band
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
* ```typescript
|
|
185
|
+
* getTrustBandMinScore(TrustBand.T4_STANDARD); // 650
|
|
186
|
+
* getTrustBandMinScore(TrustBand.T7_AUTONOMOUS); // 951
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
export function getTrustBandMinScore(band) {
|
|
190
|
+
return TRUST_BAND_THRESHOLDS[band].min;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Gets the maximum score for a trust band.
|
|
194
|
+
*
|
|
195
|
+
* @param band - The target trust band
|
|
196
|
+
* @returns The maximum score within this band
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* ```typescript
|
|
200
|
+
* getTrustBandMaxScore(TrustBand.T0_SANDBOX); // 199
|
|
201
|
+
* getTrustBandMaxScore(TrustBand.T7_AUTONOMOUS); // 1000
|
|
202
|
+
* ```
|
|
203
|
+
*/
|
|
204
|
+
export function getTrustBandMaxScore(band) {
|
|
205
|
+
return TRUST_BAND_THRESHOLDS[band].max;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Gets the human-readable label for a trust band.
|
|
209
|
+
*
|
|
210
|
+
* @param band - The trust band
|
|
211
|
+
* @returns Human-readable label string
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* ```typescript
|
|
215
|
+
* getTrustBandLabel(TrustBand.T4_STANDARD); // "Standard"
|
|
216
|
+
* ```
|
|
217
|
+
*/
|
|
218
|
+
export function getTrustBandLabel(band) {
|
|
219
|
+
return TRUST_BAND_THRESHOLDS[band].label;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Gets the description for a trust band.
|
|
223
|
+
*
|
|
224
|
+
* @param band - The trust band
|
|
225
|
+
* @returns Description of the autonomy level
|
|
226
|
+
*/
|
|
227
|
+
export function getTrustBandDescription(band) {
|
|
228
|
+
return TRUST_BAND_THRESHOLDS[band].description;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Checks if a given band is higher (more trusted) than another.
|
|
232
|
+
*
|
|
233
|
+
* @param band - The band to check
|
|
234
|
+
* @param otherBand - The band to compare against
|
|
235
|
+
* @returns True if band is higher than otherBand
|
|
236
|
+
*
|
|
237
|
+
* @example
|
|
238
|
+
* ```typescript
|
|
239
|
+
* isTrustBandHigher(TrustBand.T5_TRUSTED, TrustBand.T2_PROVISIONAL); // true
|
|
240
|
+
* isTrustBandHigher(TrustBand.T1_OBSERVED, TrustBand.T4_STANDARD); // false
|
|
241
|
+
* ```
|
|
242
|
+
*/
|
|
243
|
+
export function isTrustBandHigher(band, otherBand) {
|
|
244
|
+
return band > otherBand;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Checks if a given band meets or exceeds a required minimum band.
|
|
248
|
+
*
|
|
249
|
+
* @param band - The band to check
|
|
250
|
+
* @param requiredBand - The minimum required band
|
|
251
|
+
* @returns True if band meets or exceeds the requirement
|
|
252
|
+
*
|
|
253
|
+
* @example
|
|
254
|
+
* ```typescript
|
|
255
|
+
* meetsMinimumTrustBand(TrustBand.T5_TRUSTED, TrustBand.T4_STANDARD); // true
|
|
256
|
+
* meetsMinimumTrustBand(TrustBand.T2_PROVISIONAL, TrustBand.T4_STANDARD); // false
|
|
257
|
+
* ```
|
|
258
|
+
*/
|
|
259
|
+
export function meetsMinimumTrustBand(band, requiredBand) {
|
|
260
|
+
return band >= requiredBand;
|
|
261
|
+
}
|
|
262
|
+
// Note: isTrustBand type guard is exported from canonical/validation.ts to avoid duplication
|
|
263
|
+
// Note: trustScoreSchema is exported from canonical/trust-score.ts with branded type transformation
|
|
264
|
+
// ============================================================================
|
|
265
|
+
// Zod Schemas
|
|
266
|
+
// ============================================================================
|
|
267
|
+
/**
|
|
268
|
+
* Zod schema for TrustBand enum validation.
|
|
269
|
+
*
|
|
270
|
+
* Validates that a value is a valid TrustBand enum member.
|
|
271
|
+
*
|
|
272
|
+
* @example
|
|
273
|
+
* ```typescript
|
|
274
|
+
* trustBandSchema.parse(TrustBand.T4_STANDARD); // Success
|
|
275
|
+
* trustBandSchema.parse(4); // Success
|
|
276
|
+
* trustBandSchema.parse(8); // Throws ZodError
|
|
277
|
+
* ```
|
|
278
|
+
*/
|
|
279
|
+
export const trustBandSchema = z.nativeEnum(TrustBand, {
|
|
280
|
+
errorMap: () => ({ message: 'Invalid trust band. Must be T0-T7 (0-7).' }),
|
|
281
|
+
});
|
|
282
|
+
/**
|
|
283
|
+
* Zod schema for TrustBandThreshold validation.
|
|
284
|
+
*/
|
|
285
|
+
export const trustBandThresholdSchema = z.object({
|
|
286
|
+
min: z.number().int().min(0).max(1000),
|
|
287
|
+
max: z.number().int().min(0).max(1000),
|
|
288
|
+
label: z.string().min(1),
|
|
289
|
+
description: z.string().min(1),
|
|
290
|
+
}).refine((data) => data.min <= data.max, { message: 'min must be less than or equal to max' });
|
|
291
|
+
/**
|
|
292
|
+
* Zod schema for validating band comparison requests.
|
|
293
|
+
*/
|
|
294
|
+
export const bandComparisonSchema = z.object({
|
|
295
|
+
band: trustBandSchema,
|
|
296
|
+
otherBand: trustBandSchema,
|
|
297
|
+
});
|
|
298
|
+
//# sourceMappingURL=trust-band.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trust-band.js","sourceRoot":"","sources":["../../src/canonical/trust-band.ts"],"names":[],"mappings":"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"}
|