@vorionsys/atsf-core 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/README.md +308 -0
- package/dist/api/index.d.ts +5 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +5 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/server.d.ts +17 -0
- package/dist/api/server.d.ts.map +1 -0
- package/dist/api/server.js +124 -0
- package/dist/api/server.js.map +1 -0
- package/dist/arbitration/index.d.ts +124 -0
- package/dist/arbitration/index.d.ts.map +1 -0
- package/dist/arbitration/index.js +696 -0
- package/dist/arbitration/index.js.map +1 -0
- package/dist/arbitration/types.d.ts +260 -0
- package/dist/arbitration/types.d.ts.map +1 -0
- package/dist/arbitration/types.js +10 -0
- package/dist/arbitration/types.js.map +1 -0
- package/dist/basis/evaluator.d.ts +57 -0
- package/dist/basis/evaluator.d.ts.map +1 -0
- package/dist/basis/evaluator.js +244 -0
- package/dist/basis/evaluator.js.map +1 -0
- package/dist/basis/index.d.ts +12 -0
- package/dist/basis/index.d.ts.map +1 -0
- package/dist/basis/index.js +12 -0
- package/dist/basis/index.js.map +1 -0
- package/dist/basis/parser.d.ts +376 -0
- package/dist/basis/parser.d.ts.map +1 -0
- package/dist/basis/parser.js +150 -0
- package/dist/basis/parser.js.map +1 -0
- package/dist/basis/types.d.ts +115 -0
- package/dist/basis/types.d.ts.map +1 -0
- package/dist/basis/types.js +5 -0
- package/dist/basis/types.js.map +1 -0
- package/dist/cognigate/index.d.ts +85 -0
- package/dist/cognigate/index.d.ts.map +1 -0
- package/dist/cognigate/index.js +139 -0
- package/dist/cognigate/index.js.map +1 -0
- package/dist/common/config.d.ts +252 -0
- package/dist/common/config.d.ts.map +1 -0
- package/dist/common/config.js +128 -0
- package/dist/common/config.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/logger.d.ts +11 -0
- package/dist/common/logger.d.ts.map +1 -0
- package/dist/common/logger.js +29 -0
- package/dist/common/logger.js.map +1 -0
- package/dist/common/types.d.ts +196 -0
- package/dist/common/types.d.ts.map +1 -0
- package/dist/common/types.js +41 -0
- package/dist/common/types.js.map +1 -0
- package/dist/containment/index.d.ts +120 -0
- package/dist/containment/index.d.ts.map +1 -0
- package/dist/containment/index.js +717 -0
- package/dist/containment/index.js.map +1 -0
- package/dist/containment/types.d.ts +260 -0
- package/dist/containment/types.d.ts.map +1 -0
- package/dist/containment/types.js +21 -0
- package/dist/containment/types.js.map +1 -0
- package/dist/contracts/index.d.ts +237 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +594 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/types.d.ts +374 -0
- package/dist/contracts/types.d.ts.map +1 -0
- package/dist/contracts/types.js +10 -0
- package/dist/contracts/types.js.map +1 -0
- package/dist/enforce/index.d.ts +58 -0
- package/dist/enforce/index.d.ts.map +1 -0
- package/dist/enforce/index.js +77 -0
- package/dist/enforce/index.js.map +1 -0
- package/dist/governance/index.d.ts +133 -0
- package/dist/governance/index.d.ts.map +1 -0
- package/dist/governance/index.js +630 -0
- package/dist/governance/index.js.map +1 -0
- package/dist/governance/types.d.ts +362 -0
- package/dist/governance/types.d.ts.map +1 -0
- package/dist/governance/types.js +21 -0
- package/dist/governance/types.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/intent/index.d.ts +44 -0
- package/dist/intent/index.d.ts.map +1 -0
- package/dist/intent/index.js +64 -0
- package/dist/intent/index.js.map +1 -0
- package/dist/langchain/callback.d.ts +115 -0
- package/dist/langchain/callback.d.ts.map +1 -0
- package/dist/langchain/callback.js +264 -0
- package/dist/langchain/callback.js.map +1 -0
- package/dist/langchain/executor.d.ts +63 -0
- package/dist/langchain/executor.d.ts.map +1 -0
- package/dist/langchain/executor.js +169 -0
- package/dist/langchain/executor.js.map +1 -0
- package/dist/langchain/index.d.ts +12 -0
- package/dist/langchain/index.d.ts.map +1 -0
- package/dist/langchain/index.js +12 -0
- package/dist/langchain/index.js.map +1 -0
- package/dist/langchain/tools.d.ts +25 -0
- package/dist/langchain/tools.d.ts.map +1 -0
- package/dist/langchain/tools.js +167 -0
- package/dist/langchain/tools.js.map +1 -0
- package/dist/langchain/types.d.ts +72 -0
- package/dist/langchain/types.d.ts.map +1 -0
- package/dist/langchain/types.js +9 -0
- package/dist/langchain/types.js.map +1 -0
- package/dist/layers/index.d.ts +147 -0
- package/dist/layers/index.d.ts.map +1 -0
- package/dist/layers/index.js +565 -0
- package/dist/layers/index.js.map +1 -0
- package/dist/layers/types.d.ts +336 -0
- package/dist/layers/types.d.ts.map +1 -0
- package/dist/layers/types.js +10 -0
- package/dist/layers/types.js.map +1 -0
- package/dist/persistence/file.d.ts +55 -0
- package/dist/persistence/file.d.ts.map +1 -0
- package/dist/persistence/file.js +176 -0
- package/dist/persistence/file.js.map +1 -0
- package/dist/persistence/index.d.ts +16 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +34 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/memory.d.ts +32 -0
- package/dist/persistence/memory.d.ts.map +1 -0
- package/dist/persistence/memory.js +91 -0
- package/dist/persistence/memory.js.map +1 -0
- package/dist/persistence/types.d.ts +89 -0
- package/dist/persistence/types.d.ts.map +1 -0
- package/dist/persistence/types.js +9 -0
- package/dist/persistence/types.js.map +1 -0
- package/dist/proof/index.d.ts +87 -0
- package/dist/proof/index.d.ts.map +1 -0
- package/dist/proof/index.js +179 -0
- package/dist/proof/index.js.map +1 -0
- package/dist/provenance/index.d.ts +135 -0
- package/dist/provenance/index.d.ts.map +1 -0
- package/dist/provenance/index.js +356 -0
- package/dist/provenance/index.js.map +1 -0
- package/dist/provenance/types.d.ts +217 -0
- package/dist/provenance/types.d.ts.map +1 -0
- package/dist/provenance/types.js +10 -0
- package/dist/provenance/types.js.map +1 -0
- package/dist/trust-engine/index.d.ts +273 -0
- package/dist/trust-engine/index.d.ts.map +1 -0
- package/dist/trust-engine/index.js +515 -0
- package/dist/trust-engine/index.js.map +1 -0
- package/package.json +100 -0
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output Contract Types (VorionResponse)
|
|
3
|
+
*
|
|
4
|
+
* Machine-readable, auditable, replayable output contracts
|
|
5
|
+
* with confidence scores, assumptions, and invalidity conditions.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import type { ID, Timestamp, ControlAction, TrustLevel } from '../common/types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Standard Vorion response contract
|
|
12
|
+
*/
|
|
13
|
+
export interface VorionResponse<T = unknown> {
|
|
14
|
+
/** Response identifier */
|
|
15
|
+
responseId: ID;
|
|
16
|
+
/** Request that generated this response */
|
|
17
|
+
requestId: ID;
|
|
18
|
+
/** Whether the operation succeeded */
|
|
19
|
+
success: boolean;
|
|
20
|
+
/** The actual response payload */
|
|
21
|
+
payload: T;
|
|
22
|
+
/** Confidence in this response (0-1) */
|
|
23
|
+
confidence: ResponseConfidence;
|
|
24
|
+
/** Assumptions made to generate this response */
|
|
25
|
+
assumptions: Assumption[];
|
|
26
|
+
/** Conditions that would invalidate this response */
|
|
27
|
+
invalidityConditions: InvalidityCondition[];
|
|
28
|
+
/** Governance decision applied */
|
|
29
|
+
governance: GovernanceDecision;
|
|
30
|
+
/** Provenance tracking */
|
|
31
|
+
provenance: ResponseProvenance;
|
|
32
|
+
/** Timing information */
|
|
33
|
+
timing: ResponseTiming;
|
|
34
|
+
/** Replay information for reproducibility */
|
|
35
|
+
replay: ReplayInfo;
|
|
36
|
+
/** Response metadata */
|
|
37
|
+
metadata: ResponseMetadata;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Vorion error response
|
|
41
|
+
*/
|
|
42
|
+
export interface VorionErrorResponse {
|
|
43
|
+
/** Response identifier */
|
|
44
|
+
responseId: ID;
|
|
45
|
+
/** Request that generated this error */
|
|
46
|
+
requestId: ID;
|
|
47
|
+
/** Always false for errors */
|
|
48
|
+
success: false;
|
|
49
|
+
/** Error details */
|
|
50
|
+
error: ContractError;
|
|
51
|
+
/** Governance decision that led to error (if applicable) */
|
|
52
|
+
governance?: GovernanceDecision;
|
|
53
|
+
/** What was attempted before failure */
|
|
54
|
+
attempted: AttemptedAction[];
|
|
55
|
+
/** Suggested remediation steps */
|
|
56
|
+
remediation: RemediationStep[];
|
|
57
|
+
/** Timing information */
|
|
58
|
+
timing: ResponseTiming;
|
|
59
|
+
/** Response metadata */
|
|
60
|
+
metadata: ResponseMetadata;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Confidence information for a response
|
|
64
|
+
*/
|
|
65
|
+
export interface ResponseConfidence {
|
|
66
|
+
/** Overall confidence score (0-1) */
|
|
67
|
+
overall: number;
|
|
68
|
+
/** Confidence breakdown by component */
|
|
69
|
+
breakdown: ConfidenceComponent[];
|
|
70
|
+
/** Factors that reduced confidence */
|
|
71
|
+
reducingFactors: ConfidenceFactor[];
|
|
72
|
+
/** Factors that increased confidence */
|
|
73
|
+
boostingFactors: ConfidenceFactor[];
|
|
74
|
+
/** Confidence calibration source */
|
|
75
|
+
calibration: 'historical' | 'model' | 'heuristic' | 'expert';
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Component contributing to confidence
|
|
79
|
+
*/
|
|
80
|
+
export interface ConfidenceComponent {
|
|
81
|
+
component: string;
|
|
82
|
+
confidence: number;
|
|
83
|
+
weight: number;
|
|
84
|
+
explanation: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Factor affecting confidence
|
|
88
|
+
*/
|
|
89
|
+
export interface ConfidenceFactor {
|
|
90
|
+
factor: string;
|
|
91
|
+
impact: number;
|
|
92
|
+
explanation: string;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* An assumption made during processing
|
|
96
|
+
*/
|
|
97
|
+
export interface Assumption {
|
|
98
|
+
/** Assumption identifier */
|
|
99
|
+
id: string;
|
|
100
|
+
/** What was assumed */
|
|
101
|
+
assumption: string;
|
|
102
|
+
/** Category of assumption */
|
|
103
|
+
category: AssumptionCategory;
|
|
104
|
+
/** How critical is this assumption */
|
|
105
|
+
criticality: 'low' | 'medium' | 'high' | 'critical';
|
|
106
|
+
/** Confidence that assumption holds (0-1) */
|
|
107
|
+
confidence: number;
|
|
108
|
+
/** What happens if assumption is wrong */
|
|
109
|
+
fallbackBehavior: string;
|
|
110
|
+
/** Evidence supporting the assumption */
|
|
111
|
+
supportingEvidence: string[];
|
|
112
|
+
/** How to verify the assumption */
|
|
113
|
+
verification?: string;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Categories of assumptions
|
|
117
|
+
*/
|
|
118
|
+
export type AssumptionCategory = 'input_validity' | 'context_stability' | 'resource_availability' | 'permission_granted' | 'data_freshness' | 'model_accuracy' | 'external_service' | 'user_intent';
|
|
119
|
+
/**
|
|
120
|
+
* A condition that would invalidate the response
|
|
121
|
+
*/
|
|
122
|
+
export interface InvalidityCondition {
|
|
123
|
+
/** Condition identifier */
|
|
124
|
+
id: string;
|
|
125
|
+
/** What would make response invalid */
|
|
126
|
+
condition: string;
|
|
127
|
+
/** Category of invalidation */
|
|
128
|
+
category: InvalidityCategory;
|
|
129
|
+
/** Severity if condition occurs */
|
|
130
|
+
severity: 'minor' | 'moderate' | 'major' | 'complete';
|
|
131
|
+
/** How to detect if condition occurs */
|
|
132
|
+
detection: string;
|
|
133
|
+
/** Recommended action if condition occurs */
|
|
134
|
+
recommendedAction: string;
|
|
135
|
+
/** Time sensitivity (if applicable) */
|
|
136
|
+
timeLimit?: number;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Categories of invalidity
|
|
140
|
+
*/
|
|
141
|
+
export type InvalidityCategory = 'temporal' | 'state_change' | 'data_update' | 'permission_revoked' | 'context_shift' | 'external_factor' | 'security_event';
|
|
142
|
+
/**
|
|
143
|
+
* Governance decision applied to request
|
|
144
|
+
*/
|
|
145
|
+
export interface GovernanceDecision {
|
|
146
|
+
/** Decision identifier */
|
|
147
|
+
decisionId: ID;
|
|
148
|
+
/** Action taken */
|
|
149
|
+
action: ControlAction;
|
|
150
|
+
/** Trust level of requester */
|
|
151
|
+
trustLevel: TrustLevel;
|
|
152
|
+
/** Rules that were applied */
|
|
153
|
+
rulesApplied: AppliedRule[];
|
|
154
|
+
/** Any modifications made to the request */
|
|
155
|
+
modifications: RequestModification[];
|
|
156
|
+
/** Constraints applied to the response */
|
|
157
|
+
constraints: ResponseConstraint[];
|
|
158
|
+
/** Human approvals obtained (if any) */
|
|
159
|
+
approvals: Approval[];
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* A rule that was applied
|
|
163
|
+
*/
|
|
164
|
+
export interface AppliedRule {
|
|
165
|
+
ruleId: ID;
|
|
166
|
+
ruleName: string;
|
|
167
|
+
effect: string;
|
|
168
|
+
reason: string;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Modification made to original request
|
|
172
|
+
*/
|
|
173
|
+
export interface RequestModification {
|
|
174
|
+
field: string;
|
|
175
|
+
originalValue: unknown;
|
|
176
|
+
modifiedValue: unknown;
|
|
177
|
+
reason: string;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Constraint applied to response
|
|
181
|
+
*/
|
|
182
|
+
export interface ResponseConstraint {
|
|
183
|
+
type: 'scope_limit' | 'rate_limit' | 'data_filter' | 'output_redact' | 'capability_restrict';
|
|
184
|
+
target: string;
|
|
185
|
+
constraint: string;
|
|
186
|
+
reason: string;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Human approval obtained
|
|
190
|
+
*/
|
|
191
|
+
export interface Approval {
|
|
192
|
+
approver: string;
|
|
193
|
+
role: string;
|
|
194
|
+
timestamp: Timestamp;
|
|
195
|
+
scope: string;
|
|
196
|
+
expiresAt?: Timestamp;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Provenance information for the response
|
|
200
|
+
*/
|
|
201
|
+
export interface ResponseProvenance {
|
|
202
|
+
/** Chain of processing steps */
|
|
203
|
+
processingChain: ProcessingStep[];
|
|
204
|
+
/** Data sources used */
|
|
205
|
+
dataSources: DataSource[];
|
|
206
|
+
/** Models/algorithms used */
|
|
207
|
+
modelsUsed: ModelReference[];
|
|
208
|
+
/** Hash of inputs for verification */
|
|
209
|
+
inputHash: string;
|
|
210
|
+
/** Hash of outputs for verification */
|
|
211
|
+
outputHash: string;
|
|
212
|
+
/** Full provenance record ID */
|
|
213
|
+
provenanceRecordId?: ID;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* A step in the processing chain
|
|
217
|
+
*/
|
|
218
|
+
export interface ProcessingStep {
|
|
219
|
+
stepNumber: number;
|
|
220
|
+
component: string;
|
|
221
|
+
action: string;
|
|
222
|
+
input: string;
|
|
223
|
+
output: string;
|
|
224
|
+
durationMs: number;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* A data source used
|
|
228
|
+
*/
|
|
229
|
+
export interface DataSource {
|
|
230
|
+
sourceId: string;
|
|
231
|
+
sourceName: string;
|
|
232
|
+
sourceType: 'database' | 'api' | 'cache' | 'model' | 'user_input' | 'system';
|
|
233
|
+
dataTimestamp: Timestamp;
|
|
234
|
+
confidence: number;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Reference to a model/algorithm used
|
|
238
|
+
*/
|
|
239
|
+
export interface ModelReference {
|
|
240
|
+
modelId: string;
|
|
241
|
+
modelName: string;
|
|
242
|
+
version: string;
|
|
243
|
+
purpose: string;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Timing information
|
|
247
|
+
*/
|
|
248
|
+
export interface ResponseTiming {
|
|
249
|
+
/** When request was received */
|
|
250
|
+
requestedAt: Timestamp;
|
|
251
|
+
/** When processing started */
|
|
252
|
+
processingStartedAt: Timestamp;
|
|
253
|
+
/** When response was generated */
|
|
254
|
+
respondedAt: Timestamp;
|
|
255
|
+
/** Total duration in ms */
|
|
256
|
+
totalDurationMs: number;
|
|
257
|
+
/** Time spent in each phase */
|
|
258
|
+
phases: {
|
|
259
|
+
parsing: number;
|
|
260
|
+
governance: number;
|
|
261
|
+
processing: number;
|
|
262
|
+
validation: number;
|
|
263
|
+
serialization: number;
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Information for replaying the request
|
|
268
|
+
*/
|
|
269
|
+
export interface ReplayInfo {
|
|
270
|
+
/** Whether this response can be replayed */
|
|
271
|
+
replayable: boolean;
|
|
272
|
+
/** Deterministic seed (if applicable) */
|
|
273
|
+
seed?: string;
|
|
274
|
+
/** Snapshot of relevant state */
|
|
275
|
+
stateSnapshot: Record<string, unknown>;
|
|
276
|
+
/** External dependencies that must match */
|
|
277
|
+
externalDependencies: ExternalDependency[];
|
|
278
|
+
/** Instructions for replay */
|
|
279
|
+
replayInstructions: string;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* External dependency for replay
|
|
283
|
+
*/
|
|
284
|
+
export interface ExternalDependency {
|
|
285
|
+
name: string;
|
|
286
|
+
type: 'api' | 'database' | 'service' | 'model';
|
|
287
|
+
version: string;
|
|
288
|
+
stateAtRequest: Record<string, unknown>;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Response metadata
|
|
292
|
+
*/
|
|
293
|
+
export interface ResponseMetadata {
|
|
294
|
+
/** API version */
|
|
295
|
+
apiVersion: string;
|
|
296
|
+
/** Engine version */
|
|
297
|
+
engineVersion: string;
|
|
298
|
+
/** Request correlation ID */
|
|
299
|
+
correlationId: ID;
|
|
300
|
+
/** Session ID (if applicable) */
|
|
301
|
+
sessionId?: ID;
|
|
302
|
+
/** Tags for categorization */
|
|
303
|
+
tags: string[];
|
|
304
|
+
/** Custom metadata */
|
|
305
|
+
custom: Record<string, unknown>;
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Vorion error details
|
|
309
|
+
*/
|
|
310
|
+
export interface ContractError {
|
|
311
|
+
/** Error code */
|
|
312
|
+
code: string;
|
|
313
|
+
/** Error message */
|
|
314
|
+
message: string;
|
|
315
|
+
/** Error category */
|
|
316
|
+
category: ErrorCategory;
|
|
317
|
+
/** Is this error retryable */
|
|
318
|
+
retryable: boolean;
|
|
319
|
+
/** Retry delay suggestion (ms) */
|
|
320
|
+
retryAfterMs?: number;
|
|
321
|
+
/** Detailed error context */
|
|
322
|
+
context: Record<string, unknown>;
|
|
323
|
+
/** Stack trace (only in development) */
|
|
324
|
+
stack?: string;
|
|
325
|
+
/** Nested errors */
|
|
326
|
+
causes?: ContractError[];
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Error categories
|
|
330
|
+
*/
|
|
331
|
+
export type ErrorCategory = 'validation' | 'authorization' | 'governance' | 'resource' | 'external' | 'internal' | 'timeout' | 'rate_limit' | 'containment';
|
|
332
|
+
/**
|
|
333
|
+
* Action that was attempted before failure
|
|
334
|
+
*/
|
|
335
|
+
export interface AttemptedAction {
|
|
336
|
+
action: string;
|
|
337
|
+
result: 'success' | 'partial' | 'failed';
|
|
338
|
+
details: string;
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Step for remediation
|
|
342
|
+
*/
|
|
343
|
+
export interface RemediationStep {
|
|
344
|
+
step: number;
|
|
345
|
+
action: string;
|
|
346
|
+
description: string;
|
|
347
|
+
automated: boolean;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Request to create a VorionResponse
|
|
351
|
+
*/
|
|
352
|
+
export interface CreateResponseRequest<T = unknown> {
|
|
353
|
+
requestId: ID;
|
|
354
|
+
payload: T;
|
|
355
|
+
confidence?: Partial<ResponseConfidence>;
|
|
356
|
+
assumptions?: Assumption[];
|
|
357
|
+
invalidityConditions?: InvalidityCondition[];
|
|
358
|
+
governance?: GovernanceDecision;
|
|
359
|
+
metadata?: Partial<ResponseMetadata>;
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Request to create a VorionErrorResponse
|
|
363
|
+
*/
|
|
364
|
+
export interface CreateErrorRequest {
|
|
365
|
+
requestId: ID;
|
|
366
|
+
error: Omit<ContractError, 'retryAfterMs'> & {
|
|
367
|
+
retryAfterMs?: number;
|
|
368
|
+
};
|
|
369
|
+
governance?: GovernanceDecision;
|
|
370
|
+
attempted?: AttemptedAction[];
|
|
371
|
+
remediation?: RemediationStep[];
|
|
372
|
+
metadata?: Partial<ResponseMetadata>;
|
|
373
|
+
}
|
|
374
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/contracts/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output Contract Types (VorionResponse)
|
|
3
|
+
*
|
|
4
|
+
* Machine-readable, auditable, replayable output contracts
|
|
5
|
+
* with confidence scores, assumptions, and invalidity conditions.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/contracts/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ENFORCE - Policy Decision Point
|
|
3
|
+
*
|
|
4
|
+
* Makes enforcement decisions based on rule evaluations and trust levels.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
import type { Intent, Decision, ControlAction, TrustLevel, TrustScore } from '../common/types.js';
|
|
9
|
+
import type { EvaluationResult } from '../basis/types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Enforcement context combining intent and evaluation results
|
|
12
|
+
*/
|
|
13
|
+
export interface EnforcementContext {
|
|
14
|
+
intent: Intent;
|
|
15
|
+
evaluation: EvaluationResult;
|
|
16
|
+
trustScore: TrustScore;
|
|
17
|
+
trustLevel: TrustLevel;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Enforcement policy configuration
|
|
21
|
+
*/
|
|
22
|
+
export interface EnforcementPolicy {
|
|
23
|
+
defaultAction: ControlAction;
|
|
24
|
+
requireMinTrustLevel?: TrustLevel;
|
|
25
|
+
escalationRules?: EscalationRule[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Escalation rule definition
|
|
29
|
+
*/
|
|
30
|
+
export interface EscalationRule {
|
|
31
|
+
condition: string;
|
|
32
|
+
escalateTo: string;
|
|
33
|
+
timeout: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Policy enforcement service
|
|
37
|
+
*/
|
|
38
|
+
export declare class EnforcementService {
|
|
39
|
+
private policy;
|
|
40
|
+
constructor(policy?: EnforcementPolicy);
|
|
41
|
+
/**
|
|
42
|
+
* Make an enforcement decision
|
|
43
|
+
*/
|
|
44
|
+
decide(context: EnforcementContext): Promise<Decision>;
|
|
45
|
+
/**
|
|
46
|
+
* Create a decision record
|
|
47
|
+
*/
|
|
48
|
+
private createDecision;
|
|
49
|
+
/**
|
|
50
|
+
* Update enforcement policy
|
|
51
|
+
*/
|
|
52
|
+
setPolicy(policy: EnforcementPolicy): void;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Create a new enforcement service instance
|
|
56
|
+
*/
|
|
57
|
+
export declare function createEnforcementService(policy?: EnforcementPolicy): EnforcementService;
|
|
58
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enforce/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,MAAM,EACN,QAAQ,EACR,aAAa,EACb,UAAU,EACV,UAAU,EAEX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,mBAAmB,CAAC;AAItE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,gBAAgB,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,aAAa,CAAC;IAC7B,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAClC,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,CAAC,EAAE,iBAAiB;IAItC;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;IA+C5D;;OAEG;IACH,OAAO,CAAC,cAAc;IAyBtB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;CAI3C;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,CAAC,EAAE,iBAAiB,GACzB,kBAAkB,CAEpB"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ENFORCE - Policy Decision Point
|
|
3
|
+
*
|
|
4
|
+
* Makes enforcement decisions based on rule evaluations and trust levels.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
import { createLogger } from '../common/logger.js';
|
|
9
|
+
const logger = createLogger({ component: 'enforce' });
|
|
10
|
+
/**
|
|
11
|
+
* Policy enforcement service
|
|
12
|
+
*/
|
|
13
|
+
export class EnforcementService {
|
|
14
|
+
policy;
|
|
15
|
+
constructor(policy) {
|
|
16
|
+
this.policy = policy ?? { defaultAction: 'deny' };
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Make an enforcement decision
|
|
20
|
+
*/
|
|
21
|
+
async decide(context) {
|
|
22
|
+
const { intent, evaluation, trustScore, trustLevel } = context;
|
|
23
|
+
// Check minimum trust level
|
|
24
|
+
if (this.policy.requireMinTrustLevel !== undefined &&
|
|
25
|
+
trustLevel < this.policy.requireMinTrustLevel) {
|
|
26
|
+
logger.info({
|
|
27
|
+
intentId: intent.id,
|
|
28
|
+
required: this.policy.requireMinTrustLevel,
|
|
29
|
+
actual: trustLevel,
|
|
30
|
+
}, 'Trust level insufficient');
|
|
31
|
+
return this.createDecision(intent.id, 'deny', evaluation.rulesEvaluated, trustScore, trustLevel);
|
|
32
|
+
}
|
|
33
|
+
// Use evaluation result action
|
|
34
|
+
const action = evaluation.passed ? 'allow' : evaluation.finalAction;
|
|
35
|
+
logger.info({
|
|
36
|
+
intentId: intent.id,
|
|
37
|
+
action,
|
|
38
|
+
rulesEvaluated: evaluation.rulesEvaluated.length,
|
|
39
|
+
}, 'Enforcement decision made');
|
|
40
|
+
return this.createDecision(intent.id, action, evaluation.rulesEvaluated, trustScore, trustLevel);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Create a decision record
|
|
44
|
+
*/
|
|
45
|
+
createDecision(intentId, action, constraintsEvaluated, trustScore, trustLevel) {
|
|
46
|
+
return {
|
|
47
|
+
intentId,
|
|
48
|
+
action,
|
|
49
|
+
constraintsEvaluated: constraintsEvaluated.map((r) => ({
|
|
50
|
+
constraintId: r.ruleId,
|
|
51
|
+
passed: r.matched,
|
|
52
|
+
action: r.action,
|
|
53
|
+
reason: r.reason,
|
|
54
|
+
details: r.details,
|
|
55
|
+
durationMs: r.durationMs,
|
|
56
|
+
evaluatedAt: new Date().toISOString(),
|
|
57
|
+
})),
|
|
58
|
+
trustScore,
|
|
59
|
+
trustLevel,
|
|
60
|
+
decidedAt: new Date().toISOString(),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Update enforcement policy
|
|
65
|
+
*/
|
|
66
|
+
setPolicy(policy) {
|
|
67
|
+
this.policy = policy;
|
|
68
|
+
logger.info({ policy }, 'Enforcement policy updated');
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Create a new enforcement service instance
|
|
73
|
+
*/
|
|
74
|
+
export function createEnforcementService(policy) {
|
|
75
|
+
return new EnforcementService(policy);
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enforce/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAWnD,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AA8BtD;;GAEG;AACH,MAAM,OAAO,kBAAkB;IACrB,MAAM,CAAoB;IAElC,YAAY,MAA0B;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,OAA2B;QACtC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAE/D,4BAA4B;QAC5B,IACE,IAAI,CAAC,MAAM,CAAC,oBAAoB,KAAK,SAAS;YAC9C,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAC7C,CAAC;YACD,MAAM,CAAC,IAAI,CACT;gBACE,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;gBAC1C,MAAM,EAAE,UAAU;aACnB,EACD,0BAA0B,CAC3B,CAAC;YAEF,OAAO,IAAI,CAAC,cAAc,CACxB,MAAM,CAAC,EAAE,EACT,MAAM,EACN,UAAU,CAAC,cAAc,EACzB,UAAU,EACV,UAAU,CACX,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC;QAEpE,MAAM,CAAC,IAAI,CACT;YACE,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,MAAM;YACN,cAAc,EAAE,UAAU,CAAC,cAAc,CAAC,MAAM;SACjD,EACD,2BAA2B,CAC5B,CAAC;QAEF,OAAO,IAAI,CAAC,cAAc,CACxB,MAAM,CAAC,EAAE,EACT,MAAM,EACN,UAAU,CAAC,cAAc,EACzB,UAAU,EACV,UAAU,CACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,cAAc,CACpB,QAAY,EACZ,MAAqB,EACrB,oBAAkC,EAClC,UAAsB,EACtB,UAAsB;QAEtB,OAAO;YACL,QAAQ;YACR,MAAM;YACN,oBAAoB,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC;gBACjE,YAAY,EAAE,CAAC,CAAC,MAAM;gBACtB,MAAM,EAAE,CAAC,CAAC,OAAO;gBACjB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC,CAAC;YACH,UAAU;YACV,UAAU;YACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAyB;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,4BAA4B,CAAC,CAAC;IACxD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAA0B;IAE1B,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Governance & Authority Engine
|
|
3
|
+
*
|
|
4
|
+
* Implements rule hierarchy with hard disqualifiers, soft constraints,
|
|
5
|
+
* mandatory clarification triggers, and authority management.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import type { ID, ControlAction } from '../common/types.js';
|
|
10
|
+
import type { GovernanceRule, RuleCategory, RuleCondition, RuleEffect, ConditionOperator, Authority, GovernanceRequest, GovernanceResult, GovernanceConfig, RuleQuery } from './types.js';
|
|
11
|
+
export * from './types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Governance Engine - manages and evaluates governance rules
|
|
14
|
+
*/
|
|
15
|
+
export declare class GovernanceEngine {
|
|
16
|
+
private config;
|
|
17
|
+
private rules;
|
|
18
|
+
private rulesByNamespace;
|
|
19
|
+
private authorities;
|
|
20
|
+
private evaluationCache;
|
|
21
|
+
constructor(config?: Partial<GovernanceConfig>);
|
|
22
|
+
/**
|
|
23
|
+
* Register a governance rule
|
|
24
|
+
*/
|
|
25
|
+
registerRule(rule: GovernanceRule): void;
|
|
26
|
+
/**
|
|
27
|
+
* Unregister a rule
|
|
28
|
+
*/
|
|
29
|
+
unregisterRule(ruleId: ID): void;
|
|
30
|
+
/**
|
|
31
|
+
* Register an authority
|
|
32
|
+
*/
|
|
33
|
+
registerAuthority(authority: Authority): void;
|
|
34
|
+
/**
|
|
35
|
+
* Evaluate governance rules for a request
|
|
36
|
+
*/
|
|
37
|
+
evaluate(request: GovernanceRequest): Promise<GovernanceResult>;
|
|
38
|
+
/**
|
|
39
|
+
* Validate a rule
|
|
40
|
+
*/
|
|
41
|
+
private validateRule;
|
|
42
|
+
/**
|
|
43
|
+
* Get cache key for a request
|
|
44
|
+
*/
|
|
45
|
+
private getCacheKey;
|
|
46
|
+
/**
|
|
47
|
+
* Check if an authority is valid for a request
|
|
48
|
+
*/
|
|
49
|
+
private checkAuthority;
|
|
50
|
+
/**
|
|
51
|
+
* Get numeric value for trust level
|
|
52
|
+
*/
|
|
53
|
+
private getTrustLevelValue;
|
|
54
|
+
/**
|
|
55
|
+
* Check if request is within authority scope
|
|
56
|
+
*/
|
|
57
|
+
private isInScope;
|
|
58
|
+
/**
|
|
59
|
+
* Get applicable rules for a request
|
|
60
|
+
*/
|
|
61
|
+
private getApplicableRules;
|
|
62
|
+
/**
|
|
63
|
+
* Check if current time is within schedule
|
|
64
|
+
*/
|
|
65
|
+
private isInSchedule;
|
|
66
|
+
/**
|
|
67
|
+
* Evaluate a condition against a request
|
|
68
|
+
*/
|
|
69
|
+
private evaluateCondition;
|
|
70
|
+
/**
|
|
71
|
+
* Evaluate a composite condition
|
|
72
|
+
*/
|
|
73
|
+
private evaluateCompositeCondition;
|
|
74
|
+
/**
|
|
75
|
+
* Get field value from request
|
|
76
|
+
*/
|
|
77
|
+
private getFieldValue;
|
|
78
|
+
/**
|
|
79
|
+
* Compare values using operator
|
|
80
|
+
*/
|
|
81
|
+
private compareValues;
|
|
82
|
+
/**
|
|
83
|
+
* Calculate confidence in decision
|
|
84
|
+
*/
|
|
85
|
+
private calculateConfidence;
|
|
86
|
+
/**
|
|
87
|
+
* Generate explanation for decision
|
|
88
|
+
*/
|
|
89
|
+
private generateExplanation;
|
|
90
|
+
/**
|
|
91
|
+
* Create a denial result
|
|
92
|
+
*/
|
|
93
|
+
private createDenialResult;
|
|
94
|
+
/**
|
|
95
|
+
* Query rules
|
|
96
|
+
*/
|
|
97
|
+
queryRules(query: RuleQuery): Promise<GovernanceRule[]>;
|
|
98
|
+
/**
|
|
99
|
+
* Get statistics
|
|
100
|
+
*/
|
|
101
|
+
getStats(): {
|
|
102
|
+
totalRules: number;
|
|
103
|
+
byCategory: Record<RuleCategory, number>;
|
|
104
|
+
byNamespace: Record<string, number>;
|
|
105
|
+
totalAuthorities: number;
|
|
106
|
+
cacheSize: number;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* Clear evaluation cache
|
|
110
|
+
*/
|
|
111
|
+
clearCache(): void;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Create a new governance engine
|
|
115
|
+
*/
|
|
116
|
+
export declare function createGovernanceEngine(config?: Partial<GovernanceConfig>): GovernanceEngine;
|
|
117
|
+
/**
|
|
118
|
+
* Helper to create a governance rule
|
|
119
|
+
*/
|
|
120
|
+
export declare function createGovernanceRule(name: string, category: RuleCategory, condition: RuleCondition, effect: RuleEffect, options?: Partial<GovernanceRule>): GovernanceRule;
|
|
121
|
+
/**
|
|
122
|
+
* Helper to create a simple field condition
|
|
123
|
+
*/
|
|
124
|
+
export declare function createFieldCondition(field: string, operator: ConditionOperator, value: unknown): RuleCondition;
|
|
125
|
+
/**
|
|
126
|
+
* Helper to create a composite condition
|
|
127
|
+
*/
|
|
128
|
+
export declare function createCompositeCondition(logicalOperator: 'AND' | 'OR' | 'NOT', children: RuleCondition[]): RuleCondition;
|
|
129
|
+
/**
|
|
130
|
+
* Helper to create a rule effect
|
|
131
|
+
*/
|
|
132
|
+
export declare function createRuleEffect(action: ControlAction, reason: string, options?: Partial<RuleEffect>): RuleEffect;
|
|
133
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/governance/index.ts"],"names":[],"mappings":"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"}
|