@probelabs/visor 0.1.81 → 0.1.83

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":"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"}
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;IAs8B1C;;OAEG;YACW,qBAAqB;IAyJnC;;OAEG;YACW,4BAA4B;IAgD1C;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAW3B;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAwIvC;;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 +1 @@
1
- {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/cli-main.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAmc1C"}
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/cli-main.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAqc1C"}
@@ -187,6 +187,10 @@ export declare const configSchema: {
187
187
  readonly $ref: "#/definitions/EnvConfig";
188
188
  readonly description: "Environment variables for this check";
189
189
  };
190
+ readonly timeout: {
191
+ readonly type: "number";
192
+ readonly description: "Timeout in seconds for command execution (default: 60)";
193
+ };
190
194
  readonly depends_on: {
191
195
  readonly type: "array";
192
196
  readonly items: {
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/generated/config-schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA46Bf,CAAC;AACX,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/generated/config-schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAg7Bf,CAAC;AACX,eAAe,YAAY,CAAC"}
@@ -194,6 +194,10 @@
194
194
  "$ref": "#/definitions/EnvConfig",
195
195
  "description": "Environment variables for this check"
196
196
  },
197
+ "timeout": {
198
+ "type": "number",
199
+ "description": "Timeout in seconds for command execution (default: 60)"
200
+ },
197
201
  "depends_on": {
198
202
  "type": "array",
199
203
  "items": {
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- process.env.VISOR_VERSION = '0.1.81';
2
+ process.env.VISOR_VERSION = '0.1.83';
3
3
  process.env.PROBE_VERSION = '0.6.0-rc122';
4
4
  /******/ (() => { // webpackBootstrap
5
5
  /******/ var __webpack_modules__ = ({
@@ -102612,155 +102612,173 @@ class CheckExecutionEngine {
102612
102612
  if (isForEachDependent && forEachParentName) {
102613
102613
  // Record forEach preview items
102614
102614
  this.recordForEachPreview(checkName, forEachItems);
102615
- if (debug) {
102616
- log(`🔄 Debug: Check "${checkName}" depends on forEach check "${forEachParentName}", executing ${forEachItems.length} times`);
102615
+ // If the forEach parent returned an empty array, skip this check entirely
102616
+ if (forEachItems.length === 0) {
102617
+ if (debug) {
102618
+ log(`🔄 Debug: Skipping check "${checkName}" - forEach check "${forEachParentName}" returned 0 items`);
102619
+ }
102620
+ logger_1.logger.info(` forEach: no items from "${forEachParentName}", skipping check...`);
102621
+ // Return a special marker result so that dependent checks can detect the skip
102622
+ finalResult = {
102623
+ issues: [],
102624
+ output: [],
102625
+ };
102626
+ // Mark this result as forEach-capable but with empty items
102627
+ finalResult.isForEach = true;
102628
+ finalResult.forEachItems = [];
102629
+ // Skip to the end - don't execute this check
102617
102630
  }
102618
- // Log forEach processing start (non-debug)
102619
- logger_1.logger.info(` forEach: processing ${forEachItems.length} items from "${forEachParentName}"...`);
102620
- const allIssues = [];
102621
- const allOutputs = [];
102622
- const aggregatedContents = [];
102623
- // Create task functions (not executed yet) - these will be executed with controlled concurrency
102624
- // via executeWithLimitedParallelism to respect maxParallelism setting
102625
- const itemTasks = forEachItems.map((item, itemIndex) => async () => {
102626
- // Create modified dependency results with current item
102627
- // For forEach branching: unwrap ALL forEach parents to create isolated execution branch
102628
- const forEachDependencyResults = new Map();
102629
- for (const [depName, depResult] of dependencyResults) {
102630
- if (forEachParents.includes(depName)) {
102631
- // This is a forEach parent - unwrap its output for this iteration
102632
- const depForEachResult = depResult;
102633
- if (Array.isArray(depForEachResult.output) &&
102634
- depForEachResult.output[itemIndex] !== undefined) {
102635
- // Unwrap to the item at the current index
102636
- const modifiedResult = {
102637
- issues: [],
102638
- output: depForEachResult.output[itemIndex],
102639
- };
102640
- forEachDependencyResults.set(depName, modifiedResult);
102641
- // Also provide -raw access to the full array
102642
- const rawResult = {
102643
- issues: [],
102644
- output: depForEachResult.output,
102645
- };
102646
- forEachDependencyResults.set(`${depName}-raw`, rawResult);
102631
+ else {
102632
+ if (debug) {
102633
+ log(`🔄 Debug: Check "${checkName}" depends on forEach check "${forEachParentName}", executing ${forEachItems.length} times`);
102634
+ }
102635
+ // Log forEach processing start (non-debug)
102636
+ logger_1.logger.info(` forEach: processing ${forEachItems.length} items from "${forEachParentName}"...`);
102637
+ const allIssues = [];
102638
+ const allOutputs = [];
102639
+ const aggregatedContents = [];
102640
+ // Create task functions (not executed yet) - these will be executed with controlled concurrency
102641
+ // via executeWithLimitedParallelism to respect maxParallelism setting
102642
+ const itemTasks = forEachItems.map((item, itemIndex) => async () => {
102643
+ // Create modified dependency results with current item
102644
+ // For forEach branching: unwrap ALL forEach parents to create isolated execution branch
102645
+ const forEachDependencyResults = new Map();
102646
+ for (const [depName, depResult] of dependencyResults) {
102647
+ if (forEachParents.includes(depName)) {
102648
+ // This is a forEach parent - unwrap its output for this iteration
102649
+ const depForEachResult = depResult;
102650
+ if (Array.isArray(depForEachResult.output) &&
102651
+ depForEachResult.output[itemIndex] !== undefined) {
102652
+ // Unwrap to the item at the current index
102653
+ const modifiedResult = {
102654
+ issues: [],
102655
+ output: depForEachResult.output[itemIndex],
102656
+ };
102657
+ forEachDependencyResults.set(depName, modifiedResult);
102658
+ // Also provide -raw access to the full array
102659
+ const rawResult = {
102660
+ issues: [],
102661
+ output: depForEachResult.output,
102662
+ };
102663
+ forEachDependencyResults.set(`${depName}-raw`, rawResult);
102664
+ }
102665
+ else {
102666
+ // Fallback: use the result as-is
102667
+ forEachDependencyResults.set(depName, depResult);
102668
+ }
102647
102669
  }
102648
102670
  else {
102649
- // Fallback: use the result as-is
102650
102671
  forEachDependencyResults.set(depName, depResult);
102651
102672
  }
102652
102673
  }
102653
- else {
102654
- forEachDependencyResults.set(depName, depResult);
102674
+ // Evaluate if condition for this forEach item
102675
+ if (checkConfig.if) {
102676
+ // Merge current results with forEach-specific dependency results for condition evaluation
102677
+ const conditionResults = new Map(results);
102678
+ for (const [depName, depResult] of forEachDependencyResults) {
102679
+ conditionResults.set(depName, depResult);
102680
+ }
102681
+ const shouldRun = await this.evaluateCheckCondition(checkName, checkConfig.if, prInfo, conditionResults, debug);
102682
+ if (!shouldRun) {
102683
+ if (debug) {
102684
+ log(`🔄 Debug: Skipping forEach item ${itemIndex + 1} for check "${checkName}" (if condition evaluated to false)`);
102685
+ }
102686
+ // Return empty result for skipped items
102687
+ return {
102688
+ index: itemIndex,
102689
+ itemResult: { issues: [] },
102690
+ skipped: true,
102691
+ };
102692
+ }
102655
102693
  }
102656
- }
102657
- // Evaluate if condition for this forEach item
102658
- if (checkConfig.if) {
102659
- // Merge current results with forEach-specific dependency results for condition evaluation
102660
- const conditionResults = new Map(results);
102661
- for (const [depName, depResult] of forEachDependencyResults) {
102662
- conditionResults.set(depName, depResult);
102694
+ if (debug) {
102695
+ log(`🔄 Debug: Executing check "${checkName}" for item ${itemIndex + 1}/${forEachItems.length}`);
102663
102696
  }
102664
- const shouldRun = await this.evaluateCheckCondition(checkName, checkConfig.if, prInfo, conditionResults, debug);
102665
- if (!shouldRun) {
102697
+ // Track iteration start
102698
+ const iterationStart = this.recordIterationStart(checkName);
102699
+ // Execute with retry/routing semantics per item
102700
+ const itemResult = await this.executeWithRouting(checkName, checkConfig, provider, providerConfig, prInfo, forEachDependencyResults, sessionInfo, config, dependencyGraph, debug, results,
102701
+ /*foreachContext*/ {
102702
+ index: itemIndex,
102703
+ total: forEachItems.length,
102704
+ parent: forEachParentName,
102705
+ });
102706
+ // Record iteration completion
102707
+ // Check if this iteration had fatal errors
102708
+ const hadFatalError = (itemResult.issues || []).some(issue => {
102709
+ const id = issue.ruleId || '';
102710
+ return (id === 'command/execution_error' ||
102711
+ id.endsWith('/command/execution_error') ||
102712
+ id === 'command/transform_js_error' ||
102713
+ id.endsWith('/command/transform_js_error') ||
102714
+ id === 'command/transform_error' ||
102715
+ id.endsWith('/command/transform_error'));
102716
+ });
102717
+ const iterationDuration = (Date.now() - iterationStart) / 1000;
102718
+ this.recordIterationComplete(checkName, iterationStart, !hadFatalError, // Success if no fatal errors
102719
+ itemResult.issues || [], itemResult.output);
102720
+ // Log iteration progress
102721
+ logger_1.logger.info(` ✔ ${itemIndex + 1}/${forEachItems.length} (${iterationDuration.toFixed(1)}s)`);
102722
+ return { index: itemIndex, itemResult };
102723
+ });
102724
+ const forEachConcurrency = Math.max(1, Math.min(forEachItems.length, effectiveMaxParallelism));
102725
+ if (debug && forEachConcurrency > 1) {
102726
+ log(`🔄 Debug: Limiting forEach concurrency for check "${checkName}" to ${forEachConcurrency}`);
102727
+ }
102728
+ const forEachResults = await this.executeWithLimitedParallelism(itemTasks, forEachConcurrency, false);
102729
+ for (const result of forEachResults) {
102730
+ if (result.status === 'rejected') {
102731
+ // Instead of throwing, record the failure and continue with other iterations
102732
+ const error = result.reason;
102733
+ const errorMessage = error instanceof Error ? error.message : String(error);
102734
+ // Create an error issue for this failed iteration
102735
+ allIssues.push({
102736
+ ruleId: `${checkName}/forEach/iteration_error`,
102737
+ severity: 'error',
102738
+ category: 'logic',
102739
+ message: `forEach iteration failed: ${errorMessage}`,
102740
+ file: '',
102741
+ line: 0,
102742
+ });
102666
102743
  if (debug) {
102667
- log(`🔄 Debug: Skipping forEach item ${itemIndex + 1} for check "${checkName}" (if condition evaluated to false)`);
102744
+ log(`🔄 Debug: forEach iteration for check "${checkName}" failed: ${errorMessage}`);
102668
102745
  }
102669
- // Return empty result for skipped items
102670
- return {
102671
- index: itemIndex,
102672
- itemResult: { issues: [] },
102673
- skipped: true,
102674
- };
102746
+ continue;
102675
102747
  }
102676
- }
102677
- if (debug) {
102678
- log(`🔄 Debug: Executing check "${checkName}" for item ${itemIndex + 1}/${forEachItems.length}`);
102679
- }
102680
- // Track iteration start
102681
- const iterationStart = this.recordIterationStart(checkName);
102682
- // Execute with retry/routing semantics per item
102683
- const itemResult = await this.executeWithRouting(checkName, checkConfig, provider, providerConfig, prInfo, forEachDependencyResults, sessionInfo, config, dependencyGraph, debug, results,
102684
- /*foreachContext*/ {
102685
- index: itemIndex,
102686
- total: forEachItems.length,
102687
- parent: forEachParentName,
102688
- });
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
- });
102700
- const iterationDuration = (Date.now() - iterationStart) / 1000;
102701
- this.recordIterationComplete(checkName, iterationStart, !hadFatalError, // Success if no fatal errors
102702
- itemResult.issues || [], itemResult.output);
102703
- // Log iteration progress
102704
- logger_1.logger.info(` ✔ ${itemIndex + 1}/${forEachItems.length} (${iterationDuration.toFixed(1)}s)`);
102705
- return { index: itemIndex, itemResult };
102706
- });
102707
- const forEachConcurrency = Math.max(1, Math.min(forEachItems.length, effectiveMaxParallelism));
102708
- if (debug && forEachConcurrency > 1) {
102709
- log(`🔄 Debug: Limiting forEach concurrency for check "${checkName}" to ${forEachConcurrency}`);
102710
- }
102711
- const forEachResults = await this.executeWithLimitedParallelism(itemTasks, forEachConcurrency, false);
102712
- for (const result of forEachResults) {
102713
- if (result.status === 'rejected') {
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}`);
102748
+ // Skip results from skipped items (those that failed if condition)
102749
+ if (result.value.skipped) {
102750
+ continue;
102751
+ }
102752
+ const { itemResult } = result.value;
102753
+ if (itemResult.issues) {
102754
+ allIssues.push(...itemResult.issues);
102755
+ }
102756
+ const resultWithOutput = itemResult;
102757
+ if (resultWithOutput.output !== undefined) {
102758
+ allOutputs.push(resultWithOutput.output);
102759
+ }
102760
+ const itemContent = resultWithOutput.content;
102761
+ if (typeof itemContent === 'string' && itemContent.trim()) {
102762
+ aggregatedContents.push(itemContent.trim());
102728
102763
  }
102729
- continue;
102730
- }
102731
- // Skip results from skipped items (those that failed if condition)
102732
- if (result.value.skipped) {
102733
- continue;
102734
- }
102735
- const { itemResult } = result.value;
102736
- if (itemResult.issues) {
102737
- allIssues.push(...itemResult.issues);
102738
102764
  }
102739
- const resultWithOutput = itemResult;
102740
- if (resultWithOutput.output !== undefined) {
102741
- allOutputs.push(resultWithOutput.output);
102765
+ const finalOutput = allOutputs.length > 0 ? allOutputs : undefined;
102766
+ finalResult = {
102767
+ issues: allIssues,
102768
+ ...(finalOutput !== undefined ? { output: finalOutput } : {}),
102769
+ };
102770
+ // IMPORTANT: Mark this result as forEach-capable so that checks depending on it
102771
+ // will also iterate over the items (propagate forEach behavior down the chain)
102772
+ if (allOutputs.length > 0) {
102773
+ finalResult.isForEach = true;
102774
+ finalResult.forEachItems = allOutputs;
102742
102775
  }
102743
- const itemContent = resultWithOutput.content;
102744
- if (typeof itemContent === 'string' && itemContent.trim()) {
102745
- aggregatedContents.push(itemContent.trim());
102776
+ if (aggregatedContents.length > 0) {
102777
+ finalResult.content =
102778
+ aggregatedContents.join('\n');
102746
102779
  }
102747
- }
102748
- const finalOutput = allOutputs.length > 0 ? allOutputs : undefined;
102749
- finalResult = {
102750
- issues: allIssues,
102751
- ...(finalOutput !== undefined ? { output: finalOutput } : {}),
102752
- };
102753
- // IMPORTANT: Mark this result as forEach-capable so that checks depending on it
102754
- // will also iterate over the items (propagate forEach behavior down the chain)
102755
- if (allOutputs.length > 0) {
102756
- finalResult.isForEach = true;
102757
- finalResult.forEachItems = allOutputs;
102758
- }
102759
- if (aggregatedContents.length > 0) {
102760
- finalResult.content =
102761
- aggregatedContents.join('\n');
102762
- }
102763
- log(`🔄 Debug: Completed forEach execution for check "${checkName}", total issues: ${allIssues.length}`);
102780
+ log(`🔄 Debug: Completed forEach execution for check "${checkName}", total issues: ${allIssues.length}`);
102781
+ } // End of else block for forEachItems.length > 0
102764
102782
  }
102765
102783
  else {
102766
102784
  // Normal single execution
@@ -104584,9 +104602,11 @@ async function main() {
104584
104602
  logger_1.logger.debug(`🧹 Cleaning up ${sessionRegistry.getActiveSessionIds().length} active AI sessions...`);
104585
104603
  sessionRegistry.clearAllSessions();
104586
104604
  }
104587
- if (criticalCount > 0 || hasRepositoryError) {
104588
- process.exit(1);
104589
- }
104605
+ // Force exit to prevent hanging from unclosed resources (MCP connections, etc.)
104606
+ // This is necessary because some async resources may not be properly cleaned up
104607
+ // and can keep the event loop alive indefinitely
104608
+ const exitCode = criticalCount > 0 || hasRepositoryError ? 1 : 0;
104609
+ process.exit(exitCode);
104590
104610
  }
104591
104611
  catch (error) {
104592
104612
  // Import error classes dynamically to avoid circular dependencies
@@ -106932,6 +106952,10 @@ exports.configSchema = {
106932
106952
  $ref: '#/definitions/EnvConfig',
106933
106953
  description: 'Environment variables for this check',
106934
106954
  },
106955
+ timeout: {
106956
+ type: 'number',
106957
+ description: 'Timeout in seconds for command execution (default: 60)',
106958
+ },
106935
106959
  depends_on: {
106936
106960
  type: 'array',
106937
106961
  items: {
@@ -112893,6 +112917,19 @@ class CommandCheckProvider extends check_provider_interface_1.CheckProvider {
112893
112917
  }
112894
112918
  catch (error) {
112895
112919
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
112920
+ // Check if this is a timeout error
112921
+ let isTimeout = false;
112922
+ if (error && typeof error === 'object') {
112923
+ const execError = error;
112924
+ // Node's child_process sets killed=true and signal='SIGTERM' on timeout
112925
+ if (execError.killed && execError.signal === 'SIGTERM') {
112926
+ isTimeout = true;
112927
+ }
112928
+ // Some versions may also set code to 'ETIMEDOUT'
112929
+ if (execError.code === 'ETIMEDOUT') {
112930
+ isTimeout = true;
112931
+ }
112932
+ }
112896
112933
  // Extract stderr from the error if available (child_process errors include stdout/stderr)
112897
112934
  let stderrOutput = '';
112898
112935
  if (error && typeof error === 'object') {
@@ -112901,17 +112938,30 @@ class CommandCheckProvider extends check_provider_interface_1.CheckProvider {
112901
112938
  stderrOutput = execError.stderr.trim();
112902
112939
  }
112903
112940
  }
112904
- // Construct detailed error message including stderr
112905
- const detailedMessage = stderrOutput
112906
- ? `Command execution failed: ${errorMessage}\n\nStderr output:\n${stderrOutput}`
112907
- : `Command execution failed: ${errorMessage}`;
112941
+ // Construct detailed error message
112942
+ let detailedMessage;
112943
+ let ruleId;
112944
+ if (isTimeout) {
112945
+ const timeoutSeconds = config.timeout || 60;
112946
+ detailedMessage = `Command execution timed out after ${timeoutSeconds} seconds`;
112947
+ if (stderrOutput) {
112948
+ detailedMessage += `\n\nStderr output:\n${stderrOutput}`;
112949
+ }
112950
+ ruleId = 'command/timeout';
112951
+ }
112952
+ else {
112953
+ detailedMessage = stderrOutput
112954
+ ? `Command execution failed: ${errorMessage}\n\nStderr output:\n${stderrOutput}`
112955
+ : `Command execution failed: ${errorMessage}`;
112956
+ ruleId = 'command/execution_error';
112957
+ }
112908
112958
  logger_1.logger.error(`✗ ${detailedMessage}`);
112909
112959
  return {
112910
112960
  issues: [
112911
112961
  {
112912
112962
  file: 'command',
112913
112963
  line: 0,
112914
- ruleId: 'command/execution_error',
112964
+ ruleId,
112915
112965
  message: detailedMessage,
112916
112966
  severity: 'error',
112917
112967
  category: 'logic',
@@ -228801,7 +228851,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"application/1d-interleaved-parityfec
228801
228851
  /***/ ((module) => {
228802
228852
 
228803
228853
  "use strict";
228804
- module.exports = {"rE":"0.1.81"};
228854
+ module.exports = {"rE":"0.1.83"};
228805
228855
 
228806
228856
  /***/ })
228807
228857
 
@@ -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;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
+ {"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;IAoWzB,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-V5PUTL5N.mjs";
3
+ } from "./chunk-ROXFJUTY.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-47OZJFUV.mjs.map
9
+ //# sourceMappingURL=check-execution-engine-47X4MPHW.mjs.map