@vorionsys/atsf-core 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.js +1 -1
- package/dist/api/server.d.ts +2 -2
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +147 -184
- package/dist/api/server.js.map +1 -1
- package/dist/arbitration/index.d.ts +4 -4
- package/dist/arbitration/index.d.ts.map +1 -1
- package/dist/arbitration/index.js +41 -46
- package/dist/arbitration/index.js.map +1 -1
- package/dist/arbitration/types.d.ts +10 -10
- package/dist/arbitration/types.d.ts.map +1 -1
- package/dist/basis/evaluator.d.ts +1 -1
- package/dist/basis/evaluator.d.ts.map +1 -1
- package/dist/basis/evaluator.js +54 -56
- package/dist/basis/evaluator.js.map +1 -1
- package/dist/basis/index.d.ts +3 -3
- package/dist/basis/index.js +3 -3
- package/dist/basis/parser.d.ts +2 -2
- package/dist/basis/parser.d.ts.map +1 -1
- package/dist/basis/parser.js +25 -32
- package/dist/basis/parser.js.map +1 -1
- package/dist/basis/types.d.ts +2 -2
- package/dist/chain/index.d.ts.map +1 -1
- package/dist/chain/index.js +16 -16
- package/dist/chain/index.js.map +1 -1
- package/dist/cognigate/index.d.ts +1 -1
- package/dist/cognigate/index.d.ts.map +1 -1
- package/dist/cognigate/index.js +33 -44
- package/dist/cognigate/index.js.map +1 -1
- package/dist/common/adapters.d.ts +4 -4
- package/dist/common/adapters.d.ts.map +1 -1
- package/dist/common/adapters.js +52 -62
- package/dist/common/adapters.js.map +1 -1
- package/dist/common/config.d.ts +69 -68
- package/dist/common/config.d.ts.map +1 -1
- package/dist/common/config.js +50 -50
- package/dist/common/config.js.map +1 -1
- package/dist/common/index.d.ts +4 -4
- package/dist/common/index.js +4 -4
- package/dist/common/logger.d.ts +1 -1
- package/dist/common/logger.js +8 -8
- package/dist/common/types.d.ts +5 -5
- package/dist/common/types.js +5 -5
- package/dist/containment/index.d.ts +3 -3
- package/dist/containment/index.d.ts.map +1 -1
- package/dist/containment/index.js +105 -119
- package/dist/containment/index.js.map +1 -1
- package/dist/containment/types.d.ts +11 -11
- package/dist/containment/types.d.ts.map +1 -1
- package/dist/contracts/index.d.ts +9 -9
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +54 -59
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/types.d.ts +12 -12
- package/dist/contracts/types.d.ts.map +1 -1
- package/dist/crewai/callback.d.ts +2 -2
- package/dist/crewai/callback.d.ts.map +1 -1
- package/dist/crewai/callback.js +27 -27
- package/dist/crewai/callback.js.map +1 -1
- package/dist/crewai/executor.d.ts +95 -4
- package/dist/crewai/executor.d.ts.map +1 -1
- package/dist/crewai/executor.js +457 -16
- package/dist/crewai/executor.js.map +1 -1
- package/dist/crewai/index.d.ts +4 -4
- package/dist/crewai/index.js +4 -4
- package/dist/crewai/tools.d.ts +1 -1
- package/dist/crewai/tools.d.ts.map +1 -1
- package/dist/crewai/tools.js +38 -39
- package/dist/crewai/tools.js.map +1 -1
- package/dist/crewai/types.d.ts +66 -3
- package/dist/crewai/types.d.ts.map +1 -1
- package/dist/enforce/index.d.ts +229 -7
- package/dist/enforce/index.d.ts.map +1 -1
- package/dist/enforce/index.js +52 -80
- package/dist/enforce/index.js.map +1 -1
- package/dist/enforce/trust-aware-enforcement-service.d.ts +8 -8
- package/dist/enforce/trust-aware-enforcement-service.d.ts.map +1 -1
- package/dist/enforce/trust-aware-enforcement-service.js +107 -125
- package/dist/enforce/trust-aware-enforcement-service.js.map +1 -1
- package/dist/governance/fluid-workflow.d.ts +8 -8
- package/dist/governance/fluid-workflow.d.ts.map +1 -1
- package/dist/governance/fluid-workflow.js +86 -114
- package/dist/governance/fluid-workflow.js.map +1 -1
- package/dist/governance/index.d.ts +7 -7
- package/dist/governance/index.d.ts.map +1 -1
- package/dist/governance/index.js +74 -81
- package/dist/governance/index.js.map +1 -1
- package/dist/governance/proof-bridge.d.ts +6 -6
- package/dist/governance/proof-bridge.d.ts.map +1 -1
- package/dist/governance/proof-bridge.js +5 -5
- package/dist/governance/proof-bridge.js.map +1 -1
- package/dist/governance/types.d.ts +9 -16
- package/dist/governance/types.d.ts.map +1 -1
- package/dist/governance/types.js.map +1 -1
- package/dist/index.d.ts +27 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -31
- package/dist/index.js.map +1 -1
- package/dist/intent/index.d.ts +55 -5
- package/dist/intent/index.d.ts.map +1 -1
- package/dist/intent/index.js +21 -24
- package/dist/intent/index.js.map +1 -1
- package/dist/intent/persistent-intent-service.d.ts +2 -2
- package/dist/intent/persistent-intent-service.d.ts.map +1 -1
- package/dist/intent/persistent-intent-service.js +31 -43
- package/dist/intent/persistent-intent-service.js.map +1 -1
- package/dist/intent/supabase-intent-repository.d.ts +124 -0
- package/dist/intent/supabase-intent-repository.d.ts.map +1 -0
- package/dist/intent/supabase-intent-repository.js +404 -0
- package/dist/intent/supabase-intent-repository.js.map +1 -0
- package/dist/langchain/callback.d.ts +2 -2
- package/dist/langchain/callback.d.ts.map +1 -1
- package/dist/langchain/callback.js +30 -30
- package/dist/langchain/callback.js.map +1 -1
- package/dist/langchain/executor.d.ts +4 -4
- package/dist/langchain/executor.d.ts.map +1 -1
- package/dist/langchain/executor.js +80 -82
- package/dist/langchain/executor.js.map +1 -1
- package/dist/langchain/index.d.ts +5 -5
- package/dist/langchain/index.js +5 -5
- package/dist/langchain/tools.d.ts +1 -1
- package/dist/langchain/tools.d.ts.map +1 -1
- package/dist/langchain/tools.js +34 -36
- package/dist/langchain/tools.js.map +1 -1
- package/dist/langchain/types.d.ts +3 -3
- package/dist/langchain/types.d.ts.map +1 -1
- package/dist/layers/implementations/L0-request-format.d.ts +2 -2
- package/dist/layers/implementations/L0-request-format.d.ts.map +1 -1
- package/dist/layers/implementations/L0-request-format.js +52 -54
- package/dist/layers/implementations/L0-request-format.js.map +1 -1
- package/dist/layers/implementations/L1-input-size.d.ts +2 -2
- package/dist/layers/implementations/L1-input-size.d.ts.map +1 -1
- package/dist/layers/implementations/L1-input-size.js +39 -49
- package/dist/layers/implementations/L1-input-size.js.map +1 -1
- package/dist/layers/implementations/L2-charset-sanitizer.d.ts +2 -2
- package/dist/layers/implementations/L2-charset-sanitizer.d.ts.map +1 -1
- package/dist/layers/implementations/L2-charset-sanitizer.js +71 -81
- package/dist/layers/implementations/L2-charset-sanitizer.js.map +1 -1
- package/dist/layers/implementations/L3-schema-conformance.d.ts +3 -3
- package/dist/layers/implementations/L3-schema-conformance.d.ts.map +1 -1
- package/dist/layers/implementations/L3-schema-conformance.js +73 -82
- package/dist/layers/implementations/L3-schema-conformance.js.map +1 -1
- package/dist/layers/implementations/L4-injection-detector.d.ts +4 -4
- package/dist/layers/implementations/L4-injection-detector.d.ts.map +1 -1
- package/dist/layers/implementations/L4-injection-detector.js +81 -85
- package/dist/layers/implementations/L4-injection-detector.js.map +1 -1
- package/dist/layers/implementations/L5-rate-limiter.d.ts +2 -2
- package/dist/layers/implementations/L5-rate-limiter.d.ts.map +1 -1
- package/dist/layers/implementations/L5-rate-limiter.js +20 -20
- package/dist/layers/implementations/L5-rate-limiter.js.map +1 -1
- package/dist/layers/implementations/index.d.ts +6 -6
- package/dist/layers/implementations/index.d.ts.map +1 -1
- package/dist/layers/implementations/index.js +6 -6
- package/dist/layers/implementations/index.js.map +1 -1
- package/dist/layers/index.d.ts +3 -3
- package/dist/layers/index.d.ts.map +1 -1
- package/dist/layers/index.js +71 -99
- package/dist/layers/index.js.map +1 -1
- package/dist/layers/types.d.ts +16 -16
- package/dist/layers/types.d.ts.map +1 -1
- package/dist/persistence/file.d.ts +3 -3
- package/dist/persistence/file.d.ts.map +1 -1
- package/dist/persistence/file.js +28 -32
- package/dist/persistence/file.js.map +1 -1
- package/dist/persistence/index.d.ts +7 -7
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +18 -18
- package/dist/persistence/index.js.map +1 -1
- package/dist/persistence/memory.d.ts +3 -3
- package/dist/persistence/memory.d.ts.map +1 -1
- package/dist/persistence/memory.js +8 -10
- package/dist/persistence/memory.js.map +1 -1
- package/dist/persistence/sqlite.d.ts +3 -3
- package/dist/persistence/sqlite.d.ts.map +1 -1
- package/dist/persistence/sqlite.js +40 -39
- package/dist/persistence/sqlite.js.map +1 -1
- package/dist/persistence/supabase.d.ts +3 -3
- package/dist/persistence/supabase.d.ts.map +1 -1
- package/dist/persistence/supabase.js +45 -43
- package/dist/persistence/supabase.js.map +1 -1
- package/dist/persistence/types.d.ts +5 -5
- package/dist/phase6/ceiling.d.ts +5 -5
- package/dist/phase6/ceiling.d.ts.map +1 -1
- package/dist/phase6/ceiling.js +36 -69
- package/dist/phase6/ceiling.js.map +1 -1
- package/dist/phase6/context.d.ts +3 -3
- package/dist/phase6/context.d.ts.map +1 -1
- package/dist/phase6/context.js +47 -93
- package/dist/phase6/context.js.map +1 -1
- package/dist/phase6/index.d.ts +12 -12
- package/dist/phase6/index.d.ts.map +1 -1
- package/dist/phase6/index.js +15 -15
- package/dist/phase6/index.js.map +1 -1
- package/dist/phase6/presets.d.ts +2 -2
- package/dist/phase6/presets.d.ts.map +1 -1
- package/dist/phase6/presets.js +33 -39
- package/dist/phase6/presets.js.map +1 -1
- package/dist/phase6/provenance.d.ts +4 -4
- package/dist/phase6/provenance.d.ts.map +1 -1
- package/dist/phase6/provenance.js +35 -42
- package/dist/phase6/provenance.js.map +1 -1
- package/dist/phase6/role-gates/index.d.ts +2 -2
- package/dist/phase6/role-gates/index.js +2 -2
- package/dist/phase6/role-gates/kernel.d.ts.map +1 -1
- package/dist/phase6/role-gates/kernel.js +16 -16
- package/dist/phase6/role-gates/kernel.js.map +1 -1
- package/dist/phase6/role-gates/policy.d.ts +2 -2
- package/dist/phase6/role-gates/policy.js +6 -6
- package/dist/phase6/role-gates.d.ts +4 -4
- package/dist/phase6/role-gates.d.ts.map +1 -1
- package/dist/phase6/role-gates.js +58 -80
- package/dist/phase6/role-gates.js.map +1 -1
- package/dist/phase6/types.d.ts +20 -19
- package/dist/phase6/types.d.ts.map +1 -1
- package/dist/phase6/types.js +82 -177
- package/dist/phase6/types.js.map +1 -1
- package/dist/phase6/weight-presets/canonical.d.ts.map +1 -1
- package/dist/phase6/weight-presets/canonical.js +10 -10
- package/dist/phase6/weight-presets/canonical.js.map +1 -1
- package/dist/phase6/weight-presets/deltas.d.ts +2 -2
- package/dist/phase6/weight-presets/deltas.d.ts.map +1 -1
- package/dist/phase6/weight-presets/deltas.js +27 -27
- package/dist/phase6/weight-presets/deltas.js.map +1 -1
- package/dist/phase6/weight-presets/index.d.ts +3 -3
- package/dist/phase6/weight-presets/index.js +3 -3
- package/dist/phase6/weight-presets/merger.d.ts +2 -2
- package/dist/phase6/weight-presets/merger.d.ts.map +1 -1
- package/dist/phase6/weight-presets/merger.js +43 -39
- package/dist/phase6/weight-presets/merger.js.map +1 -1
- package/dist/proof/index.d.ts +3 -3
- package/dist/proof/index.d.ts.map +1 -1
- package/dist/proof/index.js +38 -44
- package/dist/proof/index.js.map +1 -1
- package/dist/proof/merkle.d.ts +24 -3
- package/dist/proof/merkle.d.ts.map +1 -1
- package/dist/proof/merkle.js +116 -32
- package/dist/proof/merkle.js.map +1 -1
- package/dist/proof/zk-proofs.d.ts +6 -6
- package/dist/proof/zk-proofs.d.ts.map +1 -1
- package/dist/proof/zk-proofs.js +43 -42
- package/dist/proof/zk-proofs.js.map +1 -1
- package/dist/provenance/index.d.ts +3 -3
- package/dist/provenance/index.d.ts.map +1 -1
- package/dist/provenance/index.js +17 -19
- package/dist/provenance/index.js.map +1 -1
- package/dist/provenance/types.d.ts +4 -4
- package/dist/provenance/types.d.ts.map +1 -1
- package/dist/sandbox-training/challenges.d.ts +1 -1
- package/dist/sandbox-training/challenges.d.ts.map +1 -1
- package/dist/sandbox-training/challenges.js +228 -228
- package/dist/sandbox-training/challenges.js.map +1 -1
- package/dist/sandbox-training/graduation.d.ts +1 -1
- package/dist/sandbox-training/graduation.d.ts.map +1 -1
- package/dist/sandbox-training/graduation.js +15 -14
- package/dist/sandbox-training/graduation.js.map +1 -1
- package/dist/sandbox-training/index.d.ts +9 -9
- package/dist/sandbox-training/index.d.ts.map +1 -1
- package/dist/sandbox-training/index.js +6 -6
- package/dist/sandbox-training/index.js.map +1 -1
- package/dist/sandbox-training/promotion-service.d.ts +4 -4
- package/dist/sandbox-training/promotion-service.d.ts.map +1 -1
- package/dist/sandbox-training/promotion-service.js +5 -5
- package/dist/sandbox-training/promotion-service.js.map +1 -1
- package/dist/sandbox-training/runner.d.ts +1 -1
- package/dist/sandbox-training/runner.d.ts.map +1 -1
- package/dist/sandbox-training/runner.js +73 -74
- package/dist/sandbox-training/runner.js.map +1 -1
- package/dist/sandbox-training/scorer.d.ts +4 -4
- package/dist/sandbox-training/scorer.js +5 -5
- package/dist/sandbox-training/types.d.ts +4 -4
- package/dist/sandbox-training/types.d.ts.map +1 -1
- package/dist/sandbox-training/types.js +7 -11
- package/dist/sandbox-training/types.js.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/audit.d.ts +1 -1
- package/dist/trust-engine/ceiling-enforcement/audit.d.ts.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/audit.js +4 -3
- package/dist/trust-engine/ceiling-enforcement/audit.js.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/index.d.ts +2 -2
- package/dist/trust-engine/ceiling-enforcement/index.js +2 -2
- package/dist/trust-engine/ceiling-enforcement/kernel.d.ts +12 -10
- package/dist/trust-engine/ceiling-enforcement/kernel.d.ts.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/kernel.js +26 -20
- package/dist/trust-engine/ceiling-enforcement/kernel.js.map +1 -1
- package/dist/trust-engine/context-policy/enforcement.d.ts.map +1 -1
- package/dist/trust-engine/context-policy/factory.d.ts +1 -1
- package/dist/trust-engine/context-policy/factory.d.ts.map +1 -1
- package/dist/trust-engine/context-policy/factory.js +1 -1
- package/dist/trust-engine/context-policy/factory.js.map +1 -1
- package/dist/trust-engine/context-policy/index.d.ts +2 -2
- package/dist/trust-engine/context-policy/index.js +2 -2
- package/dist/trust-engine/creation-modifiers/index.d.ts +1 -1
- package/dist/trust-engine/creation-modifiers/index.js +1 -1
- package/dist/trust-engine/creation-modifiers/types.d.ts.map +1 -1
- package/dist/trust-engine/creation-modifiers/types.js +3 -2
- package/dist/trust-engine/creation-modifiers/types.js.map +1 -1
- package/dist/trust-engine/decay-profiles.d.ts +37 -136
- package/dist/trust-engine/decay-profiles.d.ts.map +1 -1
- package/dist/trust-engine/decay-profiles.js +68 -178
- package/dist/trust-engine/decay-profiles.js.map +1 -1
- package/dist/trust-engine/index.d.ts +135 -168
- package/dist/trust-engine/index.d.ts.map +1 -1
- package/dist/trust-engine/index.js +239 -525
- package/dist/trust-engine/index.js.map +1 -1
- package/dist/trust-engine/phase6-types.d.ts +18 -11
- package/dist/trust-engine/phase6-types.d.ts.map +1 -1
- package/dist/trust-engine/phase6-types.js +33 -29
- package/dist/trust-engine/phase6-types.js.map +1 -1
- package/package.json +1 -1
- package/dist/enforce/types.d.ts +0 -234
- package/dist/enforce/types.d.ts.map +0 -1
- package/dist/enforce/types.js +0 -10
- package/dist/enforce/types.js.map +0 -1
- package/dist/intent/types.d.ts +0 -69
- package/dist/intent/types.d.ts.map +0 -1
- package/dist/intent/types.js +0 -10
- package/dist/intent/types.js.map +0 -1
- package/dist/intent-gateway/index.d.ts +0 -522
- package/dist/intent-gateway/index.d.ts.map +0 -1
- package/dist/intent-gateway/index.js +0 -1499
- package/dist/intent-gateway/index.js.map +0 -1
- package/dist/trust-engine/types.d.ts +0 -77
- package/dist/trust-engine/types.d.ts.map +0 -1
- package/dist/trust-engine/types.js +0 -20
- package/dist/trust-engine/types.js.map +0 -1
|
@@ -13,39 +13,37 @@
|
|
|
13
13
|
*
|
|
14
14
|
* @packageDocumentation
|
|
15
15
|
*/
|
|
16
|
-
import { createLogger } from
|
|
17
|
-
import { TRUST_LEVEL_NAMES } from
|
|
18
|
-
const logger = createLogger({ component:
|
|
16
|
+
import { createLogger } from '../common/logger.js';
|
|
17
|
+
import { TRUST_LEVEL_NAMES } from '../trust-engine/index.js';
|
|
18
|
+
const logger = createLogger({ component: 'trust-aware-enforcement' });
|
|
19
19
|
/**
|
|
20
20
|
* Compute risk level from intent metadata fields.
|
|
21
21
|
*/
|
|
22
22
|
function computeRiskLevel(context) {
|
|
23
23
|
const intent = context.intent;
|
|
24
24
|
// Irreversible + high sensitivity = critical
|
|
25
|
-
if (intent.reversibility ===
|
|
26
|
-
|
|
27
|
-
return "critical";
|
|
25
|
+
if (intent.reversibility === 'IRREVERSIBLE' && intent.dataSensitivity === 'RESTRICTED') {
|
|
26
|
+
return 'critical';
|
|
28
27
|
}
|
|
29
28
|
// Delete/execute with restricted data = high
|
|
30
|
-
if ((intent.actionType ===
|
|
31
|
-
(intent.dataSensitivity ===
|
|
32
|
-
|
|
33
|
-
return "high";
|
|
29
|
+
if ((intent.actionType === 'delete' || intent.actionType === 'execute') &&
|
|
30
|
+
(intent.dataSensitivity === 'RESTRICTED' || intent.dataSensitivity === 'CONFIDENTIAL')) {
|
|
31
|
+
return 'high';
|
|
34
32
|
}
|
|
35
33
|
// Irreversible actions = high
|
|
36
|
-
if (intent.reversibility ===
|
|
37
|
-
return
|
|
34
|
+
if (intent.reversibility === 'IRREVERSIBLE') {
|
|
35
|
+
return 'high';
|
|
38
36
|
}
|
|
39
37
|
// Write/transfer with confidential data = medium
|
|
40
|
-
if ((intent.actionType ===
|
|
41
|
-
intent.dataSensitivity ===
|
|
42
|
-
return
|
|
38
|
+
if ((intent.actionType === 'write' || intent.actionType === 'transfer') &&
|
|
39
|
+
intent.dataSensitivity === 'CONFIDENTIAL') {
|
|
40
|
+
return 'medium';
|
|
43
41
|
}
|
|
44
42
|
// Read-only or public data = low
|
|
45
|
-
if (intent.actionType ===
|
|
46
|
-
return
|
|
43
|
+
if (intent.actionType === 'read' || intent.dataSensitivity === 'PUBLIC') {
|
|
44
|
+
return 'low';
|
|
47
45
|
}
|
|
48
|
-
return
|
|
46
|
+
return 'medium';
|
|
49
47
|
}
|
|
50
48
|
// =============================================================================
|
|
51
49
|
// CONSTRAINT COMPUTATION
|
|
@@ -55,26 +53,26 @@ function computeRiskLevel(context) {
|
|
|
55
53
|
*/
|
|
56
54
|
function buildConstraints(riskLevel, trustLevel, policy, defaultConstraints) {
|
|
57
55
|
const base = {
|
|
58
|
-
allowedTools: defaultConstraints?.allowedTools ?? [
|
|
59
|
-
dataScopes: defaultConstraints?.dataScopes ?? [
|
|
56
|
+
allowedTools: defaultConstraints?.allowedTools ?? ['*'],
|
|
57
|
+
dataScopes: defaultConstraints?.dataScopes ?? ['*'],
|
|
60
58
|
rateLimits: defaultConstraints?.rateLimits ?? [],
|
|
61
59
|
requiredApprovals: defaultConstraints?.requiredApprovals ?? [],
|
|
62
60
|
reversibilityRequired: false,
|
|
63
61
|
maxRetries: 3,
|
|
64
62
|
};
|
|
65
63
|
// Tighten constraints based on risk
|
|
66
|
-
if (riskLevel ===
|
|
64
|
+
if (riskLevel === 'critical' || riskLevel === 'high') {
|
|
67
65
|
base.reversibilityRequired = true;
|
|
68
66
|
base.maxExecutionTimeMs = 300_000; // 5 minutes
|
|
69
67
|
base.maxRetries = 1;
|
|
70
68
|
}
|
|
71
|
-
if (riskLevel ===
|
|
69
|
+
if (riskLevel === 'critical') {
|
|
72
70
|
base.requiredApprovals = [
|
|
73
71
|
{
|
|
74
|
-
type:
|
|
75
|
-
approver:
|
|
72
|
+
type: 'human_review',
|
|
73
|
+
approver: 'admin',
|
|
76
74
|
timeoutMs: policy.refinementDeadlineMs,
|
|
77
|
-
reason:
|
|
75
|
+
reason: 'Critical risk action requires human approval',
|
|
78
76
|
},
|
|
79
77
|
];
|
|
80
78
|
}
|
|
@@ -96,47 +94,47 @@ function buildRefinementOptions(riskLevel, trustLevel) {
|
|
|
96
94
|
// Always offer "add constraints"
|
|
97
95
|
options.push({
|
|
98
96
|
id: crypto.randomUUID(),
|
|
99
|
-
action:
|
|
100
|
-
description:
|
|
101
|
-
successProbability: riskLevel ===
|
|
102
|
-
effort:
|
|
97
|
+
action: 'ADD_CONSTRAINTS',
|
|
98
|
+
description: 'Accept additional operational constraints to proceed',
|
|
99
|
+
successProbability: riskLevel === 'high' ? 0.6 : 0.9,
|
|
100
|
+
effort: 'low',
|
|
103
101
|
});
|
|
104
102
|
// Offer scope reduction for high-risk
|
|
105
|
-
if (riskLevel ===
|
|
103
|
+
if (riskLevel === 'high' || riskLevel === 'critical') {
|
|
106
104
|
options.push({
|
|
107
105
|
id: crypto.randomUUID(),
|
|
108
|
-
action:
|
|
109
|
-
description:
|
|
106
|
+
action: 'REDUCE_SCOPE',
|
|
107
|
+
description: 'Reduce the scope of the action (e.g., fewer resources, read-only)',
|
|
110
108
|
successProbability: 0.8,
|
|
111
|
-
effort:
|
|
109
|
+
effort: 'medium',
|
|
112
110
|
});
|
|
113
111
|
}
|
|
114
112
|
// Offer human approval
|
|
115
113
|
options.push({
|
|
116
114
|
id: crypto.randomUUID(),
|
|
117
|
-
action:
|
|
118
|
-
description:
|
|
115
|
+
action: 'REQUEST_APPROVAL',
|
|
116
|
+
description: 'Request explicit human approval for this action',
|
|
119
117
|
successProbability: 0.7,
|
|
120
|
-
effort:
|
|
118
|
+
effort: 'medium',
|
|
121
119
|
});
|
|
122
120
|
// Offer decomposition for complex actions
|
|
123
|
-
if (riskLevel !==
|
|
121
|
+
if (riskLevel !== 'low') {
|
|
124
122
|
options.push({
|
|
125
123
|
id: crypto.randomUUID(),
|
|
126
|
-
action:
|
|
127
|
-
description:
|
|
124
|
+
action: 'DECOMPOSE',
|
|
125
|
+
description: 'Break this action into smaller, individually-approvable steps',
|
|
128
126
|
successProbability: 0.85,
|
|
129
|
-
effort:
|
|
127
|
+
effort: 'high',
|
|
130
128
|
});
|
|
131
129
|
}
|
|
132
130
|
// Offer "wait for trust" if trust is close to threshold
|
|
133
131
|
if (trustLevel >= 2 && trustLevel <= 4) {
|
|
134
132
|
options.push({
|
|
135
133
|
id: crypto.randomUUID(),
|
|
136
|
-
action:
|
|
137
|
-
description:
|
|
134
|
+
action: 'WAIT_FOR_TRUST',
|
|
135
|
+
description: 'Continue building trust through lower-risk actions first',
|
|
138
136
|
successProbability: 0.5,
|
|
139
|
-
effort:
|
|
137
|
+
effort: 'high',
|
|
140
138
|
});
|
|
141
139
|
}
|
|
142
140
|
return options;
|
|
@@ -172,12 +170,9 @@ export class TrustAwareEnforcementService {
|
|
|
172
170
|
constructor(trustEngine, config, policy) {
|
|
173
171
|
this.trustEngine = trustEngine;
|
|
174
172
|
this.policyEngine = config?.policyEngine ?? null;
|
|
175
|
-
this.config = {
|
|
176
|
-
...DEFAULT_CONFIG,
|
|
177
|
-
...(config ? { ...config, policyEngine: undefined } : {}),
|
|
178
|
-
};
|
|
173
|
+
this.config = { ...DEFAULT_CONFIG, ...(config ? { ...config, policyEngine: undefined } : {}) };
|
|
179
174
|
this.policy = policy ?? {
|
|
180
|
-
defaultAction:
|
|
175
|
+
defaultAction: 'deny',
|
|
181
176
|
trustThresholds: {
|
|
182
177
|
autoApproveLevel: this.config.autoApproveLevel,
|
|
183
178
|
requireRefinementLevel: this.config.requireRefinementLevel,
|
|
@@ -218,34 +213,34 @@ export class TrustAwareEnforcementService {
|
|
|
218
213
|
};
|
|
219
214
|
const violations = this.policyEngine.evaluate(policyInput);
|
|
220
215
|
if (violations.length > 0) {
|
|
221
|
-
logger.info({ intentId: intent.id, violationCount: violations.length },
|
|
216
|
+
logger.info({ intentId: intent.id, violationCount: violations.length }, 'Security policy violations detected');
|
|
222
217
|
// Convert violations to RuleResult entries for tier determination
|
|
223
218
|
for (const violation of violations) {
|
|
224
|
-
if (violation.action ===
|
|
219
|
+
if (violation.action === 'deny') {
|
|
225
220
|
evaluation.violatedRules.push({
|
|
226
221
|
ruleId: violation.policyId,
|
|
227
222
|
ruleName: violation.policyName,
|
|
228
223
|
matched: true,
|
|
229
|
-
action:
|
|
224
|
+
action: 'deny',
|
|
230
225
|
reason: violation.reason,
|
|
231
|
-
details: { source:
|
|
226
|
+
details: { source: 'security-policy-engine' },
|
|
232
227
|
durationMs: 0,
|
|
233
228
|
});
|
|
234
229
|
}
|
|
235
|
-
else if (violation.action ===
|
|
230
|
+
else if (violation.action === 'escalate') {
|
|
236
231
|
evaluation.violatedRules.push({
|
|
237
232
|
ruleId: violation.policyId,
|
|
238
233
|
ruleName: violation.policyName,
|
|
239
234
|
matched: true,
|
|
240
|
-
action:
|
|
235
|
+
action: 'escalate',
|
|
241
236
|
reason: violation.reason,
|
|
242
|
-
details: { source:
|
|
237
|
+
details: { source: 'security-policy-engine' },
|
|
243
238
|
durationMs: 0,
|
|
244
239
|
});
|
|
245
240
|
}
|
|
246
241
|
}
|
|
247
242
|
// If any deny violations, mark evaluation as failed
|
|
248
|
-
if (violations.some((v) => v.action ===
|
|
243
|
+
if (violations.some((v) => v.action === 'deny')) {
|
|
249
244
|
evaluation.passed = false;
|
|
250
245
|
}
|
|
251
246
|
}
|
|
@@ -261,7 +256,7 @@ export class TrustAwareEnforcementService {
|
|
|
261
256
|
agentId: intent.entityId,
|
|
262
257
|
correlationId,
|
|
263
258
|
tier,
|
|
264
|
-
permitted: tier ===
|
|
259
|
+
permitted: tier === 'GREEN',
|
|
265
260
|
trustBand: `T${trustLevel}_${this.getTrustBandName(trustLevel)}`,
|
|
266
261
|
trustScore,
|
|
267
262
|
reasoning: this.buildReasoning(tier, evaluation, trustLevel, riskLevel),
|
|
@@ -271,31 +266,27 @@ export class TrustAwareEnforcementService {
|
|
|
271
266
|
latencyMs,
|
|
272
267
|
};
|
|
273
268
|
// Tier-specific enrichment
|
|
274
|
-
if (tier ===
|
|
269
|
+
if (tier === 'GREEN') {
|
|
275
270
|
decision.constraints = buildConstraints(riskLevel, trustLevel, this.config, this.config.defaultConstraints);
|
|
276
271
|
}
|
|
277
|
-
if (tier ===
|
|
272
|
+
if (tier === 'YELLOW') {
|
|
278
273
|
decision.refinementDeadline = new Date(Date.now() + this.config.refinementDeadlineMs).toISOString();
|
|
279
274
|
decision.maxRefinementAttempts = this.config.maxRefinementAttempts;
|
|
280
275
|
decision.refinementOptions = buildRefinementOptions(riskLevel, trustLevel);
|
|
281
276
|
}
|
|
282
|
-
if (tier ===
|
|
277
|
+
if (tier === 'RED') {
|
|
283
278
|
const violatedPolicies = evaluation.violatedRules
|
|
284
|
-
.filter((r) => r.action ===
|
|
279
|
+
.filter((r) => r.action === 'deny' || r.action === 'terminate')
|
|
285
280
|
.map((r) => ({
|
|
286
281
|
policyId: r.ruleId,
|
|
287
282
|
policyName: r.ruleName,
|
|
288
|
-
severity: r.action ===
|
|
289
|
-
? "critical"
|
|
290
|
-
: "error",
|
|
283
|
+
severity: r.action === 'terminate' ? 'critical' : 'error',
|
|
291
284
|
}));
|
|
292
|
-
decision.denialReason =
|
|
293
|
-
violatedPolicies.
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
decision.
|
|
297
|
-
decision.violatedPolicies =
|
|
298
|
-
violatedPolicies.length > 0 ? violatedPolicies : undefined;
|
|
285
|
+
decision.denialReason = violatedPolicies.length > 0
|
|
286
|
+
? `Policy violations: ${violatedPolicies.map((p) => p.policyName).join(', ')}`
|
|
287
|
+
: `Trust level T${trustLevel} below minimum threshold`;
|
|
288
|
+
decision.hardDenial = evaluation.violatedRules.some((r) => r.action === 'terminate');
|
|
289
|
+
decision.violatedPolicies = violatedPolicies.length > 0 ? violatedPolicies : undefined;
|
|
299
290
|
}
|
|
300
291
|
// Store
|
|
301
292
|
this.decisions.set(decision.id, decision);
|
|
@@ -310,7 +301,7 @@ export class TrustAwareEnforcementService {
|
|
|
310
301
|
currentDecisionId: decision.id,
|
|
311
302
|
stateHistory: [
|
|
312
303
|
{
|
|
313
|
-
from:
|
|
304
|
+
from: 'SUBMITTED',
|
|
314
305
|
to: this.tierToState(tier),
|
|
315
306
|
reason: `Decision: ${tier} (trust=T${trustLevel}, risk=${riskLevel})`,
|
|
316
307
|
timestamp: now,
|
|
@@ -329,7 +320,7 @@ export class TrustAwareEnforcementService {
|
|
|
329
320
|
trustScore,
|
|
330
321
|
riskLevel,
|
|
331
322
|
latencyMs,
|
|
332
|
-
},
|
|
323
|
+
}, 'Enforcement decision made');
|
|
333
324
|
return {
|
|
334
325
|
decision,
|
|
335
326
|
workflow,
|
|
@@ -341,23 +332,20 @@ export class TrustAwareEnforcementService {
|
|
|
341
332
|
const original = this.decisions.get(request.decisionId);
|
|
342
333
|
if (!original || original.tenantId !== tenantId)
|
|
343
334
|
return null;
|
|
344
|
-
if (original.tier !==
|
|
335
|
+
if (original.tier !== 'YELLOW')
|
|
345
336
|
return null;
|
|
346
337
|
// Check refinement deadline
|
|
347
338
|
if (original.refinementDeadline) {
|
|
348
339
|
const deadline = new Date(original.refinementDeadline).getTime();
|
|
349
340
|
if (Date.now() > deadline) {
|
|
350
|
-
logger.warn({ decisionId: request.decisionId },
|
|
341
|
+
logger.warn({ decisionId: request.decisionId }, 'Refinement deadline exceeded');
|
|
351
342
|
return null;
|
|
352
343
|
}
|
|
353
344
|
}
|
|
354
345
|
// Check attempt limit
|
|
355
346
|
const maxAttempts = original.maxRefinementAttempts ?? this.config.maxRefinementAttempts;
|
|
356
347
|
if (original.refinementAttempt >= maxAttempts) {
|
|
357
|
-
logger.warn({
|
|
358
|
-
decisionId: request.decisionId,
|
|
359
|
-
attempts: original.refinementAttempt,
|
|
360
|
-
}, "Max refinement attempts reached");
|
|
348
|
+
logger.warn({ decisionId: request.decisionId, attempts: original.refinementAttempt }, 'Max refinement attempts reached');
|
|
361
349
|
return null;
|
|
362
350
|
}
|
|
363
351
|
// Validate selected refinements exist
|
|
@@ -366,14 +354,14 @@ export class TrustAwareEnforcementService {
|
|
|
366
354
|
.map((id) => validRefinements.find((opt) => opt.id === id))
|
|
367
355
|
.filter((opt) => opt !== undefined);
|
|
368
356
|
if (selectedOptions.length === 0) {
|
|
369
|
-
logger.warn({ decisionId: request.decisionId },
|
|
357
|
+
logger.warn({ decisionId: request.decisionId }, 'No valid refinement options selected');
|
|
370
358
|
return null;
|
|
371
359
|
}
|
|
372
360
|
const now = new Date().toISOString();
|
|
373
361
|
// Compute resulting constraints from refinements
|
|
374
362
|
const mergedConstraints = {
|
|
375
|
-
allowedTools: [
|
|
376
|
-
dataScopes: [
|
|
363
|
+
allowedTools: ['*'],
|
|
364
|
+
dataScopes: ['*'],
|
|
377
365
|
rateLimits: [],
|
|
378
366
|
requiredApprovals: [],
|
|
379
367
|
reversibilityRequired: true, // Refinement always requires reversibility
|
|
@@ -385,12 +373,12 @@ export class TrustAwareEnforcementService {
|
|
|
385
373
|
if (opt.resultingConstraints) {
|
|
386
374
|
Object.assign(mergedConstraints, opt.resultingConstraints);
|
|
387
375
|
}
|
|
388
|
-
if (opt.action ===
|
|
376
|
+
if (opt.action === 'REQUEST_APPROVAL') {
|
|
389
377
|
mergedConstraints.requiredApprovals.push({
|
|
390
|
-
type:
|
|
391
|
-
approver:
|
|
378
|
+
type: 'human_review',
|
|
379
|
+
approver: 'admin',
|
|
392
380
|
timeoutMs: this.config.refinementDeadlineMs,
|
|
393
|
-
reason:
|
|
381
|
+
reason: 'Refinement requested human approval',
|
|
394
382
|
});
|
|
395
383
|
}
|
|
396
384
|
}
|
|
@@ -398,12 +386,12 @@ export class TrustAwareEnforcementService {
|
|
|
398
386
|
const refined = {
|
|
399
387
|
...original,
|
|
400
388
|
id: crypto.randomUUID(),
|
|
401
|
-
tier:
|
|
389
|
+
tier: 'GREEN',
|
|
402
390
|
permitted: true,
|
|
403
391
|
refinementAttempt: original.refinementAttempt + 1,
|
|
404
392
|
reasoning: [
|
|
405
|
-
`Refined from YELLOW to GREEN via: ${selectedOptions.map((o) => o.action).join(
|
|
406
|
-
|
|
393
|
+
`Refined from YELLOW to GREEN via: ${selectedOptions.map((o) => o.action).join(', ')}`,
|
|
394
|
+
'Additional constraints applied',
|
|
407
395
|
],
|
|
408
396
|
constraints: mergedConstraints,
|
|
409
397
|
decidedAt: now,
|
|
@@ -415,13 +403,13 @@ export class TrustAwareEnforcementService {
|
|
|
415
403
|
const workflow = this.workflows.get(original.intentId);
|
|
416
404
|
if (workflow) {
|
|
417
405
|
const previousState = workflow.state;
|
|
418
|
-
workflow.state =
|
|
406
|
+
workflow.state = 'APPROVED';
|
|
419
407
|
workflow.currentDecisionId = refined.id;
|
|
420
408
|
workflow.updatedAt = now;
|
|
421
409
|
workflow.stateHistory.push({
|
|
422
410
|
from: previousState,
|
|
423
|
-
to:
|
|
424
|
-
reason: `Refined via: ${selectedOptions.map((o) => o.action).join(
|
|
411
|
+
to: 'APPROVED',
|
|
412
|
+
reason: `Refined via: ${selectedOptions.map((o) => o.action).join(', ')}`,
|
|
425
413
|
timestamp: now,
|
|
426
414
|
});
|
|
427
415
|
}
|
|
@@ -430,11 +418,11 @@ export class TrustAwareEnforcementService {
|
|
|
430
418
|
refinedDecisionId: refined.id,
|
|
431
419
|
attempt: refined.refinementAttempt,
|
|
432
420
|
actions: selectedOptions.map((o) => o.action),
|
|
433
|
-
},
|
|
421
|
+
}, 'Decision refined to GREEN');
|
|
434
422
|
return {
|
|
435
423
|
decision: refined,
|
|
436
424
|
workflow: workflow,
|
|
437
|
-
tier:
|
|
425
|
+
tier: 'GREEN',
|
|
438
426
|
};
|
|
439
427
|
}
|
|
440
428
|
async getDecision(id, tenantId) {
|
|
@@ -458,8 +446,7 @@ export class TrustAwareEnforcementService {
|
|
|
458
446
|
// Sync threshold config from policy
|
|
459
447
|
if (policy.trustThresholds) {
|
|
460
448
|
this.config.autoApproveLevel = policy.trustThresholds.autoApproveLevel;
|
|
461
|
-
this.config.requireRefinementLevel =
|
|
462
|
-
policy.trustThresholds.requireRefinementLevel;
|
|
449
|
+
this.config.requireRefinementLevel = policy.trustThresholds.requireRefinementLevel;
|
|
463
450
|
this.config.autoDenyLevel = policy.trustThresholds.autoDenyLevel;
|
|
464
451
|
}
|
|
465
452
|
}
|
|
@@ -477,16 +464,14 @@ export class TrustAwareEnforcementService {
|
|
|
477
464
|
const { policyEngine: _pe, ...restUpdates } = updates;
|
|
478
465
|
this.config = { ...this.config, ...restUpdates };
|
|
479
466
|
// Sync policy thresholds if updated
|
|
480
|
-
if (updates.autoApproveLevel !== undefined ||
|
|
481
|
-
updates.requireRefinementLevel !== undefined ||
|
|
482
|
-
updates.autoDenyLevel !== undefined) {
|
|
467
|
+
if (updates.autoApproveLevel !== undefined || updates.requireRefinementLevel !== undefined || updates.autoDenyLevel !== undefined) {
|
|
483
468
|
this.policy.trustThresholds = {
|
|
484
469
|
autoApproveLevel: this.config.autoApproveLevel,
|
|
485
470
|
requireRefinementLevel: this.config.requireRefinementLevel,
|
|
486
471
|
autoDenyLevel: this.config.autoDenyLevel,
|
|
487
472
|
};
|
|
488
473
|
}
|
|
489
|
-
logger.info({ previous: previousConfig, updated: this.config },
|
|
474
|
+
logger.info({ previous: previousConfig, updated: this.config }, 'Enforcement policy refreshed at runtime');
|
|
490
475
|
}
|
|
491
476
|
/**
|
|
492
477
|
* Get current policy configuration (for inspection/debugging).
|
|
@@ -503,7 +488,7 @@ export class TrustAwareEnforcementService {
|
|
|
503
488
|
*/
|
|
504
489
|
setPolicyEngine(engine) {
|
|
505
490
|
this.policyEngine = engine;
|
|
506
|
-
logger.info({ hasEngine: engine !== null },
|
|
491
|
+
logger.info({ hasEngine: engine !== null }, 'Security policy engine updated');
|
|
507
492
|
}
|
|
508
493
|
/**
|
|
509
494
|
* Get count of active decisions.
|
|
@@ -529,50 +514,50 @@ export class TrustAwareEnforcementService {
|
|
|
529
514
|
// ===========================================================================
|
|
530
515
|
determineTier(evaluation, trustLevel, riskLevel) {
|
|
531
516
|
// Hard denials from rule violations
|
|
532
|
-
if (evaluation.violatedRules.some((r) => r.action ===
|
|
533
|
-
return
|
|
517
|
+
if (evaluation.violatedRules.some((r) => r.action === 'deny' || r.action === 'terminate')) {
|
|
518
|
+
return 'RED';
|
|
534
519
|
}
|
|
535
520
|
// Trust below auto-deny threshold
|
|
536
521
|
if (trustLevel < this.config.autoDenyLevel) {
|
|
537
|
-
return
|
|
522
|
+
return 'RED';
|
|
538
523
|
}
|
|
539
524
|
// Critical risk always requires at least YELLOW unless T6+
|
|
540
|
-
if (riskLevel ===
|
|
541
|
-
return trustLevel < this.config.requireRefinementLevel ?
|
|
525
|
+
if (riskLevel === 'critical' && trustLevel < 6) {
|
|
526
|
+
return trustLevel < this.config.requireRefinementLevel ? 'RED' : 'YELLOW';
|
|
542
527
|
}
|
|
543
528
|
// High risk requires higher trust for auto-approve
|
|
544
|
-
if (riskLevel ===
|
|
529
|
+
if (riskLevel === 'high') {
|
|
545
530
|
const elevatedApproveLevel = Math.min(7, this.config.autoApproveLevel + 1);
|
|
546
531
|
if (trustLevel >= elevatedApproveLevel && evaluation.passed)
|
|
547
|
-
return
|
|
532
|
+
return 'GREEN';
|
|
548
533
|
if (trustLevel < this.config.requireRefinementLevel)
|
|
549
|
-
return
|
|
550
|
-
return
|
|
534
|
+
return 'RED';
|
|
535
|
+
return 'YELLOW';
|
|
551
536
|
}
|
|
552
537
|
// Standard tier determination
|
|
553
538
|
if (trustLevel >= this.config.autoApproveLevel && evaluation.passed)
|
|
554
|
-
return
|
|
539
|
+
return 'GREEN';
|
|
555
540
|
if (trustLevel < this.config.requireRefinementLevel)
|
|
556
|
-
return
|
|
557
|
-
return
|
|
541
|
+
return 'YELLOW';
|
|
542
|
+
return 'YELLOW';
|
|
558
543
|
}
|
|
559
544
|
buildReasoning(tier, evaluation, trustLevel, riskLevel) {
|
|
560
545
|
const reasons = [];
|
|
561
546
|
const bandName = this.getTrustBandName(trustLevel);
|
|
562
|
-
if (tier ===
|
|
547
|
+
if (tier === 'GREEN') {
|
|
563
548
|
reasons.push(`Trust T${trustLevel} (${bandName}) meets auto-approve threshold`);
|
|
564
549
|
reasons.push(`Risk level: ${riskLevel}`);
|
|
565
550
|
if (evaluation.passed)
|
|
566
|
-
reasons.push(
|
|
551
|
+
reasons.push('All policy checks passed');
|
|
567
552
|
}
|
|
568
|
-
else if (tier ===
|
|
553
|
+
else if (tier === 'YELLOW') {
|
|
569
554
|
reasons.push(`Trust T${trustLevel} (${bandName}) requires refinement`);
|
|
570
555
|
reasons.push(`Risk level: ${riskLevel}`);
|
|
571
|
-
reasons.push(
|
|
556
|
+
reasons.push('Refinement options available — select one or more to proceed');
|
|
572
557
|
}
|
|
573
558
|
else {
|
|
574
559
|
if (evaluation.violatedRules.length > 0) {
|
|
575
|
-
reasons.push(
|
|
560
|
+
reasons.push('Policy violations detected:');
|
|
576
561
|
for (const rule of evaluation.violatedRules.slice(0, 5)) {
|
|
577
562
|
reasons.push(` - ${rule.reason}`);
|
|
578
563
|
}
|
|
@@ -586,16 +571,13 @@ export class TrustAwareEnforcementService {
|
|
|
586
571
|
}
|
|
587
572
|
tierToState(tier) {
|
|
588
573
|
switch (tier) {
|
|
589
|
-
case
|
|
590
|
-
|
|
591
|
-
case
|
|
592
|
-
return "PENDING_REFINEMENT";
|
|
593
|
-
case "RED":
|
|
594
|
-
return "DENIED";
|
|
574
|
+
case 'GREEN': return 'APPROVED';
|
|
575
|
+
case 'YELLOW': return 'PENDING_REFINEMENT';
|
|
576
|
+
case 'RED': return 'DENIED';
|
|
595
577
|
}
|
|
596
578
|
}
|
|
597
579
|
getTrustBandName(level) {
|
|
598
|
-
return TRUST_LEVEL_NAMES[level] ??
|
|
580
|
+
return TRUST_LEVEL_NAMES[level] ?? 'Unknown';
|
|
599
581
|
}
|
|
600
582
|
}
|
|
601
583
|
//# sourceMappingURL=trust-aware-enforcement-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trust-aware-enforcement-service.js","sourceRoot":"","sources":["../../src/enforce/trust-aware-enforcement-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trust-aware-enforcement-service.js","sourceRoot":"","sources":["../../src/enforce/trust-aware-enforcement-service.ts"],"names":[],"mappings":"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"}
|