@probelabs/visor 0.1.20 → 0.1.22

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.
Files changed (107) hide show
  1. package/dist/action-cli-bridge.d.ts +0 -1
  2. package/dist/action-cli-bridge.d.ts.map +1 -1
  3. package/dist/ai-review-service.d.ts +0 -1
  4. package/dist/ai-review-service.d.ts.map +1 -1
  5. package/dist/check-execution-engine.d.ts +0 -1
  6. package/dist/check-execution-engine.d.ts.map +1 -1
  7. package/dist/cli-main.d.ts +0 -2
  8. package/dist/cli-main.d.ts.map +1 -1
  9. package/dist/cli.d.ts +0 -1
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/commands.d.ts +0 -1
  12. package/dist/commands.d.ts.map +1 -1
  13. package/dist/config.d.ts +0 -1
  14. package/dist/config.d.ts.map +1 -1
  15. package/dist/dependency-resolver.d.ts +0 -1
  16. package/dist/dependency-resolver.d.ts.map +1 -1
  17. package/dist/event-mapper.d.ts +0 -1
  18. package/dist/event-mapper.d.ts.map +1 -1
  19. package/dist/failure-condition-evaluator.d.ts +0 -1
  20. package/dist/failure-condition-evaluator.d.ts.map +1 -1
  21. package/dist/git-repository-analyzer.d.ts +0 -1
  22. package/dist/git-repository-analyzer.d.ts.map +1 -1
  23. package/dist/github-check-service.d.ts +0 -1
  24. package/dist/github-check-service.d.ts.map +1 -1
  25. package/dist/github-comments.d.ts +0 -1
  26. package/dist/github-comments.d.ts.map +1 -1
  27. package/dist/index.d.ts +0 -1
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +127709 -805
  30. package/dist/output-formatters.d.ts +0 -1
  31. package/dist/output-formatters.d.ts.map +1 -1
  32. package/dist/pr-analyzer.d.ts +0 -1
  33. package/dist/pr-analyzer.d.ts.map +1 -1
  34. package/dist/pr-detector.d.ts +0 -1
  35. package/dist/pr-detector.d.ts.map +1 -1
  36. package/dist/providers/ai-check-provider.d.ts.map +1 -1
  37. package/dist/providers/check-provider-registry.d.ts.map +1 -1
  38. package/dist/providers/check-provider.interface.d.ts.map +1 -1
  39. package/dist/providers/index.d.ts.map +1 -1
  40. package/dist/providers/noop-check-provider.d.ts.map +1 -1
  41. package/dist/providers/tool-check-provider.d.ts.map +1 -1
  42. package/dist/providers/webhook-check-provider.d.ts.map +1 -1
  43. package/dist/reviewer.d.ts +0 -1
  44. package/dist/reviewer.d.ts.map +1 -1
  45. package/dist/session-registry.d.ts +0 -1
  46. package/dist/session-registry.d.ts.map +1 -1
  47. package/dist/types/cli.d.ts.map +1 -1
  48. package/dist/types/config.d.ts.map +1 -1
  49. package/dist/utils/env-resolver.d.ts.map +1 -1
  50. package/package.json +3 -3
  51. package/dist/action-cli-bridge.js +0 -387
  52. package/dist/action-cli-bridge.js.map +0 -1
  53. package/dist/ai-review-service.js +0 -854
  54. package/dist/ai-review-service.js.map +0 -1
  55. package/dist/check-execution-engine.js +0 -1720
  56. package/dist/check-execution-engine.js.map +0 -1
  57. package/dist/cli-main.js +0 -249
  58. package/dist/cli-main.js.map +0 -1
  59. package/dist/cli.js +0 -241
  60. package/dist/cli.js.map +0 -1
  61. package/dist/commands.js +0 -53
  62. package/dist/commands.js.map +0 -1
  63. package/dist/config.js +0 -437
  64. package/dist/config.js.map +0 -1
  65. package/dist/dependency-resolver.js +0 -163
  66. package/dist/dependency-resolver.js.map +0 -1
  67. package/dist/event-mapper.js +0 -316
  68. package/dist/event-mapper.js.map +0 -1
  69. package/dist/failure-condition-evaluator.js +0 -481
  70. package/dist/failure-condition-evaluator.js.map +0 -1
  71. package/dist/git-repository-analyzer.js +0 -285
  72. package/dist/git-repository-analyzer.js.map +0 -1
  73. package/dist/github-check-service.js +0 -369
  74. package/dist/github-check-service.js.map +0 -1
  75. package/dist/github-comments.js +0 -289
  76. package/dist/github-comments.js.map +0 -1
  77. package/dist/index.js.map +0 -1
  78. package/dist/output-formatters.js +0 -624
  79. package/dist/output-formatters.js.map +0 -1
  80. package/dist/pr-analyzer.js +0 -195
  81. package/dist/pr-analyzer.js.map +0 -1
  82. package/dist/pr-detector.js +0 -357
  83. package/dist/pr-detector.js.map +0 -1
  84. package/dist/providers/ai-check-provider.js +0 -437
  85. package/dist/providers/ai-check-provider.js.map +0 -1
  86. package/dist/providers/check-provider-registry.js +0 -138
  87. package/dist/providers/check-provider-registry.js.map +0 -1
  88. package/dist/providers/check-provider.interface.js +0 -11
  89. package/dist/providers/check-provider.interface.js.map +0 -1
  90. package/dist/providers/index.js +0 -19
  91. package/dist/providers/index.js.map +0 -1
  92. package/dist/providers/noop-check-provider.js +0 -55
  93. package/dist/providers/noop-check-provider.js.map +0 -1
  94. package/dist/providers/tool-check-provider.js +0 -174
  95. package/dist/providers/tool-check-provider.js.map +0 -1
  96. package/dist/providers/webhook-check-provider.js +0 -173
  97. package/dist/providers/webhook-check-provider.js.map +0 -1
  98. package/dist/reviewer.js +0 -260
  99. package/dist/reviewer.js.map +0 -1
  100. package/dist/session-registry.js +0 -67
  101. package/dist/session-registry.js.map +0 -1
  102. package/dist/types/cli.js +0 -3
  103. package/dist/types/cli.js.map +0 -1
  104. package/dist/types/config.js +0 -6
  105. package/dist/types/config.js.map +0 -1
  106. package/dist/utils/env-resolver.js +0 -130
  107. 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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"}