@probelabs/visor 0.1.153-ee → 0.1.154-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 (58) hide show
  1. package/dist/index.js +185 -67
  2. package/dist/providers/mcp-custom-sse-server.d.ts.map +1 -1
  3. package/dist/scheduler/schedule-tool.d.ts.map +1 -1
  4. package/dist/sdk/{check-provider-registry-XZE5PRSE.mjs → check-provider-registry-PK3OTEX6.mjs} +7 -7
  5. package/dist/sdk/{check-provider-registry-ZOGNKTC3.mjs → check-provider-registry-PZ6K7G4G.mjs} +7 -7
  6. package/dist/sdk/{chunk-CPYQDJ27.mjs → chunk-AS6LIEO4.mjs} +3 -3
  7. package/dist/sdk/{chunk-Y3XWPKFP.mjs → chunk-GQ7H7E4Y.mjs} +2 -2
  8. package/dist/sdk/{chunk-Y3XWPKFP.mjs.map → chunk-GQ7H7E4Y.mjs.map} +1 -1
  9. package/dist/sdk/{chunk-WG7P66MJ.mjs → chunk-ILIWDV37.mjs} +2 -2
  10. package/dist/sdk/{chunk-DXNWUIAN.mjs → chunk-LIRIQICI.mjs} +55 -35
  11. package/dist/sdk/chunk-LIRIQICI.mjs.map +1 -0
  12. package/dist/sdk/{chunk-DNDS7R3N.mjs → chunk-NZADFXHE.mjs} +7 -1
  13. package/dist/sdk/chunk-NZADFXHE.mjs.map +1 -0
  14. package/dist/sdk/{chunk-ZCUGMT7X.mjs → chunk-SPCGI24K.mjs} +3 -3
  15. package/dist/sdk/{chunk-EYQWEVZF.mjs → chunk-WPF7PJ64.mjs} +55 -35
  16. package/dist/sdk/chunk-WPF7PJ64.mjs.map +1 -0
  17. package/dist/sdk/{config-SW3VO4DQ.mjs → config-CWHZO5AL.mjs} +2 -2
  18. package/dist/sdk/{failure-condition-evaluator-R3UE4PE7.mjs → failure-condition-evaluator-LYFZMQ6Y.mjs} +3 -3
  19. package/dist/sdk/{github-frontend-6KZSVSPC.mjs → github-frontend-XKPAYXOT.mjs} +3 -3
  20. package/dist/sdk/{host-A5HS6F6G.mjs → host-6DJCOUJE.mjs} +2 -2
  21. package/dist/sdk/{host-X7ID5EW7.mjs → host-7Y25DDOR.mjs} +2 -2
  22. package/dist/sdk/{routing-MMEOAH34.mjs → routing-L224WQSY.mjs} +4 -4
  23. package/dist/sdk/{schedule-tool-74VMD77T.mjs → schedule-tool-HRFONU5J.mjs} +7 -7
  24. package/dist/sdk/{schedule-tool-WSZKJUNQ.mjs → schedule-tool-KZ36XTW4.mjs} +7 -7
  25. package/dist/sdk/{schedule-tool-handler-EOQBRZSD.mjs → schedule-tool-handler-2V4EJEQT.mjs} +7 -7
  26. package/dist/sdk/{schedule-tool-handler-Q7E5NBHS.mjs → schedule-tool-handler-KXZC4ZOR.mjs} +7 -7
  27. package/dist/sdk/sdk.js +44 -18
  28. package/dist/sdk/sdk.js.map +1 -1
  29. package/dist/sdk/sdk.mjs +6 -6
  30. package/dist/sdk/{trace-helpers-JJLVZ2RJ.mjs → trace-helpers-AWTAWKRA.mjs} +2 -2
  31. package/dist/sdk/{workflow-check-provider-GIW4WECT.mjs → workflow-check-provider-HGFTX64I.mjs} +7 -7
  32. package/dist/sdk/{workflow-check-provider-JHHACJHF.mjs → workflow-check-provider-TXAEY7OU.mjs} +7 -7
  33. package/dist/sdk/{workflow-registry-MHUSKSD6.mjs → workflow-registry-NGV3SESX.mjs} +2 -2
  34. package/dist/slack/schedule-tool-handler.d.ts.map +1 -1
  35. package/dist/workflow-registry.d.ts.map +1 -1
  36. package/package.json +2 -2
  37. package/dist/sdk/chunk-DNDS7R3N.mjs.map +0 -1
  38. package/dist/sdk/chunk-DXNWUIAN.mjs.map +0 -1
  39. package/dist/sdk/chunk-EYQWEVZF.mjs.map +0 -1
  40. /package/dist/sdk/{check-provider-registry-XZE5PRSE.mjs.map → check-provider-registry-PK3OTEX6.mjs.map} +0 -0
  41. /package/dist/sdk/{check-provider-registry-ZOGNKTC3.mjs.map → check-provider-registry-PZ6K7G4G.mjs.map} +0 -0
  42. /package/dist/sdk/{chunk-CPYQDJ27.mjs.map → chunk-AS6LIEO4.mjs.map} +0 -0
  43. /package/dist/sdk/{chunk-WG7P66MJ.mjs.map → chunk-ILIWDV37.mjs.map} +0 -0
  44. /package/dist/sdk/{chunk-ZCUGMT7X.mjs.map → chunk-SPCGI24K.mjs.map} +0 -0
  45. /package/dist/sdk/{config-SW3VO4DQ.mjs.map → config-CWHZO5AL.mjs.map} +0 -0
  46. /package/dist/sdk/{failure-condition-evaluator-R3UE4PE7.mjs.map → failure-condition-evaluator-LYFZMQ6Y.mjs.map} +0 -0
  47. /package/dist/sdk/{github-frontend-6KZSVSPC.mjs.map → github-frontend-XKPAYXOT.mjs.map} +0 -0
  48. /package/dist/sdk/{host-A5HS6F6G.mjs.map → host-6DJCOUJE.mjs.map} +0 -0
  49. /package/dist/sdk/{host-X7ID5EW7.mjs.map → host-7Y25DDOR.mjs.map} +0 -0
  50. /package/dist/sdk/{routing-MMEOAH34.mjs.map → routing-L224WQSY.mjs.map} +0 -0
  51. /package/dist/sdk/{schedule-tool-74VMD77T.mjs.map → schedule-tool-HRFONU5J.mjs.map} +0 -0
  52. /package/dist/sdk/{schedule-tool-WSZKJUNQ.mjs.map → schedule-tool-KZ36XTW4.mjs.map} +0 -0
  53. /package/dist/sdk/{schedule-tool-handler-EOQBRZSD.mjs.map → schedule-tool-handler-2V4EJEQT.mjs.map} +0 -0
  54. /package/dist/sdk/{schedule-tool-handler-Q7E5NBHS.mjs.map → schedule-tool-handler-KXZC4ZOR.mjs.map} +0 -0
  55. /package/dist/sdk/{trace-helpers-JJLVZ2RJ.mjs.map → trace-helpers-AWTAWKRA.mjs.map} +0 -0
  56. /package/dist/sdk/{workflow-check-provider-GIW4WECT.mjs.map → workflow-check-provider-HGFTX64I.mjs.map} +0 -0
  57. /package/dist/sdk/{workflow-check-provider-JHHACJHF.mjs.map → workflow-check-provider-TXAEY7OU.mjs.map} +0 -0
  58. /package/dist/sdk/{workflow-registry-MHUSKSD6.mjs.map → workflow-registry-NGV3SESX.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.153';
3
- process.env.PROBE_VERSION = '0.6.0-rc269';
4
- process.env.VISOR_COMMIT_SHA = '812209528637eae4c9bc2358354377275099850f';
5
- process.env.VISOR_COMMIT_SHORT = '8122095';
2
+ process.env.VISOR_VERSION = '0.1.154';
3
+ process.env.PROBE_VERSION = '0.6.0-rc271';
4
+ process.env.VISOR_COMMIT_SHA = '1ceb9f8073c3ec36e82c277d3e4bfcbf3320ba3b';
5
+ process.env.VISOR_COMMIT_SHORT = '1ceb9f8';
6
6
  /******/ (() => { // webpackBootstrap
7
7
  /******/ var __webpack_modules__ = ({
8
8
 
@@ -190089,6 +190089,15 @@ class CustomToolsSSEServer {
190089
190089
  original_expression: args.original_expression,
190090
190090
  // For cancel/pause/resume
190091
190091
  schedule_id: args.schedule_id,
190092
+ // For trigger actions
190093
+ trigger_channels: args.trigger_channels,
190094
+ trigger_from: args.trigger_from,
190095
+ trigger_from_bots: args.trigger_from_bots,
190096
+ trigger_contains: args.trigger_contains,
190097
+ trigger_match: args.trigger_match,
190098
+ trigger_threads: args.trigger_threads,
190099
+ trigger_description: args.trigger_description,
190100
+ trigger_id: args.trigger_id,
190092
190101
  };
190093
190102
  const scheduleResult = await (0, schedule_tool_1.handleScheduleAction)(scheduleArgs, scheduleContext);
190094
190103
  result = scheduleResult.success
@@ -195993,19 +196002,13 @@ function formatTrigger(trigger) {
195993
196002
  * Handle create_trigger action
195994
196003
  */
195995
196004
  async function handleCreateTrigger(args, context, store) {
195996
- // Validate workflow
195997
- if (!args.workflow) {
195998
- return {
195999
- success: false,
196000
- message: 'Missing workflow',
196001
- error: 'Please specify the workflow to run when the trigger fires.',
196002
- };
196003
- }
196005
+ // Default workflow to "default" if not specified
196006
+ const workflow = args.workflow || 'default';
196004
196007
  // Validate workflow exists if we have available workflows
196005
- if (context.availableWorkflows && !context.availableWorkflows.includes(args.workflow)) {
196008
+ if (context.availableWorkflows && !context.availableWorkflows.includes(workflow)) {
196006
196009
  return {
196007
196010
  success: false,
196008
- message: `Workflow "${args.workflow}" not found`,
196011
+ message: `Workflow "${workflow}" not found`,
196009
196012
  error: `Available workflows: ${context.availableWorkflows.slice(0, 5).join(', ')}${context.availableWorkflows.length > 5 ? '...' : ''}`,
196010
196013
  };
196011
196014
  }
@@ -196021,7 +196024,7 @@ async function handleCreateTrigger(args, context, store) {
196021
196024
  };
196022
196025
  }
196023
196026
  // Check permissions for the workflow
196024
- const permissionCheck = checkSchedulePermissions(context, args.workflow);
196027
+ const permissionCheck = checkSchedulePermissions(context, workflow);
196025
196028
  if (!permissionCheck.allowed) {
196026
196029
  return {
196027
196030
  success: false,
@@ -196041,12 +196044,12 @@ async function handleCreateTrigger(args, context, store) {
196041
196044
  contains: args.trigger_contains,
196042
196045
  matchPattern: args.trigger_match,
196043
196046
  threads: args.trigger_threads ?? 'any',
196044
- workflow: args.workflow,
196047
+ workflow: workflow,
196045
196048
  inputs: args.workflow_inputs,
196046
196049
  status: 'active',
196047
196050
  enabled: true,
196048
196051
  });
196049
- logger_1.logger.info(`[ScheduleTool] Created message trigger ${trigger.id} for user ${context.userId}: workflow="${args.workflow}"`);
196052
+ logger_1.logger.info(`[ScheduleTool] Created message trigger ${trigger.id} for user ${context.userId}: workflow="${workflow}"`);
196050
196053
  return {
196051
196054
  success: true,
196052
196055
  message: `**Message trigger created!**
@@ -196179,12 +196182,17 @@ function getScheduleToolDefinition() {
196179
196182
 
196180
196183
  YOU (the AI) must extract and structure all scheduling parameters. Do NOT pass natural language time expressions - convert them to cron or ISO timestamps.
196181
196184
 
196182
- CRITICAL WORKFLOW RULE:
196185
+ CRITICAL WORKFLOW RULE (for 'create' action only):
196183
196186
  - To schedule a WORKFLOW, the user MUST use a '%' prefix (e.g., "schedule %my-workflow daily").
196184
196187
  - If the '%' prefix is present, extract the word following it as the 'workflow' parameter (without the '%').
196185
196188
  - If the '%' prefix is NOT present, the request is a simple text reminder. The ENTIRE user request (excluding the schedule expression) MUST be placed in the 'reminder_text' parameter.
196186
196189
  - DO NOT guess or infer a workflow name from a user's request without the '%' prefix.
196187
196190
 
196191
+ WORKFLOW RULE FOR TRIGGERS (create_trigger action):
196192
+ - Triggers ALWAYS require a workflow. The '%' prefix rule does NOT apply to triggers.
196193
+ - If the user specifies a workflow name (with or without '%'), use it directly.
196194
+ - If the user does NOT specify a workflow name, use "default" as the workflow name.
196195
+
196188
196196
  ACTIONS:
196189
196197
  - create: Schedule a new reminder or workflow
196190
196198
  - list: Show user's active schedules
@@ -196197,7 +196205,7 @@ Slack messages in specific channels. Use the create_trigger, list_triggers, dele
196197
196205
  actions for this. Message triggers fire workflows based on message content, channel, sender, and thread scope.
196198
196206
 
196199
196207
  TRIGGER ACTIONS:
196200
- - create_trigger: Create a new message trigger (requires workflow + at least one filter). Supports filtering by user IDs (trigger_from), channels, keywords, regex, and thread scope.
196208
+ - create_trigger: Create a new message trigger (requires at least one filter; workflow defaults to "default" if not specified). Supports filtering by user IDs (trigger_from), channels, keywords, regex, and thread scope.
196201
196209
  - list_triggers: Show user's message triggers
196202
196210
  - delete_trigger: Remove a trigger by ID
196203
196211
  - update_trigger: Enable/disable a trigger by ID
@@ -196297,6 +196305,9 @@ User: "watch #cicd for messages containing 'failed' and run %handle-cicd"
196297
196305
  User: "trigger on each of my messages in this channel and run %auto-reply" (user ID is U3P2L4XNE)
196298
196306
  → { "action": "create_trigger", "trigger_channels": ["C09V810NY6R"], "trigger_from": ["U3P2L4XNE"], "workflow": "auto-reply" }
196299
196307
 
196308
+ User: "trigger on each message in this channel" (no workflow specified — use "default")
196309
+ → { "action": "create_trigger", "trigger_channels": ["C09V810NY6R"], "workflow": "default" }
196310
+
196300
196311
  User: "list my message triggers"
196301
196312
  → { "action": "list_triggers" }
196302
196313
 
@@ -196330,7 +196341,7 @@ User: "disable trigger abc123"
196330
196341
  },
196331
196342
  workflow: {
196332
196343
  type: 'string',
196333
- description: 'For create: workflow ID to run. ONLY populate this if the user used the % prefix (e.g., "%my-workflow"). Extract the name without the % symbol. If no % prefix, use reminder_text instead.',
196344
+ description: 'For create: workflow ID to run. ONLY populate this if the user used the % prefix (e.g., "%my-workflow"). Extract the name without the % symbol. If no % prefix, use reminder_text instead. For create_trigger: workflow is REQUIRED — use the workflow name the user specified (% prefix optional), or "default" if not specified.',
196334
196345
  },
196335
196346
  workflow_inputs: {
196336
196347
  type: 'object',
@@ -199912,6 +199923,15 @@ async function executeScheduleTool(args, slackContext, slackClient, availableWor
199912
199923
  original_expression: args.original_expression,
199913
199924
  // For cancel/pause/resume
199914
199925
  schedule_id: args.schedule_id,
199926
+ // For trigger actions
199927
+ trigger_channels: args.trigger_channels,
199928
+ trigger_from: args.trigger_from,
199929
+ trigger_from_bots: args.trigger_from_bots,
199930
+ trigger_contains: args.trigger_contains,
199931
+ trigger_match: args.trigger_match,
199932
+ trigger_threads: args.trigger_threads,
199933
+ trigger_description: args.trigger_description,
199934
+ trigger_id: args.trigger_id,
199915
199935
  };
199916
199936
  // If AI didn't provide target, default to current Slack context
199917
199937
  if (!toolArgs.target_type && slackContext.channel) {
@@ -226298,6 +226318,12 @@ class WorkflowRegistry {
226298
226318
  message: 'Input parameter schema is recommended',
226299
226319
  });
226300
226320
  }
226321
+ if (input.schema?.type === 'array' && !input.schema.items) {
226322
+ warnings.push({
226323
+ path: `inputs[${i}].schema`,
226324
+ message: 'Array schema should define "items" (e.g. items: { type: string }). Some LLM providers (Gemini) reject array schemas without items.',
226325
+ });
226326
+ }
226301
226327
  }
226302
226328
  }
226303
226329
  // Validate output parameters
@@ -357621,9 +357647,10 @@ You are working with a workspace. Available paths: ${workspaceDesc}
357621
357647
  }
357622
357648
  if (completionAttempted && this.completionPrompt && !options._completionPromptProcessed) {
357623
357649
  if (this.debug) {
357624
- console.log("[DEBUG] Running completion prompt for post-completion validation/review...");
357650
+ console.log("[DEBUG] Running completion prompt as continuation of current session...");
357625
357651
  }
357626
357652
  try {
357653
+ const originalResult = finalResult;
357627
357654
  if (this.tracer) {
357628
357655
  this.tracer.recordEvent("completion_prompt.started", {
357629
357656
  "completion_prompt.original_result_length": finalResult?.length || 0
@@ -357636,24 +357663,66 @@ Here is the result to review:
357636
357663
  ${finalResult}
357637
357664
  </result>
357638
357665
 
357639
- After reviewing, provide your final answer using attempt_completion.`;
357640
- const savedOutputItems = this._outputBuffer ? [...this._outputBuffer.items] : [];
357641
- const savedExtractedBlocks = this._extractedRawBlocks ? [...this._extractedRawBlocks] : [];
357642
- const completionResult2 = await this.answer(completionPromptMessage, [], {
357643
- ...options,
357644
- _completionPromptProcessed: true
357645
- });
357646
- if (this._outputBuffer) {
357647
- this._outputBuffer.items = savedOutputItems;
357666
+ Double-check your response based on the criteria above. If everything looks good, respond with your previous answer exactly as-is using attempt_completion. If something needs to be fixed or is missing, do it now, then respond with the COMPLETE updated answer (everything you did in total, not just the fix) using attempt_completion.`;
357667
+ currentMessages.push({ role: "user", content: completionPromptMessage });
357668
+ completionResult = null;
357669
+ completionAttempted = false;
357670
+ const completionMaxIterations = 5;
357671
+ const completionStreamOptions = {
357672
+ model: this.provider ? this.provider(this.model) : this.model,
357673
+ messages: this.prepareMessagesWithImages(currentMessages),
357674
+ tools: tools2,
357675
+ stopWhen: (0, import_ai4.stepCountIs)(completionMaxIterations),
357676
+ maxTokens: maxResponseTokens,
357677
+ temperature: 0.3,
357678
+ onStepFinish: ({ toolResults, text, finishReason, usage }) => {
357679
+ if (usage) {
357680
+ this.tokenCounter.recordUsage(usage);
357681
+ }
357682
+ if (options.onStream && text) {
357683
+ options.onStream(text);
357684
+ }
357685
+ if (this.debug) {
357686
+ console.log(`[DEBUG] Completion prompt step finished (reason: ${finishReason}, tools: ${toolResults?.length || 0})`);
357687
+ }
357688
+ }
357689
+ };
357690
+ const providerOpts = this._buildThinkingProviderOptions(maxResponseTokens);
357691
+ if (providerOpts) {
357692
+ completionStreamOptions.providerOptions = providerOpts;
357693
+ }
357694
+ const cpResult = await this.streamTextWithRetryAndFallback(completionStreamOptions);
357695
+ const cpFinalText = await cpResult.text;
357696
+ const cpUsage = await cpResult.usage;
357697
+ if (cpUsage) {
357698
+ this.tokenCounter.recordUsage(cpUsage, cpResult.experimental_providerMetadata);
357699
+ }
357700
+ const cpMessages = await cpResult.response?.messages;
357701
+ if (cpMessages) {
357702
+ for (const msg of cpMessages) {
357703
+ currentMessages.push(msg);
357704
+ }
357705
+ }
357706
+ if (completionResult) {
357707
+ finalResult = completionResult;
357708
+ completionAttempted = true;
357709
+ } else if (cpFinalText && cpFinalText.trim().length > 0) {
357710
+ finalResult = cpFinalText;
357711
+ completionAttempted = true;
357712
+ } else {
357713
+ finalResult = originalResult;
357714
+ completionAttempted = true;
357715
+ if (this.debug) {
357716
+ console.log("[DEBUG] Completion prompt returned empty result, keeping original.");
357717
+ }
357648
357718
  }
357649
- this._extractedRawBlocks = savedExtractedBlocks;
357650
- finalResult = completionResult2;
357651
357719
  if (this.debug) {
357652
- console.log(`[DEBUG] Completion prompt finished. New result length: ${finalResult?.length || 0}`);
357720
+ console.log(`[DEBUG] Completion prompt finished. Final result length: ${finalResult?.length || 0}`);
357653
357721
  }
357654
357722
  if (this.tracer) {
357655
357723
  this.tracer.recordEvent("completion_prompt.completed", {
357656
- "completion_prompt.final_result_length": finalResult?.length || 0
357724
+ "completion_prompt.final_result_length": finalResult?.length || 0,
357725
+ "completion_prompt.used_original": finalResult === originalResult
357657
357726
  });
357658
357727
  }
357659
357728
  } catch (error2) {
@@ -359411,6 +359480,17 @@ function parseDelegatedTargets(rawResponse) {
359411
359480
  }
359412
359481
  return normalizeTargets(fallbackTargetsFromText(trimmed));
359413
359482
  }
359483
+ function splitTargetSuffix(target) {
359484
+ const searchStart = target.length > 2 && target[1] === ":" && /[a-zA-Z]/.test(target[0]) ? 2 : 0;
359485
+ const colonIdx = target.indexOf(":", searchStart);
359486
+ const hashIdx = target.indexOf("#");
359487
+ if (colonIdx !== -1 && (hashIdx === -1 || colonIdx < hashIdx)) {
359488
+ return { filePart: target.substring(0, colonIdx), suffix: target.substring(colonIdx) };
359489
+ } else if (hashIdx !== -1) {
359490
+ return { filePart: target.substring(0, hashIdx), suffix: target.substring(hashIdx) };
359491
+ }
359492
+ return { filePart: target, suffix: "" };
359493
+ }
359414
359494
  function buildSearchDelegateTask({ searchQuery, searchPath, exact, language, allowTests }) {
359415
359495
  return [
359416
359496
  "You are a code-search subagent. Your job is to find ALL relevant code locations for the given query.",
@@ -359439,7 +359519,7 @@ function buildSearchDelegateTask({ searchQuery, searchPath, exact, language, all
359439
359519
  "Deduplicate targets. Do NOT explain or answer - ONLY return the JSON targets."
359440
359520
  ].join("\n");
359441
359521
  }
359442
- var import_ai5, CODE_SEARCH_SCHEMA, searchTool, queryTool, extractTool, delegateTool, analyzeAllTool;
359522
+ var import_ai5, import_fs11, CODE_SEARCH_SCHEMA, searchTool, queryTool, extractTool, delegateTool, analyzeAllTool;
359443
359523
  var init_vercel = __esm({
359444
359524
  "src/tools/vercel.js"() {
359445
359525
  "use strict";
@@ -359450,6 +359530,7 @@ var init_vercel = __esm({
359450
359530
  init_delegate();
359451
359531
  init_analyzeAll();
359452
359532
  init_common2();
359533
+ import_fs11 = __nccwpck_require__(79896);
359453
359534
  init_error_types();
359454
359535
  init_hashline();
359455
359536
  CODE_SEARCH_SCHEMA = {
@@ -359575,10 +359656,47 @@ var init_vercel = __esm({
359575
359656
  }
359576
359657
  return fallbackResult;
359577
359658
  }
359659
+ const delegateBase = options.allowedFolders?.[0] || options.cwd || ".";
359578
359660
  const resolutionBase = searchPaths[0] || options.cwd || ".";
359579
- const resolvedTargets = targets.map((target) => resolveTargetPath(target, resolutionBase));
359661
+ const resolvedTargets = targets.map((target) => resolveTargetPath(target, delegateBase));
359662
+ const validatedTargets = [];
359663
+ for (const target of resolvedTargets) {
359664
+ const { filePart, suffix } = splitTargetSuffix(target);
359665
+ if ((0, import_fs11.existsSync)(filePart)) {
359666
+ validatedTargets.push(target);
359667
+ continue;
359668
+ }
359669
+ let fixed = false;
359670
+ const parts = filePart.split("/").filter(Boolean);
359671
+ for (let i5 = 0; i5 < parts.length - 1; i5++) {
359672
+ if (parts[i5] === parts[i5 + 1]) {
359673
+ const candidate = "/" + [...parts.slice(0, i5), ...parts.slice(i5 + 1)].join("/");
359674
+ if ((0, import_fs11.existsSync)(candidate)) {
359675
+ validatedTargets.push(candidate + suffix);
359676
+ if (debug) console.error(`[search-delegate] Fixed doubled path segment: ${filePart} \u2192 ${candidate}`);
359677
+ fixed = true;
359678
+ break;
359679
+ }
359680
+ }
359681
+ }
359682
+ if (fixed) continue;
359683
+ for (const altBase of [resolutionBase, options.cwd].filter(Boolean)) {
359684
+ if (altBase === delegateBase) continue;
359685
+ const altResolved = resolveTargetPath(target, altBase);
359686
+ const { filePart: altFile } = splitTargetSuffix(altResolved);
359687
+ if ((0, import_fs11.existsSync)(altFile)) {
359688
+ validatedTargets.push(altResolved);
359689
+ if (debug) console.error(`[search-delegate] Resolved with alt base: ${filePart} \u2192 ${altFile}`);
359690
+ fixed = true;
359691
+ break;
359692
+ }
359693
+ }
359694
+ if (fixed) continue;
359695
+ if (debug) console.error(`[search-delegate] Warning: target may not exist: ${filePart}`);
359696
+ validatedTargets.push(target);
359697
+ }
359580
359698
  const extractOptions = {
359581
- files: resolvedTargets,
359699
+ files: validatedTargets,
359582
359700
  cwd: resolutionBase,
359583
359701
  allowTests: allow_tests ?? true
359584
359702
  };
@@ -360131,7 +360249,7 @@ Example: <edit><file_path>${file_path}</file_path><symbol>${allMatches[0].qualif
360131
360249
  Example: <extract><targets>${file_path}#${symbol15}</targets></extract>`;
360132
360250
  }
360133
360251
  }
360134
- const content = await import_fs11.promises.readFile(resolvedPath2, "utf-8");
360252
+ const content = await import_fs12.promises.readFile(resolvedPath2, "utf-8");
360135
360253
  const lines = content.split("\n");
360136
360254
  if (position) {
360137
360255
  const refIndent = detectBaseIndent(symbolInfo.code);
@@ -360142,7 +360260,7 @@ Example: <extract><targets>${file_path}#${symbol15}</targets></extract>`;
360142
360260
  } else {
360143
360261
  lines.splice(symbolInfo.startLine - 1, 0, ...newLines, "");
360144
360262
  }
360145
- await import_fs11.promises.writeFile(resolvedPath2, lines.join("\n"), "utf-8");
360263
+ await import_fs12.promises.writeFile(resolvedPath2, lines.join("\n"), "utf-8");
360146
360264
  if (fileTracker) {
360147
360265
  const updated = await findSymbol(resolvedPath2, symbol15, cwd || process.cwd());
360148
360266
  if (updated) {
@@ -360160,7 +360278,7 @@ Example: <extract><targets>${file_path}#${symbol15}</targets></extract>`;
360160
360278
  const reindented = reindent(new_string, originalIndent);
360161
360279
  const newLines = reindented.split("\n");
360162
360280
  lines.splice(symbolInfo.startLine - 1, symbolInfo.endLine - symbolInfo.startLine + 1, ...newLines);
360163
- await import_fs11.promises.writeFile(resolvedPath2, lines.join("\n"), "utf-8");
360281
+ await import_fs12.promises.writeFile(resolvedPath2, lines.join("\n"), "utf-8");
360164
360282
  if (fileTracker) {
360165
360283
  const updated = await findSymbol(resolvedPath2, symbol15, cwd || process.cwd());
360166
360284
  if (updated) {
@@ -360215,7 +360333,7 @@ async function handleLineEdit({ resolvedPath: resolvedPath2, file_path, start_li
360215
360333
  if (position !== void 0 && position !== null && position !== "before" && position !== "after") {
360216
360334
  return 'Error editing file: Invalid position - must be "before" or "after". Use position="before" to insert before the line, or position="after" to insert after it.';
360217
360335
  }
360218
- const content = await import_fs11.promises.readFile(resolvedPath2, "utf-8");
360336
+ const content = await import_fs12.promises.readFile(resolvedPath2, "utf-8");
360219
360337
  const fileLines = content.split("\n");
360220
360338
  if (startLine > fileLines.length) {
360221
360339
  return `Error editing file: Line ${startLine} is beyond file length (${fileLines.length} lines). Use 'extract' to read the current file content.`;
@@ -360244,20 +360362,20 @@ async function handleLineEdit({ resolvedPath: resolvedPath2, file_path, start_li
360244
360362
  const newLines = cleaned === "" ? [] : cleaned.split("\n");
360245
360363
  if (position === "after") {
360246
360364
  fileLines.splice(startLine, 0, ...newLines);
360247
- await import_fs11.promises.writeFile(resolvedPath2, fileLines.join("\n"), "utf-8");
360365
+ await import_fs12.promises.writeFile(resolvedPath2, fileLines.join("\n"), "utf-8");
360248
360366
  if (fileTracker) await fileTracker.trackFileAfterWrite(resolvedPath2);
360249
360367
  const action = `${newLines.length} line${newLines.length !== 1 ? "s" : ""} inserted after line ${startLine}`;
360250
360368
  return buildLineEditResponse(file_path, startLine, startLine, newLines.length, fileLines, startLine, action, modifications);
360251
360369
  } else if (position === "before") {
360252
360370
  fileLines.splice(startLine - 1, 0, ...newLines);
360253
- await import_fs11.promises.writeFile(resolvedPath2, fileLines.join("\n"), "utf-8");
360371
+ await import_fs12.promises.writeFile(resolvedPath2, fileLines.join("\n"), "utf-8");
360254
360372
  if (fileTracker) await fileTracker.trackFileAfterWrite(resolvedPath2);
360255
360373
  const action = `${newLines.length} line${newLines.length !== 1 ? "s" : ""} inserted before line ${startLine}`;
360256
360374
  return buildLineEditResponse(file_path, startLine, startLine, newLines.length, fileLines, startLine - 1, action, modifications);
360257
360375
  } else {
360258
360376
  const replacedCount = endLine - startLine + 1;
360259
360377
  fileLines.splice(startLine - 1, replacedCount, ...newLines);
360260
- await import_fs11.promises.writeFile(resolvedPath2, fileLines.join("\n"), "utf-8");
360378
+ await import_fs12.promises.writeFile(resolvedPath2, fileLines.join("\n"), "utf-8");
360261
360379
  if (fileTracker) await fileTracker.trackFileAfterWrite(resolvedPath2);
360262
360380
  let action;
360263
360381
  if (newLines.length === 0) {
@@ -360270,14 +360388,14 @@ async function handleLineEdit({ resolvedPath: resolvedPath2, file_path, start_li
360270
360388
  return buildLineEditResponse(file_path, startLine, endLine, newLines.length, fileLines, startLine - 1, action, modifications);
360271
360389
  }
360272
360390
  }
360273
- var import_ai6, import_fs11, import_path16, import_fs12, editTool, createTool, multiEditTool, editSchema, createSchema, multiEditSchema, editDescription, createDescription, multiEditDescription, editToolDefinition, createToolDefinition, multiEditToolDefinition;
360391
+ var import_ai6, import_fs12, import_path16, import_fs13, editTool, createTool, multiEditTool, editSchema, createSchema, multiEditSchema, editDescription, createDescription, multiEditDescription, editToolDefinition, createToolDefinition, multiEditToolDefinition;
360274
360392
  var init_edit = __esm({
360275
360393
  "src/tools/edit.js"() {
360276
360394
  "use strict";
360277
360395
  import_ai6 = __nccwpck_require__(86619);
360278
- import_fs11 = __nccwpck_require__(79896);
360279
- import_path16 = __nccwpck_require__(16928);
360280
360396
  import_fs12 = __nccwpck_require__(79896);
360397
+ import_path16 = __nccwpck_require__(16928);
360398
+ import_fs13 = __nccwpck_require__(79896);
360281
360399
  init_path_validation();
360282
360400
  init_fuzzyMatch();
360283
360401
  init_symbolEdit();
@@ -360361,7 +360479,7 @@ Parameters:
360361
360479
  const relativePath = toRelativePath(resolvedPath2, workspaceRoot);
360362
360480
  return `Error editing file: Permission denied - ${relativePath} is outside allowed directories. Use a file path within the project workspace.`;
360363
360481
  }
360364
- if (!(0, import_fs12.existsSync)(resolvedPath2)) {
360482
+ if (!(0, import_fs13.existsSync)(resolvedPath2)) {
360365
360483
  return `Error editing file: File not found - ${file_path}. Verify the path is correct and the file exists. Use 'search' to find files by name, or 'create' to make a new file.`;
360366
360484
  }
360367
360485
  if (options.fileTracker && !options.fileTracker.isFileSeen(resolvedPath2)) {
@@ -360391,7 +360509,7 @@ Example: <extract><targets>${displayPath}</targets></extract>`;
360391
360509
  Example: <extract><targets>${displayPath}</targets></extract>`;
360392
360510
  }
360393
360511
  }
360394
- const content = await import_fs11.promises.readFile(resolvedPath2, "utf-8");
360512
+ const content = await import_fs12.promises.readFile(resolvedPath2, "utf-8");
360395
360513
  let matchTarget = old_string;
360396
360514
  let matchStrategy = "exact";
360397
360515
  if (!content.includes(old_string)) {
@@ -360423,7 +360541,7 @@ Example: <extract><targets>${displayPath}</targets></extract>`;
360423
360541
  if (newContent === content) {
360424
360542
  return `Error editing file: No changes made - the replacement result is identical to the original. Verify that old_string and new_string are actually different. If fuzzy matching was used, the matched text may already equal new_string.`;
360425
360543
  }
360426
- await import_fs11.promises.writeFile(resolvedPath2, newContent, "utf-8");
360544
+ await import_fs12.promises.writeFile(resolvedPath2, newContent, "utf-8");
360427
360545
  if (options.fileTracker) {
360428
360546
  await options.fileTracker.trackFileAfterWrite(resolvedPath2);
360429
360547
  options.fileTracker.recordTextEdit(resolvedPath2);
@@ -360494,13 +360612,13 @@ Important:
360494
360612
  const relativePath = toRelativePath(resolvedPath2, workspaceRoot);
360495
360613
  return `Error creating file: Permission denied - ${relativePath} is outside allowed directories. Use a file path within the project workspace.`;
360496
360614
  }
360497
- if ((0, import_fs12.existsSync)(resolvedPath2) && !overwrite) {
360615
+ if ((0, import_fs13.existsSync)(resolvedPath2) && !overwrite) {
360498
360616
  return `Error creating file: File already exists - ${file_path}. Use overwrite: true to replace it.`;
360499
360617
  }
360500
- const existed = (0, import_fs12.existsSync)(resolvedPath2);
360618
+ const existed = (0, import_fs13.existsSync)(resolvedPath2);
360501
360619
  const dir = (0, import_path16.dirname)(resolvedPath2);
360502
- await import_fs11.promises.mkdir(dir, { recursive: true });
360503
- await import_fs11.promises.writeFile(resolvedPath2, content, "utf-8");
360620
+ await import_fs12.promises.mkdir(dir, { recursive: true });
360621
+ await import_fs12.promises.writeFile(resolvedPath2, content, "utf-8");
360504
360622
  if (options.fileTracker) await options.fileTracker.trackFileAfterWrite(resolvedPath2);
360505
360623
  const action = existed && overwrite ? "overwrote" : "created";
360506
360624
  const bytes = Buffer.byteLength(content, "utf-8");
@@ -361142,10 +361260,10 @@ async function listFilesByLevel(options) {
361142
361260
  maxFiles = 100,
361143
361261
  respectGitignore = true
361144
361262
  } = options;
361145
- if (!import_fs13.default.existsSync(directory)) {
361263
+ if (!import_fs14.default.existsSync(directory)) {
361146
361264
  throw new Error(`Directory does not exist: ${directory}`);
361147
361265
  }
361148
- const gitDirExists = import_fs13.default.existsSync(import_path17.default.join(directory, ".git"));
361266
+ const gitDirExists = import_fs14.default.existsSync(import_path17.default.join(directory, ".git"));
361149
361267
  if (gitDirExists && respectGitignore) {
361150
361268
  try {
361151
361269
  return await listFilesUsingGit(directory, maxFiles);
@@ -361176,7 +361294,7 @@ async function listFilesByLevelManually(directory, maxFiles, respectGitignore) {
361176
361294
  while (queue.length > 0 && result.length < maxFiles) {
361177
361295
  const { dir, level } = queue.shift();
361178
361296
  try {
361179
- const entries = import_fs13.default.readdirSync(dir, { withFileTypes: true });
361297
+ const entries = import_fs14.default.readdirSync(dir, { withFileTypes: true });
361180
361298
  const files = entries.filter((entry) => {
361181
361299
  const fullPath = import_path17.default.join(dir, entry.name);
361182
361300
  return getEntryTypeSync(entry, fullPath).isFile;
@@ -361207,11 +361325,11 @@ async function listFilesByLevelManually(directory, maxFiles, respectGitignore) {
361207
361325
  }
361208
361326
  function loadGitignorePatterns(directory) {
361209
361327
  const gitignorePath = import_path17.default.join(directory, ".gitignore");
361210
- if (!import_fs13.default.existsSync(gitignorePath)) {
361328
+ if (!import_fs14.default.existsSync(gitignorePath)) {
361211
361329
  return [];
361212
361330
  }
361213
361331
  try {
361214
- const content = import_fs13.default.readFileSync(gitignorePath, "utf8");
361332
+ const content = import_fs14.default.readFileSync(gitignorePath, "utf8");
361215
361333
  return content.split("\n").map((line) => line.trim()).filter((line) => line && !line.startsWith("#"));
361216
361334
  } catch (error2) {
361217
361335
  console.error(`Warning: Could not read .gitignore: ${error2.message}`);
@@ -361229,11 +361347,11 @@ function shouldIgnore(filePath, ignorePatterns) {
361229
361347
  }
361230
361348
  return false;
361231
361349
  }
361232
- var import_fs13, import_path17, import_util12, import_child_process10, execAsync3;
361350
+ var import_fs14, import_path17, import_util12, import_child_process10, execAsync3;
361233
361351
  var init_file_lister = __esm({
361234
361352
  "src/utils/file-lister.js"() {
361235
361353
  "use strict";
361236
- import_fs13 = __toESM(__nccwpck_require__(79896), 1);
361354
+ import_fs14 = __toESM(__nccwpck_require__(79896), 1);
361237
361355
  import_path17 = __toESM(__nccwpck_require__(16928), 1);
361238
361356
  import_util12 = __nccwpck_require__(39023);
361239
361357
  import_child_process10 = __nccwpck_require__(35317);
@@ -361252,11 +361370,11 @@ function initializeSimpleTelemetryFromOptions(options) {
361252
361370
  });
361253
361371
  return telemetry;
361254
361372
  }
361255
- var import_fs14, import_path18, SimpleTelemetry, SimpleAppTracer;
361373
+ var import_fs15, import_path18, SimpleTelemetry, SimpleAppTracer;
361256
361374
  var init_simpleTelemetry = __esm({
361257
361375
  "src/agent/simpleTelemetry.js"() {
361258
361376
  "use strict";
361259
- import_fs14 = __nccwpck_require__(79896);
361377
+ import_fs15 = __nccwpck_require__(79896);
361260
361378
  import_path18 = __nccwpck_require__(16928);
361261
361379
  SimpleTelemetry = class {
361262
361380
  constructor(options = {}) {
@@ -361272,10 +361390,10 @@ var init_simpleTelemetry = __esm({
361272
361390
  initializeFileExporter() {
361273
361391
  try {
361274
361392
  const dir = (0, import_path18.dirname)(this.filePath);
361275
- if (!(0, import_fs14.existsSync)(dir)) {
361276
- (0, import_fs14.mkdirSync)(dir, { recursive: true });
361393
+ if (!(0, import_fs15.existsSync)(dir)) {
361394
+ (0, import_fs15.mkdirSync)(dir, { recursive: true });
361277
361395
  }
361278
- this.stream = (0, import_fs14.createWriteStream)(this.filePath, { flags: "a" });
361396
+ this.stream = (0, import_fs15.createWriteStream)(this.filePath, { flags: "a" });
361279
361397
  this.stream.on("error", (error2) => {
361280
361398
  console.error(`[SimpleTelemetry] Stream error: ${error2.message}`);
361281
361399
  });
@@ -397052,7 +397170,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"100":"Continue","101":"Switching Pro
397052
397170
  /***/ ((module) => {
397053
397171
 
397054
397172
  "use strict";
397055
- 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-rc269","@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"]}}');
397173
+ 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-rc271","@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"]}}');
397056
397174
 
397057
397175
  /***/ })
397058
397176
 
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-custom-sse-server.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/mcp-custom-sse-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAKvD,OAAO,EAIL,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AA6FlC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,MAAM,IAAI,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,eAAe;IAC1D,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,eAAe,CAAC,CAAsB;IAC9C,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAS;gBAGpD,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,EACxC,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,OAAe,EACtB,eAAe,CAAC,EAAE,mBAAmB;IAwCvC;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAqD9B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAgCtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoFlF;;OAEG;IACH,MAAM,IAAI,MAAM;IAOhB;;OAEG;YACW,aAAa;IAuC3B;;;OAGG;YACW,mBAAmB;IA4DjC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2C3B;;OAEG;YACW,aAAa;IAyE3B;;OAEG;IACH,OAAO,CAAC,UAAU;IAMlB;;OAEG;IACH,OAAO,CAAC,OAAO;IAwBf;;OAEG;YACW,gBAAgB;IAkE9B;;OAEG;YACW,eAAe;IAyC7B;;OAEG;YACW,cAAc;IAgN5B,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAmB1B"}
1
+ {"version":3,"file":"mcp-custom-sse-server.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/providers/mcp-custom-sse-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAKvD,OAAO,EAIL,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AA6FlC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,MAAM,IAAI,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,eAAe;IAC1D,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,eAAe,CAAC,CAAsB;IAC9C,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAS;gBAGpD,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,EACxC,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,OAAe,EACtB,eAAe,CAAC,EAAE,mBAAmB;IAwCvC;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAqD9B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAgCtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoFlF;;OAEG;IACH,MAAM,IAAI,MAAM;IAOhB;;OAEG;YACW,aAAa;IAuC3B;;;OAGG;YACW,mBAAmB;IA4DjC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2C3B;;OAEG;YACW,aAAa;IAyE3B;;OAEG;IACH,OAAO,CAAC,UAAU;IAMlB;;OAEG;IACH,OAAO,CAAC,OAAO;IAwBf;;OAEG;YACW,gBAAgB;IAkE9B;;OAEG;YACW,eAAe;IAyC7B;;OAEG;YACW,cAAc;IA6N5B,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAmB1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-tool.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/scheduler/schedule-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schedule-tool.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/scheduler/schedule-tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAiB,QAAQ,EAAyB,MAAM,kBAAkB,CAAC;AAiIlF;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,CAAC;AAErB;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,cAAc,CAAC;IAGvB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6FAA6F;IAC7F,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAG1C,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,eAAe,CAAC,EAAE,WAAW,GAAG,aAAa,GAAG,KAAK,CAAC;IACtD,qDAAqD;IACrD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,+CAA+C;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gDAAgD;IAChD,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,YAAY,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA0FD;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CA2C7B;AAwjBD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,IAAI,oBAAoB,CA4QhE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AA6CD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE;IACP,YAAY,CAAC,EAAE;QACb,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC;KAC1C,CAAC;IACF,UAAU,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,aAAa,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC,EACD,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAC7B,WAAW,CAAC,EAAE,mBAAmB,EACjC,UAAU,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3F,mBAAmB,CAyDrB"}
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  CheckProviderRegistry,
3
3
  init_check_provider_registry
4
- } from "./chunk-DXNWUIAN.mjs";
4
+ } from "./chunk-WPF7PJ64.mjs";
5
5
  import "./chunk-KFKHU6CM.mjs";
6
6
  import "./chunk-M3BYMES6.mjs";
7
7
  import "./chunk-LG4AUKHB.mjs";
8
8
  import "./chunk-B7BVQM5K.mjs";
9
9
  import "./chunk-XXAEN5KU.mjs";
10
10
  import "./chunk-GEW6LS32.mjs";
11
- import "./chunk-DNDS7R3N.mjs";
12
- import "./chunk-CPYQDJ27.mjs";
11
+ import "./chunk-NZADFXHE.mjs";
12
+ import "./chunk-AS6LIEO4.mjs";
13
13
  import "./chunk-NCWIZVOT.mjs";
14
- import "./chunk-ZCUGMT7X.mjs";
15
- import "./chunk-WG7P66MJ.mjs";
16
- import "./chunk-Y3XWPKFP.mjs";
14
+ import "./chunk-SPCGI24K.mjs";
15
+ import "./chunk-ILIWDV37.mjs";
16
+ import "./chunk-GQ7H7E4Y.mjs";
17
17
  import "./chunk-JL7JXCET.mjs";
18
18
  import "./chunk-ZUEQNCKB.mjs";
19
19
  import "./chunk-25IC7KXZ.mjs";
@@ -26,4 +26,4 @@ init_check_provider_registry();
26
26
  export {
27
27
  CheckProviderRegistry
28
28
  };
29
- //# sourceMappingURL=check-provider-registry-XZE5PRSE.mjs.map
29
+ //# sourceMappingURL=check-provider-registry-PK3OTEX6.mjs.map