@trentapps/manager-protocol 1.1.3 → 1.2.1
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 +164 -17
- package/dist/analyzers/CSSAnalyzer.d.ts +180 -8
- package/dist/analyzers/CSSAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/CSSAnalyzer.js +561 -105
- package/dist/analyzers/CSSAnalyzer.js.map +1 -1
- package/dist/config/dashboard.d.ts +55 -0
- package/dist/config/dashboard.d.ts.map +1 -0
- package/dist/config/dashboard.js +103 -0
- package/dist/config/dashboard.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +7 -0
- package/dist/config/index.js.map +1 -0
- package/dist/dashboard/httpDashboard.d.ts +100 -0
- package/dist/dashboard/httpDashboard.d.ts.map +1 -0
- package/dist/dashboard/httpDashboard.js +1276 -0
- package/dist/dashboard/httpDashboard.js.map +1 -0
- package/dist/dashboard/index.d.ts +6 -0
- package/dist/dashboard/index.d.ts.map +1 -0
- package/dist/dashboard/index.js +7 -0
- package/dist/dashboard/index.js.map +1 -0
- package/dist/engine/AuditLogger.d.ts +370 -2
- package/dist/engine/AuditLogger.d.ts.map +1 -1
- package/dist/engine/AuditLogger.js +1064 -24
- package/dist/engine/AuditLogger.js.map +1 -1
- package/dist/engine/GitHubClient.d.ts +183 -0
- package/dist/engine/GitHubClient.d.ts.map +1 -0
- package/dist/engine/GitHubClient.js +411 -0
- package/dist/engine/GitHubClient.js.map +1 -0
- package/dist/engine/RateLimiter.d.ts +5 -3
- package/dist/engine/RateLimiter.d.ts.map +1 -1
- package/dist/engine/RateLimiter.js +49 -72
- package/dist/engine/RateLimiter.js.map +1 -1
- package/dist/engine/RuleDependencyAnalyzer.d.ts +73 -0
- package/dist/engine/RuleDependencyAnalyzer.d.ts.map +1 -0
- package/dist/engine/RuleDependencyAnalyzer.js +475 -0
- package/dist/engine/RuleDependencyAnalyzer.js.map +1 -0
- package/dist/engine/RulesEngine.d.ts +102 -3
- package/dist/engine/RulesEngine.d.ts.map +1 -1
- package/dist/engine/RulesEngine.js +326 -21
- package/dist/engine/RulesEngine.js.map +1 -1
- package/dist/engine/TaskManager.d.ts +10 -14
- package/dist/engine/TaskManager.d.ts.map +1 -1
- package/dist/engine/TaskManager.js +169 -197
- package/dist/engine/TaskManager.js.map +1 -1
- package/dist/engine/index.d.ts +3 -0
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +5 -0
- package/dist/engine/index.js.map +1 -1
- package/dist/rules/azure.d.ts.map +1 -1
- package/dist/rules/azure.js +12 -14
- package/dist/rules/azure.js.map +1 -1
- package/dist/rules/compliance.d.ts.map +1 -1
- package/dist/rules/compliance.js +23 -41
- package/dist/rules/compliance.js.map +1 -1
- package/dist/rules/condition-optimizer.d.ts +151 -0
- package/dist/rules/condition-optimizer.d.ts.map +1 -0
- package/dist/rules/condition-optimizer.js +479 -0
- package/dist/rules/condition-optimizer.js.map +1 -0
- package/dist/rules/css.d.ts.map +1 -1
- package/dist/rules/css.js +538 -0
- package/dist/rules/css.js.map +1 -1
- package/dist/rules/field-standards.d.ts +1172 -0
- package/dist/rules/field-standards.d.ts.map +1 -0
- package/dist/rules/field-standards.js +908 -0
- package/dist/rules/field-standards.js.map +1 -0
- package/dist/rules/flask.d.ts.map +1 -1
- package/dist/rules/flask.js +18 -31
- package/dist/rules/flask.js.map +1 -1
- package/dist/rules/index.d.ts +220 -0
- package/dist/rules/index.d.ts.map +1 -1
- package/dist/rules/index.js +155 -0
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/ml-ai.d.ts.map +1 -1
- package/dist/rules/ml-ai.js +11 -13
- package/dist/rules/ml-ai.js.map +1 -1
- package/dist/rules/patterns.d.ts +568 -0
- package/dist/rules/patterns.d.ts.map +1 -0
- package/dist/rules/patterns.js +1359 -0
- package/dist/rules/patterns.js.map +1 -0
- package/dist/rules/security.d.ts.map +1 -1
- package/dist/rules/security.js +580 -19
- package/dist/rules/security.js.map +1 -1
- package/dist/rules/shared-patterns.d.ts +268 -0
- package/dist/rules/shared-patterns.d.ts.map +1 -0
- package/dist/rules/shared-patterns.js +556 -0
- package/dist/rules/shared-patterns.js.map +1 -0
- package/dist/rules/storage.d.ts +8 -2
- package/dist/rules/storage.d.ts.map +1 -1
- package/dist/rules/storage.js +541 -3
- package/dist/rules/storage.js.map +1 -1
- package/dist/rules/stripe.d.ts.map +1 -1
- package/dist/rules/stripe.js +19 -26
- package/dist/rules/stripe.js.map +1 -1
- package/dist/rules/websocket.d.ts.map +1 -1
- package/dist/rules/websocket.js +32 -40
- package/dist/rules/websocket.js.map +1 -1
- package/dist/supervisor/AgentSupervisor.d.ts +52 -0
- package/dist/supervisor/AgentSupervisor.d.ts.map +1 -1
- package/dist/supervisor/AgentSupervisor.js +120 -1
- package/dist/supervisor/AgentSupervisor.js.map +1 -1
- package/dist/supervisor/ManagedServerRegistry.d.ts +139 -2
- package/dist/supervisor/ManagedServerRegistry.d.ts.map +1 -1
- package/dist/supervisor/ManagedServerRegistry.js +590 -6
- package/dist/supervisor/ManagedServerRegistry.js.map +1 -1
- package/dist/supervisor/ProjectTracker.d.ts +2 -1
- package/dist/supervisor/ProjectTracker.d.ts.map +1 -1
- package/dist/supervisor/ProjectTracker.js +5 -9
- package/dist/supervisor/ProjectTracker.js.map +1 -1
- package/dist/testing/index.d.ts +11 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +12 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/rule-tester.d.ts +217 -0
- package/dist/testing/rule-tester.d.ts.map +1 -0
- package/dist/testing/rule-tester.examples.d.ts +57 -0
- package/dist/testing/rule-tester.examples.d.ts.map +1 -0
- package/dist/testing/rule-tester.examples.js +375 -0
- package/dist/testing/rule-tester.examples.js.map +1 -0
- package/dist/testing/rule-tester.js +381 -0
- package/dist/testing/rule-tester.js.map +1 -0
- package/dist/testing/rule-validator.d.ts +141 -0
- package/dist/testing/rule-validator.d.ts.map +1 -0
- package/dist/testing/rule-validator.js +640 -0
- package/dist/testing/rule-validator.js.map +1 -0
- package/dist/types/index.d.ts +265 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +57 -2
- package/dist/types/index.js.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/rate-limiting.d.ts +268 -0
- package/dist/utils/rate-limiting.d.ts.map +1 -0
- package/dist/utils/rate-limiting.js +403 -0
- package/dist/utils/rate-limiting.js.map +1 -0
- package/dist/utils/shared.d.ts +306 -0
- package/dist/utils/shared.d.ts.map +1 -0
- package/dist/utils/shared.js +464 -0
- package/dist/utils/shared.js.map +1 -0
- package/package.json +3 -2
|
@@ -3,13 +3,23 @@
|
|
|
3
3
|
*
|
|
4
4
|
* The heart of the governance system that evaluates actions against business rules.
|
|
5
5
|
*/
|
|
6
|
-
import type { AgentAction, BusinessRule, BusinessContext, RuleCondition, EvaluationResult, BusinessRulesResult } from '../types/index.js';
|
|
6
|
+
import type { AgentAction, BusinessRule, BusinessContext, RuleCondition, EvaluationResult, BusinessRulesResult, DependencyValidationResult } from '../types/index.js';
|
|
7
|
+
import { RuleDependencyAnalyzer } from './RuleDependencyAnalyzer.js';
|
|
7
8
|
export declare class RulesEngine {
|
|
8
9
|
private rules;
|
|
9
10
|
private customEvaluators;
|
|
10
|
-
|
|
11
|
+
private evaluatorCache;
|
|
12
|
+
private regexCache;
|
|
13
|
+
private inOperatorSetCache;
|
|
14
|
+
private dependencyAnalyzer;
|
|
15
|
+
private executionOrderCache;
|
|
16
|
+
private respectDependencies;
|
|
17
|
+
constructor(options?: {
|
|
18
|
+
respectDependencies?: boolean;
|
|
19
|
+
});
|
|
11
20
|
/**
|
|
12
21
|
* Register a business rule
|
|
22
|
+
* Task #53: Clear evaluator cache when rules change to ensure fresh compilation
|
|
13
23
|
*/
|
|
14
24
|
registerRule(rule: BusinessRule): void;
|
|
15
25
|
/**
|
|
@@ -18,18 +28,91 @@ export declare class RulesEngine {
|
|
|
18
28
|
registerRules(rules: BusinessRule[]): void;
|
|
19
29
|
/**
|
|
20
30
|
* Unregister a rule by ID
|
|
31
|
+
* Task #53: Clear evaluator cache when rules change
|
|
21
32
|
*/
|
|
22
33
|
unregisterRule(ruleId: string): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Task #53: Clear the evaluator cache
|
|
36
|
+
* Task #34: Also clear regex and 'in' operator caches
|
|
37
|
+
* Task #37: Also clear execution order cache
|
|
38
|
+
* Called when rules are modified to ensure fresh compilation
|
|
39
|
+
*/
|
|
40
|
+
private clearEvaluatorCache;
|
|
23
41
|
/**
|
|
24
42
|
* Get all registered rules
|
|
25
43
|
*/
|
|
26
44
|
getRules(): BusinessRule[];
|
|
27
45
|
/**
|
|
28
46
|
* Get enabled rules sorted by priority (higher priority first)
|
|
47
|
+
* Task #39: In strict mode, filters out deprecated rules
|
|
48
|
+
* Task #37: When respectDependencies is true, returns rules in dependency-aware order
|
|
49
|
+
*/
|
|
50
|
+
getActiveRules(strictMode?: boolean): BusinessRule[];
|
|
51
|
+
/**
|
|
52
|
+
* Task #37: Get rules sorted by dependency order (dependencies first, then by priority)
|
|
53
|
+
*/
|
|
54
|
+
private getDependencySortedRules;
|
|
55
|
+
/**
|
|
56
|
+
* Task #39: Get all deprecated rules
|
|
57
|
+
*/
|
|
58
|
+
getDeprecatedRules(): BusinessRule[];
|
|
59
|
+
/**
|
|
60
|
+
* Task #39: Analyze rules and suggest migrations for deprecated rules
|
|
61
|
+
* Returns migration suggestions with replacement rule information
|
|
62
|
+
*/
|
|
63
|
+
migrateRules(rules: BusinessRule[]): Array<{
|
|
64
|
+
ruleId: string;
|
|
65
|
+
ruleName: string;
|
|
66
|
+
deprecatedMessage?: string;
|
|
67
|
+
replacedBy?: string;
|
|
68
|
+
replacementRule?: BusinessRule;
|
|
69
|
+
suggestion: string;
|
|
70
|
+
}>;
|
|
71
|
+
/**
|
|
72
|
+
* Task #39: Check if a rule is compatible with the current supervisor version
|
|
73
|
+
*/
|
|
74
|
+
isRuleCompatible(rule: BusinessRule, currentVersion: string): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Task #37: Validate all rule dependencies
|
|
77
|
+
* Returns validation result with errors and warnings
|
|
78
|
+
*/
|
|
79
|
+
validateDependencies(): DependencyValidationResult;
|
|
80
|
+
/**
|
|
81
|
+
* Task #37: Get the dependency analyzer for advanced analysis
|
|
82
|
+
*/
|
|
83
|
+
getDependencyAnalyzer(): RuleDependencyAnalyzer;
|
|
84
|
+
/**
|
|
85
|
+
* Task #37: Enable or disable dependency-aware rule ordering
|
|
86
|
+
*/
|
|
87
|
+
setRespectDependencies(enabled: boolean): void;
|
|
88
|
+
/**
|
|
89
|
+
* Task #37: Check if dependency-aware ordering is enabled
|
|
90
|
+
*/
|
|
91
|
+
isRespectingDependencies(): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Task #37: Get rules that depend on a specific rule
|
|
94
|
+
*/
|
|
95
|
+
getRuleDependents(ruleId: string): BusinessRule[];
|
|
96
|
+
/**
|
|
97
|
+
* Task #37: Get rules that a specific rule depends on
|
|
98
|
+
*/
|
|
99
|
+
getRuleDependencies(ruleId: string): BusinessRule[];
|
|
100
|
+
/**
|
|
101
|
+
* Task #37: Get all rules that would be affected if a rule is disabled
|
|
102
|
+
*/
|
|
103
|
+
getRulesAffectedByDisabling(ruleId: string): BusinessRule[];
|
|
104
|
+
/**
|
|
105
|
+
* Task #39: Compare semantic versions
|
|
106
|
+
* Returns: 1 if a > b, -1 if a < b, 0 if equal
|
|
29
107
|
*/
|
|
30
|
-
|
|
108
|
+
private compareVersions;
|
|
109
|
+
/**
|
|
110
|
+
* Task #39: Warn about deprecated rule usage
|
|
111
|
+
*/
|
|
112
|
+
private warnDeprecatedRule;
|
|
31
113
|
/**
|
|
32
114
|
* Register a custom condition evaluator
|
|
115
|
+
* Task #53: Clear evaluator cache when custom evaluators change
|
|
33
116
|
*/
|
|
34
117
|
registerCustomEvaluator(name: string, evaluator: (context: Record<string, unknown>, condition: RuleCondition) => boolean): void;
|
|
35
118
|
/**
|
|
@@ -44,12 +127,28 @@ export declare class RulesEngine {
|
|
|
44
127
|
* Build evaluation context from action and business context
|
|
45
128
|
*/
|
|
46
129
|
private buildEvaluationContext;
|
|
130
|
+
/**
|
|
131
|
+
* Task #34: Sort conditions by evaluation cost for optimal short-circuit evaluation
|
|
132
|
+
* Cheaper operations (exists, equals) go first, expensive ones (regex, custom) last
|
|
133
|
+
*/
|
|
134
|
+
private sortConditionsByEvaluationCost;
|
|
47
135
|
/**
|
|
48
136
|
* Evaluate if all/any conditions of a rule match
|
|
137
|
+
* Task #34: Optimized with condition sorting for short-circuit evaluation
|
|
49
138
|
*/
|
|
50
139
|
private evaluateRuleConditions;
|
|
140
|
+
/**
|
|
141
|
+
* Task #34: Get cached RegExp or compile and cache it
|
|
142
|
+
*/
|
|
143
|
+
private getCachedRegex;
|
|
144
|
+
/**
|
|
145
|
+
* Task #34: Get cached Set for 'in' operator or create and cache it
|
|
146
|
+
* Using Set provides O(1) lookup instead of O(n) array.includes()
|
|
147
|
+
*/
|
|
148
|
+
private getCachedInOperatorSet;
|
|
51
149
|
/**
|
|
52
150
|
* Evaluate a single condition
|
|
151
|
+
* Task #34: Optimized with regex caching and Set-based 'in' operator
|
|
53
152
|
*/
|
|
54
153
|
private evaluateCondition;
|
|
55
154
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RulesEngine.d.ts","sourceRoot":"","sources":["../../src/engine/RulesEngine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,aAAa,EACb,gBAAgB,EAIhB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"RulesEngine.d.ts","sourceRoot":"","sources":["../../src/engine/RulesEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,17 +4,52 @@
|
|
|
4
4
|
* The heart of the governance system that evaluates actions against business rules.
|
|
5
5
|
*/
|
|
6
6
|
import { v4 as uuidv4 } from 'uuid';
|
|
7
|
+
import { RuleDependencyAnalyzer } from './RuleDependencyAnalyzer.js';
|
|
8
|
+
/**
|
|
9
|
+
* Task #34: Condition evaluation cost weights for optimization
|
|
10
|
+
* Lower numbers = faster operations, should be evaluated first
|
|
11
|
+
*/
|
|
12
|
+
const CONDITION_COST_WEIGHTS = {
|
|
13
|
+
exists: 1,
|
|
14
|
+
not_exists: 1,
|
|
15
|
+
equals: 2,
|
|
16
|
+
not_equals: 2,
|
|
17
|
+
in: 3,
|
|
18
|
+
not_in: 3,
|
|
19
|
+
greater_than: 4,
|
|
20
|
+
less_than: 4,
|
|
21
|
+
contains: 5,
|
|
22
|
+
not_contains: 5,
|
|
23
|
+
matches_regex: 10, // Expensive - evaluate last
|
|
24
|
+
custom: 8 // Custom evaluators can be expensive
|
|
25
|
+
};
|
|
7
26
|
export class RulesEngine {
|
|
8
27
|
rules = new Map();
|
|
9
28
|
customEvaluators = new Map();
|
|
10
|
-
|
|
29
|
+
// Task #53: Cache for compiled evaluators - keyed by evaluator name/string representation
|
|
30
|
+
evaluatorCache = new Map();
|
|
31
|
+
// Task #34: Cache for compiled RegExp objects - keyed by pattern string
|
|
32
|
+
regexCache = new Map();
|
|
33
|
+
// Task #34: Cache for optimized 'in' operator Sets - keyed by JSON.stringify of value array
|
|
34
|
+
inOperatorSetCache = new Map();
|
|
35
|
+
// Task #37: Dependency analyzer for rule ordering
|
|
36
|
+
dependencyAnalyzer;
|
|
37
|
+
// Task #37: Cache for dependency-sorted execution order
|
|
38
|
+
executionOrderCache = null;
|
|
39
|
+
// Task #37: Whether to respect rule dependencies in evaluation order
|
|
40
|
+
respectDependencies = true;
|
|
41
|
+
constructor(options) {
|
|
42
|
+
this.dependencyAnalyzer = new RuleDependencyAnalyzer();
|
|
43
|
+
this.respectDependencies = options?.respectDependencies ?? true;
|
|
11
44
|
this.registerDefaultEvaluators();
|
|
12
45
|
}
|
|
13
46
|
/**
|
|
14
47
|
* Register a business rule
|
|
48
|
+
* Task #53: Clear evaluator cache when rules change to ensure fresh compilation
|
|
15
49
|
*/
|
|
16
50
|
registerRule(rule) {
|
|
17
51
|
this.rules.set(rule.id, rule);
|
|
52
|
+
this.clearEvaluatorCache();
|
|
18
53
|
}
|
|
19
54
|
/**
|
|
20
55
|
* Register multiple business rules
|
|
@@ -26,9 +61,26 @@ export class RulesEngine {
|
|
|
26
61
|
}
|
|
27
62
|
/**
|
|
28
63
|
* Unregister a rule by ID
|
|
64
|
+
* Task #53: Clear evaluator cache when rules change
|
|
29
65
|
*/
|
|
30
66
|
unregisterRule(ruleId) {
|
|
31
|
-
|
|
67
|
+
const result = this.rules.delete(ruleId);
|
|
68
|
+
if (result) {
|
|
69
|
+
this.clearEvaluatorCache();
|
|
70
|
+
}
|
|
71
|
+
return result;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Task #53: Clear the evaluator cache
|
|
75
|
+
* Task #34: Also clear regex and 'in' operator caches
|
|
76
|
+
* Task #37: Also clear execution order cache
|
|
77
|
+
* Called when rules are modified to ensure fresh compilation
|
|
78
|
+
*/
|
|
79
|
+
clearEvaluatorCache() {
|
|
80
|
+
this.evaluatorCache.clear();
|
|
81
|
+
this.regexCache.clear();
|
|
82
|
+
this.inOperatorSetCache.clear();
|
|
83
|
+
this.executionOrderCache = null;
|
|
32
84
|
}
|
|
33
85
|
/**
|
|
34
86
|
* Get all registered rules
|
|
@@ -38,17 +90,182 @@ export class RulesEngine {
|
|
|
38
90
|
}
|
|
39
91
|
/**
|
|
40
92
|
* Get enabled rules sorted by priority (higher priority first)
|
|
93
|
+
* Task #39: In strict mode, filters out deprecated rules
|
|
94
|
+
* Task #37: When respectDependencies is true, returns rules in dependency-aware order
|
|
41
95
|
*/
|
|
42
|
-
getActiveRules() {
|
|
43
|
-
|
|
96
|
+
getActiveRules(strictMode = false) {
|
|
97
|
+
const enabledRules = this.getRules()
|
|
44
98
|
.filter(rule => rule.enabled)
|
|
45
|
-
.
|
|
99
|
+
.filter(rule => !strictMode || !rule.deprecated);
|
|
100
|
+
// Task #37: Return rules in dependency order if enabled
|
|
101
|
+
if (this.respectDependencies) {
|
|
102
|
+
return this.getDependencySortedRules(enabledRules);
|
|
103
|
+
}
|
|
104
|
+
// Default: sort by priority (higher priority first)
|
|
105
|
+
return enabledRules.sort((a, b) => b.priority - a.priority);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Task #37: Get rules sorted by dependency order (dependencies first, then by priority)
|
|
109
|
+
*/
|
|
110
|
+
getDependencySortedRules(rules) {
|
|
111
|
+
// Use cached execution order if available
|
|
112
|
+
if (this.executionOrderCache) {
|
|
113
|
+
const ruleMap = new Map();
|
|
114
|
+
for (const rule of rules) {
|
|
115
|
+
ruleMap.set(rule.id, rule);
|
|
116
|
+
}
|
|
117
|
+
const orderedRules = [];
|
|
118
|
+
for (const ruleId of this.executionOrderCache) {
|
|
119
|
+
const rule = ruleMap.get(ruleId);
|
|
120
|
+
if (rule) {
|
|
121
|
+
orderedRules.push(rule);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// Add any rules not in cache (shouldn't happen, but safety)
|
|
125
|
+
const cachedIds = new Set(this.executionOrderCache);
|
|
126
|
+
for (const rule of rules) {
|
|
127
|
+
if (!cachedIds.has(rule.id)) {
|
|
128
|
+
orderedRules.push(rule);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return orderedRules;
|
|
132
|
+
}
|
|
133
|
+
// Calculate and cache execution order
|
|
134
|
+
const sortedRules = this.dependencyAnalyzer.getSortedRulesForExecution(rules);
|
|
135
|
+
this.executionOrderCache = sortedRules.map(r => r.id);
|
|
136
|
+
return sortedRules;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Task #39: Get all deprecated rules
|
|
140
|
+
*/
|
|
141
|
+
getDeprecatedRules() {
|
|
142
|
+
return this.getRules().filter(rule => rule.deprecated === true);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Task #39: Analyze rules and suggest migrations for deprecated rules
|
|
146
|
+
* Returns migration suggestions with replacement rule information
|
|
147
|
+
*/
|
|
148
|
+
migrateRules(rules) {
|
|
149
|
+
const migrations = [];
|
|
150
|
+
for (const rule of rules) {
|
|
151
|
+
if (rule.deprecated) {
|
|
152
|
+
const replacementRule = rule.replacedBy ? this.rules.get(rule.replacedBy) : undefined;
|
|
153
|
+
let suggestion = `Rule '${rule.name}' (${rule.id}) is deprecated.`;
|
|
154
|
+
if (rule.deprecatedMessage) {
|
|
155
|
+
suggestion += ` ${rule.deprecatedMessage}`;
|
|
156
|
+
}
|
|
157
|
+
if (rule.replacedBy) {
|
|
158
|
+
if (replacementRule) {
|
|
159
|
+
suggestion += ` Migrate to '${replacementRule.name}' (${rule.replacedBy}).`;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
suggestion += ` Recommended replacement: ${rule.replacedBy} (not found in current rules).`;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
migrations.push({
|
|
166
|
+
ruleId: rule.id,
|
|
167
|
+
ruleName: rule.name,
|
|
168
|
+
deprecatedMessage: rule.deprecatedMessage,
|
|
169
|
+
replacedBy: rule.replacedBy,
|
|
170
|
+
replacementRule,
|
|
171
|
+
suggestion
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return migrations;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Task #39: Check if a rule is compatible with the current supervisor version
|
|
179
|
+
*/
|
|
180
|
+
isRuleCompatible(rule, currentVersion) {
|
|
181
|
+
if (!rule.minVersion) {
|
|
182
|
+
return true; // No version requirement
|
|
183
|
+
}
|
|
184
|
+
return this.compareVersions(currentVersion, rule.minVersion) >= 0;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Task #37: Validate all rule dependencies
|
|
188
|
+
* Returns validation result with errors and warnings
|
|
189
|
+
*/
|
|
190
|
+
validateDependencies() {
|
|
191
|
+
return this.dependencyAnalyzer.validateDependencies(this.getRules());
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Task #37: Get the dependency analyzer for advanced analysis
|
|
195
|
+
*/
|
|
196
|
+
getDependencyAnalyzer() {
|
|
197
|
+
return this.dependencyAnalyzer;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Task #37: Enable or disable dependency-aware rule ordering
|
|
201
|
+
*/
|
|
202
|
+
setRespectDependencies(enabled) {
|
|
203
|
+
if (this.respectDependencies !== enabled) {
|
|
204
|
+
this.respectDependencies = enabled;
|
|
205
|
+
this.executionOrderCache = null; // Clear cache when toggling
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Task #37: Check if dependency-aware ordering is enabled
|
|
210
|
+
*/
|
|
211
|
+
isRespectingDependencies() {
|
|
212
|
+
return this.respectDependencies;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Task #37: Get rules that depend on a specific rule
|
|
216
|
+
*/
|
|
217
|
+
getRuleDependents(ruleId) {
|
|
218
|
+
return this.dependencyAnalyzer.getDependents(ruleId, this.getRules());
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Task #37: Get rules that a specific rule depends on
|
|
222
|
+
*/
|
|
223
|
+
getRuleDependencies(ruleId) {
|
|
224
|
+
return this.dependencyAnalyzer.getDependencies(ruleId, this.getRules());
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Task #37: Get all rules that would be affected if a rule is disabled
|
|
228
|
+
*/
|
|
229
|
+
getRulesAffectedByDisabling(ruleId) {
|
|
230
|
+
return this.dependencyAnalyzer.getAffectedByDisabling(ruleId, this.getRules());
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Task #39: Compare semantic versions
|
|
234
|
+
* Returns: 1 if a > b, -1 if a < b, 0 if equal
|
|
235
|
+
*/
|
|
236
|
+
compareVersions(a, b) {
|
|
237
|
+
const partsA = a.split('.').map(Number);
|
|
238
|
+
const partsB = b.split('.').map(Number);
|
|
239
|
+
for (let i = 0; i < Math.max(partsA.length, partsB.length); i++) {
|
|
240
|
+
const numA = partsA[i] || 0;
|
|
241
|
+
const numB = partsB[i] || 0;
|
|
242
|
+
if (numA > numB)
|
|
243
|
+
return 1;
|
|
244
|
+
if (numA < numB)
|
|
245
|
+
return -1;
|
|
246
|
+
}
|
|
247
|
+
return 0;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Task #39: Warn about deprecated rule usage
|
|
251
|
+
*/
|
|
252
|
+
warnDeprecatedRule(rule) {
|
|
253
|
+
let message = `[DEPRECATED] Rule '${rule.name}' (${rule.id}) is deprecated.`;
|
|
254
|
+
if (rule.deprecatedMessage) {
|
|
255
|
+
message += ` ${rule.deprecatedMessage}`;
|
|
256
|
+
}
|
|
257
|
+
if (rule.replacedBy) {
|
|
258
|
+
message += ` Consider migrating to: ${rule.replacedBy}`;
|
|
259
|
+
}
|
|
260
|
+
console.warn(message);
|
|
46
261
|
}
|
|
47
262
|
/**
|
|
48
263
|
* Register a custom condition evaluator
|
|
264
|
+
* Task #53: Clear evaluator cache when custom evaluators change
|
|
49
265
|
*/
|
|
50
266
|
registerCustomEvaluator(name, evaluator) {
|
|
51
267
|
this.customEvaluators.set(name, evaluator);
|
|
268
|
+
this.clearEvaluatorCache();
|
|
52
269
|
}
|
|
53
270
|
/**
|
|
54
271
|
* Evaluate an agent action against all active rules
|
|
@@ -67,10 +284,23 @@ export class RulesEngine {
|
|
|
67
284
|
const evalContext = this.buildEvaluationContext(action, context);
|
|
68
285
|
// Get active rules and evaluate
|
|
69
286
|
const activeRules = this.getActiveRules();
|
|
287
|
+
// Task #57: Track total priority weight for normalization
|
|
288
|
+
let totalPriorityWeight = 0;
|
|
289
|
+
let weightedRiskSum = 0;
|
|
70
290
|
for (const rule of activeRules) {
|
|
71
291
|
const ruleMatches = this.evaluateRuleConditions(rule, evalContext);
|
|
72
292
|
if (ruleMatches) {
|
|
73
293
|
appliedRules.push(rule.id);
|
|
294
|
+
// Task #39: Warn when deprecated rules are triggered
|
|
295
|
+
if (rule.deprecated) {
|
|
296
|
+
this.warnDeprecatedRule(rule);
|
|
297
|
+
}
|
|
298
|
+
// Task #57: Weight risk by rule priority (0-1000 scale)
|
|
299
|
+
// Higher priority rules have more impact on final score
|
|
300
|
+
const priorityMultiplier = (rule.priority + 100) / 100; // Ensure minimum weight of 1
|
|
301
|
+
const weightedRisk = rule.riskWeight * priorityMultiplier;
|
|
302
|
+
weightedRiskSum += weightedRisk;
|
|
303
|
+
totalPriorityWeight += priorityMultiplier;
|
|
74
304
|
totalRiskWeight += rule.riskWeight;
|
|
75
305
|
// Process rule actions
|
|
76
306
|
for (const ruleAction of rule.actions) {
|
|
@@ -106,8 +336,11 @@ export class RulesEngine {
|
|
|
106
336
|
}
|
|
107
337
|
}
|
|
108
338
|
}
|
|
109
|
-
// Calculate risk score (0-100)
|
|
110
|
-
|
|
339
|
+
// Task #57: Calculate risk score using priority-weighted average (0-100)
|
|
340
|
+
// If no rules matched, use raw total; otherwise use weighted calculation
|
|
341
|
+
const riskScore = totalPriorityWeight > 0
|
|
342
|
+
? Math.min(100, weightedRiskSum / totalPriorityWeight)
|
|
343
|
+
: Math.min(100, totalRiskWeight);
|
|
111
344
|
const riskLevel = this.calculateRiskLevel(riskScore);
|
|
112
345
|
// Determine final status
|
|
113
346
|
let status;
|
|
@@ -230,21 +463,76 @@ export class RulesEngine {
|
|
|
230
463
|
...context?.customAttributes
|
|
231
464
|
};
|
|
232
465
|
}
|
|
466
|
+
/**
|
|
467
|
+
* Task #34: Sort conditions by evaluation cost for optimal short-circuit evaluation
|
|
468
|
+
* Cheaper operations (exists, equals) go first, expensive ones (regex, custom) last
|
|
469
|
+
*/
|
|
470
|
+
sortConditionsByEvaluationCost(conditions) {
|
|
471
|
+
return [...conditions].sort((a, b) => {
|
|
472
|
+
const costA = CONDITION_COST_WEIGHTS[a.operator] ?? 5;
|
|
473
|
+
const costB = CONDITION_COST_WEIGHTS[b.operator] ?? 5;
|
|
474
|
+
return costA - costB;
|
|
475
|
+
});
|
|
476
|
+
}
|
|
233
477
|
/**
|
|
234
478
|
* Evaluate if all/any conditions of a rule match
|
|
479
|
+
* Task #34: Optimized with condition sorting for short-circuit evaluation
|
|
235
480
|
*/
|
|
236
481
|
evaluateRuleConditions(rule, context) {
|
|
237
482
|
if (rule.conditions.length === 0) {
|
|
238
483
|
return true; // No conditions means always match
|
|
239
484
|
}
|
|
240
|
-
|
|
485
|
+
// Task #34: Sort conditions by evaluation cost for optimal short-circuit behavior
|
|
486
|
+
const sortedConditions = this.sortConditionsByEvaluationCost(rule.conditions);
|
|
241
487
|
if (rule.conditionLogic === 'any') {
|
|
242
|
-
|
|
488
|
+
// For 'any' logic, evaluate until first true (cheaper conditions first)
|
|
489
|
+
for (const condition of sortedConditions) {
|
|
490
|
+
if (this.evaluateCondition(condition, context)) {
|
|
491
|
+
return true; // Short-circuit: found a match
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
return false;
|
|
243
495
|
}
|
|
244
|
-
|
|
496
|
+
// For 'all' logic (default), evaluate until first false (cheaper conditions first)
|
|
497
|
+
for (const condition of sortedConditions) {
|
|
498
|
+
if (!this.evaluateCondition(condition, context)) {
|
|
499
|
+
return false; // Short-circuit: found a non-match
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
return true;
|
|
503
|
+
}
|
|
504
|
+
/**
|
|
505
|
+
* Task #34: Get cached RegExp or compile and cache it
|
|
506
|
+
*/
|
|
507
|
+
getCachedRegex(pattern) {
|
|
508
|
+
let regex = this.regexCache.get(pattern);
|
|
509
|
+
if (!regex) {
|
|
510
|
+
try {
|
|
511
|
+
regex = new RegExp(pattern);
|
|
512
|
+
this.regexCache.set(pattern, regex);
|
|
513
|
+
}
|
|
514
|
+
catch {
|
|
515
|
+
return null;
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
return regex;
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* Task #34: Get cached Set for 'in' operator or create and cache it
|
|
522
|
+
* Using Set provides O(1) lookup instead of O(n) array.includes()
|
|
523
|
+
*/
|
|
524
|
+
getCachedInOperatorSet(values) {
|
|
525
|
+
const cacheKey = JSON.stringify(values);
|
|
526
|
+
let valueSet = this.inOperatorSetCache.get(cacheKey);
|
|
527
|
+
if (!valueSet) {
|
|
528
|
+
valueSet = new Set(values);
|
|
529
|
+
this.inOperatorSetCache.set(cacheKey, valueSet);
|
|
530
|
+
}
|
|
531
|
+
return valueSet;
|
|
245
532
|
}
|
|
246
533
|
/**
|
|
247
534
|
* Evaluate a single condition
|
|
535
|
+
* Task #34: Optimized with regex caching and Set-based 'in' operator
|
|
248
536
|
*/
|
|
249
537
|
evaluateCondition(condition, context) {
|
|
250
538
|
const fieldValue = this.getNestedValue(context, condition.field);
|
|
@@ -276,24 +564,24 @@ export class RulesEngine {
|
|
|
276
564
|
return typeof fieldValue === 'number' && typeof condition.value === 'number'
|
|
277
565
|
&& fieldValue < condition.value;
|
|
278
566
|
case 'in':
|
|
567
|
+
// Task #34: Use Set-based lookup for O(1) performance on large value arrays
|
|
279
568
|
if (Array.isArray(condition.value)) {
|
|
280
|
-
|
|
569
|
+
const valueSet = this.getCachedInOperatorSet(condition.value);
|
|
570
|
+
return valueSet.has(fieldValue);
|
|
281
571
|
}
|
|
282
572
|
return false;
|
|
283
573
|
case 'not_in':
|
|
574
|
+
// Task #34: Use Set-based lookup for O(1) performance on large value arrays
|
|
284
575
|
if (Array.isArray(condition.value)) {
|
|
285
|
-
|
|
576
|
+
const valueSet = this.getCachedInOperatorSet(condition.value);
|
|
577
|
+
return !valueSet.has(fieldValue);
|
|
286
578
|
}
|
|
287
579
|
return true;
|
|
288
580
|
case 'matches_regex':
|
|
581
|
+
// Task #34: Use cached regex compilation to avoid repeated new RegExp() calls
|
|
289
582
|
if (typeof fieldValue === 'string' && typeof condition.value === 'string') {
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
return regex.test(fieldValue);
|
|
293
|
-
}
|
|
294
|
-
catch {
|
|
295
|
-
return false;
|
|
296
|
-
}
|
|
583
|
+
const regex = this.getCachedRegex(condition.value);
|
|
584
|
+
return regex ? regex.test(fieldValue) : false;
|
|
297
585
|
}
|
|
298
586
|
return false;
|
|
299
587
|
case 'exists':
|
|
@@ -302,9 +590,26 @@ export class RulesEngine {
|
|
|
302
590
|
return fieldValue === undefined || fieldValue === null;
|
|
303
591
|
case 'custom':
|
|
304
592
|
if (condition.customEvaluator) {
|
|
305
|
-
|
|
593
|
+
// Task #53: Check cache first for compiled evaluator
|
|
594
|
+
const cacheKey = condition.customEvaluator;
|
|
595
|
+
let evaluator = this.evaluatorCache.get(cacheKey);
|
|
596
|
+
if (!evaluator) {
|
|
597
|
+
evaluator = this.customEvaluators.get(condition.customEvaluator);
|
|
598
|
+
if (evaluator) {
|
|
599
|
+
// Cache the evaluator for future use
|
|
600
|
+
this.evaluatorCache.set(cacheKey, evaluator);
|
|
601
|
+
}
|
|
602
|
+
}
|
|
306
603
|
if (evaluator) {
|
|
307
|
-
|
|
604
|
+
// Task #56: Add try-catch around custom evaluator execution
|
|
605
|
+
try {
|
|
606
|
+
return evaluator(context, condition);
|
|
607
|
+
}
|
|
608
|
+
catch (error) {
|
|
609
|
+
// Log error and treat failed evaluator as non-matching condition
|
|
610
|
+
console.error(`Custom evaluator '${condition.customEvaluator}' threw an exception:`, error instanceof Error ? error.message : String(error));
|
|
611
|
+
return false;
|
|
612
|
+
}
|
|
308
613
|
}
|
|
309
614
|
}
|
|
310
615
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RulesEngine.js","sourceRoot":"","sources":["../../src/engine/RulesEngine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RulesEngine.js","sourceRoot":"","sources":["../../src/engine/RulesEngine.ts"],"names":[],"mappings":"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"}
|