@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,355 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Canonical TrustSignal type definitions for the Vorion Platform.
|
|
3
|
+
*
|
|
4
|
+
* This file provides the authoritative definition for trust signals - events
|
|
5
|
+
* or observations that affect an agent's trust score. It resolves the field
|
|
6
|
+
* optionality conflicts found across packages into a single consistent structure.
|
|
7
|
+
*
|
|
8
|
+
* Trust signals are the atomic inputs to the trust calculation system. They
|
|
9
|
+
* capture behavioral observations, compliance events, credential verifications,
|
|
10
|
+
* and other factors that influence trust.
|
|
11
|
+
*
|
|
12
|
+
* @module @vorion/contracts/canonical/trust-signal
|
|
13
|
+
*/
|
|
14
|
+
import { z } from 'zod';
|
|
15
|
+
// import { trustScoreSchema } from './trust-score.js';
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// Enums and Constants
|
|
18
|
+
// ============================================================================
|
|
19
|
+
/**
|
|
20
|
+
* Types of trust signals that can be recorded.
|
|
21
|
+
*
|
|
22
|
+
* Each type represents a different category of trust-relevant information.
|
|
23
|
+
*
|
|
24
|
+
* @enum {string}
|
|
25
|
+
*/
|
|
26
|
+
export var SignalType;
|
|
27
|
+
(function (SignalType) {
|
|
28
|
+
/** Agent successfully completed an action */
|
|
29
|
+
SignalType["ACTION_SUCCESS"] = "action_success";
|
|
30
|
+
/** Agent failed to complete an action */
|
|
31
|
+
SignalType["ACTION_FAILURE"] = "action_failure";
|
|
32
|
+
/** Agent complied with a policy requirement */
|
|
33
|
+
SignalType["COMPLIANCE_MET"] = "compliance_met";
|
|
34
|
+
/** Agent violated a policy requirement */
|
|
35
|
+
SignalType["COMPLIANCE_VIOLATION"] = "compliance_violation";
|
|
36
|
+
/** Agent's credential was verified */
|
|
37
|
+
SignalType["CREDENTIAL_VERIFIED"] = "credential_verified";
|
|
38
|
+
/** Agent's credential expired or was revoked */
|
|
39
|
+
SignalType["CREDENTIAL_EXPIRED"] = "credential_expired";
|
|
40
|
+
/** Agent exhibited anomalous behavior */
|
|
41
|
+
SignalType["ANOMALY_DETECTED"] = "anomaly_detected";
|
|
42
|
+
/** Manual trust adjustment by administrator */
|
|
43
|
+
SignalType["MANUAL_ADJUSTMENT"] = "manual_adjustment";
|
|
44
|
+
/** Trust decay due to inactivity */
|
|
45
|
+
SignalType["DECAY"] = "decay";
|
|
46
|
+
/** Initial trust assignment for new agent */
|
|
47
|
+
SignalType["INITIAL_TRUST"] = "initial_trust";
|
|
48
|
+
/** Trust transfer from another system */
|
|
49
|
+
SignalType["TRUST_TRANSFER"] = "trust_transfer";
|
|
50
|
+
/** Agent passed a canary probe test */
|
|
51
|
+
SignalType["CANARY_PASSED"] = "canary_passed";
|
|
52
|
+
/** Agent failed a canary probe test */
|
|
53
|
+
SignalType["CANARY_FAILED"] = "canary_failed";
|
|
54
|
+
/** Third-party attestation received */
|
|
55
|
+
SignalType["ATTESTATION"] = "attestation";
|
|
56
|
+
/** Peer review or endorsement */
|
|
57
|
+
SignalType["PEER_ENDORSEMENT"] = "peer_endorsement";
|
|
58
|
+
/** Outcome reversal (provisional success became failure) */
|
|
59
|
+
SignalType["OUTCOME_REVERSAL"] = "outcome_reversal";
|
|
60
|
+
})(SignalType || (SignalType = {}));
|
|
61
|
+
/**
|
|
62
|
+
* Mapping of signal types to their default polarity.
|
|
63
|
+
*/
|
|
64
|
+
export const SIGNAL_TYPE_POLARITY = {
|
|
65
|
+
[SignalType.ACTION_SUCCESS]: 'positive',
|
|
66
|
+
[SignalType.ACTION_FAILURE]: 'negative',
|
|
67
|
+
[SignalType.COMPLIANCE_MET]: 'positive',
|
|
68
|
+
[SignalType.COMPLIANCE_VIOLATION]: 'negative',
|
|
69
|
+
[SignalType.CREDENTIAL_VERIFIED]: 'positive',
|
|
70
|
+
[SignalType.CREDENTIAL_EXPIRED]: 'negative',
|
|
71
|
+
[SignalType.ANOMALY_DETECTED]: 'negative',
|
|
72
|
+
[SignalType.MANUAL_ADJUSTMENT]: 'neutral',
|
|
73
|
+
[SignalType.DECAY]: 'negative',
|
|
74
|
+
[SignalType.INITIAL_TRUST]: 'neutral',
|
|
75
|
+
[SignalType.TRUST_TRANSFER]: 'neutral',
|
|
76
|
+
[SignalType.CANARY_PASSED]: 'positive',
|
|
77
|
+
[SignalType.CANARY_FAILED]: 'negative',
|
|
78
|
+
[SignalType.ATTESTATION]: 'positive',
|
|
79
|
+
[SignalType.PEER_ENDORSEMENT]: 'positive',
|
|
80
|
+
[SignalType.OUTCOME_REVERSAL]: 'negative',
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* All valid signal sources as an array.
|
|
84
|
+
*/
|
|
85
|
+
export const SIGNAL_SOURCES = [
|
|
86
|
+
'a3i',
|
|
87
|
+
'era',
|
|
88
|
+
'atsf',
|
|
89
|
+
'canary',
|
|
90
|
+
'admin',
|
|
91
|
+
'external',
|
|
92
|
+
'compliance',
|
|
93
|
+
'anomaly',
|
|
94
|
+
'peer',
|
|
95
|
+
'scheduler',
|
|
96
|
+
'unknown',
|
|
97
|
+
];
|
|
98
|
+
/**
|
|
99
|
+
* All trust dimensions as an array.
|
|
100
|
+
*/
|
|
101
|
+
export const TRUST_DIMENSIONS = [
|
|
102
|
+
'capability',
|
|
103
|
+
'behavioral',
|
|
104
|
+
'governance',
|
|
105
|
+
'contextual',
|
|
106
|
+
'assurance',
|
|
107
|
+
];
|
|
108
|
+
// ============================================================================
|
|
109
|
+
// Utility Functions
|
|
110
|
+
// ============================================================================
|
|
111
|
+
/**
|
|
112
|
+
* Gets the default polarity for a signal type.
|
|
113
|
+
*
|
|
114
|
+
* @param type - Signal type
|
|
115
|
+
* @returns Polarity of the signal type
|
|
116
|
+
*/
|
|
117
|
+
export function getSignalPolarity(type) {
|
|
118
|
+
return SIGNAL_TYPE_POLARITY[type];
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Checks if a signal type is positive for trust.
|
|
122
|
+
*
|
|
123
|
+
* @param type - Signal type
|
|
124
|
+
* @returns True if the signal type is positive
|
|
125
|
+
*/
|
|
126
|
+
export function isPositiveSignal(type) {
|
|
127
|
+
return SIGNAL_TYPE_POLARITY[type] === 'positive';
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Checks if a signal type is negative for trust.
|
|
131
|
+
*
|
|
132
|
+
* @param type - Signal type
|
|
133
|
+
* @returns True if the signal type is negative
|
|
134
|
+
*/
|
|
135
|
+
export function isNegativeSignal(type) {
|
|
136
|
+
return SIGNAL_TYPE_POLARITY[type] === 'negative';
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Calculates the effective impact of a signal.
|
|
140
|
+
*
|
|
141
|
+
* Applies weight, confidence, and magnitude multiplier to base impact.
|
|
142
|
+
*
|
|
143
|
+
* @param signal - Trust signal
|
|
144
|
+
* @returns Calculated effective impact value
|
|
145
|
+
*/
|
|
146
|
+
export function calculateEffectiveImpact(signal) {
|
|
147
|
+
const { impact, weight = 1.0 } = signal;
|
|
148
|
+
const { baseImpact, magnitudeMultiplier = 1.0, confidence = 1.0 } = impact;
|
|
149
|
+
return baseImpact * weight * magnitudeMultiplier * confidence;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Checks if a signal has expired.
|
|
153
|
+
*
|
|
154
|
+
* @param signal - Trust signal to check
|
|
155
|
+
* @param now - Current time (defaults to now)
|
|
156
|
+
* @returns True if signal has expired
|
|
157
|
+
*/
|
|
158
|
+
export function isSignalExpired(signal, now = new Date()) {
|
|
159
|
+
if (!signal.expiresAt)
|
|
160
|
+
return false;
|
|
161
|
+
return signal.expiresAt < now;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Filters expired signals from an array.
|
|
165
|
+
*
|
|
166
|
+
* @param signals - Array of signals to filter
|
|
167
|
+
* @param now - Current time (defaults to now)
|
|
168
|
+
* @returns Array of non-expired signals
|
|
169
|
+
*/
|
|
170
|
+
export function filterExpiredSignals(signals, now = new Date()) {
|
|
171
|
+
return signals.filter((s) => !isSignalExpired(s, now));
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Aggregates signals for a time period.
|
|
175
|
+
*
|
|
176
|
+
* @param signals - Array of signals to aggregate
|
|
177
|
+
* @param agentId - Agent ID
|
|
178
|
+
* @param periodStart - Period start time
|
|
179
|
+
* @param periodEnd - Period end time
|
|
180
|
+
* @returns Aggregated signal statistics
|
|
181
|
+
*/
|
|
182
|
+
export function aggregateSignals(signals, agentId, periodStart, periodEnd) {
|
|
183
|
+
const periodSignals = signals.filter((s) => s.agentId === agentId &&
|
|
184
|
+
s.timestamp >= periodStart &&
|
|
185
|
+
s.timestamp <= periodEnd);
|
|
186
|
+
const byType = {};
|
|
187
|
+
const bySource = {};
|
|
188
|
+
let netImpact = 0;
|
|
189
|
+
let positiveImpact = 0;
|
|
190
|
+
let negativeImpact = 0;
|
|
191
|
+
for (const signal of periodSignals) {
|
|
192
|
+
byType[signal.type] = (byType[signal.type] || 0) + 1;
|
|
193
|
+
bySource[signal.source] = (bySource[signal.source] || 0) + 1;
|
|
194
|
+
const impact = calculateEffectiveImpact(signal);
|
|
195
|
+
netImpact += impact;
|
|
196
|
+
if (impact > 0)
|
|
197
|
+
positiveImpact += impact;
|
|
198
|
+
if (impact < 0)
|
|
199
|
+
negativeImpact += impact;
|
|
200
|
+
}
|
|
201
|
+
return {
|
|
202
|
+
agentId,
|
|
203
|
+
periodStart,
|
|
204
|
+
periodEnd,
|
|
205
|
+
signalCount: periodSignals.length,
|
|
206
|
+
byType,
|
|
207
|
+
bySource,
|
|
208
|
+
netImpact,
|
|
209
|
+
positiveImpact,
|
|
210
|
+
negativeImpact,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
// ============================================================================
|
|
214
|
+
// Type Guards
|
|
215
|
+
// ============================================================================
|
|
216
|
+
/**
|
|
217
|
+
* Type guard to check if a value is a valid SignalType.
|
|
218
|
+
*
|
|
219
|
+
* @param value - Value to check
|
|
220
|
+
* @returns True if value is a valid SignalType
|
|
221
|
+
*/
|
|
222
|
+
export function isSignalType(value) {
|
|
223
|
+
return Object.values(SignalType).includes(value);
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Type guard to check if a value is a valid SignalSource.
|
|
227
|
+
*
|
|
228
|
+
* @param value - Value to check
|
|
229
|
+
* @returns True if value is a valid SignalSource
|
|
230
|
+
*/
|
|
231
|
+
export function isSignalSource(value) {
|
|
232
|
+
return SIGNAL_SOURCES.includes(value);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Type guard to check if a value is a valid TrustDimension.
|
|
236
|
+
*
|
|
237
|
+
* @param value - Value to check
|
|
238
|
+
* @returns True if value is a valid TrustDimension
|
|
239
|
+
*/
|
|
240
|
+
export function isTrustDimension(value) {
|
|
241
|
+
return TRUST_DIMENSIONS.includes(value);
|
|
242
|
+
}
|
|
243
|
+
// ============================================================================
|
|
244
|
+
// Zod Schemas
|
|
245
|
+
// ============================================================================
|
|
246
|
+
/**
|
|
247
|
+
* Zod schema for SignalType enum.
|
|
248
|
+
*/
|
|
249
|
+
export const signalTypeSchema = z.nativeEnum(SignalType, {
|
|
250
|
+
errorMap: () => ({ message: 'Invalid signal type' }),
|
|
251
|
+
});
|
|
252
|
+
/**
|
|
253
|
+
* Zod schema for SignalSource.
|
|
254
|
+
*/
|
|
255
|
+
export const signalSourceSchema = z.enum([
|
|
256
|
+
'a3i',
|
|
257
|
+
'era',
|
|
258
|
+
'atsf',
|
|
259
|
+
'canary',
|
|
260
|
+
'admin',
|
|
261
|
+
'external',
|
|
262
|
+
'compliance',
|
|
263
|
+
'anomaly',
|
|
264
|
+
'peer',
|
|
265
|
+
'scheduler',
|
|
266
|
+
'unknown',
|
|
267
|
+
], {
|
|
268
|
+
errorMap: () => ({ message: 'Invalid signal source' }),
|
|
269
|
+
});
|
|
270
|
+
/**
|
|
271
|
+
* Zod schema for TrustDimension.
|
|
272
|
+
*/
|
|
273
|
+
export const trustDimensionSchema = z.enum([
|
|
274
|
+
'capability',
|
|
275
|
+
'behavioral',
|
|
276
|
+
'governance',
|
|
277
|
+
'contextual',
|
|
278
|
+
'assurance',
|
|
279
|
+
], {
|
|
280
|
+
errorMap: () => ({ message: 'Invalid trust dimension' }),
|
|
281
|
+
});
|
|
282
|
+
/**
|
|
283
|
+
* Zod schema for SignalImpact.
|
|
284
|
+
*/
|
|
285
|
+
export const signalImpactSchema = z.object({
|
|
286
|
+
baseImpact: z.number().min(-1000).max(1000),
|
|
287
|
+
dimensions: z.array(trustDimensionSchema).optional(),
|
|
288
|
+
magnitudeMultiplier: z.number().positive().optional(),
|
|
289
|
+
confidence: z.number().min(0).max(1).optional(),
|
|
290
|
+
});
|
|
291
|
+
/**
|
|
292
|
+
* Zod schema for TrustSignal.
|
|
293
|
+
*/
|
|
294
|
+
export const trustSignalSchema = z.object({
|
|
295
|
+
signalId: z.string().uuid(),
|
|
296
|
+
agentId: z.string().min(1),
|
|
297
|
+
tenantId: z.string().min(1),
|
|
298
|
+
type: signalTypeSchema,
|
|
299
|
+
source: signalSourceSchema,
|
|
300
|
+
timestamp: z.coerce.date(),
|
|
301
|
+
impact: signalImpactSchema,
|
|
302
|
+
description: z.string().optional(),
|
|
303
|
+
weight: z.number().min(0).max(1).optional(),
|
|
304
|
+
intentId: z.string().uuid().optional(),
|
|
305
|
+
actionId: z.string().uuid().optional(),
|
|
306
|
+
correlationId: z.string().uuid().optional(),
|
|
307
|
+
expiresAt: z.coerce.date().optional(),
|
|
308
|
+
metadata: z.record(z.unknown()).optional(),
|
|
309
|
+
processed: z.boolean().optional(),
|
|
310
|
+
processedAt: z.coerce.date().optional(),
|
|
311
|
+
deltaId: z.string().uuid().optional(),
|
|
312
|
+
});
|
|
313
|
+
/**
|
|
314
|
+
* Zod schema for TrustSignalSummary.
|
|
315
|
+
*/
|
|
316
|
+
export const trustSignalSummarySchema = z.object({
|
|
317
|
+
signalId: z.string().uuid(),
|
|
318
|
+
agentId: z.string().min(1),
|
|
319
|
+
type: signalTypeSchema,
|
|
320
|
+
source: signalSourceSchema,
|
|
321
|
+
timestamp: z.coerce.date(),
|
|
322
|
+
impactValue: z.number(),
|
|
323
|
+
description: z.string().optional(),
|
|
324
|
+
});
|
|
325
|
+
/**
|
|
326
|
+
* Zod schema for CreateTrustSignalRequest.
|
|
327
|
+
*/
|
|
328
|
+
export const createTrustSignalRequestSchema = z.object({
|
|
329
|
+
agentId: z.string().min(1),
|
|
330
|
+
type: signalTypeSchema,
|
|
331
|
+
source: signalSourceSchema,
|
|
332
|
+
impact: signalImpactSchema,
|
|
333
|
+
description: z.string().optional(),
|
|
334
|
+
weight: z.number().min(0).max(1).optional(),
|
|
335
|
+
intentId: z.string().uuid().optional(),
|
|
336
|
+
actionId: z.string().uuid().optional(),
|
|
337
|
+
correlationId: z.string().uuid().optional(),
|
|
338
|
+
expiresAt: z.coerce.date().optional(),
|
|
339
|
+
metadata: z.record(z.unknown()).optional(),
|
|
340
|
+
});
|
|
341
|
+
/**
|
|
342
|
+
* Zod schema for SignalAggregation.
|
|
343
|
+
*/
|
|
344
|
+
export const signalAggregationSchema = z.object({
|
|
345
|
+
agentId: z.string().min(1),
|
|
346
|
+
periodStart: z.coerce.date(),
|
|
347
|
+
periodEnd: z.coerce.date(),
|
|
348
|
+
signalCount: z.number().int().min(0),
|
|
349
|
+
byType: z.record(signalTypeSchema, z.number().int().min(0)),
|
|
350
|
+
bySource: z.record(signalSourceSchema, z.number().int().min(0)),
|
|
351
|
+
netImpact: z.number(),
|
|
352
|
+
positiveImpact: z.number().min(0),
|
|
353
|
+
negativeImpact: z.number().max(0),
|
|
354
|
+
});
|
|
355
|
+
//# sourceMappingURL=trust-signal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trust-signal.js","sourceRoot":"","sources":["../../src/canonical/trust-signal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical Validation Module
|
|
3
|
+
*
|
|
4
|
+
* Runtime validation functions and type guards for all canonical types
|
|
5
|
+
* in the Vorion Platform.
|
|
6
|
+
*
|
|
7
|
+
* Use these functions to validate data at runtime boundaries (API inputs,
|
|
8
|
+
* external data sources, configuration loading, etc.)
|
|
9
|
+
*
|
|
10
|
+
* @packageDocumentation
|
|
11
|
+
*/
|
|
12
|
+
import { TrustBand, ObservationTier, DataSensitivity, Reversibility, ActionType, ProofEventType, ComponentType, ComponentStatus, ApprovalType } from '../v2/enums.js';
|
|
13
|
+
import { TrustDimensions, TrustWeights, BandThresholds, RiskProfile } from '../v2/trust-profile.js';
|
|
14
|
+
import { TrustDeltaReason } from '../v2/trust-delta.js';
|
|
15
|
+
import { DenialReason } from '../v2/decision.js';
|
|
16
|
+
/**
|
|
17
|
+
* Valid range for trust scores (0-1000 canonical scale)
|
|
18
|
+
*/
|
|
19
|
+
export declare const TRUST_SCORE_RANGE: {
|
|
20
|
+
readonly min: 0;
|
|
21
|
+
readonly max: 1000;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Valid range for trust dimension scores (0-100 percentage scale)
|
|
25
|
+
* Note: Dimensions use 0-100 percentage, composite score uses 0-1000
|
|
26
|
+
*/
|
|
27
|
+
export declare const DIMENSION_SCORE_RANGE: {
|
|
28
|
+
readonly min: 0;
|
|
29
|
+
readonly max: 100;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Valid range for trust weights (must sum to 1.0)
|
|
33
|
+
*/
|
|
34
|
+
export declare const WEIGHT_RANGE: {
|
|
35
|
+
readonly min: 0;
|
|
36
|
+
readonly max: 1;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Custom error class for validation failures
|
|
40
|
+
*/
|
|
41
|
+
export declare class ValidationError extends Error {
|
|
42
|
+
readonly field: string;
|
|
43
|
+
readonly value: unknown;
|
|
44
|
+
readonly expected: string;
|
|
45
|
+
constructor(message: string, field: string, value: unknown, expected: string);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Check if a value is a valid TrustBand
|
|
49
|
+
*/
|
|
50
|
+
export declare function isTrustBand(value: unknown): value is TrustBand;
|
|
51
|
+
/**
|
|
52
|
+
* Check if a value is a valid TrustBand name (string form)
|
|
53
|
+
*/
|
|
54
|
+
export declare function isTrustBandName(value: unknown): value is keyof typeof TrustBand;
|
|
55
|
+
/**
|
|
56
|
+
* Assert that a value is a valid TrustBand
|
|
57
|
+
* @throws ValidationError if invalid
|
|
58
|
+
*/
|
|
59
|
+
export declare function assertValidTrustBand(value: unknown, field?: string): asserts value is TrustBand;
|
|
60
|
+
/**
|
|
61
|
+
* Parse a trust band from string or number
|
|
62
|
+
*/
|
|
63
|
+
export declare function parseTrustBand(value: unknown): TrustBand | null;
|
|
64
|
+
/**
|
|
65
|
+
* Check if a value is a valid trust score (0-100)
|
|
66
|
+
*/
|
|
67
|
+
export declare function isTrustScore(value: unknown): value is number;
|
|
68
|
+
/**
|
|
69
|
+
* Assert that a value is a valid trust score
|
|
70
|
+
* @throws ValidationError if invalid
|
|
71
|
+
*/
|
|
72
|
+
export declare function assertValidTrustScore(value: unknown, field?: string): asserts value is number;
|
|
73
|
+
/**
|
|
74
|
+
* Clamp a trust score to valid range
|
|
75
|
+
*/
|
|
76
|
+
export declare function clampTrustScore(value: number): number;
|
|
77
|
+
/**
|
|
78
|
+
* Round a trust score to specified decimal places
|
|
79
|
+
*/
|
|
80
|
+
export declare function roundTrustScore(value: number, decimals?: number): number;
|
|
81
|
+
/**
|
|
82
|
+
* Check if a value is a valid ObservationTier
|
|
83
|
+
*/
|
|
84
|
+
export declare function isObservationTier(value: unknown): value is ObservationTier;
|
|
85
|
+
/**
|
|
86
|
+
* Assert that a value is a valid ObservationTier
|
|
87
|
+
* @throws ValidationError if invalid
|
|
88
|
+
*/
|
|
89
|
+
export declare function assertValidObservationTier(value: unknown, field?: string): asserts value is ObservationTier;
|
|
90
|
+
/**
|
|
91
|
+
* Get the trust ceiling for an observation tier
|
|
92
|
+
*/
|
|
93
|
+
export declare function getObservationCeiling(tier: ObservationTier): number;
|
|
94
|
+
/**
|
|
95
|
+
* Apply observation ceiling to a trust score
|
|
96
|
+
*/
|
|
97
|
+
export declare function applyObservationCeiling(score: number, tier: ObservationTier): number;
|
|
98
|
+
/**
|
|
99
|
+
* Check if a value is a valid DataSensitivity
|
|
100
|
+
*/
|
|
101
|
+
export declare function isDataSensitivity(value: unknown): value is DataSensitivity;
|
|
102
|
+
/**
|
|
103
|
+
* Assert that a value is a valid DataSensitivity
|
|
104
|
+
* @throws ValidationError if invalid
|
|
105
|
+
*/
|
|
106
|
+
export declare function assertValidDataSensitivity(value: unknown, field?: string): asserts value is DataSensitivity;
|
|
107
|
+
/**
|
|
108
|
+
* Get numeric severity level for data sensitivity (0-3)
|
|
109
|
+
*/
|
|
110
|
+
export declare function getDataSensitivityLevel(sensitivity: DataSensitivity): number;
|
|
111
|
+
/**
|
|
112
|
+
* Check if a value is a valid Reversibility
|
|
113
|
+
*/
|
|
114
|
+
export declare function isReversibility(value: unknown): value is Reversibility;
|
|
115
|
+
/**
|
|
116
|
+
* Assert that a value is a valid Reversibility
|
|
117
|
+
* @throws ValidationError if invalid
|
|
118
|
+
*/
|
|
119
|
+
export declare function assertValidReversibility(value: unknown, field?: string): asserts value is Reversibility;
|
|
120
|
+
/**
|
|
121
|
+
* Check if a value is a valid ActionType
|
|
122
|
+
*/
|
|
123
|
+
export declare function isActionType(value: unknown): value is ActionType;
|
|
124
|
+
/**
|
|
125
|
+
* Assert that a value is a valid ActionType
|
|
126
|
+
* @throws ValidationError if invalid
|
|
127
|
+
*/
|
|
128
|
+
export declare function assertValidActionType(value: unknown, field?: string): asserts value is ActionType;
|
|
129
|
+
/**
|
|
130
|
+
* Check if a value is a valid ProofEventType
|
|
131
|
+
*/
|
|
132
|
+
export declare function isProofEventType(value: unknown): value is ProofEventType;
|
|
133
|
+
/**
|
|
134
|
+
* Assert that a value is a valid ProofEventType
|
|
135
|
+
* @throws ValidationError if invalid
|
|
136
|
+
*/
|
|
137
|
+
export declare function assertValidProofEventType(value: unknown, field?: string): asserts value is ProofEventType;
|
|
138
|
+
/**
|
|
139
|
+
* Check if a value is a valid ComponentType
|
|
140
|
+
*/
|
|
141
|
+
export declare function isComponentType(value: unknown): value is ComponentType;
|
|
142
|
+
/**
|
|
143
|
+
* Assert that a value is a valid ComponentType
|
|
144
|
+
* @throws ValidationError if invalid
|
|
145
|
+
*/
|
|
146
|
+
export declare function assertValidComponentType(value: unknown, field?: string): asserts value is ComponentType;
|
|
147
|
+
/**
|
|
148
|
+
* Check if a value is a valid ComponentStatus
|
|
149
|
+
*/
|
|
150
|
+
export declare function isComponentStatus(value: unknown): value is ComponentStatus;
|
|
151
|
+
/**
|
|
152
|
+
* Assert that a value is a valid ComponentStatus
|
|
153
|
+
* @throws ValidationError if invalid
|
|
154
|
+
*/
|
|
155
|
+
export declare function assertValidComponentStatus(value: unknown, field?: string): asserts value is ComponentStatus;
|
|
156
|
+
/**
|
|
157
|
+
* Check if a value is a valid ApprovalType
|
|
158
|
+
*/
|
|
159
|
+
export declare function isApprovalType(value: unknown): value is ApprovalType;
|
|
160
|
+
/**
|
|
161
|
+
* Assert that a value is a valid ApprovalType
|
|
162
|
+
* @throws ValidationError if invalid
|
|
163
|
+
*/
|
|
164
|
+
export declare function assertValidApprovalType(value: unknown, field?: string): asserts value is ApprovalType;
|
|
165
|
+
/**
|
|
166
|
+
* Check if a value is a valid TrustDeltaReason
|
|
167
|
+
*/
|
|
168
|
+
export declare function isTrustDeltaReason(value: unknown): value is TrustDeltaReason;
|
|
169
|
+
/**
|
|
170
|
+
* Assert that a value is a valid TrustDeltaReason
|
|
171
|
+
* @throws ValidationError if invalid
|
|
172
|
+
*/
|
|
173
|
+
export declare function assertValidTrustDeltaReason(value: unknown, field?: string): asserts value is TrustDeltaReason;
|
|
174
|
+
/**
|
|
175
|
+
* Check if a value is a valid DenialReason
|
|
176
|
+
*/
|
|
177
|
+
export declare function isDenialReason(value: unknown): value is DenialReason;
|
|
178
|
+
/**
|
|
179
|
+
* Assert that a value is a valid DenialReason
|
|
180
|
+
* @throws ValidationError if invalid
|
|
181
|
+
*/
|
|
182
|
+
export declare function assertValidDenialReason(value: unknown, field?: string): asserts value is DenialReason;
|
|
183
|
+
/**
|
|
184
|
+
* Check if a value is a valid RiskProfile
|
|
185
|
+
*/
|
|
186
|
+
export declare function isRiskProfile(value: unknown): value is RiskProfile;
|
|
187
|
+
/**
|
|
188
|
+
* Assert that a value is a valid RiskProfile
|
|
189
|
+
* @throws ValidationError if invalid
|
|
190
|
+
*/
|
|
191
|
+
export declare function assertValidRiskProfile(value: unknown, field?: string): asserts value is RiskProfile;
|
|
192
|
+
/**
|
|
193
|
+
* Check if a value has valid TrustDimensions structure
|
|
194
|
+
*/
|
|
195
|
+
export declare function isTrustDimensions(value: unknown): value is TrustDimensions;
|
|
196
|
+
/**
|
|
197
|
+
* Assert that a value has valid TrustDimensions
|
|
198
|
+
* @throws ValidationError if invalid
|
|
199
|
+
*/
|
|
200
|
+
export declare function assertValidTrustDimensions(value: unknown, field?: string): asserts value is TrustDimensions;
|
|
201
|
+
/**
|
|
202
|
+
* Check if a value has valid TrustWeights structure
|
|
203
|
+
*/
|
|
204
|
+
export declare function isTrustWeights(value: unknown): value is TrustWeights;
|
|
205
|
+
/**
|
|
206
|
+
* Assert that a value has valid TrustWeights
|
|
207
|
+
* @throws ValidationError if invalid
|
|
208
|
+
*/
|
|
209
|
+
export declare function assertValidTrustWeights(value: unknown, field?: string): asserts value is TrustWeights;
|
|
210
|
+
/**
|
|
211
|
+
* Check if a value has valid BandThresholds structure
|
|
212
|
+
*/
|
|
213
|
+
export declare function isBandThresholds(value: unknown): value is BandThresholds;
|
|
214
|
+
/**
|
|
215
|
+
* Assert that a value has valid BandThresholds
|
|
216
|
+
* @throws ValidationError if invalid
|
|
217
|
+
*/
|
|
218
|
+
export declare function assertValidBandThresholds(value: unknown, field?: string): asserts value is BandThresholds;
|
|
219
|
+
/**
|
|
220
|
+
* Calculate the trust band for a given score using default thresholds
|
|
221
|
+
*/
|
|
222
|
+
export declare function calculateTrustBand(score: number, thresholds?: BandThresholds): TrustBand;
|
|
223
|
+
/**
|
|
224
|
+
* Calculate composite trust score from dimensions
|
|
225
|
+
*/
|
|
226
|
+
export declare function calculateCompositeScore(dimensions: TrustDimensions, weights?: TrustWeights): number;
|
|
227
|
+
/**
|
|
228
|
+
* Validate all fields of an object against a schema
|
|
229
|
+
*/
|
|
230
|
+
export declare function validateObject<T extends Record<string, unknown>>(obj: unknown, validators: Record<keyof T, (value: unknown, field: string) => void>): obj is T;
|
|
231
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/canonical/validation.ts"],"names":[],"mappings":"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"}
|