@probelabs/visor 0.1.79 → 0.1.80

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.
@@ -1 +1 @@
1
- {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/check-execution-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAEb,mBAAmB,EAGpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAKvC,OAAO,EAAE,sBAAsB,EAAe,MAAM,gBAAgB,CAAC;AAcrE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,cAAc,GAAG,WAAW,GAAG,mBAAmB,CAAC;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,UAAU,EAAE,mBAAmB,CAAC;CACjC;AAgCD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,GAAG,EAAE,MAAM,OAAO,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;aAAE,CAAC,CAAC;YACtD,SAAS,EAAE,MAAM,OAAO,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;aAAE,CAAC,CAAC;SAC/D,CAAC;QACF,MAAM,EAAE;YACN,YAAY,EAAE,MAAM,OAAO,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;aAAE,CAAC,CAAC;YACjE,aAAa,EAAE,MAAM,OAAO,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;aAAE,CAAC,CAAC;SACjE,CAAC;KACH,CAAC;IACF,OAAO,EAAE,MAAM,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAC1D,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChD,GAAG,EAAE;QACH,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;QACpC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;QACnC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;QACnC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;KACrC,CAAC;IACF,IAAI,EAAE;QACJ,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;QACrC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;QACpC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;QACpC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;KACpC,CAAC;IACF,IAAI,EAAE,MAAM,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,gBAAgB,EAAE,WAAW,CAAC;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,SAAS,CAAC,EAAE,OAAO,gBAAgB,EAAE,SAAS,CAAC;IAE/C,cAAc,CAAC,EAAE;QACf,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,CAAC;IAEF,YAAY,CAAC,EAAE;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,OAAO,eAAe,EAAE,OAAO,CAAC;QAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,kBAAkB,CAAC,CAAqB;IAChD,OAAO,CAAC,WAAW,CAAC,CAA2C;IAC/D,OAAO,CAAC,aAAa,CAAC,CAAkC;IACxD,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,MAAM,CAAC,CAAuC;IACtD,OAAO,CAAC,cAAc,CAAC,CAAwC;IAC/D,OAAO,CAAC,cAAc,CAAC,CAAU;IACjC,OAAO,CAAC,cAAc,CAA+C;gBAEzD,gBAAgB,CAAC,EAAE,MAAM;IAYrC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,MAAM;YASA,KAAK;IAInB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;YACW,kBAAkB;IAwahC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsD1B;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC;IAiJ5E;;OAEG;YACW,6BAA6B;IA0D3C;;OAEG;YACW,mBAAmB;IA+JjC;;OAEG;IACU,oBAAoB,CAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,OAAO,gBAAgB,EAAE,WAAW,EAC7C,YAAY,CAAC,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,OAAO,EACf,cAAc,CAAC,EAAE,MAAM,EACvB,QAAQ,CAAC,EAAE,OAAO,EAClB,SAAS,CAAC,EAAE,OAAO,gBAAgB,EAAE,SAAS,GAC7C,OAAO,CAAC,eAAe,CAAC;IA2G3B;;OAEG;YACW,yBAAyB;IAoDvC;;OAEG;YACW,mCAAmC;IAuCjD;;OAEG;YACW,oCAAoC;IAwDlD;;;;;;;;OAQG;YACW,oBAAoB;IAqElC;;;;;;;;OAQG;YACW,sBAAsB;IAuBpC;;OAEG;YACW,kBAAkB;IA+EhC;;OAEG;YACW,4BAA4B;IAu2B1C;;OAEG;YACW,qBAAqB;IAyJnC;;OAEG;YACW,4BAA4B;IAgD1C;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAW3B;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAoIvC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA0MhC;;OAEG;IACH,MAAM,CAAC,sBAAsB,IAAI,MAAM,EAAE;IASzC;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE;IAgBnF;;OAEG;IACG,aAAa,IAAI,OAAO,CAC5B,KAAK,CAAC;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC,CACH;IAID;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsDzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgCzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,cAAc;IAkBtB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IASzC;;OAEG;IACG,yBAAyB,CAC7B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,aAAa,EAC5B,MAAM,CAAC,EAAE,OAAO,gBAAgB,EAAE,WAAW,GAC5C,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAqFpC;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC;QACnC,eAAe,EAAE,OAAO,CAAC;QACzB,UAAU,EAAE,OAAO,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IAmBF;;OAEG;YACW,sBAAsB;IAiEpC;;OAEG;YACW,4BAA4B;IA4B1C;;OAEG;YACW,+BAA+B;IA6E7C;;OAEG;YACW,6BAA6B;IAyB3C;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA4F3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAmB5B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmC/B;;OAEG;IACH,OAAO,CAAC,UAAU;IAelB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAiB5B;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAmBhC;;OAEG;IACH,OAAO,CAAC,QAAQ;IAKhB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqC3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAiE5B"}
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/check-execution-engine.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- process.env.VISOR_VERSION = '0.1.79';
2
+ process.env.VISOR_VERSION = '0.1.80';
3
3
  process.env.PROBE_VERSION = '0.6.0-rc122';
4
4
  /******/ (() => { // webpackBootstrap
5
5
  /******/ var __webpack_modules__ = ({
@@ -102520,21 +102520,30 @@ class CheckExecutionEngine {
102520
102520
  dependencyResults.set(depId, depResult);
102521
102521
  }
102522
102522
  }
102523
- // If any direct dependency failed (errors/critical or */error ruleIds), skip this check
102523
+ // If any direct dependency failed or was skipped, skip this check
102524
102524
  const directDeps = checkConfig.depends_on || [];
102525
102525
  const failedDeps = [];
102526
102526
  for (const depId of directDeps) {
102527
102527
  const depRes = results.get(depId);
102528
102528
  if (!depRes)
102529
102529
  continue;
102530
- // Only treat command provider execution/transform failures as dependency-fatal
102531
- const hasFatalCommandFailure = (depRes.issues || []).some(issue => {
102530
+ // Check if dependency was skipped
102531
+ const wasSkipped = (depRes.issues || []).some(issue => {
102532
102532
  const id = issue.ruleId || '';
102533
- return (id.endsWith('/command/execution_error') ||
102533
+ return id.endsWith('/__skipped');
102534
+ });
102535
+ // Check for fatal failures: command provider execution/transform failures and forEach iteration errors
102536
+ const hasFatalFailure = (depRes.issues || []).some(issue => {
102537
+ const id = issue.ruleId || '';
102538
+ return (id === 'command/execution_error' ||
102539
+ id.endsWith('/command/execution_error') ||
102540
+ id === 'command/transform_js_error' ||
102534
102541
  id.endsWith('/command/transform_js_error') ||
102535
- id.endsWith('/command/transform_error'));
102542
+ id === 'command/transform_error' ||
102543
+ id.endsWith('/command/transform_error') ||
102544
+ id.endsWith('/forEach/iteration_error'));
102536
102545
  });
102537
- if (hasFatalCommandFailure)
102546
+ if (wasSkipped || hasFatalFailure)
102538
102547
  failedDeps.push(depId);
102539
102548
  }
102540
102549
  if (failedDeps.length > 0) {
@@ -102606,8 +102615,8 @@ class CheckExecutionEngine {
102606
102615
  if (debug) {
102607
102616
  log(`🔄 Debug: Check "${checkName}" depends on forEach check "${forEachParentName}", executing ${forEachItems.length} times`);
102608
102617
  }
102609
- // Log forEach processing start
102610
- logger_1.logger.info(` Processing ${forEachItems.length} items...`);
102618
+ // Log forEach processing start (non-debug)
102619
+ logger_1.logger.info(` forEach: processing ${forEachItems.length} items from "${forEachParentName}"...`);
102611
102620
  const allIssues = [];
102612
102621
  const allOutputs = [];
102613
102622
  const aggregatedContents = [];
@@ -102678,8 +102687,19 @@ class CheckExecutionEngine {
102678
102687
  parent: forEachParentName,
102679
102688
  });
102680
102689
  // Record iteration completion
102690
+ // Check if this iteration had fatal errors
102691
+ const hadFatalError = (itemResult.issues || []).some(issue => {
102692
+ const id = issue.ruleId || '';
102693
+ return (id === 'command/execution_error' ||
102694
+ id.endsWith('/command/execution_error') ||
102695
+ id === 'command/transform_js_error' ||
102696
+ id.endsWith('/command/transform_js_error') ||
102697
+ id === 'command/transform_error' ||
102698
+ id.endsWith('/command/transform_error'));
102699
+ });
102681
102700
  const iterationDuration = (Date.now() - iterationStart) / 1000;
102682
- this.recordIterationComplete(checkName, iterationStart, true, itemResult.issues || [], itemResult.output);
102701
+ this.recordIterationComplete(checkName, iterationStart, !hadFatalError, // Success if no fatal errors
102702
+ itemResult.issues || [], itemResult.output);
102683
102703
  // Log iteration progress
102684
102704
  logger_1.logger.info(` ✔ ${itemIndex + 1}/${forEachItems.length} (${iterationDuration.toFixed(1)}s)`);
102685
102705
  return { index: itemIndex, itemResult };
@@ -102691,7 +102711,22 @@ class CheckExecutionEngine {
102691
102711
  const forEachResults = await this.executeWithLimitedParallelism(itemTasks, forEachConcurrency, false);
102692
102712
  for (const result of forEachResults) {
102693
102713
  if (result.status === 'rejected') {
102694
- throw result.reason;
102714
+ // Instead of throwing, record the failure and continue with other iterations
102715
+ const error = result.reason;
102716
+ const errorMessage = error instanceof Error ? error.message : String(error);
102717
+ // Create an error issue for this failed iteration
102718
+ allIssues.push({
102719
+ ruleId: `${checkName}/forEach/iteration_error`,
102720
+ severity: 'error',
102721
+ category: 'logic',
102722
+ message: `forEach iteration failed: ${errorMessage}`,
102723
+ file: '',
102724
+ line: 0,
102725
+ });
102726
+ if (debug) {
102727
+ log(`🔄 Debug: forEach iteration for check "${checkName}" failed: ${errorMessage}`);
102728
+ }
102729
+ continue;
102695
102730
  }
102696
102731
  // Skip results from skipped items (those that failed if condition)
102697
102732
  if (result.value.skipped) {
@@ -102749,7 +102784,18 @@ class CheckExecutionEngine {
102749
102784
  // Execute with retry/routing semantics
102750
102785
  finalResult = await this.executeWithRouting(checkName, checkConfig, provider, providerConfig, prInfo, dependencyResults, sessionInfo, config, dependencyGraph, debug, results);
102751
102786
  // Record normal (non-forEach) execution
102752
- this.recordIterationComplete(checkName, checkStartTime, true, finalResult.issues || [], finalResult.output);
102787
+ // Check if this check had fatal errors
102788
+ const hadFatalError = (finalResult.issues || []).some(issue => {
102789
+ const id = issue.ruleId || '';
102790
+ return (id === 'command/execution_error' ||
102791
+ id.endsWith('/command/execution_error') ||
102792
+ id === 'command/transform_js_error' ||
102793
+ id.endsWith('/command/transform_js_error') ||
102794
+ id === 'command/transform_error' ||
102795
+ id.endsWith('/command/transform_error'));
102796
+ });
102797
+ this.recordIterationComplete(checkName, checkStartTime, !hadFatalError, // Success if no fatal errors
102798
+ finalResult.issues || [], finalResult.output);
102753
102799
  if (checkConfig.forEach) {
102754
102800
  try {
102755
102801
  const finalResultWithOutput = finalResult;
@@ -102830,11 +102876,24 @@ class CheckExecutionEngine {
102830
102876
  const result = levelResults[i];
102831
102877
  const checkConfig = config.checks[checkName];
102832
102878
  if (result.status === 'fulfilled' && result.value.result && !result.value.error) {
102833
- // Skip storing results for skipped checks (they should not appear in outputs)
102879
+ // For skipped checks, store a marker so dependent checks can detect the skip
102834
102880
  if (result.value.skipped) {
102835
102881
  if (debug) {
102836
- log(`🔧 Debug: Not storing result for skipped check "${checkName}"`);
102882
+ log(`🔧 Debug: Storing skip marker for skipped check "${checkName}"`);
102837
102883
  }
102884
+ // Store a special marker result with a skip issue so dependencies can detect it
102885
+ results.set(checkName, {
102886
+ issues: [
102887
+ {
102888
+ ruleId: `${checkName}/__skipped`,
102889
+ severity: 'info',
102890
+ category: 'logic',
102891
+ message: 'Check was skipped',
102892
+ file: '',
102893
+ line: 0,
102894
+ },
102895
+ ],
102896
+ });
102838
102897
  continue;
102839
102898
  }
102840
102899
  const reviewResult = result.value.result;
@@ -102864,6 +102923,8 @@ class CheckExecutionEngine {
102864
102923
  else {
102865
102924
  normalizedOutput = [rawOutput];
102866
102925
  }
102926
+ // Log forEach items found (non-debug)
102927
+ logger_1.logger.info(` Found ${normalizedOutput.length} items for forEach iteration`);
102867
102928
  try {
102868
102929
  const preview = JSON.stringify(normalizedOutput);
102869
102930
  logger_1.logger.debug(`🔧 Debug: Check "${checkName}" forEach output: ${preview?.slice(0, 200) || '(empty)'}`);
@@ -103166,7 +103227,9 @@ class CheckExecutionEngine {
103166
103227
  debugInfo.push(`✅ Check "${checkName}" completed: ${(result.issues || []).length} issues found (level ${executionGroup.level})`);
103167
103228
  }
103168
103229
  // Issues are already prefixed and enriched with group/schema info
103169
- aggregatedIssues.push(...(result.issues || []));
103230
+ // Filter out internal __skipped markers
103231
+ const nonInternalIssues = (result.issues || []).filter(issue => !issue.ruleId?.endsWith('/__skipped'));
103232
+ aggregatedIssues.push(...nonInternalIssues);
103170
103233
  const resultSummary = result;
103171
103234
  const resultContent = resultSummary.content;
103172
103235
  if (typeof resultContent === 'string' && resultContent.trim()) {
@@ -112708,8 +112771,22 @@ class CommandCheckProvider extends check_provider_interface_1.CheckProvider {
112708
112771
  output = parsed;
112709
112772
  }
112710
112773
  catch {
112711
- // If not JSON, keep as string
112712
- output = rawOutput;
112774
+ // Try to extract JSON from the end of output (for commands with debug logs)
112775
+ const extracted = this.extractJsonFromEnd(rawOutput);
112776
+ if (extracted) {
112777
+ try {
112778
+ output = JSON.parse(extracted);
112779
+ logger_1.logger.debug(`🔧 Debug: Extracted and parsed JSON from end of output (${extracted.length} chars from ${rawOutput.length} total)`);
112780
+ }
112781
+ catch {
112782
+ // Extraction found something but it's not valid JSON
112783
+ output = rawOutput;
112784
+ }
112785
+ }
112786
+ else {
112787
+ // Not JSON, keep as string
112788
+ output = rawOutput;
112789
+ }
112713
112790
  }
112714
112791
  // Apply transform if specified (Liquid or JavaScript)
112715
112792
  let finalOutput = output;
@@ -112945,6 +113022,7 @@ class CommandCheckProvider extends check_provider_interface_1.CheckProvider {
112945
113022
  * - If it's a JSON string, expose parsed properties via Proxy (e.g., value.key)
112946
113023
  * - When coerced to string (toString/valueOf/Symbol.toPrimitive), return the original raw string
112947
113024
  * - If parsing fails or value is not a string, return the value unchanged
113025
+ * - Attempts to extract JSON from the end of the output if full parse fails
112948
113026
  */
112949
113027
  makeJsonSmart(value) {
112950
113028
  if (typeof value !== 'string') {
@@ -112952,12 +113030,28 @@ class CommandCheckProvider extends check_provider_interface_1.CheckProvider {
112952
113030
  }
112953
113031
  const raw = value;
112954
113032
  let parsed;
113033
+ // First try: parse the entire string as JSON
112955
113034
  try {
112956
113035
  parsed = JSON.parse(raw);
112957
113036
  }
112958
113037
  catch {
112959
- // Not JSON, return original string
112960
- return raw;
113038
+ // Second try: extract JSON from the end of the output
113039
+ // Look for { or [ at the start of a line and take everything after it
113040
+ const jsonMatch = this.extractJsonFromEnd(raw);
113041
+ if (jsonMatch) {
113042
+ try {
113043
+ parsed = JSON.parse(jsonMatch);
113044
+ logger_1.logger.debug(`🔧 Debug: Extracted JSON from end of output (${jsonMatch.length} chars from ${raw.length} total)`);
113045
+ }
113046
+ catch {
113047
+ // Not valid JSON even after extraction, return original string
113048
+ return raw;
113049
+ }
113050
+ }
113051
+ else {
113052
+ // Not JSON, return original string
113053
+ return raw;
113054
+ }
112961
113055
  }
112962
113056
  // Use a boxed string so string methods still work via Proxy fallback
112963
113057
  const boxed = new String(raw);
@@ -113010,6 +113104,30 @@ class CommandCheckProvider extends check_provider_interface_1.CheckProvider {
113010
113104
  };
113011
113105
  return new Proxy(boxed, handler);
113012
113106
  }
113107
+ /**
113108
+ * Extract JSON from the end of a string that may contain logs/debug output
113109
+ * Looks for the last occurrence of { or [ and tries to parse from there
113110
+ */
113111
+ extractJsonFromEnd(text) {
113112
+ // Strategy: Find the last line that starts with { or [
113113
+ // Then try to parse from that point to the end
113114
+ const lines = text.split('\n');
113115
+ // Search backwards for a line starting with { or [
113116
+ for (let i = lines.length - 1; i >= 0; i--) {
113117
+ const trimmed = lines[i].trim();
113118
+ if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
113119
+ // Found potential JSON start - take everything from here to the end
113120
+ const candidate = lines.slice(i).join('\n');
113121
+ // Quick validation: does it look like valid JSON structure?
113122
+ const trimmedCandidate = candidate.trim();
113123
+ if ((trimmedCandidate.startsWith('{') && trimmedCandidate.endsWith('}')) ||
113124
+ (trimmedCandidate.startsWith('[') && trimmedCandidate.endsWith(']'))) {
113125
+ return trimmedCandidate;
113126
+ }
113127
+ }
113128
+ }
113129
+ return null;
113130
+ }
113013
113131
  /**
113014
113132
  * Recursively apply JSON-smart wrapper to outputs object values
113015
113133
  */
@@ -228692,7 +228810,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"application/1d-interleaved-parityfec
228692
228810
  /***/ ((module) => {
228693
228811
 
228694
228812
  "use strict";
228695
- module.exports = {"rE":"0.1.79"};
228813
+ module.exports = {"rE":"0.1.80"};
228696
228814
 
228697
228815
  /***/ })
228698
228816
 
@@ -20,8 +20,14 @@ export declare class CommandCheckProvider extends CheckProvider {
20
20
  * - If it's a JSON string, expose parsed properties via Proxy (e.g., value.key)
21
21
  * - When coerced to string (toString/valueOf/Symbol.toPrimitive), return the original raw string
22
22
  * - If parsing fails or value is not a string, return the value unchanged
23
+ * - Attempts to extract JSON from the end of the output if full parse fails
23
24
  */
24
25
  private makeJsonSmart;
26
+ /**
27
+ * Extract JSON from the end of a string that may contain logs/debug output
28
+ * Looks for the last occurrence of { or [ and tries to parse from there
29
+ */
30
+ private extractJsonFromEnd;
25
31
  /**
26
32
  * Recursively apply JSON-smart wrapper to outputs object values
27
33
  */
@@ -1 +1 @@
1
- {"version":3,"file":"command-check-provider.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/command-check-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAe,MAAM,aAAa,CAAC;AAMzD;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAC,CAAU;;IAY1B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAIlB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAejD,OAAO,CACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAC7C,OAAO,CAAC,aAAa,CAAC;IA2TzB,OAAO,CAAC,kBAAkB;IAkB1B;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IA+DrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,2BAA2B;IAgBnC,sBAAsB,IAAI,MAAM,EAAE;IAgB5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAKrC,eAAe,IAAI,MAAM,EAAE;IAQ3B,OAAO,CAAC,uBAAuB;IAkD/B,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,cAAc;IAmEtB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,QAAQ;YAWF,qBAAqB;IAiBnC,OAAO,CAAC,uBAAuB;CA6ChC"}
1
+ {"version":3,"file":"command-check-provider.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/command-check-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAe,MAAM,aAAa,CAAC;AAMzD;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAC,CAAU;;IAY1B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,IAAI,MAAM;IAIjB,cAAc,IAAI,MAAM;IAIlB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAejD,OAAO,CACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAC7C,OAAO,CAAC,aAAa,CAAC;IAyUzB,OAAO,CAAC,kBAAkB;IAkB1B;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAgFrB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAyB1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,2BAA2B;IAgBnC,sBAAsB,IAAI,MAAM,EAAE;IAgB5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAKrC,eAAe,IAAI,MAAM,EAAE;IAQ3B,OAAO,CAAC,uBAAuB;IAkD/B,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,cAAc;IAmEtB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,QAAQ;YAWF,qBAAqB;IAiBnC,OAAO,CAAC,uBAAuB;CA6ChC"}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  CheckExecutionEngine
3
- } from "./chunk-HDGNSOMS.mjs";
3
+ } from "./chunk-GNA5GPF7.mjs";
4
4
  import "./chunk-FIL2OGF6.mjs";
5
5
  import "./chunk-WMJKH4XE.mjs";
6
6
  export {
7
7
  CheckExecutionEngine
8
8
  };
9
- //# sourceMappingURL=check-execution-engine-XBKOCBEK.mjs.map
9
+ //# sourceMappingURL=check-execution-engine-2EQWRXWI.mjs.map
@@ -1493,7 +1493,7 @@ var PRReviewer = class {
1493
1493
  async reviewPR(owner, repo, prNumber, prInfo, options = {}) {
1494
1494
  const { debug = false, config, checks } = options;
1495
1495
  if (config && checks && checks.length > 0) {
1496
- const { CheckExecutionEngine: CheckExecutionEngine2 } = await import("./check-execution-engine-XBKOCBEK.mjs");
1496
+ const { CheckExecutionEngine: CheckExecutionEngine2 } = await import("./check-execution-engine-2EQWRXWI.mjs");
1497
1497
  const engine = new CheckExecutionEngine2();
1498
1498
  const { results } = await engine.executeGroupedChecks(
1499
1499
  prInfo,
@@ -3953,7 +3953,19 @@ var CommandCheckProvider = class extends CheckProvider {
3953
3953
  const parsed = JSON.parse(rawOutput);
3954
3954
  output = parsed;
3955
3955
  } catch {
3956
- output = rawOutput;
3956
+ const extracted2 = this.extractJsonFromEnd(rawOutput);
3957
+ if (extracted2) {
3958
+ try {
3959
+ output = JSON.parse(extracted2);
3960
+ logger.debug(
3961
+ `\u{1F527} Debug: Extracted and parsed JSON from end of output (${extracted2.length} chars from ${rawOutput.length} total)`
3962
+ );
3963
+ } catch {
3964
+ output = rawOutput;
3965
+ }
3966
+ } else {
3967
+ output = rawOutput;
3968
+ }
3957
3969
  }
3958
3970
  let finalOutput = output;
3959
3971
  if (transform) {
@@ -4172,6 +4184,7 @@ ${stderrOutput}` : `Command execution failed: ${errorMessage}`;
4172
4184
  * - If it's a JSON string, expose parsed properties via Proxy (e.g., value.key)
4173
4185
  * - When coerced to string (toString/valueOf/Symbol.toPrimitive), return the original raw string
4174
4186
  * - If parsing fails or value is not a string, return the value unchanged
4187
+ * - Attempts to extract JSON from the end of the output if full parse fails
4175
4188
  */
4176
4189
  makeJsonSmart(value) {
4177
4190
  if (typeof value !== "string") {
@@ -4182,7 +4195,19 @@ ${stderrOutput}` : `Command execution failed: ${errorMessage}`;
4182
4195
  try {
4183
4196
  parsed = JSON.parse(raw);
4184
4197
  } catch {
4185
- return raw;
4198
+ const jsonMatch = this.extractJsonFromEnd(raw);
4199
+ if (jsonMatch) {
4200
+ try {
4201
+ parsed = JSON.parse(jsonMatch);
4202
+ logger.debug(
4203
+ `\u{1F527} Debug: Extracted JSON from end of output (${jsonMatch.length} chars from ${raw.length} total)`
4204
+ );
4205
+ } catch {
4206
+ return raw;
4207
+ }
4208
+ } else {
4209
+ return raw;
4210
+ }
4186
4211
  }
4187
4212
  const boxed = new String(raw);
4188
4213
  const handler = {
@@ -4231,6 +4256,24 @@ ${stderrOutput}` : `Command execution failed: ${errorMessage}`;
4231
4256
  };
4232
4257
  return new Proxy(boxed, handler);
4233
4258
  }
4259
+ /**
4260
+ * Extract JSON from the end of a string that may contain logs/debug output
4261
+ * Looks for the last occurrence of { or [ and tries to parse from there
4262
+ */
4263
+ extractJsonFromEnd(text) {
4264
+ const lines = text.split("\n");
4265
+ for (let i = lines.length - 1; i >= 0; i--) {
4266
+ const trimmed = lines[i].trim();
4267
+ if (trimmed.startsWith("{") || trimmed.startsWith("[")) {
4268
+ const candidate = lines.slice(i).join("\n");
4269
+ const trimmedCandidate = candidate.trim();
4270
+ if (trimmedCandidate.startsWith("{") && trimmedCandidate.endsWith("}") || trimmedCandidate.startsWith("[") && trimmedCandidate.endsWith("]")) {
4271
+ return trimmedCandidate;
4272
+ }
4273
+ }
4274
+ }
4275
+ return null;
4276
+ }
4234
4277
  /**
4235
4278
  * Recursively apply JSON-smart wrapper to outputs object values
4236
4279
  */
@@ -6987,11 +7030,15 @@ ${expr}
6987
7030
  for (const depId of directDeps) {
6988
7031
  const depRes = results.get(depId);
6989
7032
  if (!depRes) continue;
6990
- const hasFatalCommandFailure = (depRes.issues || []).some((issue) => {
7033
+ const wasSkipped = (depRes.issues || []).some((issue) => {
7034
+ const id = issue.ruleId || "";
7035
+ return id.endsWith("/__skipped");
7036
+ });
7037
+ const hasFatalFailure = (depRes.issues || []).some((issue) => {
6991
7038
  const id = issue.ruleId || "";
6992
- return id.endsWith("/command/execution_error") || id.endsWith("/command/transform_js_error") || id.endsWith("/command/transform_error");
7039
+ return id === "command/execution_error" || id.endsWith("/command/execution_error") || id === "command/transform_js_error" || id.endsWith("/command/transform_js_error") || id === "command/transform_error" || id.endsWith("/command/transform_error") || id.endsWith("/forEach/iteration_error");
6993
7040
  });
6994
- if (hasFatalCommandFailure) failedDeps.push(depId);
7041
+ if (wasSkipped || hasFatalFailure) failedDeps.push(depId);
6995
7042
  }
6996
7043
  if (failedDeps.length > 0) {
6997
7044
  this.recordSkip(checkName, "dependency_failed");
@@ -7057,7 +7104,9 @@ ${expr}
7057
7104
  `\u{1F504} Debug: Check "${checkName}" depends on forEach check "${forEachParentName}", executing ${forEachItems.length} times`
7058
7105
  );
7059
7106
  }
7060
- logger.info(` Processing ${forEachItems.length} items...`);
7107
+ logger.info(
7108
+ ` forEach: processing ${forEachItems.length} items from "${forEachParentName}"...`
7109
+ );
7061
7110
  const allIssues = [];
7062
7111
  const allOutputs = [];
7063
7112
  const aggregatedContents = [];
@@ -7134,11 +7183,16 @@ ${expr}
7134
7183
  parent: forEachParentName
7135
7184
  }
7136
7185
  );
7186
+ const hadFatalError = (itemResult.issues || []).some((issue) => {
7187
+ const id = issue.ruleId || "";
7188
+ return id === "command/execution_error" || id.endsWith("/command/execution_error") || id === "command/transform_js_error" || id.endsWith("/command/transform_js_error") || id === "command/transform_error" || id.endsWith("/command/transform_error");
7189
+ });
7137
7190
  const iterationDuration = (Date.now() - iterationStart) / 1e3;
7138
7191
  this.recordIterationComplete(
7139
7192
  checkName,
7140
7193
  iterationStart,
7141
- true,
7194
+ !hadFatalError,
7195
+ // Success if no fatal errors
7142
7196
  itemResult.issues || [],
7143
7197
  itemResult.output
7144
7198
  );
@@ -7163,7 +7217,22 @@ ${expr}
7163
7217
  );
7164
7218
  for (const result of forEachResults) {
7165
7219
  if (result.status === "rejected") {
7166
- throw result.reason;
7220
+ const error = result.reason;
7221
+ const errorMessage = error instanceof Error ? error.message : String(error);
7222
+ allIssues.push({
7223
+ ruleId: `${checkName}/forEach/iteration_error`,
7224
+ severity: "error",
7225
+ category: "logic",
7226
+ message: `forEach iteration failed: ${errorMessage}`,
7227
+ file: "",
7228
+ line: 0
7229
+ });
7230
+ if (debug) {
7231
+ log2(
7232
+ `\u{1F504} Debug: forEach iteration for check "${checkName}" failed: ${errorMessage}`
7233
+ );
7234
+ }
7235
+ continue;
7167
7236
  }
7168
7237
  if (result.value.skipped) {
7169
7238
  continue;
@@ -7231,10 +7300,15 @@ ${expr}
7231
7300
  debug,
7232
7301
  results
7233
7302
  );
7303
+ const hadFatalError = (finalResult.issues || []).some((issue) => {
7304
+ const id = issue.ruleId || "";
7305
+ return id === "command/execution_error" || id.endsWith("/command/execution_error") || id === "command/transform_js_error" || id.endsWith("/command/transform_js_error") || id === "command/transform_error" || id.endsWith("/command/transform_error");
7306
+ });
7234
7307
  this.recordIterationComplete(
7235
7308
  checkName,
7236
7309
  checkStartTime,
7237
- true,
7310
+ !hadFatalError,
7311
+ // Success if no fatal errors
7238
7312
  finalResult.issues || [],
7239
7313
  finalResult.output
7240
7314
  );
@@ -7322,8 +7396,20 @@ ${expr}
7322
7396
  if (result.status === "fulfilled" && result.value.result && !result.value.error) {
7323
7397
  if (result.value.skipped) {
7324
7398
  if (debug) {
7325
- log2(`\u{1F527} Debug: Not storing result for skipped check "${checkName}"`);
7399
+ log2(`\u{1F527} Debug: Storing skip marker for skipped check "${checkName}"`);
7326
7400
  }
7401
+ results.set(checkName, {
7402
+ issues: [
7403
+ {
7404
+ ruleId: `${checkName}/__skipped`,
7405
+ severity: "info",
7406
+ category: "logic",
7407
+ message: "Check was skipped",
7408
+ file: "",
7409
+ line: 0
7410
+ }
7411
+ ]
7412
+ });
7327
7413
  continue;
7328
7414
  }
7329
7415
  const reviewResult = result.value.result;
@@ -7348,6 +7434,7 @@ ${expr}
7348
7434
  } else {
7349
7435
  normalizedOutput = [rawOutput];
7350
7436
  }
7437
+ logger.info(` Found ${normalizedOutput.length} items for forEach iteration`);
7351
7438
  try {
7352
7439
  const preview = JSON.stringify(normalizedOutput);
7353
7440
  logger.debug(
@@ -7652,7 +7739,10 @@ ${expr}
7652
7739
  `\u2705 Check "${checkName}" completed: ${(result.issues || []).length} issues found (level ${executionGroup.level})`
7653
7740
  );
7654
7741
  }
7655
- aggregatedIssues.push(...result.issues || []);
7742
+ const nonInternalIssues = (result.issues || []).filter(
7743
+ (issue) => !issue.ruleId?.endsWith("/__skipped")
7744
+ );
7745
+ aggregatedIssues.push(...nonInternalIssues);
7656
7746
  const resultSummary = result;
7657
7747
  const resultContent = resultSummary.content;
7658
7748
  if (typeof resultContent === "string" && resultContent.trim()) {
@@ -8587,4 +8677,4 @@ export {
8587
8677
  logger,
8588
8678
  CheckExecutionEngine
8589
8679
  };
8590
- //# sourceMappingURL=chunk-HDGNSOMS.mjs.map
8680
+ //# sourceMappingURL=chunk-GNA5GPF7.mjs.map