@probelabs/visor 0.1.143-ee → 0.1.144-ee

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 (39) hide show
  1. package/dist/index.js +189 -24
  2. package/dist/sdk/{check-provider-registry-NA54BH75.mjs → check-provider-registry-Q7D5SQAV.mjs} +5 -5
  3. package/dist/sdk/{check-provider-registry-QCE7HDRY.mjs → check-provider-registry-VTNNTMWC.mjs} +5 -5
  4. package/dist/sdk/{chunk-5TGH3YKC.mjs → chunk-AUHRKE6Z.mjs} +14 -14
  5. package/dist/sdk/{chunk-RUQBSUTM.mjs → chunk-O7WE6HCA.mjs} +2 -2
  6. package/dist/sdk/{chunk-RUQBSUTM.mjs.map → chunk-O7WE6HCA.mjs.map} +1 -1
  7. package/dist/sdk/{chunk-5X6TLBDA.mjs → chunk-PES5G5RR.mjs} +3 -3
  8. package/dist/sdk/{chunk-HHQFJTPJ.mjs → chunk-PXWWPPNF.mjs} +14 -14
  9. package/dist/sdk/{chunk-TPJWUDMJ.mjs → chunk-XHIXKNUF.mjs} +2 -2
  10. package/dist/sdk/{failure-condition-evaluator-TK26KQRA.mjs → failure-condition-evaluator-2BJHKTMX.mjs} +3 -3
  11. package/dist/sdk/{github-frontend-HOPD4TAR.mjs → github-frontend-ICKRZ4VV.mjs} +3 -3
  12. package/dist/sdk/{host-4HD3VVKS.mjs → host-CVJ3VG5Y.mjs} +2 -2
  13. package/dist/sdk/{host-LCKHX2EN.mjs → host-WGFJVD4L.mjs} +2 -2
  14. package/dist/sdk/{routing-ZNIYEVS3.mjs → routing-3XDRYU3Z.mjs} +4 -4
  15. package/dist/sdk/{schedule-tool-handler-QC7CAK55.mjs → schedule-tool-handler-7RGTKO24.mjs} +5 -5
  16. package/dist/sdk/{schedule-tool-handler-BLC4E3VI.mjs → schedule-tool-handler-FBXABUWX.mjs} +5 -5
  17. package/dist/sdk/sdk.js +1 -1
  18. package/dist/sdk/sdk.js.map +1 -1
  19. package/dist/sdk/sdk.mjs +4 -4
  20. package/dist/sdk/{trace-helpers-HP3LKMTS.mjs → trace-helpers-VUUP6ILH.mjs} +2 -2
  21. package/dist/sdk/{workflow-check-provider-HG5LNVBC.mjs → workflow-check-provider-62MO2NB6.mjs} +6 -6
  22. package/dist/sdk/{workflow-check-provider-X24G57J2.mjs → workflow-check-provider-FLBIJQ4Z.mjs} +6 -6
  23. package/package.json +2 -2
  24. /package/dist/sdk/{check-provider-registry-NA54BH75.mjs.map → check-provider-registry-Q7D5SQAV.mjs.map} +0 -0
  25. /package/dist/sdk/{check-provider-registry-QCE7HDRY.mjs.map → check-provider-registry-VTNNTMWC.mjs.map} +0 -0
  26. /package/dist/sdk/{chunk-5TGH3YKC.mjs.map → chunk-AUHRKE6Z.mjs.map} +0 -0
  27. /package/dist/sdk/{chunk-5X6TLBDA.mjs.map → chunk-PES5G5RR.mjs.map} +0 -0
  28. /package/dist/sdk/{chunk-HHQFJTPJ.mjs.map → chunk-PXWWPPNF.mjs.map} +0 -0
  29. /package/dist/sdk/{chunk-TPJWUDMJ.mjs.map → chunk-XHIXKNUF.mjs.map} +0 -0
  30. /package/dist/sdk/{failure-condition-evaluator-TK26KQRA.mjs.map → failure-condition-evaluator-2BJHKTMX.mjs.map} +0 -0
  31. /package/dist/sdk/{github-frontend-HOPD4TAR.mjs.map → github-frontend-ICKRZ4VV.mjs.map} +0 -0
  32. /package/dist/sdk/{host-4HD3VVKS.mjs.map → host-CVJ3VG5Y.mjs.map} +0 -0
  33. /package/dist/sdk/{host-LCKHX2EN.mjs.map → host-WGFJVD4L.mjs.map} +0 -0
  34. /package/dist/sdk/{routing-ZNIYEVS3.mjs.map → routing-3XDRYU3Z.mjs.map} +0 -0
  35. /package/dist/sdk/{schedule-tool-handler-BLC4E3VI.mjs.map → schedule-tool-handler-7RGTKO24.mjs.map} +0 -0
  36. /package/dist/sdk/{schedule-tool-handler-QC7CAK55.mjs.map → schedule-tool-handler-FBXABUWX.mjs.map} +0 -0
  37. /package/dist/sdk/{trace-helpers-HP3LKMTS.mjs.map → trace-helpers-VUUP6ILH.mjs.map} +0 -0
  38. /package/dist/sdk/{workflow-check-provider-HG5LNVBC.mjs.map → workflow-check-provider-62MO2NB6.mjs.map} +0 -0
  39. /package/dist/sdk/{workflow-check-provider-X24G57J2.mjs.map → workflow-check-provider-FLBIJQ4Z.mjs.map} +0 -0
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- process.env.VISOR_VERSION = '0.1.143';
3
- process.env.PROBE_VERSION = '0.6.0-rc258';
4
- process.env.VISOR_COMMIT_SHA = '4d0e1eabc24bbbe4732548e61303df3ce5f1be74';
5
- process.env.VISOR_COMMIT_SHORT = '4d0e1ea';
2
+ process.env.VISOR_VERSION = '0.1.144';
3
+ process.env.PROBE_VERSION = '0.6.0-rc259';
4
+ process.env.VISOR_COMMIT_SHA = '0f8df6f53e18e9ad94507e1761debabaf533c0df';
5
+ process.env.VISOR_COMMIT_SHORT = '0f8df6f';
6
6
  /******/ (() => { // webpackBootstrap
7
7
  /******/ var __webpack_modules__ = ({
8
8
 
@@ -282093,7 +282093,7 @@ async function handleLineEdit({ resolvedPath: resolvedPath2, file_path, start_li
282093
282093
  return buildLineEditResponse(file_path, startLine, endLine, newLines.length, fileLines, startLine - 1, action, modifications);
282094
282094
  }
282095
282095
  }
282096
- var import_ai, import_fs4, import_path5, import_fs5, editTool, createTool, editSchema, createSchema, editDescription, createDescription, editToolDefinition, createToolDefinition;
282096
+ var import_ai, import_fs4, import_path5, import_fs5, editTool, createTool, multiEditTool, editSchema, createSchema, multiEditSchema, editDescription, createDescription, multiEditDescription, editToolDefinition, createToolDefinition, multiEditToolDefinition;
282097
282097
  var init_edit = __esm({
282098
282098
  "src/tools/edit.js"() {
282099
282099
  "use strict";
@@ -282167,7 +282167,7 @@ Parameters:
282167
282167
  },
282168
282168
  required: ["file_path", "new_string"]
282169
282169
  },
282170
- execute: async ({ file_path, old_string, new_string, replace_all = false, symbol: symbol15, position, start_line, end_line }) => {
282170
+ execute: async ({ file_path, old_string, new_string, replace_all = false, symbol: symbol15, position, start_line, end_line, workingDirectory }) => {
282171
282171
  try {
282172
282172
  if (!file_path || typeof file_path !== "string" || file_path.trim() === "") {
282173
282173
  return `Error editing file: Invalid file_path - must be a non-empty string. Provide an absolute path or a path relative to the working directory (e.g. "src/main.js").`;
@@ -282175,7 +282175,8 @@ Parameters:
282175
282175
  if (new_string === void 0 || new_string === null || typeof new_string !== "string") {
282176
282176
  return `Error editing file: Invalid new_string - must be a string. Provide the replacement content as a string value (empty string "" is valid for deletions).`;
282177
282177
  }
282178
- const resolvedPath2 = (0, import_path5.isAbsolute)(file_path) ? file_path : (0, import_path5.resolve)(cwd || process.cwd(), file_path);
282178
+ const effectiveCwd = workingDirectory || cwd || process.cwd();
282179
+ const resolvedPath2 = (0, import_path5.isAbsolute)(file_path) ? file_path : (0, import_path5.resolve)(effectiveCwd, file_path);
282179
282180
  if (debug) {
282180
282181
  console.error(`[Edit] Attempting to edit file: ${resolvedPath2}`);
282181
282182
  }
@@ -282282,7 +282283,7 @@ Important:
282282
282283
  },
282283
282284
  required: ["file_path", "content"]
282284
282285
  },
282285
- execute: async ({ file_path, content, overwrite = false }) => {
282286
+ execute: async ({ file_path, content, overwrite = false, workingDirectory }) => {
282286
282287
  try {
282287
282288
  if (!file_path || typeof file_path !== "string" || file_path.trim() === "") {
282288
282289
  return `Error creating file: Invalid file_path - must be a non-empty string. Provide an absolute path or a path relative to the working directory (e.g. "src/newFile.js").`;
@@ -282290,7 +282291,8 @@ Important:
282290
282291
  if (content === void 0 || content === null || typeof content !== "string") {
282291
282292
  return `Error creating file: Invalid content - must be a string. Provide the file content as a string value (empty string "" is valid for an empty file).`;
282292
282293
  }
282293
- const resolvedPath2 = (0, import_path5.isAbsolute)(file_path) ? file_path : (0, import_path5.resolve)(cwd || process.cwd(), file_path);
282294
+ const effectiveCwd = workingDirectory || cwd || process.cwd();
282295
+ const resolvedPath2 = (0, import_path5.isAbsolute)(file_path) ? file_path : (0, import_path5.resolve)(effectiveCwd, file_path);
282294
282296
  if (debug) {
282295
282297
  console.error(`[Create] Attempting to create file: ${resolvedPath2}`);
282296
282298
  }
@@ -282319,6 +282321,70 @@ Important:
282319
282321
  }
282320
282322
  });
282321
282323
  };
282324
+ multiEditTool = (options = {}) => {
282325
+ const editInstance = editTool(options);
282326
+ return (0, import_ai.tool)({
282327
+ name: "multi_edit",
282328
+ description: "Apply multiple file edits in a single tool call. Accepts a JSON array of edit operations.",
282329
+ inputSchema: {
282330
+ type: "object",
282331
+ properties: {
282332
+ edits: {
282333
+ type: "string",
282334
+ description: "JSON array of edit operations. Each object supports: file_path, old_string, new_string, replace_all, symbol, position, start_line, end_line."
282335
+ }
282336
+ },
282337
+ required: ["edits"]
282338
+ },
282339
+ execute: async ({ edits: rawEdits }) => {
282340
+ let edits;
282341
+ if (typeof rawEdits === "string") {
282342
+ try {
282343
+ edits = JSON.parse(rawEdits);
282344
+ } catch (e5) {
282345
+ return `Error: Invalid JSON in edits parameter - ${e5.message}. Provide a raw JSON array between <edits> tags.`;
282346
+ }
282347
+ } else if (Array.isArray(rawEdits)) {
282348
+ edits = rawEdits;
282349
+ } else {
282350
+ return "Error: edits must be a JSON array of edit operations.";
282351
+ }
282352
+ if (!Array.isArray(edits) || edits.length === 0) {
282353
+ return "Error: edits must be a non-empty JSON array.";
282354
+ }
282355
+ if (edits.length > 50) {
282356
+ return `Error: Too many edits (${edits.length}). Maximum 50 per batch.`;
282357
+ }
282358
+ const results = [];
282359
+ let successCount = 0;
282360
+ let failCount = 0;
282361
+ for (let i5 = 0; i5 < edits.length; i5++) {
282362
+ const editOp = edits[i5];
282363
+ if (!editOp || typeof editOp !== "object" || Array.isArray(editOp)) {
282364
+ results.push(`[${i5 + 1}] FAIL: Invalid edit operation - must be an object`);
282365
+ failCount++;
282366
+ continue;
282367
+ }
282368
+ try {
282369
+ const result = await editInstance.execute(editOp);
282370
+ const isError = typeof result === "string" && result.startsWith("Error");
282371
+ if (isError) {
282372
+ results.push(`[${i5 + 1}] FAIL: ${result}`);
282373
+ failCount++;
282374
+ } else {
282375
+ results.push(`[${i5 + 1}] OK: ${result}`);
282376
+ successCount++;
282377
+ }
282378
+ } catch (error2) {
282379
+ results.push(`[${i5 + 1}] FAIL: ${error2.message}`);
282380
+ failCount++;
282381
+ }
282382
+ }
282383
+ const summary = `Multi-edit: ${successCount}/${edits.length} succeeded` + (failCount > 0 ? `, ${failCount} failed` : "");
282384
+ return summary + "\n\n" + results.join("\n");
282385
+ }
282386
+ });
282387
+ };
282322
282388
  editSchema = {
282323
282389
  type: "object",
282324
282390
  properties: {
@@ -282376,8 +282442,19 @@ Important:
282376
282442
  },
282377
282443
  required: ["file_path", "content"]
282378
282444
  };
282445
+ multiEditSchema = {
282446
+ type: "object",
282447
+ properties: {
282448
+ edits: {
282449
+ type: "string",
282450
+ description: "JSON array of edit operations"
282451
+ }
282452
+ },
282453
+ required: ["edits"]
282454
+ };
282379
282455
  editDescription = "Edit files using text replacement, AST-aware symbol operations, or line-targeted editing. Supports fuzzy matching for text edits and optional hash-based integrity verification for line edits.";
282380
282456
  createDescription = "Create new files with specified content. Will create parent directories if needed.";
282457
+ multiEditDescription = "Apply multiple file edits in a single tool call. Accepts a JSON array of edit operations, each supporting the same modes as the edit tool.";
282381
282458
  editToolDefinition = `
282382
282459
  ## edit
282383
282460
  Description: ${editDescription}
@@ -282533,6 +282610,44 @@ Examples:
282533
282610
  This is a new project.</content>
282534
282611
  <overwrite>true</overwrite>
282535
282612
  </create>`;
282613
+ multiEditToolDefinition = `
282614
+ ## multi_edit
282615
+ Description: ${multiEditDescription}
282616
+
282617
+ Apply multiple edits in one call. Each operation in the array uses the same parameters as the edit tool:
282618
+ - file_path, old_string, new_string (text mode)
282619
+ - file_path, symbol, new_string (symbol replace)
282620
+ - file_path, symbol, new_string, position (symbol insert)
282621
+ - file_path, start_line, new_string (line-targeted)
282622
+
282623
+ Edits are applied sequentially. Failures do not stop remaining edits. Maximum 50 edits per call.
282624
+
282625
+ Parameters:
282626
+ - edits: (required) JSON array of edit objects. Place raw JSON between tags.
282627
+
282628
+ When to use multi_edit vs edit:
282629
+ - Use edit for a single change to one file
282630
+ - Use multi_edit when making 2+ related changes across files (e.g., rename a function and update all call sites)
282631
+ - Use multi_edit for coordinated multi-file refactoring where order matters
282632
+
282633
+ Examples:
282634
+
282635
+ Multiple text replacements across files:
282636
+ <multi_edit>
282637
+ <edits>[
282638
+ {"file_path": "src/main.js", "old_string": "return false;", "new_string": "return true;"},
282639
+ {"file_path": "src/config.js", "old_string": "debug: false", "new_string": "debug: true"}
282640
+ ]</edits>
282641
+ </multi_edit>
282642
+
282643
+ Mixed edit modes in one batch:
282644
+ <multi_edit>
282645
+ <edits>[
282646
+ {"file_path": "src/utils.js", "symbol": "oldHelper", "new_string": "function newHelper() { return 42; }"},
282647
+ {"file_path": "src/main.js", "old_string": "oldHelper()", "new_string": "newHelper()", "replace_all": true},
282648
+ {"file_path": "src/index.js", "start_line": "10", "end_line": "12", "new_string": "export { newHelper };"}
282649
+ ]</edits>
282650
+ </multi_edit>`;
282536
282651
  }
282537
282652
  });
282538
282653
 
@@ -283025,7 +283140,8 @@ function getValidParamsForTool(toolName) {
283025
283140
  task: taskSchema,
283026
283141
  attempt_completion: attemptCompletionSchema,
283027
283142
  edit: editSchema,
283028
- create: createSchema
283143
+ create: createSchema,
283144
+ multi_edit: multiEditSchema
283029
283145
  };
283030
283146
  const schema = schemaMap[toolName];
283031
283147
  if (!schema) {
@@ -283065,7 +283181,7 @@ function parseXmlToolCall(xmlString, validTools = DEFAULT_VALID_TOOLS) {
283065
283181
  const closeTag = `</${toolName}>`;
283066
283182
  const openIndex = earliestOpenIndex;
283067
283183
  let closeIndex;
283068
- if (toolName === "attempt_completion") {
283184
+ if (LAST_INDEX_TOOLS.has(toolName)) {
283069
283185
  closeIndex = xmlString.lastIndexOf(closeTag);
283070
283186
  if (closeIndex !== -1 && closeIndex <= openIndex + openTag.length) {
283071
283187
  closeIndex = -1;
@@ -283090,7 +283206,15 @@ function parseXmlToolCall(xmlString, validTools = DEFAULT_VALID_TOOLS) {
283090
283206
  if (paramOpenIndex === -1) {
283091
283207
  continue;
283092
283208
  }
283093
- let paramCloseIndex = innerContent.indexOf(paramCloseTag, paramOpenIndex + paramOpenTag.length);
283209
+ let paramCloseIndex;
283210
+ if (RAW_CONTENT_PARAMS.has(paramName)) {
283211
+ paramCloseIndex = innerContent.lastIndexOf(paramCloseTag);
283212
+ if (paramCloseIndex !== -1 && paramCloseIndex <= paramOpenIndex + paramOpenTag.length) {
283213
+ paramCloseIndex = -1;
283214
+ }
283215
+ } else {
283216
+ paramCloseIndex = innerContent.indexOf(paramCloseTag, paramOpenIndex + paramOpenTag.length);
283217
+ }
283094
283218
  if (paramCloseIndex === -1) {
283095
283219
  let nextTagIndex = innerContent.length;
283096
283220
  for (const nextParam of validParams) {
@@ -283102,18 +283226,26 @@ function parseXmlToolCall(xmlString, validTools = DEFAULT_VALID_TOOLS) {
283102
283226
  }
283103
283227
  paramCloseIndex = nextTagIndex;
283104
283228
  }
283105
- let paramValue = unescapeXmlEntities(innerContent.substring(
283229
+ const rawValue = innerContent.substring(
283106
283230
  paramOpenIndex + paramOpenTag.length,
283107
283231
  paramCloseIndex
283108
- ).trim());
283109
- if (paramValue.toLowerCase() === "true") {
283110
- paramValue = true;
283111
- } else if (paramValue.toLowerCase() === "false") {
283112
- paramValue = false;
283113
- } else if (!isNaN(paramValue) && paramValue.trim() !== "") {
283114
- const num = Number(paramValue);
283115
- if (Number.isFinite(num)) {
283116
- paramValue = num;
283232
+ );
283233
+ let paramValue;
283234
+ if (RAW_CONTENT_PARAMS.has(paramName)) {
283235
+ paramValue = unescapeXmlEntities(rawValue.replace(/^\n/, "").replace(/\n$/, ""));
283236
+ } else {
283237
+ paramValue = unescapeXmlEntities(rawValue.trim());
283238
+ }
283239
+ if (!RAW_CONTENT_PARAMS.has(paramName)) {
283240
+ if (paramValue.toLowerCase() === "true") {
283241
+ paramValue = true;
283242
+ } else if (paramValue.toLowerCase() === "false") {
283243
+ paramValue = false;
283244
+ } else if (!isNaN(paramValue) && paramValue.trim() !== "") {
283245
+ const num = Number(paramValue);
283246
+ if (Number.isFinite(num)) {
283247
+ paramValue = num;
283248
+ }
283117
283249
  }
283118
283250
  }
283119
283251
  params[paramName] = paramValue;
@@ -283156,6 +283288,7 @@ function detectUnrecognizedToolCall(xmlString, validTools) {
283156
283288
  "readImage",
283157
283289
  "edit",
283158
283290
  "create",
283291
+ "multi_edit",
283159
283292
  "delegate",
283160
283293
  "bash",
283161
283294
  "task",
@@ -283285,7 +283418,7 @@ function resolveTargetPath(target, cwd) {
283285
283418
  }
283286
283419
  return filePart + suffix;
283287
283420
  }
283288
- var import_path6, searchSchema, searchAllSchema, querySchema, extractSchema, delegateSchema, listSkillsSchema, useSkillSchema, bashSchema, analyzeAllSchema, executePlanSchema, cleanupExecutePlanSchema, attemptCompletionSchema, searchToolDefinition, queryToolDefinition, extractToolDefinition, delegateToolDefinition, attemptCompletionToolDefinition, analyzeAllToolDefinition, bashToolDefinition, googleSearchToolDefinition, urlContextToolDefinition, searchDescription, queryDescription, extractDescription, delegateDescription, bashDescription, analyzeAllDescription, DEFAULT_VALID_TOOLS;
283421
+ var import_path6, searchSchema, searchAllSchema, querySchema, extractSchema, delegateSchema, listSkillsSchema, useSkillSchema, bashSchema, analyzeAllSchema, executePlanSchema, cleanupExecutePlanSchema, attemptCompletionSchema, searchToolDefinition, queryToolDefinition, extractToolDefinition, delegateToolDefinition, attemptCompletionToolDefinition, analyzeAllToolDefinition, bashToolDefinition, googleSearchToolDefinition, urlContextToolDefinition, searchDescription, queryDescription, extractDescription, delegateDescription, bashDescription, analyzeAllDescription, DEFAULT_VALID_TOOLS, RAW_CONTENT_PARAMS, LAST_INDEX_TOOLS;
283289
283422
  var init_common2 = __esm({
283290
283423
  "src/tools/common.js"() {
283291
283424
  "use strict";
@@ -283705,6 +283838,8 @@ Capabilities:
283705
283838
  "task",
283706
283839
  "attempt_completion"
283707
283840
  ];
283841
+ RAW_CONTENT_PARAMS = /* @__PURE__ */ new Set(["content", "new_string", "old_string"]);
283842
+ LAST_INDEX_TOOLS = /* @__PURE__ */ new Set(["attempt_completion", "create", "edit"]);
283708
283843
  }
283709
283844
  });
283710
283845
 
@@ -284370,6 +284505,9 @@ function createTools(configOptions) {
284370
284505
  if (configOptions.allowEdit && isToolAllowed("create")) {
284371
284506
  tools2.createTool = createTool(configOptions);
284372
284507
  }
284508
+ if (configOptions.allowEdit && isToolAllowed("multi_edit")) {
284509
+ tools2.multiEditTool = multiEditTool(configOptions);
284510
+ }
284373
284511
  return tools2;
284374
284512
  }
284375
284513
  function parseXmlToolCallWithThinking(xmlString, validTools) {
@@ -291755,6 +291893,13 @@ function createWrappedTools(baseTools) {
291755
291893
  baseTools.createTool.execute
291756
291894
  );
291757
291895
  }
291896
+ if (baseTools.multiEditTool) {
291897
+ wrappedTools.multiEditToolInstance = wrapToolWithEmitter(
291898
+ baseTools.multiEditTool,
291899
+ "multi_edit",
291900
+ baseTools.multiEditTool.execute
291901
+ );
291902
+ }
291758
291903
  return wrappedTools;
291759
291904
  }
291760
291905
  var import_child_process6, import_util11, import_crypto4, import_events, import_fs7, import_fs8, import_path8, toolCallEmitter, activeToolExecutions, wrapToolWithEmitter, listFilesTool, searchFilesTool, listFilesToolInstance, searchFilesToolInstance;
@@ -354843,6 +354988,9 @@ var init_ProbeAgent = __esm({
354843
354988
  if (wrappedTools.createToolInstance && isToolAllowed("create")) {
354844
354989
  this.toolImplementations.create = wrappedTools.createToolInstance;
354845
354990
  }
354991
+ if (wrappedTools.multiEditToolInstance && isToolAllowed("multi_edit")) {
354992
+ this.toolImplementations.multi_edit = wrappedTools.multiEditToolInstance;
354993
+ }
354846
354994
  }
354847
354995
  this.wrappedTools = wrappedTools;
354848
354996
  if (this.debug) {
@@ -356132,6 +356280,10 @@ Workspace: ${this.allowedFolders.join(", ")}`;
356132
356280
  }
356133
356281
  if (this.allowEdit && isToolAllowed("create")) {
356134
356282
  toolDefinitions += `${createToolDefinition}
356283
+ `;
356284
+ }
356285
+ if (this.allowEdit && isToolAllowed("multi_edit")) {
356286
+ toolDefinitions += `${multiEditToolDefinition}
356135
356287
  `;
356136
356288
  }
356137
356289
  if (this.enableBash && isToolAllowed("bash")) {
@@ -356228,6 +356380,9 @@ The configuration is loaded from src/config.js lines 15-25 which contains the da
356228
356380
  if (this.allowEdit && isToolAllowed("create")) {
356229
356381
  availableToolsList += "- create: Create new files with specified content.\n";
356230
356382
  }
356383
+ if (this.allowEdit && isToolAllowed("multi_edit")) {
356384
+ availableToolsList += "- multi_edit: Apply multiple file edits in one call using a JSON array of operations.\n";
356385
+ }
356231
356386
  if (this.enableDelegate && isToolAllowed("delegate")) {
356232
356387
  availableToolsList += "- delegate: Delegate big distinct tasks to specialized probe subagents.\n";
356233
356388
  }
@@ -356822,6 +356977,9 @@ You are working with a workspace. Available paths: ${workspaceDesc}
356822
356977
  if (this.allowEdit && this.allowedTools.isEnabled("create")) {
356823
356978
  validTools.push("create");
356824
356979
  }
356980
+ if (this.allowEdit && this.allowedTools.isEnabled("multi_edit")) {
356981
+ validTools.push("multi_edit");
356982
+ }
356825
356983
  if (this.enableBash && this.allowedTools.isEnabled("bash")) {
356826
356984
  validTools.push("bash");
356827
356985
  }
@@ -359928,6 +360086,10 @@ __export(tools_exports, {
359928
360086
  extractTool: () => extractTool,
359929
360087
  getCleanupExecutePlanToolDefinition: () => getCleanupExecutePlanToolDefinition,
359930
360088
  getExecutePlanToolDefinition: () => getExecutePlanToolDefinition,
360089
+ multiEditDescription: () => multiEditDescription,
360090
+ multiEditSchema: () => multiEditSchema,
360091
+ multiEditTool: () => multiEditTool,
360092
+ multiEditToolDefinition: () => multiEditToolDefinition,
359931
360093
  parseAndResolvePaths: () => parseAndResolvePaths,
359932
360094
  querySchema: () => querySchema,
359933
360095
  queryTool: () => queryTool,
@@ -360579,6 +360741,9 @@ __export(index_exports, {
360579
360741
  initializeSimpleTelemetryFromOptions: () => initializeSimpleTelemetryFromOptions,
360580
360742
  listFilesByLevel: () => listFilesByLevel,
360581
360743
  listFilesToolInstance: () => listFilesToolInstance,
360744
+ multiEditSchema: () => multiEditSchema,
360745
+ multiEditTool: () => multiEditTool,
360746
+ multiEditToolDefinition: () => multiEditToolDefinition,
360582
360747
  parseXmlToolCall: () => parseXmlToolCall,
360583
360748
  query: () => query,
360584
360749
  querySchema: () => querySchema,
@@ -395887,7 +396052,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"100":"Continue","101":"Switching Pro
395887
396052
  /***/ ((module) => {
395888
396053
 
395889
396054
  "use strict";
395890
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@probelabs/visor","version":"0.1.42","main":"dist/index.js","bin":{"visor":"./dist/index.js"},"exports":{".":{"require":"./dist/index.js","import":"./dist/index.js"},"./sdk":{"types":"./dist/sdk/sdk.d.ts","import":"./dist/sdk/sdk.mjs","require":"./dist/sdk/sdk.js"},"./cli":{"require":"./dist/index.js"}},"files":["dist/","defaults/","action.yml","README.md","LICENSE"],"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build:cli":"ncc build src/index.ts -o dist && cp -r defaults dist/ && cp -r output dist/ && cp -r docs dist/ && cp -r examples dist/ && cp -r src/debug-visualizer/ui dist/debug-visualizer/ && node scripts/inject-version.js && echo \'#!/usr/bin/env node\' | cat - dist/index.js > temp && mv temp dist/index.js && chmod +x dist/index.js","build:sdk":"tsup src/sdk.ts --dts --sourcemap --format esm,cjs --out-dir dist/sdk","build":"./scripts/build-oss.sh","build:ee":"npm run build:cli && npm run build:sdk","test":"jest && npm run test:yaml","test:unit":"jest","prepublishOnly":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:ee":"jest --testPathPatterns=\'tests/ee\' --testPathIgnorePatterns=\'/node_modules/\' --no-coverage","test:manual:bash":"RUN_MANUAL_TESTS=true jest tests/manual/bash-config-manual.test.ts","lint":"eslint src tests --ext .ts","lint:fix":"eslint src tests --ext .ts --fix","format":"prettier --write src tests","format:check":"prettier --check src tests","clean":"","clean:traces":"node scripts/clean-traces.js","prebuild":"npm run clean && node scripts/generate-config-schema.js","pretest":"npm run clean:traces && node scripts/generate-config-schema.js && npm run build:cli","pretest:unit":"npm run clean:traces && node scripts/generate-config-schema.js && npm run build:cli","test:with-build":"npm run build:cli && jest","test:yaml":"node dist/index.js test --progress compact","test:yaml:parallel":"node dist/index.js test --progress compact --max-parallel 4","prepare":"husky","pre-commit":"lint-staged","deploy:site":"cd site && npx wrangler pages deploy . --project-name=visor-site --commit-dirty=true","deploy:worker":"npx wrangler deploy","deploy":"npm run deploy:site && npm run deploy:worker","publish:ee":"./scripts/publish-ee.sh","release":"./scripts/release.sh","release:patch":"./scripts/release.sh patch","release:minor":"./scripts/release.sh minor","release:major":"./scripts/release.sh major","release:prerelease":"./scripts/release.sh prerelease","docs:validate":"node scripts/validate-readme-links.js","workshop:setup":"npm install -D reveal-md@6.1.2","workshop:serve":"cd workshop && reveal-md slides.md -w","workshop:export":"reveal-md workshop/slides.md --static workshop/build","workshop:pdf":"reveal-md workshop/slides.md --print workshop/Visor-Workshop.pdf --print-size letter","workshop:pdf:ci":"reveal-md workshop/slides.md --print workshop/Visor-Workshop.pdf --print-size letter --puppeteer-launch-args=\\"--no-sandbox --disable-dev-shm-usage\\"","workshop:pdf:a4":"reveal-md workshop/slides.md --print workshop/Visor-Workshop-A4.pdf --print-size A4","workshop:build":"npm run workshop:export && npm run workshop:pdf","simulate:issue":"TS_NODE_TRANSPILE_ONLY=1 ts-node scripts/simulate-gh-run.ts --event issues --action opened --debug","simulate:comment":"TS_NODE_TRANSPILE_ONLY=1 ts-node scripts/simulate-gh-run.ts --event issue_comment --action created --debug"},"keywords":["code-review","ai","github-action","cli","pr-review","visor"],"author":"Probe Labs","license":"MIT","description":"AI workflow engine for code review, assistants, and automation — orchestrate checks, MCP tools, and AI providers with YAML-driven pipelines","repository":{"type":"git","url":"git+https://github.com/probelabs/visor.git"},"bugs":{"url":"https://github.com/probelabs/visor/issues"},"homepage":"https://github.com/probelabs/visor#readme","dependencies":{"@actions/core":"^1.11.1","@apidevtools/swagger-parser":"^12.1.0","@modelcontextprotocol/sdk":"^1.25.3","@nyariv/sandboxjs":"github:probelabs/SandboxJS#f1c13b8eee98734a8ea024061eada4aa9a9ff2e9","@octokit/action":"^8.0.2","@octokit/auth-app":"^8.1.0","@octokit/core":"^7.0.3","@octokit/rest":"^22.0.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^1.30.1","@opentelemetry/exporter-trace-otlp-grpc":"^0.203.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/instrumentation":"^0.203.0","@opentelemetry/resources":"^1.30.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/sdk-trace-base":"^1.30.1","@opentelemetry/semantic-conventions":"^1.30.1","@probelabs/probe":"^0.6.0-rc258","@types/commander":"^2.12.0","@types/uuid":"^10.0.0","acorn":"^8.16.0","acorn-walk":"^8.3.5","ajv":"^8.17.1","ajv-formats":"^3.0.1","better-sqlite3":"^11.0.0","blessed":"^0.1.81","cli-table3":"^0.6.5","commander":"^14.0.0","deepmerge":"^4.3.1","dotenv":"^17.2.3","ignore":"^7.0.5","js-yaml":"^4.1.0","jsonpath-plus":"^10.4.0","liquidjs":"^10.21.1","minimatch":"^10.2.2","node-cron":"^3.0.3","open":"^9.1.0","simple-git":"^3.28.0","uuid":"^11.1.0","ws":"^8.18.3"},"optionalDependencies":{"@anthropic/claude-code-sdk":"npm:null@*","@open-policy-agent/opa-wasm":"^1.10.0","knex":"^3.1.0","mysql2":"^3.11.0","pg":"^8.13.0","tedious":"^19.0.0"},"devDependencies":{"@eslint/js":"^9.34.0","@kie/act-js":"^2.6.2","@kie/mock-github":"^2.0.1","@swc/core":"^1.13.2","@swc/jest":"^0.2.37","@types/better-sqlite3":"^7.6.0","@types/blessed":"^0.1.27","@types/jest":"^30.0.0","@types/js-yaml":"^4.0.9","@types/node":"^24.3.0","@types/node-cron":"^3.0.11","@types/ws":"^8.18.1","@typescript-eslint/eslint-plugin":"^8.42.0","@typescript-eslint/parser":"^8.42.0","@vercel/ncc":"^0.38.4","eslint":"^9.34.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","husky":"^9.1.7","jest":"^30.1.3","lint-staged":"^16.1.6","prettier":"^3.6.2","reveal-md":"^6.1.2","ts-json-schema-generator":"^1.5.1","ts-node":"^10.9.2","tsup":"^8.5.0","typescript":"^5.9.2","wrangler":"^3.0.0"},"peerDependenciesMeta":{"@anthropic/claude-code-sdk":{"optional":true}},"directories":{"test":"tests"},"lint-staged":{"src/**/*.{ts,js}":["eslint --fix","prettier --write"],"tests/**/*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]}}');
396055
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@probelabs/visor","version":"0.1.42","main":"dist/index.js","bin":{"visor":"./dist/index.js"},"exports":{".":{"require":"./dist/index.js","import":"./dist/index.js"},"./sdk":{"types":"./dist/sdk/sdk.d.ts","import":"./dist/sdk/sdk.mjs","require":"./dist/sdk/sdk.js"},"./cli":{"require":"./dist/index.js"}},"files":["dist/","defaults/","action.yml","README.md","LICENSE"],"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build:cli":"ncc build src/index.ts -o dist && cp -r defaults dist/ && cp -r output dist/ && cp -r docs dist/ && cp -r examples dist/ && cp -r src/debug-visualizer/ui dist/debug-visualizer/ && node scripts/inject-version.js && echo \'#!/usr/bin/env node\' | cat - dist/index.js > temp && mv temp dist/index.js && chmod +x dist/index.js","build:sdk":"tsup src/sdk.ts --dts --sourcemap --format esm,cjs --out-dir dist/sdk","build":"./scripts/build-oss.sh","build:ee":"npm run build:cli && npm run build:sdk","test":"jest && npm run test:yaml","test:unit":"jest","prepublishOnly":"npm run build","test:watch":"jest --watch","test:coverage":"jest --coverage","test:ee":"jest --testPathPatterns=\'tests/ee\' --testPathIgnorePatterns=\'/node_modules/\' --no-coverage","test:manual:bash":"RUN_MANUAL_TESTS=true jest tests/manual/bash-config-manual.test.ts","lint":"eslint src tests --ext .ts","lint:fix":"eslint src tests --ext .ts --fix","format":"prettier --write src tests","format:check":"prettier --check src tests","clean":"","clean:traces":"node scripts/clean-traces.js","prebuild":"npm run clean && node scripts/generate-config-schema.js","pretest":"npm run clean:traces && node scripts/generate-config-schema.js && npm run build:cli","pretest:unit":"npm run clean:traces && node scripts/generate-config-schema.js && npm run build:cli","test:with-build":"npm run build:cli && jest","test:yaml":"node dist/index.js test --progress compact","test:yaml:parallel":"node dist/index.js test --progress compact --max-parallel 4","prepare":"husky","pre-commit":"lint-staged","deploy:site":"cd site && npx wrangler pages deploy . --project-name=visor-site --commit-dirty=true","deploy:worker":"npx wrangler deploy","deploy":"npm run deploy:site && npm run deploy:worker","publish:ee":"./scripts/publish-ee.sh","release":"./scripts/release.sh","release:patch":"./scripts/release.sh patch","release:minor":"./scripts/release.sh minor","release:major":"./scripts/release.sh major","release:prerelease":"./scripts/release.sh prerelease","docs:validate":"node scripts/validate-readme-links.js","workshop:setup":"npm install -D reveal-md@6.1.2","workshop:serve":"cd workshop && reveal-md slides.md -w","workshop:export":"reveal-md workshop/slides.md --static workshop/build","workshop:pdf":"reveal-md workshop/slides.md --print workshop/Visor-Workshop.pdf --print-size letter","workshop:pdf:ci":"reveal-md workshop/slides.md --print workshop/Visor-Workshop.pdf --print-size letter --puppeteer-launch-args=\\"--no-sandbox --disable-dev-shm-usage\\"","workshop:pdf:a4":"reveal-md workshop/slides.md --print workshop/Visor-Workshop-A4.pdf --print-size A4","workshop:build":"npm run workshop:export && npm run workshop:pdf","simulate:issue":"TS_NODE_TRANSPILE_ONLY=1 ts-node scripts/simulate-gh-run.ts --event issues --action opened --debug","simulate:comment":"TS_NODE_TRANSPILE_ONLY=1 ts-node scripts/simulate-gh-run.ts --event issue_comment --action created --debug"},"keywords":["code-review","ai","github-action","cli","pr-review","visor"],"author":"Probe Labs","license":"MIT","description":"AI workflow engine for code review, assistants, and automation — orchestrate checks, MCP tools, and AI providers with YAML-driven pipelines","repository":{"type":"git","url":"git+https://github.com/probelabs/visor.git"},"bugs":{"url":"https://github.com/probelabs/visor/issues"},"homepage":"https://github.com/probelabs/visor#readme","dependencies":{"@actions/core":"^1.11.1","@apidevtools/swagger-parser":"^12.1.0","@modelcontextprotocol/sdk":"^1.25.3","@nyariv/sandboxjs":"github:probelabs/SandboxJS#f1c13b8eee98734a8ea024061eada4aa9a9ff2e9","@octokit/action":"^8.0.2","@octokit/auth-app":"^8.1.0","@octokit/core":"^7.0.3","@octokit/rest":"^22.0.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^1.30.1","@opentelemetry/exporter-trace-otlp-grpc":"^0.203.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/instrumentation":"^0.203.0","@opentelemetry/resources":"^1.30.1","@opentelemetry/sdk-metrics":"^1.30.1","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/sdk-trace-base":"^1.30.1","@opentelemetry/semantic-conventions":"^1.30.1","@probelabs/probe":"^0.6.0-rc259","@types/commander":"^2.12.0","@types/uuid":"^10.0.0","acorn":"^8.16.0","acorn-walk":"^8.3.5","ajv":"^8.17.1","ajv-formats":"^3.0.1","better-sqlite3":"^11.0.0","blessed":"^0.1.81","cli-table3":"^0.6.5","commander":"^14.0.0","deepmerge":"^4.3.1","dotenv":"^17.2.3","ignore":"^7.0.5","js-yaml":"^4.1.0","jsonpath-plus":"^10.4.0","liquidjs":"^10.21.1","minimatch":"^10.2.2","node-cron":"^3.0.3","open":"^9.1.0","simple-git":"^3.28.0","uuid":"^11.1.0","ws":"^8.18.3"},"optionalDependencies":{"@anthropic/claude-code-sdk":"npm:null@*","@open-policy-agent/opa-wasm":"^1.10.0","knex":"^3.1.0","mysql2":"^3.11.0","pg":"^8.13.0","tedious":"^19.0.0"},"devDependencies":{"@eslint/js":"^9.34.0","@kie/act-js":"^2.6.2","@kie/mock-github":"^2.0.1","@swc/core":"^1.13.2","@swc/jest":"^0.2.37","@types/better-sqlite3":"^7.6.0","@types/blessed":"^0.1.27","@types/jest":"^30.0.0","@types/js-yaml":"^4.0.9","@types/node":"^24.3.0","@types/node-cron":"^3.0.11","@types/ws":"^8.18.1","@typescript-eslint/eslint-plugin":"^8.42.0","@typescript-eslint/parser":"^8.42.0","@vercel/ncc":"^0.38.4","eslint":"^9.34.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","husky":"^9.1.7","jest":"^30.1.3","lint-staged":"^16.1.6","prettier":"^3.6.2","reveal-md":"^6.1.2","ts-json-schema-generator":"^1.5.1","ts-node":"^10.9.2","tsup":"^8.5.0","typescript":"^5.9.2","wrangler":"^3.0.0"},"peerDependenciesMeta":{"@anthropic/claude-code-sdk":{"optional":true}},"directories":{"test":"tests"},"lint-staged":{"src/**/*.{ts,js}":["eslint --fix","prettier --write"],"tests/**/*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]}}');
395891
396056
 
395892
396057
  /***/ })
395893
396058
 
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  CheckProviderRegistry,
3
3
  init_check_provider_registry
4
- } from "./chunk-5TGH3YKC.mjs";
4
+ } from "./chunk-AUHRKE6Z.mjs";
5
5
  import "./chunk-KFKHU6CM.mjs";
6
6
  import "./chunk-M3BYMES6.mjs";
7
7
  import "./chunk-LG4AUKHB.mjs";
@@ -12,9 +12,9 @@ import "./chunk-DIND4ZCV.mjs";
12
12
  import "./chunk-AKCHIYWU.mjs";
13
13
  import "./chunk-NCWIZVOT.mjs";
14
14
  import "./chunk-XKCER23W.mjs";
15
- import "./chunk-5X6TLBDA.mjs";
16
- import "./chunk-TPJWUDMJ.mjs";
17
- import "./chunk-RUQBSUTM.mjs";
15
+ import "./chunk-PES5G5RR.mjs";
16
+ import "./chunk-XHIXKNUF.mjs";
17
+ import "./chunk-O7WE6HCA.mjs";
18
18
  import "./chunk-JL7JXCET.mjs";
19
19
  import "./chunk-ZUEQNCKB.mjs";
20
20
  import "./chunk-25IC7KXZ.mjs";
@@ -27,4 +27,4 @@ init_check_provider_registry();
27
27
  export {
28
28
  CheckProviderRegistry
29
29
  };
30
- //# sourceMappingURL=check-provider-registry-NA54BH75.mjs.map
30
+ //# sourceMappingURL=check-provider-registry-Q7D5SQAV.mjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  CheckProviderRegistry,
3
3
  init_check_provider_registry
4
- } from "./chunk-HHQFJTPJ.mjs";
4
+ } from "./chunk-PXWWPPNF.mjs";
5
5
  import "./chunk-M3BYMES6.mjs";
6
6
  import "./chunk-LG4AUKHB.mjs";
7
7
  import "./chunk-KFKHU6CM.mjs";
@@ -12,9 +12,9 @@ import "./chunk-DIND4ZCV.mjs";
12
12
  import "./chunk-AKCHIYWU.mjs";
13
13
  import "./chunk-NCWIZVOT.mjs";
14
14
  import "./chunk-XKCER23W.mjs";
15
- import "./chunk-5X6TLBDA.mjs";
16
- import "./chunk-TPJWUDMJ.mjs";
17
- import "./chunk-RUQBSUTM.mjs";
15
+ import "./chunk-PES5G5RR.mjs";
16
+ import "./chunk-XHIXKNUF.mjs";
17
+ import "./chunk-O7WE6HCA.mjs";
18
18
  import "./chunk-JL7JXCET.mjs";
19
19
  import "./chunk-ZUEQNCKB.mjs";
20
20
  import "./chunk-25IC7KXZ.mjs";
@@ -27,4 +27,4 @@ init_check_provider_registry();
27
27
  export {
28
28
  CheckProviderRegistry
29
29
  };
30
- //# sourceMappingURL=check-provider-registry-QCE7HDRY.mjs.map
30
+ //# sourceMappingURL=check-provider-registry-VTNNTMWC.mjs.map
@@ -53,11 +53,11 @@ import {
53
53
  init_routing,
54
54
  init_snapshot_store,
55
55
  snapshot_store_exports
56
- } from "./chunk-5X6TLBDA.mjs";
56
+ } from "./chunk-PES5G5RR.mjs";
57
57
  import {
58
58
  FailureConditionEvaluator,
59
59
  init_failure_condition_evaluator
60
- } from "./chunk-TPJWUDMJ.mjs";
60
+ } from "./chunk-XHIXKNUF.mjs";
61
61
  import {
62
62
  addEvent,
63
63
  emitNdjsonFallback,
@@ -68,7 +68,7 @@ import {
68
68
  setSpanAttributes,
69
69
  trace_helpers_exports,
70
70
  withActiveSpan
71
- } from "./chunk-RUQBSUTM.mjs";
71
+ } from "./chunk-O7WE6HCA.mjs";
72
72
  import {
73
73
  addDiagramBlock,
74
74
  init_metrics
@@ -3947,7 +3947,7 @@ async function executeWorkflowAsTool(workflowId, args, context2, argsOverrides)
3947
3947
  ...args,
3948
3948
  ...argsOverrides
3949
3949
  };
3950
- const { WorkflowCheckProvider: WorkflowCheckProvider2 } = await import("./workflow-check-provider-X24G57J2.mjs");
3950
+ const { WorkflowCheckProvider: WorkflowCheckProvider2 } = await import("./workflow-check-provider-62MO2NB6.mjs");
3951
3951
  const provider = new WorkflowCheckProvider2();
3952
3952
  const checkConfig = {
3953
3953
  type: "workflow",
@@ -8202,7 +8202,7 @@ async function executeCheckWithForEachItems2(checkId, forEachParent, forEachItem
8202
8202
  }
8203
8203
  }
8204
8204
  try {
8205
- const { evaluateTransitions } = await import("./routing-ZNIYEVS3.mjs");
8205
+ const { evaluateTransitions } = await import("./routing-3XDRYU3Z.mjs");
8206
8206
  const transTarget = await evaluateTransitions(
8207
8207
  onFinish.transitions,
8208
8208
  forEachParent,
@@ -8262,7 +8262,7 @@ async function executeCheckWithForEachItems2(checkId, forEachParent, forEachItem
8262
8262
  `[LevelDispatch] Error evaluating on_finish transitions for ${forEachParent}: ${e instanceof Error ? e.message : String(e)}`
8263
8263
  );
8264
8264
  }
8265
- const { evaluateGoto: evaluateGoto2 } = await import("./routing-ZNIYEVS3.mjs");
8265
+ const { evaluateGoto: evaluateGoto2 } = await import("./routing-3XDRYU3Z.mjs");
8266
8266
  if (context2.debug) {
8267
8267
  logger.info(
8268
8268
  `[LevelDispatch] Evaluating on_finish.goto_js for forEach parent: ${forEachParent}`
@@ -11435,7 +11435,7 @@ var init_state_machine_execution_engine = __esm({
11435
11435
  try {
11436
11436
  const map = options?.webhookContext?.webhookData;
11437
11437
  if (map) {
11438
- const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-NA54BH75.mjs");
11438
+ const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-Q7D5SQAV.mjs");
11439
11439
  const reg = CheckProviderRegistry2.getInstance();
11440
11440
  const p = reg.getProvider("http_input");
11441
11441
  if (p && typeof p.setWebhookContext === "function") p.setWebhookContext(map);
@@ -11558,7 +11558,7 @@ var init_state_machine_execution_engine = __esm({
11558
11558
  tag_filter: tagFilter
11559
11559
  } : config;
11560
11560
  try {
11561
- const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-NA54BH75.mjs");
11561
+ const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-Q7D5SQAV.mjs");
11562
11562
  const registry = CheckProviderRegistry2.getInstance();
11563
11563
  registry.setCustomTools(configWithTagFilter.tools || {});
11564
11564
  } catch (error) {
@@ -11622,7 +11622,7 @@ var init_state_machine_execution_engine = __esm({
11622
11622
  try {
11623
11623
  const webhookData = this.executionContext?.webhookContext?.webhookData;
11624
11624
  if (webhookData instanceof Map) {
11625
- const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-BLC4E3VI.mjs");
11625
+ const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-FBXABUWX.mjs");
11626
11626
  const slackCtx = extractSlackContext2(webhookData);
11627
11627
  if (slackCtx) {
11628
11628
  const payload = Array.from(webhookData.values())[0];
@@ -11651,7 +11651,7 @@ var init_state_machine_execution_engine = __esm({
11651
11651
  if (Array.isArray(configWithTagFilter.frontends) && configWithTagFilter.frontends.length > 0) {
11652
11652
  try {
11653
11653
  const { EventBus } = await import("./event-bus-5K3Y2FCS.mjs");
11654
- const { FrontendsHost } = await import("./host-4HD3VVKS.mjs");
11654
+ const { FrontendsHost } = await import("./host-WGFJVD4L.mjs");
11655
11655
  const bus = new EventBus();
11656
11656
  context2.eventBus = bus;
11657
11657
  frontendsHost = new FrontendsHost(bus, logger);
@@ -12001,9 +12001,9 @@ var init_state_machine_execution_engine = __esm({
12001
12001
  * @returns Array of failure condition evaluation results
12002
12002
  */
12003
12003
  async evaluateFailureConditions(checkName, reviewSummary, config, previousOutputs, authorAssociation) {
12004
- const { FailureConditionEvaluator: FailureConditionEvaluator2 } = await import("./failure-condition-evaluator-TK26KQRA.mjs");
12004
+ const { FailureConditionEvaluator: FailureConditionEvaluator2 } = await import("./failure-condition-evaluator-2BJHKTMX.mjs");
12005
12005
  const evaluator = new FailureConditionEvaluator2();
12006
- const { addEvent: addEvent3 } = await import("./trace-helpers-HP3LKMTS.mjs");
12006
+ const { addEvent: addEvent3 } = await import("./trace-helpers-VUUP6ILH.mjs");
12007
12007
  const { addFailIfTriggered } = await import("./metrics-I6A7IHG4.mjs");
12008
12008
  const checkConfig = config.checks?.[checkName];
12009
12009
  if (!checkConfig) {
@@ -37327,7 +37327,7 @@ function buildBuiltinGlobals(opts) {
37327
37327
  const scheduleFn = async (args = {}) => {
37328
37328
  try {
37329
37329
  const { handleScheduleAction: handleScheduleAction2, buildScheduleToolContext: buildScheduleToolContext2 } = await import("./schedule-tool-2COUUTF7.mjs");
37330
- const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-BLC4E3VI.mjs");
37330
+ const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-FBXABUWX.mjs");
37331
37331
  const parentCtx = opts.sessionInfo?._parentContext;
37332
37332
  const webhookData = parentCtx?.prInfo?.eventContext?.webhookData;
37333
37333
  const visorCfg = parentCtx?.config;
@@ -40281,4 +40281,4 @@ undici/lib/fetch/body.js:
40281
40281
  undici/lib/websocket/frame.js:
40282
40282
  (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
40283
40283
  */
40284
- //# sourceMappingURL=chunk-5TGH3YKC.mjs.map
40284
+ //# sourceMappingURL=chunk-AUHRKE6Z.mjs.map
@@ -202,7 +202,7 @@ var require_package = __commonJS({
202
202
  "@opentelemetry/sdk-node": "^0.203.0",
203
203
  "@opentelemetry/sdk-trace-base": "^1.30.1",
204
204
  "@opentelemetry/semantic-conventions": "^1.30.1",
205
- "@probelabs/probe": "^0.6.0-rc258",
205
+ "@probelabs/probe": "^0.6.0-rc259",
206
206
  "@types/commander": "^2.12.0",
207
207
  "@types/uuid": "^10.0.0",
208
208
  acorn: "^8.16.0",
@@ -440,4 +440,4 @@ export {
440
440
  trace_helpers_exports,
441
441
  init_trace_helpers
442
442
  };
443
- //# sourceMappingURL=chunk-RUQBSUTM.mjs.map
443
+ //# sourceMappingURL=chunk-O7WE6HCA.mjs.map