@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.
Files changed (173) hide show
  1. package/dist/aci/aci-string.d.ts +539 -0
  2. package/dist/aci/aci-string.d.ts.map +1 -0
  3. package/dist/aci/aci-string.js +563 -0
  4. package/dist/aci/aci-string.js.map +1 -0
  5. package/dist/aci/attestation.d.ts +648 -0
  6. package/dist/aci/attestation.d.ts.map +1 -0
  7. package/dist/aci/attestation.js +289 -0
  8. package/dist/aci/attestation.js.map +1 -0
  9. package/dist/aci/domains.d.ts +260 -0
  10. package/dist/aci/domains.d.ts.map +1 -0
  11. package/dist/aci/domains.js +322 -0
  12. package/dist/aci/domains.js.map +1 -0
  13. package/dist/aci/effective-permission.d.ts +371 -0
  14. package/dist/aci/effective-permission.d.ts.map +1 -0
  15. package/dist/aci/effective-permission.js +351 -0
  16. package/dist/aci/effective-permission.js.map +1 -0
  17. package/dist/aci/identity.d.ts +1100 -0
  18. package/dist/aci/identity.d.ts.map +1 -0
  19. package/dist/aci/identity.js +328 -0
  20. package/dist/aci/identity.js.map +1 -0
  21. package/dist/aci/index.d.ts +67 -0
  22. package/dist/aci/index.d.ts.map +1 -0
  23. package/dist/aci/index.js +157 -0
  24. package/dist/aci/index.js.map +1 -0
  25. package/dist/aci/jwt-claims.d.ts +756 -0
  26. package/dist/aci/jwt-claims.d.ts.map +1 -0
  27. package/dist/aci/jwt-claims.js +335 -0
  28. package/dist/aci/jwt-claims.js.map +1 -0
  29. package/dist/aci/levels.d.ts +279 -0
  30. package/dist/aci/levels.d.ts.map +1 -0
  31. package/dist/aci/levels.js +467 -0
  32. package/dist/aci/levels.js.map +1 -0
  33. package/dist/aci/mapping.d.ts +291 -0
  34. package/dist/aci/mapping.d.ts.map +1 -0
  35. package/dist/aci/mapping.js +427 -0
  36. package/dist/aci/mapping.js.map +1 -0
  37. package/dist/aci/skills.d.ts +314 -0
  38. package/dist/aci/skills.d.ts.map +1 -0
  39. package/dist/aci/skills.js +404 -0
  40. package/dist/aci/skills.js.map +1 -0
  41. package/dist/aci/tiers.d.ts +403 -0
  42. package/dist/aci/tiers.d.ts.map +1 -0
  43. package/dist/aci/tiers.js +659 -0
  44. package/dist/aci/tiers.js.map +1 -0
  45. package/dist/canonical/agent.d.ts +796 -0
  46. package/dist/canonical/agent.d.ts.map +1 -0
  47. package/dist/canonical/agent.js +527 -0
  48. package/dist/canonical/agent.js.map +1 -0
  49. package/dist/canonical/governance.d.ts +905 -0
  50. package/dist/canonical/governance.d.ts.map +1 -0
  51. package/dist/canonical/governance.js +454 -0
  52. package/dist/canonical/governance.js.map +1 -0
  53. package/dist/canonical/index.d.ts +17 -0
  54. package/dist/canonical/index.d.ts.map +1 -0
  55. package/dist/canonical/index.js +21 -0
  56. package/dist/canonical/index.js.map +1 -0
  57. package/dist/canonical/intent.d.ts +727 -0
  58. package/dist/canonical/intent.d.ts.map +1 -0
  59. package/dist/canonical/intent.js +203 -0
  60. package/dist/canonical/intent.js.map +1 -0
  61. package/dist/canonical/risk-level.d.ts +344 -0
  62. package/dist/canonical/risk-level.d.ts.map +1 -0
  63. package/dist/canonical/risk-level.js +472 -0
  64. package/dist/canonical/risk-level.js.map +1 -0
  65. package/dist/canonical/trust-band.d.ts +239 -0
  66. package/dist/canonical/trust-band.d.ts.map +1 -0
  67. package/dist/canonical/trust-band.js +298 -0
  68. package/dist/canonical/trust-band.js.map +1 -0
  69. package/dist/canonical/trust-score.d.ts +301 -0
  70. package/dist/canonical/trust-score.d.ts.map +1 -0
  71. package/dist/canonical/trust-score.js +390 -0
  72. package/dist/canonical/trust-score.js.map +1 -0
  73. package/dist/canonical/trust-signal.d.ts +617 -0
  74. package/dist/canonical/trust-signal.d.ts.map +1 -0
  75. package/dist/canonical/trust-signal.js +355 -0
  76. package/dist/canonical/trust-signal.js.map +1 -0
  77. package/dist/canonical/validation.d.ts +231 -0
  78. package/dist/canonical/validation.d.ts.map +1 -0
  79. package/dist/canonical/validation.js +558 -0
  80. package/dist/canonical/validation.js.map +1 -0
  81. package/dist/common/index.d.ts +7 -0
  82. package/dist/common/index.d.ts.map +1 -0
  83. package/dist/common/index.js +7 -0
  84. package/dist/common/index.js.map +1 -0
  85. package/dist/common/primitives.d.ts +56 -0
  86. package/dist/common/primitives.d.ts.map +1 -0
  87. package/dist/common/primitives.js +70 -0
  88. package/dist/common/primitives.js.map +1 -0
  89. package/dist/index.d.ts +11 -0
  90. package/dist/index.d.ts.map +1 -0
  91. package/dist/index.js +15 -0
  92. package/dist/index.js.map +1 -0
  93. package/dist/v2/canary-probe.d.ts +201 -0
  94. package/dist/v2/canary-probe.d.ts.map +1 -0
  95. package/dist/v2/canary-probe.js +99 -0
  96. package/dist/v2/canary-probe.js.map +1 -0
  97. package/dist/v2/component.d.ts +132 -0
  98. package/dist/v2/component.d.ts.map +1 -0
  99. package/dist/v2/component.js +5 -0
  100. package/dist/v2/component.js.map +1 -0
  101. package/dist/v2/decision.d.ts +310 -0
  102. package/dist/v2/decision.d.ts.map +1 -0
  103. package/dist/v2/decision.js +21 -0
  104. package/dist/v2/decision.js.map +1 -0
  105. package/dist/v2/enums.d.ts +185 -0
  106. package/dist/v2/enums.d.ts.map +1 -0
  107. package/dist/v2/enums.js +203 -0
  108. package/dist/v2/enums.js.map +1 -0
  109. package/dist/v2/evidence.d.ts +368 -0
  110. package/dist/v2/evidence.d.ts.map +1 -0
  111. package/dist/v2/evidence.js +152 -0
  112. package/dist/v2/evidence.js.map +1 -0
  113. package/dist/v2/execution.d.ts +190 -0
  114. package/dist/v2/execution.d.ts.map +1 -0
  115. package/dist/v2/execution.js +5 -0
  116. package/dist/v2/execution.js.map +1 -0
  117. package/dist/v2/index.d.ts +19 -0
  118. package/dist/v2/index.d.ts.map +1 -0
  119. package/dist/v2/index.js +32 -0
  120. package/dist/v2/index.js.map +1 -0
  121. package/dist/v2/intent.d.ts +89 -0
  122. package/dist/v2/intent.d.ts.map +1 -0
  123. package/dist/v2/intent.js +5 -0
  124. package/dist/v2/intent.js.map +1 -0
  125. package/dist/v2/policy-bundle.d.ts +166 -0
  126. package/dist/v2/policy-bundle.d.ts.map +1 -0
  127. package/dist/v2/policy-bundle.js +20 -0
  128. package/dist/v2/policy-bundle.js.map +1 -0
  129. package/dist/v2/pre-action-gate.d.ts +185 -0
  130. package/dist/v2/pre-action-gate.d.ts.map +1 -0
  131. package/dist/v2/pre-action-gate.js +64 -0
  132. package/dist/v2/pre-action-gate.js.map +1 -0
  133. package/dist/v2/proof-event.d.ts +201 -0
  134. package/dist/v2/proof-event.d.ts.map +1 -0
  135. package/dist/v2/proof-event.js +5 -0
  136. package/dist/v2/proof-event.js.map +1 -0
  137. package/dist/v2/retention.d.ts +329 -0
  138. package/dist/v2/retention.d.ts.map +1 -0
  139. package/dist/v2/retention.js +162 -0
  140. package/dist/v2/retention.js.map +1 -0
  141. package/dist/v2/trust-delta.d.ts +119 -0
  142. package/dist/v2/trust-delta.d.ts.map +1 -0
  143. package/dist/v2/trust-delta.js +28 -0
  144. package/dist/v2/trust-delta.js.map +1 -0
  145. package/dist/v2/trust-profile.d.ts +337 -0
  146. package/dist/v2/trust-profile.d.ts.map +1 -0
  147. package/dist/v2/trust-profile.js +96 -0
  148. package/dist/v2/trust-profile.js.map +1 -0
  149. package/dist/validators/decision.d.ts +430 -0
  150. package/dist/validators/decision.d.ts.map +1 -0
  151. package/dist/validators/decision.js +61 -0
  152. package/dist/validators/decision.js.map +1 -0
  153. package/dist/validators/enums.d.ts +24 -0
  154. package/dist/validators/enums.d.ts.map +1 -0
  155. package/dist/validators/enums.js +24 -0
  156. package/dist/validators/enums.js.map +1 -0
  157. package/dist/validators/index.d.ts +30 -0
  158. package/dist/validators/index.d.ts.map +1 -0
  159. package/dist/validators/index.js +42 -0
  160. package/dist/validators/index.js.map +1 -0
  161. package/dist/validators/intent.d.ts +229 -0
  162. package/dist/validators/intent.d.ts.map +1 -0
  163. package/dist/validators/intent.js +47 -0
  164. package/dist/validators/intent.js.map +1 -0
  165. package/dist/validators/proof-event.d.ts +981 -0
  166. package/dist/validators/proof-event.d.ts.map +1 -0
  167. package/dist/validators/proof-event.js +134 -0
  168. package/dist/validators/proof-event.js.map +1 -0
  169. package/dist/validators/trust-profile.d.ts +350 -0
  170. package/dist/validators/trust-profile.d.ts.map +1 -0
  171. package/dist/validators/trust-profile.js +65 -0
  172. package/dist/validators/trust-profile.js.map +1 -0
  173. 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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"}