@probelabs/visor 0.1.20 → 0.1.21
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/action-cli-bridge.d.ts +0 -1
- package/dist/action-cli-bridge.d.ts.map +1 -1
- package/dist/ai-review-service.d.ts +0 -1
- package/dist/ai-review-service.d.ts.map +1 -1
- package/dist/check-execution-engine.d.ts +0 -1
- package/dist/check-execution-engine.d.ts.map +1 -1
- package/dist/cli-main.d.ts +0 -2
- package/dist/cli-main.d.ts.map +1 -1
- package/dist/cli.d.ts +0 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/commands.d.ts +0 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/config.d.ts +0 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/dependency-resolver.d.ts +0 -1
- package/dist/dependency-resolver.d.ts.map +1 -1
- package/dist/event-mapper.d.ts +0 -1
- package/dist/event-mapper.d.ts.map +1 -1
- package/dist/failure-condition-evaluator.d.ts +0 -1
- package/dist/failure-condition-evaluator.d.ts.map +1 -1
- package/dist/git-repository-analyzer.d.ts +0 -1
- package/dist/git-repository-analyzer.d.ts.map +1 -1
- package/dist/github-check-service.d.ts +0 -1
- package/dist/github-check-service.d.ts.map +1 -1
- package/dist/github-comments.d.ts +0 -1
- package/dist/github-comments.d.ts.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +127704 -805
- package/dist/output-formatters.d.ts +0 -1
- package/dist/output-formatters.d.ts.map +1 -1
- package/dist/pr-analyzer.d.ts +0 -1
- package/dist/pr-analyzer.d.ts.map +1 -1
- package/dist/pr-detector.d.ts +0 -1
- package/dist/pr-detector.d.ts.map +1 -1
- package/dist/providers/ai-check-provider.d.ts.map +1 -1
- package/dist/providers/check-provider-registry.d.ts.map +1 -1
- package/dist/providers/check-provider.interface.d.ts.map +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/noop-check-provider.d.ts.map +1 -1
- package/dist/providers/tool-check-provider.d.ts.map +1 -1
- package/dist/providers/webhook-check-provider.d.ts.map +1 -1
- package/dist/reviewer.d.ts +0 -1
- package/dist/reviewer.d.ts.map +1 -1
- package/dist/session-registry.d.ts +0 -1
- package/dist/session-registry.d.ts.map +1 -1
- package/dist/types/cli.d.ts.map +1 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/env-resolver.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/action-cli-bridge.js +0 -387
- package/dist/action-cli-bridge.js.map +0 -1
- package/dist/ai-review-service.js +0 -854
- package/dist/ai-review-service.js.map +0 -1
- package/dist/check-execution-engine.js +0 -1720
- package/dist/check-execution-engine.js.map +0 -1
- package/dist/cli-main.js +0 -249
- package/dist/cli-main.js.map +0 -1
- package/dist/cli.js +0 -241
- package/dist/cli.js.map +0 -1
- package/dist/commands.js +0 -53
- package/dist/commands.js.map +0 -1
- package/dist/config.js +0 -437
- package/dist/config.js.map +0 -1
- package/dist/dependency-resolver.js +0 -163
- package/dist/dependency-resolver.js.map +0 -1
- package/dist/event-mapper.js +0 -316
- package/dist/event-mapper.js.map +0 -1
- package/dist/failure-condition-evaluator.js +0 -481
- package/dist/failure-condition-evaluator.js.map +0 -1
- package/dist/git-repository-analyzer.js +0 -285
- package/dist/git-repository-analyzer.js.map +0 -1
- package/dist/github-check-service.js +0 -369
- package/dist/github-check-service.js.map +0 -1
- package/dist/github-comments.js +0 -289
- package/dist/github-comments.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/output-formatters.js +0 -624
- package/dist/output-formatters.js.map +0 -1
- package/dist/pr-analyzer.js +0 -195
- package/dist/pr-analyzer.js.map +0 -1
- package/dist/pr-detector.js +0 -357
- package/dist/pr-detector.js.map +0 -1
- package/dist/providers/ai-check-provider.js +0 -437
- package/dist/providers/ai-check-provider.js.map +0 -1
- package/dist/providers/check-provider-registry.js +0 -138
- package/dist/providers/check-provider-registry.js.map +0 -1
- package/dist/providers/check-provider.interface.js +0 -11
- package/dist/providers/check-provider.interface.js.map +0 -1
- package/dist/providers/index.js +0 -19
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/noop-check-provider.js +0 -55
- package/dist/providers/noop-check-provider.js.map +0 -1
- package/dist/providers/tool-check-provider.js +0 -174
- package/dist/providers/tool-check-provider.js.map +0 -1
- package/dist/providers/webhook-check-provider.js +0 -173
- package/dist/providers/webhook-check-provider.js.map +0 -1
- package/dist/reviewer.js +0 -260
- package/dist/reviewer.js.map +0 -1
- package/dist/session-registry.js +0 -67
- package/dist/session-registry.js.map +0 -1
- package/dist/types/cli.js +0 -3
- package/dist/types/cli.js.map +0 -1
- package/dist/types/config.js +0 -6
- package/dist/types/config.js.map +0 -1
- package/dist/utils/env-resolver.js +0 -130
- package/dist/utils/env-resolver.js.map +0 -1
|
@@ -1,481 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Failure condition evaluation engine using SandboxJS for secure expression evaluation
|
|
4
|
-
*/
|
|
5
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.FailureConditionEvaluator = void 0;
|
|
10
|
-
const sandboxjs_1 = __importDefault(require("@nyariv/sandboxjs"));
|
|
11
|
-
/**
|
|
12
|
-
* Evaluates failure conditions using SandboxJS for secure evaluation
|
|
13
|
-
*/
|
|
14
|
-
class FailureConditionEvaluator {
|
|
15
|
-
sandbox;
|
|
16
|
-
constructor() {
|
|
17
|
-
this.sandbox = this.createSecureSandbox();
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Create a secure sandbox with whitelisted functions and globals
|
|
21
|
-
*/
|
|
22
|
-
createSecureSandbox() {
|
|
23
|
-
// Start with safe globals and prototypes
|
|
24
|
-
const globals = {
|
|
25
|
-
...sandboxjs_1.default.SAFE_GLOBALS,
|
|
26
|
-
// Allow Math for calculations
|
|
27
|
-
Math,
|
|
28
|
-
// Allow console for debugging (in controlled environment)
|
|
29
|
-
console: {
|
|
30
|
-
log: console.log,
|
|
31
|
-
warn: console.warn,
|
|
32
|
-
error: console.error,
|
|
33
|
-
},
|
|
34
|
-
};
|
|
35
|
-
// Create prototype whitelist - use safe defaults
|
|
36
|
-
const prototypeWhitelist = new Map(sandboxjs_1.default.SAFE_PROTOTYPES);
|
|
37
|
-
// Explicitly allow array methods that we need
|
|
38
|
-
const arrayMethods = new Set([
|
|
39
|
-
'some',
|
|
40
|
-
'every',
|
|
41
|
-
'filter',
|
|
42
|
-
'map',
|
|
43
|
-
'reduce',
|
|
44
|
-
'find',
|
|
45
|
-
'includes',
|
|
46
|
-
'indexOf',
|
|
47
|
-
'length',
|
|
48
|
-
'slice',
|
|
49
|
-
'concat',
|
|
50
|
-
'join',
|
|
51
|
-
]);
|
|
52
|
-
prototypeWhitelist.set(Array.prototype, arrayMethods);
|
|
53
|
-
// Allow string methods
|
|
54
|
-
const stringMethods = new Set([
|
|
55
|
-
'toLowerCase',
|
|
56
|
-
'toUpperCase',
|
|
57
|
-
'includes',
|
|
58
|
-
'indexOf',
|
|
59
|
-
'startsWith',
|
|
60
|
-
'endsWith',
|
|
61
|
-
'slice',
|
|
62
|
-
'substring',
|
|
63
|
-
'length',
|
|
64
|
-
'trim',
|
|
65
|
-
'split',
|
|
66
|
-
'replace',
|
|
67
|
-
]);
|
|
68
|
-
prototypeWhitelist.set(String.prototype, stringMethods);
|
|
69
|
-
// Allow basic object methods
|
|
70
|
-
const objectMethods = new Set(['hasOwnProperty', 'toString', 'valueOf']);
|
|
71
|
-
prototypeWhitelist.set(Object.prototype, objectMethods);
|
|
72
|
-
return new sandboxjs_1.default({
|
|
73
|
-
globals,
|
|
74
|
-
prototypeWhitelist,
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Evaluate simple fail_if condition
|
|
79
|
-
*/
|
|
80
|
-
async evaluateSimpleCondition(checkName, checkSchema, checkGroup, reviewSummary, expression, previousOutputs) {
|
|
81
|
-
const context = this.buildEvaluationContext(checkName, checkSchema, checkGroup, reviewSummary, previousOutputs);
|
|
82
|
-
try {
|
|
83
|
-
return this.evaluateExpression(expression, context);
|
|
84
|
-
}
|
|
85
|
-
catch (error) {
|
|
86
|
-
console.warn(`Failed to evaluate fail_if expression: ${error}`);
|
|
87
|
-
return false; // Don't fail on evaluation errors
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Determine if the event is related to pull requests
|
|
92
|
-
*/
|
|
93
|
-
determineIfPullRequest(eventType) {
|
|
94
|
-
if (!eventType)
|
|
95
|
-
return false;
|
|
96
|
-
const prEvents = ['pr_opened', 'pr_updated', 'pr_closed', 'pull_request'];
|
|
97
|
-
return prEvents.includes(eventType) || eventType.startsWith('pr_');
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Determine if the event is related to issues
|
|
101
|
-
*/
|
|
102
|
-
determineIfIssue(eventType) {
|
|
103
|
-
if (!eventType)
|
|
104
|
-
return false;
|
|
105
|
-
const issueEvents = ['issue_opened', 'issue_comment', 'issues'];
|
|
106
|
-
return issueEvents.includes(eventType) || eventType.startsWith('issue_');
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Evaluate if condition to determine whether a check should run
|
|
110
|
-
*/
|
|
111
|
-
async evaluateIfCondition(checkName, expression, contextData) {
|
|
112
|
-
// Build context for if evaluation
|
|
113
|
-
const context = {
|
|
114
|
-
// Check metadata
|
|
115
|
-
checkName,
|
|
116
|
-
// Git context
|
|
117
|
-
branch: contextData?.branch || 'unknown',
|
|
118
|
-
baseBranch: contextData?.baseBranch || 'main',
|
|
119
|
-
filesChanged: contextData?.filesChanged || [],
|
|
120
|
-
filesCount: contextData?.filesChanged?.length || 0,
|
|
121
|
-
// GitHub event context
|
|
122
|
-
event: {
|
|
123
|
-
event_name: contextData?.event || 'manual',
|
|
124
|
-
action: undefined, // Would be populated from actual GitHub context
|
|
125
|
-
repository: undefined, // Would be populated from actual GitHub context
|
|
126
|
-
},
|
|
127
|
-
// Environment variables
|
|
128
|
-
env: contextData?.environment || {},
|
|
129
|
-
// Previous check results (raw outputs for full access)
|
|
130
|
-
outputs: contextData?.previousResults
|
|
131
|
-
? Object.fromEntries(Array.from(contextData.previousResults.entries()))
|
|
132
|
-
: {},
|
|
133
|
-
// Required output property (empty for if conditions)
|
|
134
|
-
output: {
|
|
135
|
-
issues: [],
|
|
136
|
-
suggestions: [],
|
|
137
|
-
},
|
|
138
|
-
// Utility metadata
|
|
139
|
-
metadata: {
|
|
140
|
-
checkName,
|
|
141
|
-
schema: '',
|
|
142
|
-
group: '',
|
|
143
|
-
criticalIssues: 0,
|
|
144
|
-
errorIssues: 0,
|
|
145
|
-
warningIssues: 0,
|
|
146
|
-
infoIssues: 0,
|
|
147
|
-
totalIssues: 0,
|
|
148
|
-
hasChanges: (contextData?.filesChanged?.length || 0) > 0,
|
|
149
|
-
branch: contextData?.branch || 'unknown',
|
|
150
|
-
event: contextData?.event || 'manual',
|
|
151
|
-
},
|
|
152
|
-
};
|
|
153
|
-
try {
|
|
154
|
-
return this.evaluateExpression(expression, context);
|
|
155
|
-
}
|
|
156
|
-
catch (error) {
|
|
157
|
-
console.warn(`Failed to evaluate if expression for check '${checkName}': ${error}`);
|
|
158
|
-
// Default to running the check if evaluation fails
|
|
159
|
-
return true;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Evaluate all failure conditions for a check result
|
|
164
|
-
*/
|
|
165
|
-
async evaluateConditions(checkName, checkSchema, checkGroup, reviewSummary, globalConditions, checkConditions, previousOutputs) {
|
|
166
|
-
const context = this.buildEvaluationContext(checkName, checkSchema, checkGroup, reviewSummary, previousOutputs);
|
|
167
|
-
const results = [];
|
|
168
|
-
// Evaluate global conditions first
|
|
169
|
-
if (globalConditions) {
|
|
170
|
-
const globalResults = await this.evaluateConditionSet(globalConditions, context, 'global');
|
|
171
|
-
results.push(...globalResults);
|
|
172
|
-
}
|
|
173
|
-
// Evaluate check-specific conditions (these override global ones with same name)
|
|
174
|
-
if (checkConditions) {
|
|
175
|
-
const checkResults = await this.evaluateConditionSet(checkConditions, context, 'check');
|
|
176
|
-
// Remove global conditions that are overridden by check-specific ones
|
|
177
|
-
const overriddenConditions = new Set(Object.keys(checkConditions));
|
|
178
|
-
const filteredResults = results.filter(result => !overriddenConditions.has(result.conditionName));
|
|
179
|
-
results.length = 0;
|
|
180
|
-
results.push(...filteredResults, ...checkResults);
|
|
181
|
-
}
|
|
182
|
-
return results;
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Evaluate a set of failure conditions
|
|
186
|
-
*/
|
|
187
|
-
async evaluateConditionSet(conditions, context, source) {
|
|
188
|
-
const results = [];
|
|
189
|
-
for (const [conditionName, condition] of Object.entries(conditions)) {
|
|
190
|
-
try {
|
|
191
|
-
const result = await this.evaluateSingleCondition(conditionName, condition, context);
|
|
192
|
-
results.push(result);
|
|
193
|
-
}
|
|
194
|
-
catch (error) {
|
|
195
|
-
// If evaluation fails, create an error result
|
|
196
|
-
results.push({
|
|
197
|
-
conditionName,
|
|
198
|
-
failed: false,
|
|
199
|
-
expression: this.extractExpression(condition),
|
|
200
|
-
severity: 'error',
|
|
201
|
-
haltExecution: false,
|
|
202
|
-
error: `Failed to evaluate ${source} condition '${conditionName}': ${error instanceof Error ? error.message : String(error)}`,
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
return results;
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* Evaluate a single failure condition
|
|
210
|
-
*/
|
|
211
|
-
async evaluateSingleCondition(conditionName, condition, context) {
|
|
212
|
-
const expression = this.extractExpression(condition);
|
|
213
|
-
const config = this.extractConditionConfig(condition);
|
|
214
|
-
try {
|
|
215
|
-
const failed = this.evaluateExpression(expression, context);
|
|
216
|
-
return {
|
|
217
|
-
conditionName,
|
|
218
|
-
failed,
|
|
219
|
-
expression,
|
|
220
|
-
message: config.message,
|
|
221
|
-
severity: config.severity || 'error',
|
|
222
|
-
haltExecution: config.halt_execution || false,
|
|
223
|
-
};
|
|
224
|
-
}
|
|
225
|
-
catch (error) {
|
|
226
|
-
throw new Error(`Expression evaluation error: ${error instanceof Error ? error.message : String(error)}`);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* Secure expression evaluation using SandboxJS
|
|
231
|
-
* Supports the same GitHub Actions-style functions as the previous implementation
|
|
232
|
-
*/
|
|
233
|
-
evaluateExpression(condition, context) {
|
|
234
|
-
try {
|
|
235
|
-
// Helper functions for GitHub Actions-style expressions
|
|
236
|
-
const contains = (searchString, searchValue) => String(searchString).toLowerCase().includes(String(searchValue).toLowerCase());
|
|
237
|
-
const startsWith = (searchString, searchValue) => String(searchString).toLowerCase().startsWith(String(searchValue).toLowerCase());
|
|
238
|
-
const endsWith = (searchString, searchValue) => String(searchString).toLowerCase().endsWith(String(searchValue).toLowerCase());
|
|
239
|
-
const length = (value) => {
|
|
240
|
-
if (typeof value === 'string' || Array.isArray(value)) {
|
|
241
|
-
return value.length;
|
|
242
|
-
}
|
|
243
|
-
if (value && typeof value === 'object') {
|
|
244
|
-
return Object.keys(value).length;
|
|
245
|
-
}
|
|
246
|
-
return 0;
|
|
247
|
-
};
|
|
248
|
-
const always = () => true;
|
|
249
|
-
const success = () => true;
|
|
250
|
-
const failure = () => false;
|
|
251
|
-
// Helper functions for array operations
|
|
252
|
-
const hasIssue = (issues, field, value) => {
|
|
253
|
-
if (!Array.isArray(issues))
|
|
254
|
-
return false;
|
|
255
|
-
return issues.some(issue => issue[field] === value);
|
|
256
|
-
};
|
|
257
|
-
const countIssues = (issues, field, value) => {
|
|
258
|
-
if (!Array.isArray(issues))
|
|
259
|
-
return 0;
|
|
260
|
-
return issues.filter(issue => issue[field] === value).length;
|
|
261
|
-
};
|
|
262
|
-
const hasFileMatching = (issues, pattern) => {
|
|
263
|
-
if (!Array.isArray(issues))
|
|
264
|
-
return false;
|
|
265
|
-
return issues.some(issue => issue.file?.includes(pattern));
|
|
266
|
-
};
|
|
267
|
-
const hasSuggestion = (suggestions, text) => {
|
|
268
|
-
if (!Array.isArray(suggestions))
|
|
269
|
-
return false;
|
|
270
|
-
return suggestions.some(s => s.toLowerCase().includes(text.toLowerCase()));
|
|
271
|
-
};
|
|
272
|
-
// Backward compatibility aliases
|
|
273
|
-
const hasIssueWith = hasIssue;
|
|
274
|
-
const hasFileWith = hasFileMatching;
|
|
275
|
-
// Extract context variables
|
|
276
|
-
const output = context.output || {};
|
|
277
|
-
const issues = output.issues || [];
|
|
278
|
-
const suggestions = output.suggestions || [];
|
|
279
|
-
// Backward compatibility: provide metadata for transition period
|
|
280
|
-
// TODO: Remove after all configurations are updated
|
|
281
|
-
const metadata = context.metadata || {
|
|
282
|
-
checkName: context.checkName || '',
|
|
283
|
-
schema: context.schema || '',
|
|
284
|
-
group: context.group || '',
|
|
285
|
-
criticalIssues: issues.filter((i) => i.severity === 'critical')
|
|
286
|
-
.length,
|
|
287
|
-
errorIssues: issues.filter((i) => i.severity === 'error').length,
|
|
288
|
-
warningIssues: issues.filter((i) => i.severity === 'warning').length,
|
|
289
|
-
infoIssues: issues.filter((i) => i.severity === 'info').length,
|
|
290
|
-
totalIssues: issues.length,
|
|
291
|
-
hasChanges: context.hasChanges || false,
|
|
292
|
-
};
|
|
293
|
-
// Legacy variables for backward compatibility
|
|
294
|
-
const criticalIssues = metadata.criticalIssues;
|
|
295
|
-
const errorIssues = metadata.errorIssues;
|
|
296
|
-
const totalIssues = metadata.totalIssues;
|
|
297
|
-
const warningIssues = metadata.warningIssues;
|
|
298
|
-
const infoIssues = metadata.infoIssues;
|
|
299
|
-
// Additional context for 'if' conditions and some failure conditions
|
|
300
|
-
const checkName = context.checkName || '';
|
|
301
|
-
const schema = context.schema || '';
|
|
302
|
-
const group = context.group || '';
|
|
303
|
-
const branch = context.branch || 'unknown';
|
|
304
|
-
const baseBranch = context.baseBranch || 'main';
|
|
305
|
-
const filesChanged = context.filesChanged || [];
|
|
306
|
-
const filesCount = context.filesCount || 0;
|
|
307
|
-
const event = context.event || 'manual';
|
|
308
|
-
const env = context.env || {};
|
|
309
|
-
const outputs = context.outputs || {};
|
|
310
|
-
const debug = context.debug || null;
|
|
311
|
-
// Create scope with all context variables and helper functions
|
|
312
|
-
const scope = {
|
|
313
|
-
// Primary context variables
|
|
314
|
-
output,
|
|
315
|
-
outputs,
|
|
316
|
-
debug,
|
|
317
|
-
// Legacy compatibility variables
|
|
318
|
-
issues,
|
|
319
|
-
suggestions,
|
|
320
|
-
metadata,
|
|
321
|
-
criticalIssues,
|
|
322
|
-
errorIssues,
|
|
323
|
-
totalIssues,
|
|
324
|
-
warningIssues,
|
|
325
|
-
infoIssues,
|
|
326
|
-
// If condition context
|
|
327
|
-
checkName,
|
|
328
|
-
schema,
|
|
329
|
-
group,
|
|
330
|
-
branch,
|
|
331
|
-
baseBranch,
|
|
332
|
-
filesChanged,
|
|
333
|
-
filesCount,
|
|
334
|
-
event,
|
|
335
|
-
env,
|
|
336
|
-
// Helper functions
|
|
337
|
-
contains,
|
|
338
|
-
startsWith,
|
|
339
|
-
endsWith,
|
|
340
|
-
length,
|
|
341
|
-
always,
|
|
342
|
-
success,
|
|
343
|
-
failure,
|
|
344
|
-
hasIssue,
|
|
345
|
-
countIssues,
|
|
346
|
-
hasFileMatching,
|
|
347
|
-
hasSuggestion,
|
|
348
|
-
hasIssueWith,
|
|
349
|
-
hasFileWith,
|
|
350
|
-
};
|
|
351
|
-
// Compile and execute the expression in the sandbox
|
|
352
|
-
const exec = this.sandbox.compile(`return (${condition.trim()});`);
|
|
353
|
-
const result = exec(scope).run();
|
|
354
|
-
// Ensure we return a boolean
|
|
355
|
-
return Boolean(result);
|
|
356
|
-
}
|
|
357
|
-
catch (error) {
|
|
358
|
-
console.error('❌ Failed to evaluate expression:', condition, error);
|
|
359
|
-
// Re-throw the error so it can be caught at a higher level for error reporting
|
|
360
|
-
throw error;
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
/**
|
|
364
|
-
* Extract the expression from a failure condition
|
|
365
|
-
*/
|
|
366
|
-
extractExpression(condition) {
|
|
367
|
-
if (typeof condition === 'string') {
|
|
368
|
-
return condition;
|
|
369
|
-
}
|
|
370
|
-
return condition.condition;
|
|
371
|
-
}
|
|
372
|
-
/**
|
|
373
|
-
* Extract configuration from a failure condition
|
|
374
|
-
*/
|
|
375
|
-
extractConditionConfig(condition) {
|
|
376
|
-
if (typeof condition === 'string') {
|
|
377
|
-
return {};
|
|
378
|
-
}
|
|
379
|
-
return {
|
|
380
|
-
message: condition.message,
|
|
381
|
-
severity: condition.severity,
|
|
382
|
-
halt_execution: condition.halt_execution,
|
|
383
|
-
};
|
|
384
|
-
}
|
|
385
|
-
/**
|
|
386
|
-
* Build the evaluation context for expressions
|
|
387
|
-
*/
|
|
388
|
-
buildEvaluationContext(checkName, checkSchema, checkGroup, reviewSummary, previousOutputs) {
|
|
389
|
-
const { issues, suggestions, debug } = reviewSummary;
|
|
390
|
-
const context = {
|
|
391
|
-
output: {
|
|
392
|
-
issues: (issues || []).map(issue => ({
|
|
393
|
-
file: issue.file,
|
|
394
|
-
line: issue.line,
|
|
395
|
-
endLine: issue.endLine,
|
|
396
|
-
ruleId: issue.ruleId,
|
|
397
|
-
message: issue.message,
|
|
398
|
-
severity: issue.severity,
|
|
399
|
-
category: issue.category,
|
|
400
|
-
group: issue.group,
|
|
401
|
-
schema: issue.schema,
|
|
402
|
-
suggestion: issue.suggestion,
|
|
403
|
-
replacement: issue.replacement,
|
|
404
|
-
})),
|
|
405
|
-
suggestions,
|
|
406
|
-
// Include additional schema-specific data from reviewSummary
|
|
407
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
408
|
-
...reviewSummary, // Pass through any additional fields
|
|
409
|
-
},
|
|
410
|
-
outputs: previousOutputs || {},
|
|
411
|
-
// Add basic context info for failure conditions
|
|
412
|
-
checkName: checkName,
|
|
413
|
-
schema: checkSchema,
|
|
414
|
-
group: checkGroup,
|
|
415
|
-
};
|
|
416
|
-
// Add debug information if available
|
|
417
|
-
if (debug) {
|
|
418
|
-
context.debug = {
|
|
419
|
-
errors: debug.errors || [],
|
|
420
|
-
processingTime: debug.processingTime || 0,
|
|
421
|
-
provider: debug.provider || 'unknown',
|
|
422
|
-
model: debug.model || 'unknown',
|
|
423
|
-
};
|
|
424
|
-
}
|
|
425
|
-
return context;
|
|
426
|
-
}
|
|
427
|
-
/**
|
|
428
|
-
* Check if any failure condition requires halting execution
|
|
429
|
-
*/
|
|
430
|
-
static shouldHaltExecution(results) {
|
|
431
|
-
return results.some(result => result.failed && result.haltExecution);
|
|
432
|
-
}
|
|
433
|
-
/**
|
|
434
|
-
* Get all failed conditions
|
|
435
|
-
*/
|
|
436
|
-
static getFailedConditions(results) {
|
|
437
|
-
return results.filter(result => result.failed);
|
|
438
|
-
}
|
|
439
|
-
/**
|
|
440
|
-
* Group results by severity
|
|
441
|
-
*/
|
|
442
|
-
static groupResultsBySeverity(results) {
|
|
443
|
-
return {
|
|
444
|
-
error: results.filter(r => r.severity === 'error'),
|
|
445
|
-
warning: results.filter(r => r.severity === 'warning'),
|
|
446
|
-
info: results.filter(r => r.severity === 'info'),
|
|
447
|
-
};
|
|
448
|
-
}
|
|
449
|
-
/**
|
|
450
|
-
* Format results for display
|
|
451
|
-
*/
|
|
452
|
-
static formatResults(results) {
|
|
453
|
-
const failed = FailureConditionEvaluator.getFailedConditions(results);
|
|
454
|
-
if (failed.length === 0) {
|
|
455
|
-
return '✅ All failure conditions passed';
|
|
456
|
-
}
|
|
457
|
-
const grouped = FailureConditionEvaluator.groupResultsBySeverity(failed);
|
|
458
|
-
const sections = [];
|
|
459
|
-
if (grouped.error.length > 0) {
|
|
460
|
-
sections.push(`❌ **Error conditions (${grouped.error.length}):**`);
|
|
461
|
-
grouped.error.forEach(result => {
|
|
462
|
-
sections.push(` - ${result.conditionName}: ${result.message || result.expression}`);
|
|
463
|
-
});
|
|
464
|
-
}
|
|
465
|
-
if (grouped.warning.length > 0) {
|
|
466
|
-
sections.push(`⚠️ **Warning conditions (${grouped.warning.length}):**`);
|
|
467
|
-
grouped.warning.forEach(result => {
|
|
468
|
-
sections.push(` - ${result.conditionName}: ${result.message || result.expression}`);
|
|
469
|
-
});
|
|
470
|
-
}
|
|
471
|
-
if (grouped.info.length > 0) {
|
|
472
|
-
sections.push(`ℹ️ **Info conditions (${grouped.info.length}):**`);
|
|
473
|
-
grouped.info.forEach(result => {
|
|
474
|
-
sections.push(` - ${result.conditionName}: ${result.message || result.expression}`);
|
|
475
|
-
});
|
|
476
|
-
}
|
|
477
|
-
return sections.join('\n');
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
exports.FailureConditionEvaluator = FailureConditionEvaluator;
|
|
481
|
-
//# sourceMappingURL=failure-condition-evaluator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"failure-condition-evaluator.js","sourceRoot":"","sources":["../src/failure-condition-evaluator.ts"],"names":[],"mappings":"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"}
|