@vorionsys/atsf-core 0.2.0 → 0.2.2
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/CHANGELOG.md +67 -0
- package/LICENSE +190 -0
- package/README.md +305 -181
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +86 -4
- package/dist/api/server.js.map +1 -1
- package/dist/basis/parser.d.ts +210 -210
- package/dist/basis/parser.js.map +1 -1
- package/dist/chain/index.d.ts +147 -0
- package/dist/chain/index.d.ts.map +1 -0
- package/dist/chain/index.js +219 -0
- package/dist/chain/index.js.map +1 -0
- package/dist/common/adapters.d.ts +9 -9
- package/dist/common/adapters.d.ts.map +1 -1
- package/dist/common/adapters.js +6 -6
- package/dist/common/config.d.ts +152 -152
- package/dist/common/types.d.ts +35 -15
- package/dist/common/types.d.ts.map +1 -1
- package/dist/common/types.js.map +1 -1
- package/dist/enforce/index.d.ts +226 -16
- package/dist/enforce/index.d.ts.map +1 -1
- package/dist/enforce/index.js +196 -49
- package/dist/enforce/index.js.map +1 -1
- package/dist/governance/index.d.ts +2 -0
- package/dist/governance/index.d.ts.map +1 -1
- package/dist/governance/index.js +1 -0
- package/dist/governance/index.js.map +1 -1
- package/dist/governance/proof-bridge.d.ts +86 -0
- package/dist/governance/proof-bridge.d.ts.map +1 -0
- package/dist/governance/proof-bridge.js +139 -0
- package/dist/governance/proof-bridge.js.map +1 -0
- package/dist/index.d.ts +11 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -4
- package/dist/index.js.map +1 -1
- package/dist/intent/index.d.ts +127 -10
- package/dist/intent/index.d.ts.map +1 -1
- package/dist/intent/index.js +121 -16
- package/dist/intent/index.js.map +1 -1
- package/dist/langchain/executor.d.ts +19 -5
- package/dist/langchain/executor.d.ts.map +1 -1
- package/dist/langchain/executor.js +287 -36
- package/dist/langchain/executor.js.map +1 -1
- package/dist/langchain/index.d.ts +2 -1
- package/dist/langchain/index.d.ts.map +1 -1
- package/dist/langchain/index.js +3 -1
- package/dist/langchain/index.js.map +1 -1
- package/dist/langchain/tools.d.ts.map +1 -1
- package/dist/langchain/tools.js +2 -1
- package/dist/langchain/tools.js.map +1 -1
- package/dist/langchain/types.d.ts +41 -0
- package/dist/langchain/types.d.ts.map +1 -1
- package/dist/layers/index.d.ts +1 -1
- package/dist/layers/index.d.ts.map +1 -1
- package/dist/persistence/file.d.ts +35 -3
- package/dist/persistence/file.d.ts.map +1 -1
- package/dist/persistence/file.js +138 -11
- package/dist/persistence/file.js.map +1 -1
- package/dist/persistence/index.d.ts +10 -1
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +15 -1
- package/dist/persistence/index.js.map +1 -1
- package/dist/persistence/sqlite.d.ts +135 -0
- package/dist/persistence/sqlite.d.ts.map +1 -0
- package/dist/persistence/sqlite.js +372 -0
- package/dist/persistence/sqlite.js.map +1 -0
- package/dist/phase6/ceiling.d.ts +177 -0
- package/dist/phase6/ceiling.d.ts.map +1 -0
- package/dist/phase6/ceiling.js +463 -0
- package/dist/phase6/ceiling.js.map +1 -0
- package/dist/phase6/context.d.ts +207 -0
- package/dist/phase6/context.d.ts.map +1 -0
- package/dist/phase6/context.js +603 -0
- package/dist/phase6/context.js.map +1 -0
- package/dist/phase6/index.d.ts +79 -0
- package/dist/phase6/index.d.ts.map +1 -0
- package/dist/phase6/index.js +152 -0
- package/dist/phase6/index.js.map +1 -0
- package/dist/phase6/presets.d.ts +148 -0
- package/dist/phase6/presets.d.ts.map +1 -0
- package/dist/phase6/presets.js +467 -0
- package/dist/phase6/presets.js.map +1 -0
- package/dist/phase6/provenance.d.ts +148 -0
- package/dist/phase6/provenance.d.ts.map +1 -0
- package/dist/phase6/provenance.js +545 -0
- package/dist/phase6/provenance.js.map +1 -0
- package/dist/phase6/role-gates/index.d.ts +7 -0
- package/dist/phase6/role-gates/index.d.ts.map +1 -0
- package/dist/phase6/role-gates/index.js +7 -0
- package/dist/phase6/role-gates/index.js.map +1 -0
- package/dist/phase6/role-gates/kernel.d.ts +84 -0
- package/dist/phase6/role-gates/kernel.d.ts.map +1 -0
- package/dist/phase6/role-gates/kernel.js +258 -0
- package/dist/phase6/role-gates/kernel.js.map +1 -0
- package/dist/phase6/role-gates/policy.d.ts +110 -0
- package/dist/phase6/role-gates/policy.d.ts.map +1 -0
- package/dist/phase6/role-gates/policy.js +157 -0
- package/dist/phase6/role-gates/policy.js.map +1 -0
- package/dist/phase6/role-gates.d.ts +164 -0
- package/dist/phase6/role-gates.d.ts.map +1 -0
- package/dist/phase6/role-gates.js +536 -0
- package/dist/phase6/role-gates.js.map +1 -0
- package/dist/phase6/types.d.ts +1829 -0
- package/dist/phase6/types.d.ts.map +1 -0
- package/dist/phase6/types.js +452 -0
- package/dist/phase6/types.js.map +1 -0
- package/dist/phase6/weight-presets/canonical.d.ts +93 -0
- package/dist/phase6/weight-presets/canonical.d.ts.map +1 -0
- package/dist/phase6/weight-presets/canonical.js +122 -0
- package/dist/phase6/weight-presets/canonical.js.map +1 -0
- package/dist/phase6/weight-presets/deltas.d.ts +144 -0
- package/dist/phase6/weight-presets/deltas.d.ts.map +1 -0
- package/dist/phase6/weight-presets/deltas.js +184 -0
- package/dist/phase6/weight-presets/deltas.js.map +1 -0
- package/dist/phase6/weight-presets/index.d.ts +8 -0
- package/dist/phase6/weight-presets/index.d.ts.map +1 -0
- package/dist/phase6/weight-presets/index.js +8 -0
- package/dist/phase6/weight-presets/index.js.map +1 -0
- package/dist/phase6/weight-presets/merger.d.ts +79 -0
- package/dist/phase6/weight-presets/merger.d.ts.map +1 -0
- package/dist/phase6/weight-presets/merger.js +161 -0
- package/dist/phase6/weight-presets/merger.js.map +1 -0
- package/dist/proof/index.d.ts +6 -0
- package/dist/proof/index.d.ts.map +1 -1
- package/dist/proof/index.js +56 -6
- package/dist/proof/index.js.map +1 -1
- package/dist/proof/merkle.d.ts +195 -0
- package/dist/proof/merkle.d.ts.map +1 -0
- package/dist/proof/merkle.js +412 -0
- package/dist/proof/merkle.js.map +1 -0
- package/dist/proof/zk-proofs.d.ts +218 -0
- package/dist/proof/zk-proofs.d.ts.map +1 -0
- package/dist/proof/zk-proofs.js +531 -0
- package/dist/proof/zk-proofs.js.map +1 -0
- package/dist/sandbox-training/challenges.d.ts +16 -0
- package/dist/sandbox-training/challenges.d.ts.map +1 -0
- package/dist/sandbox-training/challenges.js +561 -0
- package/dist/sandbox-training/challenges.js.map +1 -0
- package/dist/sandbox-training/graduation.d.ts +25 -0
- package/dist/sandbox-training/graduation.d.ts.map +1 -0
- package/dist/sandbox-training/graduation.js +143 -0
- package/dist/sandbox-training/graduation.js.map +1 -0
- package/dist/sandbox-training/index.d.ts +19 -0
- package/dist/sandbox-training/index.d.ts.map +1 -0
- package/dist/sandbox-training/index.js +22 -0
- package/dist/sandbox-training/index.js.map +1 -0
- package/dist/sandbox-training/promotion-service.d.ts +76 -0
- package/dist/sandbox-training/promotion-service.d.ts.map +1 -0
- package/dist/sandbox-training/promotion-service.js +117 -0
- package/dist/sandbox-training/promotion-service.js.map +1 -0
- package/dist/sandbox-training/runner.d.ts +58 -0
- package/dist/sandbox-training/runner.d.ts.map +1 -0
- package/dist/sandbox-training/runner.js +388 -0
- package/dist/sandbox-training/runner.js.map +1 -0
- package/dist/sandbox-training/scorer.d.ts +40 -0
- package/dist/sandbox-training/scorer.d.ts.map +1 -0
- package/dist/sandbox-training/scorer.js +79 -0
- package/dist/sandbox-training/scorer.js.map +1 -0
- package/dist/sandbox-training/types.d.ts +162 -0
- package/dist/sandbox-training/types.d.ts.map +1 -0
- package/dist/sandbox-training/types.js +32 -0
- package/dist/sandbox-training/types.js.map +1 -0
- package/dist/trust-engine/ceiling-enforcement/audit.d.ts +98 -0
- package/dist/trust-engine/ceiling-enforcement/audit.d.ts.map +1 -0
- package/dist/trust-engine/ceiling-enforcement/audit.js +160 -0
- package/dist/trust-engine/ceiling-enforcement/audit.js.map +1 -0
- package/dist/trust-engine/ceiling-enforcement/index.d.ts +6 -0
- package/dist/trust-engine/ceiling-enforcement/index.d.ts.map +1 -0
- package/dist/trust-engine/ceiling-enforcement/index.js +6 -0
- package/dist/trust-engine/ceiling-enforcement/index.js.map +1 -0
- package/dist/trust-engine/ceiling-enforcement/kernel.d.ts +112 -0
- package/dist/trust-engine/ceiling-enforcement/kernel.d.ts.map +1 -0
- package/dist/trust-engine/ceiling-enforcement/kernel.js +158 -0
- package/dist/trust-engine/ceiling-enforcement/kernel.js.map +1 -0
- package/dist/trust-engine/context-policy/enforcement.d.ts +62 -0
- package/dist/trust-engine/context-policy/enforcement.d.ts.map +1 -0
- package/dist/trust-engine/context-policy/enforcement.js +104 -0
- package/dist/trust-engine/context-policy/enforcement.js.map +1 -0
- package/dist/trust-engine/context-policy/factory.d.ts +75 -0
- package/dist/trust-engine/context-policy/factory.d.ts.map +1 -0
- package/dist/trust-engine/context-policy/factory.js +130 -0
- package/dist/trust-engine/context-policy/factory.js.map +1 -0
- package/dist/trust-engine/context-policy/index.d.ts +6 -0
- package/dist/trust-engine/context-policy/index.d.ts.map +1 -0
- package/dist/trust-engine/context-policy/index.js +6 -0
- package/dist/trust-engine/context-policy/index.js.map +1 -0
- package/dist/trust-engine/creation-modifiers/index.d.ts +5 -0
- package/dist/trust-engine/creation-modifiers/index.d.ts.map +1 -0
- package/dist/trust-engine/creation-modifiers/index.js +5 -0
- package/dist/trust-engine/creation-modifiers/index.js.map +1 -0
- package/dist/trust-engine/creation-modifiers/types.d.ts +112 -0
- package/dist/trust-engine/creation-modifiers/types.d.ts.map +1 -0
- package/dist/trust-engine/creation-modifiers/types.js +166 -0
- package/dist/trust-engine/creation-modifiers/types.js.map +1 -0
- package/dist/trust-engine/index.d.ts +54 -1
- package/dist/trust-engine/index.d.ts.map +1 -1
- package/dist/trust-engine/index.js +118 -1
- package/dist/trust-engine/index.js.map +1 -1
- package/dist/trust-engine/phase6-types.d.ts +123 -0
- package/dist/trust-engine/phase6-types.d.ts.map +1 -0
- package/dist/trust-engine/phase6-types.js +88 -0
- package/dist/trust-engine/phase6-types.js.map +1 -0
- package/package.json +42 -12
- package/dist/audit/key-manager.d.ts +0 -118
- package/dist/audit/key-manager.d.ts.map +0 -1
- package/dist/audit/key-manager.js +0 -565
- package/dist/audit/key-manager.js.map +0 -1
- package/dist/carbon-aware/carbon-metrics.d.ts +0 -151
- package/dist/carbon-aware/carbon-metrics.d.ts.map +0 -1
- package/dist/carbon-aware/carbon-metrics.js +0 -370
- package/dist/carbon-aware/carbon-metrics.js.map +0 -1
- package/dist/carbon-aware/carbon-router.d.ts +0 -101
- package/dist/carbon-aware/carbon-router.d.ts.map +0 -1
- package/dist/carbon-aware/carbon-router.js +0 -400
- package/dist/carbon-aware/carbon-router.js.map +0 -1
package/dist/enforce/index.d.ts
CHANGED
|
@@ -1,12 +1,166 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ENFORCE - Policy Decision Point
|
|
2
|
+
* ENFORCE - Policy Decision Point with Fluid Governance (SDK Package)
|
|
3
3
|
*
|
|
4
4
|
* Makes enforcement decisions based on rule evaluations and trust levels.
|
|
5
|
+
* Supports three-tier fluid governance (GREEN/YELLOW/RED) with refinement
|
|
6
|
+
* options for agents to modify requests.
|
|
7
|
+
*
|
|
8
|
+
* For production use with persistence, use the full implementation from the
|
|
9
|
+
* vorion core package. This SDK package provides:
|
|
10
|
+
* - Type definitions aligned with @vorion/contracts
|
|
11
|
+
* - In-memory mock for testing
|
|
12
|
+
* - Interface definitions for custom implementations
|
|
5
13
|
*
|
|
6
14
|
* @packageDocumentation
|
|
7
15
|
*/
|
|
8
|
-
import type { Intent,
|
|
16
|
+
import type { Intent, ControlAction, TrustLevel, TrustScore, ID, Timestamp } from '../common/types.js';
|
|
9
17
|
import type { EvaluationResult } from '../basis/types.js';
|
|
18
|
+
/**
|
|
19
|
+
* Decision tier for three-tier fluid governance
|
|
20
|
+
*
|
|
21
|
+
* - GREEN: Approved with constraints - proceed immediately
|
|
22
|
+
* - YELLOW: Requires refinement or review - can be upgraded
|
|
23
|
+
* - RED: Denied - hard policy violation
|
|
24
|
+
*/
|
|
25
|
+
export type DecisionTier = 'GREEN' | 'YELLOW' | 'RED';
|
|
26
|
+
/**
|
|
27
|
+
* Rate limit constraint
|
|
28
|
+
*/
|
|
29
|
+
export interface RateLimit {
|
|
30
|
+
resource: string;
|
|
31
|
+
limit: number;
|
|
32
|
+
windowSeconds: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Approval requirement
|
|
36
|
+
*/
|
|
37
|
+
export interface ApprovalRequirement {
|
|
38
|
+
type: 'none' | 'human_review' | 'automated_check' | 'multi_party';
|
|
39
|
+
approver: string;
|
|
40
|
+
timeoutMs?: number;
|
|
41
|
+
reason: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Constraints applied to permitted decisions
|
|
45
|
+
*/
|
|
46
|
+
export interface DecisionConstraints {
|
|
47
|
+
/** Tools/capabilities the agent can use */
|
|
48
|
+
allowedTools: string[];
|
|
49
|
+
/** Data scopes the agent can access */
|
|
50
|
+
dataScopes: string[];
|
|
51
|
+
/** Rate limits to enforce */
|
|
52
|
+
rateLimits: RateLimit[];
|
|
53
|
+
/** Required approvals before execution */
|
|
54
|
+
requiredApprovals: ApprovalRequirement[];
|
|
55
|
+
/** Must action be reversible? */
|
|
56
|
+
reversibilityRequired: boolean;
|
|
57
|
+
/** Maximum execution time in ms */
|
|
58
|
+
maxExecutionTimeMs?: number;
|
|
59
|
+
/** Maximum retry attempts */
|
|
60
|
+
maxRetries?: number;
|
|
61
|
+
/** Resource quotas */
|
|
62
|
+
resourceQuotas?: Record<string, number>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Refinement action types for YELLOW decisions
|
|
66
|
+
*/
|
|
67
|
+
export type RefinementAction = 'REDUCE_SCOPE' | 'ADD_CONSTRAINTS' | 'REQUEST_APPROVAL' | 'PROVIDE_CONTEXT' | 'DECOMPOSE' | 'WAIT_FOR_TRUST';
|
|
68
|
+
/**
|
|
69
|
+
* Refinement option for YELLOW decisions
|
|
70
|
+
*/
|
|
71
|
+
export interface RefinementOption {
|
|
72
|
+
id: ID;
|
|
73
|
+
action: RefinementAction;
|
|
74
|
+
description: string;
|
|
75
|
+
successProbability: number;
|
|
76
|
+
effort: 'low' | 'medium' | 'high';
|
|
77
|
+
parameters?: Record<string, unknown>;
|
|
78
|
+
resultingConstraints?: Partial<DecisionConstraints>;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Fluid decision with three-tier governance
|
|
82
|
+
*/
|
|
83
|
+
export interface FluidDecision {
|
|
84
|
+
/** Unique decision identifier */
|
|
85
|
+
id: ID;
|
|
86
|
+
/** Tenant identifier */
|
|
87
|
+
tenantId: ID;
|
|
88
|
+
/** Intent this decision is for */
|
|
89
|
+
intentId: ID;
|
|
90
|
+
/** Agent who made the request */
|
|
91
|
+
agentId: ID;
|
|
92
|
+
/** Correlation ID for tracing */
|
|
93
|
+
correlationId: ID;
|
|
94
|
+
/** Decision tier (GREEN/YELLOW/RED) */
|
|
95
|
+
tier: DecisionTier;
|
|
96
|
+
/** Whether the intent is permitted (GREEN=true, others=false) */
|
|
97
|
+
permitted: boolean;
|
|
98
|
+
/** Trust band at decision time (T0-T7) */
|
|
99
|
+
trustBand: string;
|
|
100
|
+
/** Trust score at decision time */
|
|
101
|
+
trustScore: number;
|
|
102
|
+
/** Human-readable reasoning */
|
|
103
|
+
reasoning: string[];
|
|
104
|
+
/** Constraints for GREEN decisions */
|
|
105
|
+
constraints?: DecisionConstraints;
|
|
106
|
+
/** Refinement options for YELLOW decisions */
|
|
107
|
+
refinementOptions?: RefinementOption[];
|
|
108
|
+
/** Deadline to submit refinement */
|
|
109
|
+
refinementDeadline?: Timestamp;
|
|
110
|
+
/** Maximum refinement attempts */
|
|
111
|
+
maxRefinementAttempts?: number;
|
|
112
|
+
/** Current refinement attempt */
|
|
113
|
+
refinementAttempt: number;
|
|
114
|
+
/** For RED: denial reason */
|
|
115
|
+
denialReason?: string;
|
|
116
|
+
/** For RED: is this a hard denial? */
|
|
117
|
+
hardDenial?: boolean;
|
|
118
|
+
/** For RED: violated policies */
|
|
119
|
+
violatedPolicies?: Array<{
|
|
120
|
+
policyId: string;
|
|
121
|
+
policyName: string;
|
|
122
|
+
severity: 'warning' | 'error' | 'critical';
|
|
123
|
+
}>;
|
|
124
|
+
/** When decision was made */
|
|
125
|
+
decidedAt: Timestamp;
|
|
126
|
+
/** When decision expires */
|
|
127
|
+
expiresAt: Timestamp;
|
|
128
|
+
/** Decision latency in ms */
|
|
129
|
+
latencyMs: number;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Workflow state for intent lifecycle
|
|
133
|
+
*/
|
|
134
|
+
export type WorkflowState = 'SUBMITTED' | 'EVALUATING' | 'APPROVED' | 'PENDING_REFINEMENT' | 'PENDING_REVIEW' | 'DENIED' | 'EXECUTING' | 'COMPLETED' | 'FAILED' | 'CANCELLED' | 'EXPIRED';
|
|
135
|
+
/**
|
|
136
|
+
* Workflow instance tracking intent lifecycle
|
|
137
|
+
*/
|
|
138
|
+
export interface WorkflowInstance {
|
|
139
|
+
id: ID;
|
|
140
|
+
tenantId: ID;
|
|
141
|
+
intentId: ID;
|
|
142
|
+
agentId: ID;
|
|
143
|
+
correlationId: ID;
|
|
144
|
+
state: WorkflowState;
|
|
145
|
+
currentDecisionId?: ID;
|
|
146
|
+
stateHistory: Array<{
|
|
147
|
+
from: WorkflowState;
|
|
148
|
+
to: WorkflowState;
|
|
149
|
+
reason: string;
|
|
150
|
+
timestamp: Timestamp;
|
|
151
|
+
}>;
|
|
152
|
+
execution?: {
|
|
153
|
+
executionId: string;
|
|
154
|
+
startedAt: Timestamp;
|
|
155
|
+
completedAt?: Timestamp;
|
|
156
|
+
status: 'running' | 'completed' | 'failed';
|
|
157
|
+
result?: unknown;
|
|
158
|
+
error?: string;
|
|
159
|
+
};
|
|
160
|
+
createdAt: Timestamp;
|
|
161
|
+
updatedAt: Timestamp;
|
|
162
|
+
expiresAt: Timestamp;
|
|
163
|
+
}
|
|
10
164
|
/**
|
|
11
165
|
* Enforcement context combining intent and evaluation results
|
|
12
166
|
*/
|
|
@@ -15,14 +169,33 @@ export interface EnforcementContext {
|
|
|
15
169
|
evaluation: EvaluationResult;
|
|
16
170
|
trustScore: TrustScore;
|
|
17
171
|
trustLevel: TrustLevel;
|
|
172
|
+
tenantId: ID;
|
|
173
|
+
correlationId?: ID;
|
|
18
174
|
}
|
|
19
175
|
/**
|
|
20
176
|
* Enforcement policy configuration
|
|
21
177
|
*/
|
|
22
178
|
export interface EnforcementPolicy {
|
|
179
|
+
/** Default action when no rules match */
|
|
23
180
|
defaultAction: ControlAction;
|
|
181
|
+
/** Minimum trust level required */
|
|
24
182
|
requireMinTrustLevel?: TrustLevel;
|
|
183
|
+
/** Trust level thresholds for automatic decisions */
|
|
184
|
+
trustThresholds?: {
|
|
185
|
+
autoApproveLevel: TrustLevel;
|
|
186
|
+
requireRefinementLevel: TrustLevel;
|
|
187
|
+
autoDenyLevel: TrustLevel;
|
|
188
|
+
};
|
|
189
|
+
/** Escalation rules */
|
|
25
190
|
escalationRules?: EscalationRule[];
|
|
191
|
+
/** Default constraints for GREEN decisions */
|
|
192
|
+
defaultConstraints?: Partial<DecisionConstraints>;
|
|
193
|
+
/** Decision expiration time in milliseconds */
|
|
194
|
+
decisionExpirationMs?: number;
|
|
195
|
+
/** Refinement deadline in milliseconds */
|
|
196
|
+
refinementDeadlineMs?: number;
|
|
197
|
+
/** Maximum refinement attempts */
|
|
198
|
+
maxRefinementAttempts?: number;
|
|
26
199
|
}
|
|
27
200
|
/**
|
|
28
201
|
* Escalation rule definition
|
|
@@ -31,28 +204,65 @@ export interface EscalationRule {
|
|
|
31
204
|
condition: string;
|
|
32
205
|
escalateTo: string;
|
|
33
206
|
timeout: string;
|
|
207
|
+
reasonCategory?: 'trust_insufficient' | 'high_risk' | 'policy_violation' | 'manual_review';
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Fluid decision result
|
|
211
|
+
*/
|
|
212
|
+
export interface FluidDecisionResult {
|
|
213
|
+
decision: FluidDecision;
|
|
214
|
+
workflow: WorkflowInstance;
|
|
215
|
+
tier: DecisionTier;
|
|
216
|
+
refinementOptions?: RefinementOption[];
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Refinement request
|
|
220
|
+
*/
|
|
221
|
+
export interface RefinementRequest {
|
|
222
|
+
decisionId: ID;
|
|
223
|
+
selectedRefinements: ID[];
|
|
224
|
+
refinementContext?: Record<string, unknown>;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Interface for enforcement service implementations
|
|
228
|
+
*/
|
|
229
|
+
export interface IEnforcementService {
|
|
230
|
+
decide(context: EnforcementContext): Promise<FluidDecisionResult>;
|
|
231
|
+
refine(request: RefinementRequest, tenantId: ID): Promise<FluidDecisionResult | null>;
|
|
232
|
+
getDecision(id: ID, tenantId: ID): Promise<FluidDecision | null>;
|
|
233
|
+
getWorkflow(intentId: ID, tenantId: ID): Promise<WorkflowInstance | null>;
|
|
234
|
+
setPolicy(policy: EnforcementPolicy): void;
|
|
34
235
|
}
|
|
35
236
|
/**
|
|
36
|
-
*
|
|
237
|
+
* In-memory enforcement service for testing
|
|
238
|
+
*
|
|
239
|
+
* WARNING: This is NOT suitable for production use.
|
|
240
|
+
* For production, connect to the Vorion API or use the full
|
|
241
|
+
* implementation from the vorion core package.
|
|
37
242
|
*/
|
|
38
|
-
export declare class
|
|
243
|
+
export declare class MockEnforcementService implements IEnforcementService {
|
|
39
244
|
private policy;
|
|
245
|
+
private decisions;
|
|
246
|
+
private workflows;
|
|
40
247
|
constructor(policy?: EnforcementPolicy);
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Create a decision record
|
|
47
|
-
*/
|
|
48
|
-
private createDecision;
|
|
49
|
-
/**
|
|
50
|
-
* Update enforcement policy
|
|
51
|
-
*/
|
|
248
|
+
decide(context: EnforcementContext): Promise<FluidDecisionResult>;
|
|
249
|
+
refine(request: RefinementRequest, tenantId: ID): Promise<FluidDecisionResult | null>;
|
|
250
|
+
getDecision(id: ID, tenantId: ID): Promise<FluidDecision | null>;
|
|
251
|
+
getWorkflow(intentId: ID, tenantId: ID): Promise<WorkflowInstance | null>;
|
|
52
252
|
setPolicy(policy: EnforcementPolicy): void;
|
|
253
|
+
private determineTier;
|
|
254
|
+
private buildReasoning;
|
|
255
|
+
private tierToState;
|
|
256
|
+
private getTrustBandName;
|
|
257
|
+
clear(): void;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* @deprecated Use MockEnforcementService for testing or implement IEnforcementService
|
|
261
|
+
*/
|
|
262
|
+
export declare class EnforcementService extends MockEnforcementService {
|
|
53
263
|
}
|
|
54
264
|
/**
|
|
55
|
-
*
|
|
265
|
+
* @deprecated Use new MockEnforcementService() for testing
|
|
56
266
|
*/
|
|
57
267
|
export declare function createEnforcementService(policy?: EnforcementPolicy): EnforcementService;
|
|
58
268
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enforce/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enforce/index.ts"],"names":[],"mappings":"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"}
|
package/dist/enforce/index.js
CHANGED
|
@@ -1,77 +1,224 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ENFORCE - Policy Decision Point
|
|
2
|
+
* ENFORCE - Policy Decision Point with Fluid Governance (SDK Package)
|
|
3
3
|
*
|
|
4
4
|
* Makes enforcement decisions based on rule evaluations and trust levels.
|
|
5
|
+
* Supports three-tier fluid governance (GREEN/YELLOW/RED) with refinement
|
|
6
|
+
* options for agents to modify requests.
|
|
7
|
+
*
|
|
8
|
+
* For production use with persistence, use the full implementation from the
|
|
9
|
+
* vorion core package. This SDK package provides:
|
|
10
|
+
* - Type definitions aligned with @vorion/contracts
|
|
11
|
+
* - In-memory mock for testing
|
|
12
|
+
* - Interface definitions for custom implementations
|
|
5
13
|
*
|
|
6
14
|
* @packageDocumentation
|
|
7
15
|
*/
|
|
8
16
|
import { createLogger } from '../common/logger.js';
|
|
9
17
|
const logger = createLogger({ component: 'enforce' });
|
|
18
|
+
// =============================================================================
|
|
19
|
+
// MOCK IMPLEMENTATION
|
|
20
|
+
// =============================================================================
|
|
21
|
+
const DEFAULT_POLICY = {
|
|
22
|
+
defaultAction: 'deny',
|
|
23
|
+
trustThresholds: {
|
|
24
|
+
autoApproveLevel: 4,
|
|
25
|
+
requireRefinementLevel: 2,
|
|
26
|
+
autoDenyLevel: 0,
|
|
27
|
+
},
|
|
28
|
+
decisionExpirationMs: 3600000,
|
|
29
|
+
refinementDeadlineMs: 900000,
|
|
30
|
+
maxRefinementAttempts: 3,
|
|
31
|
+
};
|
|
10
32
|
/**
|
|
11
|
-
*
|
|
33
|
+
* In-memory enforcement service for testing
|
|
34
|
+
*
|
|
35
|
+
* WARNING: This is NOT suitable for production use.
|
|
36
|
+
* For production, connect to the Vorion API or use the full
|
|
37
|
+
* implementation from the vorion core package.
|
|
12
38
|
*/
|
|
13
|
-
export class
|
|
39
|
+
export class MockEnforcementService {
|
|
14
40
|
policy;
|
|
41
|
+
decisions = new Map();
|
|
42
|
+
workflows = new Map();
|
|
15
43
|
constructor(policy) {
|
|
16
|
-
this.policy =
|
|
44
|
+
this.policy = { ...DEFAULT_POLICY, ...policy };
|
|
17
45
|
}
|
|
18
|
-
/**
|
|
19
|
-
* Make an enforcement decision
|
|
20
|
-
*/
|
|
21
46
|
async decide(context) {
|
|
22
|
-
const { intent, evaluation, trustScore, trustLevel } = context;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
47
|
+
const { intent, evaluation, trustScore, trustLevel, tenantId } = context;
|
|
48
|
+
const correlationId = context.correlationId ?? crypto.randomUUID();
|
|
49
|
+
const now = new Date().toISOString();
|
|
50
|
+
// Determine tier
|
|
51
|
+
const tier = this.determineTier(evaluation, trustLevel);
|
|
52
|
+
// Create decision
|
|
53
|
+
const decision = {
|
|
54
|
+
id: crypto.randomUUID(),
|
|
55
|
+
tenantId,
|
|
56
|
+
intentId: intent.id,
|
|
57
|
+
agentId: intent.entityId,
|
|
58
|
+
correlationId,
|
|
59
|
+
tier,
|
|
60
|
+
permitted: tier === 'GREEN',
|
|
61
|
+
trustBand: `T${trustLevel}_${this.getTrustBandName(trustLevel)}`,
|
|
62
|
+
trustScore,
|
|
63
|
+
reasoning: this.buildReasoning(tier, evaluation, trustLevel),
|
|
64
|
+
refinementAttempt: 0,
|
|
65
|
+
decidedAt: now,
|
|
66
|
+
expiresAt: new Date(Date.now() + (this.policy.decisionExpirationMs ?? 3600000)).toISOString(),
|
|
67
|
+
latencyMs: 1,
|
|
68
|
+
};
|
|
69
|
+
// Add constraints for GREEN
|
|
70
|
+
if (tier === 'GREEN') {
|
|
71
|
+
decision.constraints = {
|
|
72
|
+
allowedTools: ['*'],
|
|
73
|
+
dataScopes: ['*'],
|
|
74
|
+
rateLimits: [],
|
|
75
|
+
requiredApprovals: [],
|
|
76
|
+
reversibilityRequired: false,
|
|
77
|
+
maxRetries: 3,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
// Add refinement options for YELLOW
|
|
81
|
+
if (tier === 'YELLOW') {
|
|
82
|
+
decision.refinementDeadline = new Date(Date.now() + (this.policy.refinementDeadlineMs ?? 900000)).toISOString();
|
|
83
|
+
decision.maxRefinementAttempts = this.policy.maxRefinementAttempts ?? 3;
|
|
84
|
+
decision.refinementOptions = [
|
|
85
|
+
{
|
|
86
|
+
id: crypto.randomUUID(),
|
|
87
|
+
action: 'ADD_CONSTRAINTS',
|
|
88
|
+
description: 'Accept additional constraints',
|
|
89
|
+
successProbability: 0.9,
|
|
90
|
+
effort: 'low',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
id: crypto.randomUUID(),
|
|
94
|
+
action: 'REQUEST_APPROVAL',
|
|
95
|
+
description: 'Request human approval',
|
|
96
|
+
successProbability: 0.7,
|
|
97
|
+
effort: 'medium',
|
|
98
|
+
},
|
|
99
|
+
];
|
|
32
100
|
}
|
|
33
|
-
//
|
|
34
|
-
|
|
35
|
-
|
|
101
|
+
// Add denial details for RED
|
|
102
|
+
if (tier === 'RED') {
|
|
103
|
+
decision.denialReason = 'policy_violation';
|
|
104
|
+
decision.hardDenial = true;
|
|
105
|
+
}
|
|
106
|
+
this.decisions.set(decision.id, decision);
|
|
107
|
+
// Create workflow
|
|
108
|
+
const workflow = {
|
|
109
|
+
id: crypto.randomUUID(),
|
|
110
|
+
tenantId,
|
|
36
111
|
intentId: intent.id,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
112
|
+
agentId: intent.entityId,
|
|
113
|
+
correlationId,
|
|
114
|
+
state: this.tierToState(tier),
|
|
115
|
+
currentDecisionId: decision.id,
|
|
116
|
+
stateHistory: [
|
|
117
|
+
{ from: 'SUBMITTED', to: this.tierToState(tier), reason: `Decision: ${tier}`, timestamp: now },
|
|
118
|
+
],
|
|
119
|
+
createdAt: now,
|
|
120
|
+
updatedAt: now,
|
|
121
|
+
expiresAt: decision.expiresAt,
|
|
122
|
+
};
|
|
123
|
+
this.workflows.set(intent.id, workflow);
|
|
124
|
+
logger.info({ decisionId: decision.id, intentId: intent.id, tier }, 'Enforcement decision made (mock)');
|
|
125
|
+
return { decision, workflow, tier, refinementOptions: decision.refinementOptions };
|
|
41
126
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
127
|
+
async refine(request, tenantId) {
|
|
128
|
+
const original = this.decisions.get(request.decisionId);
|
|
129
|
+
if (!original || original.tier !== 'YELLOW')
|
|
130
|
+
return null;
|
|
131
|
+
const now = new Date().toISOString();
|
|
132
|
+
// Create refined decision (simple: just upgrade to GREEN)
|
|
133
|
+
const refined = {
|
|
134
|
+
...original,
|
|
135
|
+
id: crypto.randomUUID(),
|
|
136
|
+
tier: 'GREEN',
|
|
137
|
+
permitted: true,
|
|
138
|
+
refinementAttempt: original.refinementAttempt + 1,
|
|
139
|
+
reasoning: ['Refined to GREEN after applying constraints'],
|
|
140
|
+
constraints: {
|
|
141
|
+
allowedTools: ['*'],
|
|
142
|
+
dataScopes: ['*'],
|
|
143
|
+
rateLimits: [],
|
|
144
|
+
requiredApprovals: [],
|
|
145
|
+
reversibilityRequired: true,
|
|
146
|
+
maxRetries: 3,
|
|
147
|
+
},
|
|
148
|
+
decidedAt: now,
|
|
61
149
|
};
|
|
150
|
+
this.decisions.set(refined.id, refined);
|
|
151
|
+
// Update workflow
|
|
152
|
+
const workflow = this.workflows.get(original.intentId);
|
|
153
|
+
if (workflow) {
|
|
154
|
+
workflow.state = 'APPROVED';
|
|
155
|
+
workflow.currentDecisionId = refined.id;
|
|
156
|
+
workflow.updatedAt = now;
|
|
157
|
+
workflow.stateHistory.push({
|
|
158
|
+
from: 'PENDING_REFINEMENT',
|
|
159
|
+
to: 'APPROVED',
|
|
160
|
+
reason: 'Refined to GREEN',
|
|
161
|
+
timestamp: now,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
return { decision: refined, workflow: workflow, tier: 'GREEN' };
|
|
165
|
+
}
|
|
166
|
+
async getDecision(id, tenantId) {
|
|
167
|
+
const decision = this.decisions.get(id);
|
|
168
|
+
return decision?.tenantId === tenantId ? decision : null;
|
|
169
|
+
}
|
|
170
|
+
async getWorkflow(intentId, tenantId) {
|
|
171
|
+
const workflow = this.workflows.get(intentId);
|
|
172
|
+
return workflow?.tenantId === tenantId ? workflow : null;
|
|
62
173
|
}
|
|
63
|
-
/**
|
|
64
|
-
* Update enforcement policy
|
|
65
|
-
*/
|
|
66
174
|
setPolicy(policy) {
|
|
67
|
-
this.policy = policy;
|
|
68
|
-
|
|
175
|
+
this.policy = { ...DEFAULT_POLICY, ...policy };
|
|
176
|
+
}
|
|
177
|
+
determineTier(evaluation, trustLevel) {
|
|
178
|
+
const thresholds = this.policy.trustThresholds;
|
|
179
|
+
if (evaluation.violatedRules.some((r) => r.action === 'deny' || r.action === 'terminate')) {
|
|
180
|
+
return 'RED';
|
|
181
|
+
}
|
|
182
|
+
if (trustLevel < thresholds.autoDenyLevel)
|
|
183
|
+
return 'RED';
|
|
184
|
+
if (trustLevel < thresholds.requireRefinementLevel)
|
|
185
|
+
return 'YELLOW';
|
|
186
|
+
if (trustLevel >= thresholds.autoApproveLevel && evaluation.passed)
|
|
187
|
+
return 'GREEN';
|
|
188
|
+
return 'YELLOW';
|
|
189
|
+
}
|
|
190
|
+
buildReasoning(tier, evaluation, trustLevel) {
|
|
191
|
+
if (tier === 'GREEN')
|
|
192
|
+
return ['All checks passed', `Trust T${trustLevel} meets requirements`];
|
|
193
|
+
if (tier === 'YELLOW')
|
|
194
|
+
return ['Refinement options available'];
|
|
195
|
+
return ['Policy violation', 'Request cannot proceed'];
|
|
196
|
+
}
|
|
197
|
+
tierToState(tier) {
|
|
198
|
+
return tier === 'GREEN' ? 'APPROVED' : tier === 'YELLOW' ? 'PENDING_REFINEMENT' : 'DENIED';
|
|
69
199
|
}
|
|
200
|
+
getTrustBandName(level) {
|
|
201
|
+
const names = ['SANDBOX', 'OBSERVED', 'PROVISIONAL', 'MONITORED', 'STANDARD', 'TRUSTED', 'CERTIFIED', 'AUTONOMOUS'];
|
|
202
|
+
return names[level] ?? 'SANDBOX';
|
|
203
|
+
}
|
|
204
|
+
clear() {
|
|
205
|
+
this.decisions.clear();
|
|
206
|
+
this.workflows.clear();
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
// =============================================================================
|
|
210
|
+
// BACKWARDS COMPATIBLE EXPORTS
|
|
211
|
+
// =============================================================================
|
|
212
|
+
/**
|
|
213
|
+
* @deprecated Use MockEnforcementService for testing or implement IEnforcementService
|
|
214
|
+
*/
|
|
215
|
+
export class EnforcementService extends MockEnforcementService {
|
|
70
216
|
}
|
|
71
217
|
/**
|
|
72
|
-
*
|
|
218
|
+
* @deprecated Use new MockEnforcementService() for testing
|
|
73
219
|
*/
|
|
74
220
|
export function createEnforcementService(policy) {
|
|
221
|
+
logger.warn('createEnforcementService() creates an in-memory mock. For production, connect to the Vorion API.');
|
|
75
222
|
return new EnforcementService(policy);
|
|
76
223
|
}
|
|
77
224
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enforce/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enforce/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,8 @@ import type { ID, ControlAction } from '../common/types.js';
|
|
|
10
10
|
import type { GovernanceRule, RuleCategory, RuleCondition, RuleEffect, ConditionOperator, Authority, GovernanceRequest, GovernanceResult, GovernanceConfig, RuleQuery } from './types.js';
|
|
11
11
|
export * from './types.js';
|
|
12
12
|
export * from './fluid-workflow.js';
|
|
13
|
+
export { GovernanceProofBridge } from './proof-bridge.js';
|
|
14
|
+
export type { ProofCreateFn, ProofBridgeProofRequest, ProofBridgeConfig, GovernanceProofResult, } from './proof-bridge.js';
|
|
13
15
|
/**
|
|
14
16
|
* Governance Engine - manages and evaluates governance rules
|
|
15
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/governance/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,EAAE,EAAc,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAIhB,gBAAgB,EAChB,SAAS,EAEV,MAAM,YAAY,CAAC;AAEpB,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/governance/index.ts"],"names":[],"mappings":"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"}
|
package/dist/governance/index.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import { createLogger } from '../common/logger.js';
|
|
10
10
|
export * from './types.js';
|
|
11
11
|
export * from './fluid-workflow.js';
|
|
12
|
+
export { GovernanceProofBridge } from './proof-bridge.js';
|
|
12
13
|
const logger = createLogger({ component: 'governance' });
|
|
13
14
|
/**
|
|
14
15
|
* Default governance configuration
|