@probelabs/visor 0.1.2 → 0.1.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.
Files changed (62) hide show
  1. package/README.md +144 -11
  2. package/action.yml +11 -1
  3. package/defaults/.visor.yaml +178 -42
  4. package/dist/action-cli-bridge.d.ts +2 -0
  5. package/dist/action-cli-bridge.d.ts.map +1 -1
  6. package/dist/action-cli-bridge.js +8 -0
  7. package/dist/action-cli-bridge.js.map +1 -1
  8. package/dist/ai-review-service.d.ts +24 -2
  9. package/dist/ai-review-service.d.ts.map +1 -1
  10. package/dist/ai-review-service.js +209 -98
  11. package/dist/ai-review-service.js.map +1 -1
  12. package/dist/check-execution-engine.d.ts +11 -1
  13. package/dist/check-execution-engine.d.ts.map +1 -1
  14. package/dist/check-execution-engine.js +216 -25
  15. package/dist/check-execution-engine.js.map +1 -1
  16. package/dist/cli-main.d.ts.map +1 -1
  17. package/dist/cli-main.js +2 -0
  18. package/dist/cli-main.js.map +1 -1
  19. package/dist/cli.d.ts.map +1 -1
  20. package/dist/cli.js +16 -3
  21. package/dist/cli.js.map +1 -1
  22. package/dist/config.d.ts.map +1 -1
  23. package/dist/config.js +54 -2
  24. package/dist/config.js.map +1 -1
  25. package/dist/event-mapper.d.ts +15 -0
  26. package/dist/event-mapper.d.ts.map +1 -1
  27. package/dist/event-mapper.js +9 -2
  28. package/dist/event-mapper.js.map +1 -1
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +1 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/providers/ai-check-provider.d.ts +4 -1
  33. package/dist/providers/ai-check-provider.d.ts.map +1 -1
  34. package/dist/providers/ai-check-provider.js +22 -5
  35. package/dist/providers/ai-check-provider.js.map +1 -1
  36. package/dist/providers/check-provider.interface.d.ts +9 -1
  37. package/dist/providers/check-provider.interface.d.ts.map +1 -1
  38. package/dist/providers/check-provider.interface.js.map +1 -1
  39. package/dist/providers/script-check-provider.d.ts +4 -1
  40. package/dist/providers/script-check-provider.d.ts.map +1 -1
  41. package/dist/providers/script-check-provider.js +1 -1
  42. package/dist/providers/script-check-provider.js.map +1 -1
  43. package/dist/providers/tool-check-provider.d.ts +4 -1
  44. package/dist/providers/tool-check-provider.d.ts.map +1 -1
  45. package/dist/providers/tool-check-provider.js +1 -1
  46. package/dist/providers/tool-check-provider.js.map +1 -1
  47. package/dist/providers/webhook-check-provider.d.ts +4 -1
  48. package/dist/providers/webhook-check-provider.d.ts.map +1 -1
  49. package/dist/providers/webhook-check-provider.js +1 -1
  50. package/dist/providers/webhook-check-provider.js.map +1 -1
  51. package/dist/reviewer.d.ts.map +1 -1
  52. package/dist/reviewer.js +28 -17
  53. package/dist/reviewer.js.map +1 -1
  54. package/dist/session-registry.d.ts +38 -0
  55. package/dist/session-registry.d.ts.map +1 -0
  56. package/dist/session-registry.js +67 -0
  57. package/dist/session-registry.js.map +1 -0
  58. package/dist/types/cli.d.ts +2 -0
  59. package/dist/types/cli.d.ts.map +1 -1
  60. package/dist/types/config.d.ts +7 -1
  61. package/dist/types/config.d.ts.map +1 -1
  62. package/package.json +4 -3
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AIReviewService = void 0;
4
4
  const probe_1 = require("@probelabs/probe");
5
+ const session_registry_1 = require("./session-registry");
5
6
  /**
6
7
  * Helper function to log messages respecting JSON/SARIF output format
7
8
  * Routes to stderr for JSON/SARIF to avoid contaminating structured output
@@ -13,11 +14,13 @@ function log(...args) {
13
14
  }
14
15
  class AIReviewService {
15
16
  config;
17
+ sessionRegistry;
16
18
  constructor(config = {}) {
17
19
  this.config = {
18
20
  timeout: 600000, // Increased timeout to 10 minutes for AI responses
19
21
  ...config,
20
22
  };
23
+ this.sessionRegistry = session_registry_1.SessionRegistry.getInstance();
21
24
  // Auto-detect provider and API key from environment
22
25
  if (!this.config.apiKey) {
23
26
  if (process.env.GOOGLE_API_KEY) {
@@ -41,17 +44,14 @@ class AIReviewService {
41
44
  /**
42
45
  * Execute AI review using probe agent
43
46
  */
44
- async executeReview(prInfo, customPrompt, schema) {
47
+ async executeReview(prInfo, customPrompt, schema, _checkName, sessionId) {
45
48
  const startTime = Date.now();
46
49
  const timestamp = new Date().toISOString();
47
50
  // Build prompt from custom instructions
48
51
  const prompt = await this.buildCustomPrompt(prInfo, customPrompt, schema);
49
52
  log(`Executing AI review with ${this.config.provider} provider...`);
50
53
  log(`🔧 Debug: Raw schema parameter: ${JSON.stringify(schema)} (type: ${typeof schema})`);
51
- log(`Schema type: ${schema || 'default (code-review)'}`);
52
- if (schema === 'plain') {
53
- log('Using plain schema - expecting JSON with content field');
54
- }
54
+ log(`Schema type: ${schema || 'none (no schema)'}`);
55
55
  let debugInfo;
56
56
  if (this.config.debug) {
57
57
  debugInfo = {
@@ -66,6 +66,8 @@ class AIReviewService {
66
66
  errors: [],
67
67
  jsonParseSuccess: false,
68
68
  timestamp,
69
+ schemaName: schema,
70
+ schema: undefined, // Will be populated when schema is loaded
69
71
  };
70
72
  }
71
73
  // Handle mock model/provider first (no API key needed)
@@ -102,7 +104,7 @@ class AIReviewService {
102
104
  }
103
105
  }
104
106
  try {
105
- const response = await this.callProbeAgent(prompt, schema);
107
+ const response = await this.callProbeAgent(prompt, schema, debugInfo, _checkName, sessionId);
106
108
  const processingTime = Date.now() - startTime;
107
109
  if (debugInfo) {
108
110
  debugInfo.rawResponse = response;
@@ -138,6 +140,92 @@ class AIReviewService {
138
140
  throw error;
139
141
  }
140
142
  }
143
+ /**
144
+ * Execute AI review using session reuse - reuses an existing ProbeAgent session
145
+ */
146
+ async executeReviewWithSessionReuse(prInfo, customPrompt, parentSessionId, schema, checkName) {
147
+ const startTime = Date.now();
148
+ const timestamp = new Date().toISOString();
149
+ // Get the existing session
150
+ const existingAgent = this.sessionRegistry.getSession(parentSessionId);
151
+ if (!existingAgent) {
152
+ throw new Error(`Session not found for reuse: ${parentSessionId}. Ensure the parent check completed successfully.`);
153
+ }
154
+ // Build prompt from custom instructions
155
+ const prompt = await this.buildCustomPrompt(prInfo, customPrompt, schema);
156
+ log(`🔄 Reusing AI session ${parentSessionId} for review...`);
157
+ log(`🔧 Debug: Raw schema parameter: ${JSON.stringify(schema)} (type: ${typeof schema})`);
158
+ log(`Schema type: ${schema || 'none (no schema)'}`);
159
+ let debugInfo;
160
+ if (this.config.debug) {
161
+ debugInfo = {
162
+ prompt,
163
+ rawResponse: '',
164
+ provider: this.config.provider || 'unknown',
165
+ model: this.config.model || 'default',
166
+ apiKeySource: this.getApiKeySource(),
167
+ processingTime: 0,
168
+ promptLength: prompt.length,
169
+ responseLength: 0,
170
+ errors: [],
171
+ jsonParseSuccess: false,
172
+ timestamp,
173
+ schemaName: schema,
174
+ schema: undefined, // Will be populated when schema is loaded
175
+ };
176
+ }
177
+ try {
178
+ // Use existing agent's answer method instead of creating new agent
179
+ const response = await this.callProbeAgentWithExistingSession(existingAgent, prompt, schema, debugInfo, checkName);
180
+ const processingTime = Date.now() - startTime;
181
+ if (debugInfo) {
182
+ debugInfo.rawResponse = response;
183
+ debugInfo.responseLength = response.length;
184
+ debugInfo.processingTime = processingTime;
185
+ }
186
+ const result = this.parseAIResponse(response, debugInfo, schema);
187
+ if (debugInfo) {
188
+ result.debug = debugInfo;
189
+ }
190
+ return result;
191
+ }
192
+ catch (error) {
193
+ if (debugInfo) {
194
+ debugInfo.errors = [error instanceof Error ? error.message : String(error)];
195
+ debugInfo.processingTime = Date.now() - startTime;
196
+ // In debug mode, return a review with the error captured
197
+ return {
198
+ issues: [
199
+ {
200
+ file: 'system',
201
+ line: 0,
202
+ ruleId: 'system/ai-session-reuse-error',
203
+ message: error instanceof Error ? error.message : String(error),
204
+ severity: 'error',
205
+ category: 'logic',
206
+ },
207
+ ],
208
+ suggestions: [
209
+ 'Check session reuse configuration and ensure parent check completed successfully',
210
+ ],
211
+ debug: debugInfo,
212
+ };
213
+ }
214
+ throw error;
215
+ }
216
+ }
217
+ /**
218
+ * Register a new AI session in the session registry
219
+ */
220
+ registerSession(sessionId, agent) {
221
+ this.sessionRegistry.registerSession(sessionId, agent);
222
+ }
223
+ /**
224
+ * Cleanup a session from the registry
225
+ */
226
+ cleanupSession(sessionId) {
227
+ this.sessionRegistry.unregisterSession(sessionId);
228
+ }
141
229
  /**
142
230
  * Build a custom prompt for AI review with XML-formatted data
143
231
  */
@@ -243,26 +331,80 @@ ${prInfo.fullDiff ? this.escapeXml(prInfo.fullDiff) : ''}
243
331
  return context;
244
332
  }
245
333
  /**
246
- * Escape XML special characters
334
+ * No longer escaping XML - returning text as-is
247
335
  */
248
336
  escapeXml(text) {
249
- return text
250
- .replace(/&/g, '&')
251
- .replace(/</g, '&lt;')
252
- .replace(/>/g, '&gt;')
253
- .replace(/"/g, '&quot;')
254
- .replace(/'/g, '&apos;');
337
+ return text;
338
+ }
339
+ /**
340
+ * Call ProbeAgent with an existing session
341
+ */
342
+ async callProbeAgentWithExistingSession(agent, prompt, schema, debugInfo, _checkName) {
343
+ // Handle mock model/provider for testing
344
+ if (this.config.model === 'mock' || this.config.provider === 'mock') {
345
+ log('🎭 Using mock AI model/provider for testing (session reuse)');
346
+ return this.generateMockResponse(prompt);
347
+ }
348
+ log('🔄 Reusing existing ProbeAgent session for AI review...');
349
+ log(`📝 Prompt length: ${prompt.length} characters`);
350
+ log(`⚙️ Model: ${this.config.model || 'default'}, Provider: ${this.config.provider || 'auto'}`);
351
+ try {
352
+ log('🚀 Calling existing ProbeAgent with answer()...');
353
+ // Load and pass the actual schema content if provided
354
+ let schemaString = undefined;
355
+ if (schema) {
356
+ try {
357
+ schemaString = await this.loadSchemaContent(schema);
358
+ log(`📋 Loaded schema content for: ${schema}`);
359
+ log(`📄 Raw schema JSON:\n${schemaString}`);
360
+ }
361
+ catch (error) {
362
+ log(`⚠️ Failed to load schema ${schema}, proceeding without schema:`, error);
363
+ schemaString = undefined;
364
+ if (debugInfo && debugInfo.errors) {
365
+ debugInfo.errors.push(`Failed to load schema: ${error}`);
366
+ }
367
+ }
368
+ }
369
+ // Pass schema in options object with 'schema' property
370
+ const schemaOptions = schemaString ? { schema: schemaString } : undefined;
371
+ // Store the exact schema options being passed to ProbeAgent in debug info
372
+ if (debugInfo && schemaOptions) {
373
+ debugInfo.schema = JSON.stringify(schemaOptions, null, 2);
374
+ }
375
+ // Log the schema options being passed to ProbeAgent
376
+ if (schemaOptions) {
377
+ log(`🎯 Schema options passed to ProbeAgent.answer() (session reuse):`);
378
+ log(JSON.stringify(schemaOptions, null, 2));
379
+ }
380
+ // Use existing agent's answer method - this reuses the conversation context
381
+ const response = await agent.answer(prompt, undefined, schemaOptions);
382
+ log('✅ ProbeAgent session reuse completed successfully');
383
+ log(`📤 Response length: ${response.length} characters`);
384
+ return response;
385
+ }
386
+ catch (error) {
387
+ console.error('❌ ProbeAgent session reuse failed:', error);
388
+ throw new Error(`ProbeAgent session reuse failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
389
+ }
255
390
  }
256
391
  /**
257
392
  * Call ProbeAgent SDK with built-in schema validation
258
393
  */
259
- async callProbeAgent(prompt, schema) {
394
+ async callProbeAgent(prompt, schema, debugInfo, _checkName, providedSessionId) {
260
395
  // Handle mock model/provider for testing
261
396
  if (this.config.model === 'mock' || this.config.provider === 'mock') {
262
397
  log('🎭 Using mock AI model/provider for testing');
263
398
  return this.generateMockResponse(prompt);
264
399
  }
400
+ // Create ProbeAgent instance with proper options
401
+ const sessionId = providedSessionId ||
402
+ (() => {
403
+ const timestamp = new Date().toISOString();
404
+ return `visor-${timestamp.replace(/[:.]/g, '-')}-${_checkName || 'unknown'}`;
405
+ })();
265
406
  log('🤖 Creating ProbeAgent for AI review...');
407
+ log(`🆔 Session ID: ${sessionId}`);
266
408
  log(`📝 Prompt length: ${prompt.length} characters`);
267
409
  log(`⚙️ Model: ${this.config.model || 'default'}, Provider: ${this.config.provider || 'auto'}`);
268
410
  // Store original env vars to restore later
@@ -283,13 +425,9 @@ ${prInfo.fullDiff ? this.escapeXml(prInfo.fullDiff) : ''}
283
425
  else if (this.config.provider === 'openai' && this.config.apiKey) {
284
426
  process.env.OPENAI_API_KEY = this.config.apiKey;
285
427
  }
286
- // Create ProbeAgent instance with proper options
287
- // For plain schema, use a simpler approach without tools
288
428
  const options = {
289
- promptType: schema === 'plain' ? undefined : 'code-review-template',
290
- customPrompt: schema === 'plain'
291
- ? 'You are a helpful AI assistant. Respond only with valid JSON matching the provided schema. Do not use any tools or commands.'
292
- : undefined,
429
+ sessionId: sessionId,
430
+ promptType: schema ? 'code-review-template' : undefined,
293
431
  allowEdit: false, // We don't want the agent to modify files
294
432
  debug: this.config.debug || false,
295
433
  };
@@ -308,16 +446,64 @@ ${prInfo.fullDiff ? this.escapeXml(prInfo.fullDiff) : ''}
308
446
  try {
309
447
  schemaString = await this.loadSchemaContent(schema);
310
448
  log(`📋 Loaded schema content for: ${schema}`);
449
+ log(`📄 Raw schema JSON:\n${schemaString}`);
311
450
  }
312
451
  catch (error) {
313
452
  log(`⚠️ Failed to load schema ${schema}, proceeding without schema:`, error);
314
453
  schemaString = undefined;
454
+ if (debugInfo && debugInfo.errors) {
455
+ debugInfo.errors.push(`Failed to load schema: ${error}`);
456
+ }
315
457
  }
316
458
  }
317
459
  // ProbeAgent now handles schema formatting internally!
318
- const response = await agent.answer(prompt, undefined, schemaString ? { schema: schemaString } : undefined);
460
+ // Pass schema in options object with 'schema' property
461
+ const schemaOptions = schemaString ? { schema: schemaString } : undefined;
462
+ // Store the exact schema options being passed to ProbeAgent in debug info
463
+ if (debugInfo && schemaOptions) {
464
+ debugInfo.schema = JSON.stringify(schemaOptions, null, 2);
465
+ }
466
+ // Log the schema options being passed to ProbeAgent
467
+ if (schemaOptions) {
468
+ log(`🎯 Schema options passed to ProbeAgent.answer():`);
469
+ log(JSON.stringify(schemaOptions, null, 2));
470
+ }
471
+ // Log the equivalent CLI command for local reproduction
472
+ const provider = this.config.provider || 'auto';
473
+ const model = this.config.model || 'default';
474
+ // Save prompt to a temp file for easier reproduction
475
+ try {
476
+ const fs = require('fs');
477
+ const path = require('path');
478
+ const os = require('os');
479
+ const tempDir = os.tmpdir();
480
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
481
+ const promptFile = path.join(tempDir, `visor-prompt-${timestamp}.txt`);
482
+ fs.writeFileSync(promptFile, prompt, 'utf-8');
483
+ log(`\n💾 Prompt saved to: ${promptFile}`);
484
+ log(`\n📝 To reproduce locally, run:`);
485
+ let cliCommand = `npx @probelabs/probe@latest agent`;
486
+ cliCommand += ` --provider ${provider}`;
487
+ if (model !== 'default') {
488
+ cliCommand += ` --model ${model}`;
489
+ }
490
+ if (schema) {
491
+ cliCommand += ` --schema output/${schema}/schema.json`;
492
+ }
493
+ cliCommand += ` "${promptFile}"`;
494
+ log(`\n$ ${cliCommand}\n`);
495
+ }
496
+ catch (error) {
497
+ log(`⚠️ Could not save prompt file: ${error}`);
498
+ }
499
+ const response = await agent.answer(prompt, undefined, schemaOptions);
319
500
  log('✅ ProbeAgent completed successfully');
320
501
  log(`📤 Response length: ${response.length} characters`);
502
+ // Register the session for potential reuse by dependent checks
503
+ if (_checkName) {
504
+ this.registerSession(sessionId, agent);
505
+ log(`🔧 Debug: Registered AI session for potential reuse: ${sessionId}`);
506
+ }
321
507
  return response;
322
508
  }
323
509
  catch (error) {
@@ -361,7 +547,7 @@ ${prInfo.fullDiff ? this.escapeXml(prInfo.fullDiff) : ''}
361
547
  /**
362
548
  * Parse AI response JSON
363
549
  */
364
- parseAIResponse(response, debugInfo, schema) {
550
+ parseAIResponse(response, debugInfo, _schema) {
365
551
  log('🔍 Parsing AI response...');
366
552
  log(`📊 Raw response length: ${response.length} characters`);
367
553
  // Log first and last 200 chars for debugging
@@ -375,55 +561,7 @@ ${prInfo.fullDiff ? this.escapeXml(prInfo.fullDiff) : ''}
375
561
  try {
376
562
  // Handle different schema types differently
377
563
  let reviewData;
378
- if (schema === 'plain') {
379
- // For plain schema, ProbeAgent returns JSON with a content field
380
- log('📝 Processing plain schema response (expect JSON with content field)');
381
- // Extract JSON using the same logic as other schemas
382
- // ProbeAgent's cleanSchemaResponse now strips code blocks, so we need to find JSON boundaries
383
- const trimmed = response.trim();
384
- const firstBrace = trimmed.indexOf('{');
385
- const firstBracket = trimmed.indexOf('[');
386
- const lastBrace = trimmed.lastIndexOf('}');
387
- const lastBracket = trimmed.lastIndexOf(']');
388
- let jsonStr = trimmed;
389
- let startIdx = -1;
390
- let endIdx = -1;
391
- // Prioritize {} if both exist
392
- if (firstBrace !== -1 && lastBrace !== -1) {
393
- if (firstBracket === -1 ||
394
- firstBrace < firstBracket ||
395
- (firstBrace < firstBracket && lastBrace > lastBracket)) {
396
- startIdx = firstBrace;
397
- endIdx = lastBrace;
398
- }
399
- }
400
- // Fall back to [] if no valid {} or [] is better
401
- if (startIdx === -1 && firstBracket !== -1 && lastBracket !== -1) {
402
- startIdx = firstBracket;
403
- endIdx = lastBracket;
404
- }
405
- // If we found valid JSON boundaries, extract it
406
- if (startIdx !== -1 && endIdx !== -1 && startIdx < endIdx) {
407
- jsonStr = trimmed.substring(startIdx, endIdx + 1);
408
- log(`🔍 Extracted JSON from response (chars ${startIdx} to ${endIdx + 1})`);
409
- }
410
- try {
411
- reviewData = JSON.parse(jsonStr);
412
- log('✅ Successfully parsed plain schema JSON response');
413
- if (debugInfo)
414
- debugInfo.jsonParseSuccess = true;
415
- }
416
- catch {
417
- // If JSON parsing fails, treat the entire response as content
418
- log('🔧 Plain schema fallback - treating entire response as content');
419
- reviewData = {
420
- content: response.trim(),
421
- };
422
- if (debugInfo)
423
- debugInfo.jsonParseSuccess = true;
424
- }
425
- }
426
- else {
564
+ {
427
565
  // For other schemas (code-review, etc.), extract and parse JSON with boundary detection
428
566
  log('🔍 Extracting JSON from AI response...');
429
567
  // Simple JSON extraction: find first { or [ and last } or ], with {} taking priority
@@ -505,33 +643,6 @@ ${prInfo.fullDiff ? this.escapeXml(prInfo.fullDiff) : ''}
505
643
  }
506
644
  }
507
645
  }
508
- // Handle different schemas
509
- if (schema === 'plain') {
510
- // For plain schema, we expect a content field with text (usually markdown)
511
- log('📝 Processing plain schema response');
512
- if (!reviewData.content) {
513
- console.error('❌ Plain schema response missing content field');
514
- console.error('🔍 Available fields:', Object.keys(reviewData));
515
- throw new Error('Invalid plain response: missing content field');
516
- }
517
- // Return a single "issue" that contains the text content
518
- // This will be rendered using the text template
519
- const result = {
520
- issues: [
521
- {
522
- file: 'PR',
523
- line: 1,
524
- ruleId: 'full-review/overview',
525
- message: reviewData.content,
526
- severity: 'info',
527
- category: 'documentation',
528
- },
529
- ],
530
- suggestions: [],
531
- };
532
- log('✅ Successfully created text ReviewSummary');
533
- return result;
534
- }
535
646
  // Standard code-review schema processing
536
647
  log('🔍 Validating parsed review data...');
537
648
  log(`📊 Overall score: ${0}`);
@@ -1 +1 @@
1
- {"version":3,"file":"ai-review-service.js","sourceRoot":"","sources":["../src/ai-review-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-review-service.js","sourceRoot":"","sources":["../src/ai-review-service.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,8 @@ export interface CheckExecutionOptions {
45
45
  workingDirectory?: string;
46
46
  showDetails?: boolean;
47
47
  timeout?: number;
48
+ maxParallelism?: number;
49
+ failFast?: boolean;
48
50
  outputFormat?: string;
49
51
  config?: import('./types/config').VisorConfig;
50
52
  debug?: boolean;
@@ -71,6 +73,10 @@ export declare class CheckExecutionEngine {
71
73
  * Execute checks on the local repository
72
74
  */
73
75
  executeChecks(options: CheckExecutionOptions): Promise<AnalysisResult>;
76
+ /**
77
+ * Execute tasks with controlled parallelism using a pool pattern
78
+ */
79
+ private executeWithLimitedParallelism;
74
80
  /**
75
81
  * Execute review checks using parallel execution for multiple AI checks
76
82
  */
@@ -80,7 +86,7 @@ export declare class CheckExecutionEngine {
80
86
  */
81
87
  private executeDependencyAwareChecks;
82
88
  /**
83
- * Execute multiple checks in parallel using Promise.allSettled (legacy method)
89
+ * Execute multiple checks in parallel using controlled parallelism (legacy method)
84
90
  */
85
91
  private executeParallelChecks;
86
92
  /**
@@ -128,6 +134,10 @@ export declare class CheckExecutionEngine {
128
134
  * Create an error result
129
135
  */
130
136
  private createErrorResult;
137
+ /**
138
+ * Check if a task result should trigger fail-fast behavior
139
+ */
140
+ private shouldFailFast;
131
141
  /**
132
142
  * Check if the working directory is a valid git repository
133
143
  */
@@ -1 +1 @@
1
- {"version":3,"file":"check-execution-engine.d.ts","sourceRoot":"","sources":["../src/check-execution-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check-execution-engine.d.ts","sourceRoot":"","sources":["../src/check-execution-engine.ts"],"names":[],"mappings":"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"}