@probelabs/visor 0.1.176 → 0.1.177

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 (85) hide show
  1. package/dist/frontends/slack-frontend.d.ts.map +1 -1
  2. package/dist/index.js +126 -23
  3. package/dist/output/traces/{run-2026-03-10T15-37-04-236Z.ndjson → run-2026-03-10T16-21-38-082Z.ndjson} +84 -84
  4. package/dist/output/traces/{run-2026-03-10T15-37-44-748Z.ndjson → run-2026-03-10T16-22-15-059Z.ndjson} +1812 -1812
  5. package/dist/sdk/{a2a-frontend-W54ZZ32L.mjs → a2a-frontend-BPWLYLCG.mjs} +2 -2
  6. package/dist/sdk/a2a-frontend-HBUSNE3K.mjs +1658 -0
  7. package/dist/sdk/a2a-frontend-HBUSNE3K.mjs.map +1 -0
  8. package/dist/sdk/{check-provider-registry-7HSDAKHQ.mjs → check-provider-registry-HW4QPPSA.mjs} +2 -2
  9. package/dist/sdk/{check-provider-registry-MJYNLB37.mjs → check-provider-registry-OY2EESIO.mjs} +5 -5
  10. package/dist/sdk/{check-provider-registry-VE6LQPLY.mjs → check-provider-registry-TRHN5ZBY.mjs} +5 -5
  11. package/dist/sdk/{chunk-4E34HRCW.mjs → chunk-2LCF5H5K.mjs} +73 -28
  12. package/dist/sdk/chunk-2LCF5H5K.mjs.map +1 -0
  13. package/dist/sdk/{chunk-66PTDQAO.mjs → chunk-ADQVGGKA.mjs} +3 -3
  14. package/dist/sdk/{chunk-SEA2FWEC.mjs → chunk-BWC5R2UB.mjs} +2 -2
  15. package/dist/sdk/{chunk-Y2DYDGGY.mjs → chunk-FNBSDOQM.mjs} +3 -3
  16. package/dist/sdk/{chunk-Y2DYDGGY.mjs.map → chunk-FNBSDOQM.mjs.map} +1 -1
  17. package/dist/sdk/chunk-GVTWESYN.mjs +516 -0
  18. package/dist/sdk/chunk-GVTWESYN.mjs.map +1 -0
  19. package/dist/sdk/chunk-OHOBWVPP.mjs +1502 -0
  20. package/dist/sdk/chunk-OHOBWVPP.mjs.map +1 -0
  21. package/dist/sdk/chunk-OPI632LK.mjs +739 -0
  22. package/dist/sdk/chunk-OPI632LK.mjs.map +1 -0
  23. package/dist/sdk/{chunk-R3FNZRE4.mjs → chunk-XLDVWRKQ.mjs} +73 -28
  24. package/dist/sdk/chunk-XLDVWRKQ.mjs.map +1 -0
  25. package/dist/sdk/{chunk-OK4MLC3R.mjs → chunk-Y6PVSFCS.mjs} +49 -9
  26. package/dist/sdk/chunk-Y6PVSFCS.mjs.map +1 -0
  27. package/dist/sdk/{failure-condition-evaluator-RTT5SLVL.mjs → failure-condition-evaluator-63BECZYF.mjs} +3 -3
  28. package/dist/sdk/failure-condition-evaluator-HL33X7MH.mjs +18 -0
  29. package/dist/sdk/{github-frontend-C4GG62PI.mjs → github-frontend-FP6WKNZR.mjs} +3 -3
  30. package/dist/sdk/github-frontend-U2U42CKV.mjs +1386 -0
  31. package/dist/sdk/github-frontend-U2U42CKV.mjs.map +1 -0
  32. package/dist/sdk/{host-6GGO2BQE.mjs → host-6SBCE4VK.mjs} +4 -4
  33. package/dist/sdk/host-NYUSWEE4.mjs +87 -0
  34. package/dist/sdk/host-NYUSWEE4.mjs.map +1 -0
  35. package/dist/sdk/{routing-DXVYOXAS.mjs → routing-PFFCQJV2.mjs} +4 -4
  36. package/dist/sdk/routing-SFP4D6O3.mjs +26 -0
  37. package/dist/sdk/{schedule-tool-R7NSHTPJ.mjs → schedule-tool-45NAALKS.mjs} +2 -2
  38. package/dist/sdk/{schedule-tool-LL7XDILD.mjs → schedule-tool-DN2DSXIX.mjs} +5 -5
  39. package/dist/sdk/{schedule-tool-GKKVOQB7.mjs → schedule-tool-KVZN5LP6.mjs} +5 -5
  40. package/dist/sdk/{schedule-tool-handler-O3L2R5OJ.mjs → schedule-tool-handler-57JBEICD.mjs} +5 -5
  41. package/dist/sdk/{schedule-tool-handler-5GTQ6SFI.mjs → schedule-tool-handler-6MPP5DXK.mjs} +2 -2
  42. package/dist/sdk/{schedule-tool-handler-ZZGJ3UFR.mjs → schedule-tool-handler-GEXHYH3X.mjs} +5 -5
  43. package/dist/sdk/sdk.js +75 -15
  44. package/dist/sdk/sdk.js.map +1 -1
  45. package/dist/sdk/sdk.mjs +4 -4
  46. package/dist/sdk/slack-frontend-XKSIOUXB.mjs +910 -0
  47. package/dist/sdk/slack-frontend-XKSIOUXB.mjs.map +1 -0
  48. package/dist/sdk/{trace-helpers-CECHXDLI.mjs → trace-helpers-L3EOYW5P.mjs} +2 -2
  49. package/dist/sdk/trace-helpers-MYH2GPXF.mjs +29 -0
  50. package/dist/sdk/{workflow-check-provider-EY6VSMNG.mjs → workflow-check-provider-JNEFAECH.mjs} +5 -5
  51. package/dist/sdk/workflow-check-provider-JNEFAECH.mjs.map +1 -0
  52. package/dist/sdk/{workflow-check-provider-AX7IRQEZ.mjs → workflow-check-provider-OA33MESM.mjs} +2 -2
  53. package/dist/sdk/workflow-check-provider-OA33MESM.mjs.map +1 -0
  54. package/dist/sdk/{workflow-check-provider-HZQGJFOU.mjs → workflow-check-provider-U3UIYLU7.mjs} +5 -5
  55. package/dist/sdk/workflow-check-provider-U3UIYLU7.mjs.map +1 -0
  56. package/dist/traces/{run-2026-03-10T15-37-04-236Z.ndjson → run-2026-03-10T16-21-38-082Z.ndjson} +84 -84
  57. package/dist/traces/{run-2026-03-10T15-37-44-748Z.ndjson → run-2026-03-10T16-22-15-059Z.ndjson} +1812 -1812
  58. package/dist/utils/workspace-manager.d.ts +5 -1
  59. package/dist/utils/workspace-manager.d.ts.map +1 -1
  60. package/dist/utils/worktree-manager.d.ts +5 -1
  61. package/dist/utils/worktree-manager.d.ts.map +1 -1
  62. package/package.json +2 -2
  63. package/dist/sdk/chunk-4E34HRCW.mjs.map +0 -1
  64. package/dist/sdk/chunk-OK4MLC3R.mjs.map +0 -1
  65. package/dist/sdk/chunk-R3FNZRE4.mjs.map +0 -1
  66. /package/dist/sdk/{a2a-frontend-W54ZZ32L.mjs.map → a2a-frontend-BPWLYLCG.mjs.map} +0 -0
  67. /package/dist/sdk/{check-provider-registry-7HSDAKHQ.mjs.map → check-provider-registry-HW4QPPSA.mjs.map} +0 -0
  68. /package/dist/sdk/{check-provider-registry-MJYNLB37.mjs.map → check-provider-registry-OY2EESIO.mjs.map} +0 -0
  69. /package/dist/sdk/{check-provider-registry-VE6LQPLY.mjs.map → check-provider-registry-TRHN5ZBY.mjs.map} +0 -0
  70. /package/dist/sdk/{chunk-66PTDQAO.mjs.map → chunk-ADQVGGKA.mjs.map} +0 -0
  71. /package/dist/sdk/{chunk-SEA2FWEC.mjs.map → chunk-BWC5R2UB.mjs.map} +0 -0
  72. /package/dist/sdk/{failure-condition-evaluator-RTT5SLVL.mjs.map → failure-condition-evaluator-63BECZYF.mjs.map} +0 -0
  73. /package/dist/sdk/{routing-DXVYOXAS.mjs.map → failure-condition-evaluator-HL33X7MH.mjs.map} +0 -0
  74. /package/dist/sdk/{github-frontend-C4GG62PI.mjs.map → github-frontend-FP6WKNZR.mjs.map} +0 -0
  75. /package/dist/sdk/{host-6GGO2BQE.mjs.map → host-6SBCE4VK.mjs.map} +0 -0
  76. /package/dist/sdk/{schedule-tool-GKKVOQB7.mjs.map → routing-PFFCQJV2.mjs.map} +0 -0
  77. /package/dist/sdk/{schedule-tool-LL7XDILD.mjs.map → routing-SFP4D6O3.mjs.map} +0 -0
  78. /package/dist/sdk/{schedule-tool-R7NSHTPJ.mjs.map → schedule-tool-45NAALKS.mjs.map} +0 -0
  79. /package/dist/sdk/{schedule-tool-handler-5GTQ6SFI.mjs.map → schedule-tool-DN2DSXIX.mjs.map} +0 -0
  80. /package/dist/sdk/{schedule-tool-handler-O3L2R5OJ.mjs.map → schedule-tool-KVZN5LP6.mjs.map} +0 -0
  81. /package/dist/sdk/{schedule-tool-handler-ZZGJ3UFR.mjs.map → schedule-tool-handler-57JBEICD.mjs.map} +0 -0
  82. /package/dist/sdk/{trace-helpers-CECHXDLI.mjs.map → schedule-tool-handler-6MPP5DXK.mjs.map} +0 -0
  83. /package/dist/sdk/{workflow-check-provider-AX7IRQEZ.mjs.map → schedule-tool-handler-GEXHYH3X.mjs.map} +0 -0
  84. /package/dist/sdk/{workflow-check-provider-EY6VSMNG.mjs.map → trace-helpers-L3EOYW5P.mjs.map} +0 -0
  85. /package/dist/sdk/{workflow-check-provider-HZQGJFOU.mjs.map → trace-helpers-MYH2GPXF.mjs.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"slack-frontend.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/frontends/slack-frontend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAYxD,KAAK,mBAAmB,GAAG;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,qBAAa,aAAc,YAAW,QAAQ;IAC5C,SAAgB,IAAI,WAAW;IAC/B,OAAO,CAAC,IAAI,CAAsC;IAClD,OAAO,CAAC,GAAG,CAAsB;IAEjC,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,MAAM,CAAgD;IAC9D,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,eAAe,CAAoD;gBAE/D,MAAM,CAAC,EAAE,mBAAmB;IAIxC,KAAK,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IA6JjC,IAAI,IAAI,IAAI;IAKZ,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,kBAAkB;YAcZ,cAAc;IA2D5B,OAAO,CAAC,uBAAuB;YAcjB,yBAAyB;YAgCzB,qBAAqB;YAsCrB,iBAAiB;IA6B/B;;;;OAIG;YACW,oBAAoB;IAsPlC,OAAO,CAAC,YAAY;CAWrB"}
1
+ {"version":3,"file":"slack-frontend.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/frontends/slack-frontend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAYxD,KAAK,mBAAmB,GAAG;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,qBAAa,aAAc,YAAW,QAAQ;IAC5C,SAAgB,IAAI,WAAW;IAC/B,OAAO,CAAC,IAAI,CAAsC;IAClD,OAAO,CAAC,GAAG,CAAsB;IAEjC,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,MAAM,CAAgD;IAC9D,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,eAAe,CAAoD;gBAE/D,MAAM,CAAC,EAAE,mBAAmB;IAIxC,KAAK,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IA6JjC,IAAI,IAAI,IAAI;IAKZ,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,kBAAkB;YAcZ,cAAc;IA2D5B,OAAO,CAAC,uBAAuB;YAcjB,yBAAyB;YAgCzB,qBAAqB;YAsCrB,iBAAiB;IA6B/B;;;;OAIG;YACW,oBAAoB;IA0QlC,OAAO,CAAC,YAAY;CAWrB"}
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- process.env.VISOR_VERSION = '0.1.176';
3
- process.env.PROBE_VERSION = '0.6.0-rc291';
4
- process.env.VISOR_COMMIT_SHA = 'e7bb0fe8d7a8a33772178036a26d756882ad454b';
5
- process.env.VISOR_COMMIT_SHORT = 'e7bb0fe8';
2
+ process.env.VISOR_VERSION = '0.1.177';
3
+ process.env.PROBE_VERSION = '0.6.0-rc292';
4
+ process.env.VISOR_COMMIT_SHA = '5ceed041c645b4c6f1ed2b2cf327a7f376437656';
5
+ process.env.VISOR_COMMIT_SHORT = '5ceed041';
6
6
  /******/ (() => { // webpackBootstrap
7
7
  /******/ var __webpack_modules__ = ({
8
8
 
@@ -313350,6 +313350,20 @@ class SlackFrontend {
313350
313350
  if (out && typeof out._rawOutput === 'string' && out._rawOutput.trim().length > 0) {
313351
313351
  text = (text || '') + '\n\n' + out._rawOutput.trim();
313352
313352
  }
313353
+ // Fallback: if no text was extracted, check for error issues (e.g. timeout)
313354
+ // and post an error message so the user isn't left with silence.
313355
+ if (!text) {
313356
+ const issues = result?.issues || [];
313357
+ const errorIssues = issues.filter((i) => i.severity === 'error' &&
313358
+ (i.ruleId?.startsWith('system/') || i.ruleId?.endsWith('/error')));
313359
+ if (errorIssues.length > 0) {
313360
+ const errorMessages = errorIssues.map((i) => i.message).join('\n');
313361
+ text = `:warning: Something went wrong while processing your request:\n${errorMessages}`;
313362
+ // Prevent maybePostExecutionFailure from double-posting the same error
313363
+ this.errorNotified = true;
313364
+ ctx.logger.warn(`[slack-frontend] posting error fallback for ${checkId}: ${errorIssues.length} system error(s)`);
313365
+ }
313366
+ }
313353
313367
  if (!text) {
313354
313368
  ctx.logger.info(`[slack-frontend] skip posting AI reply for ${checkId}: no renderable text in check output`);
313355
313369
  return;
@@ -348574,7 +348588,7 @@ async function executeSingleCheck(checkId, context, state, emitEvent, transition
348574
348588
  workflowInputs,
348575
348589
  ai: {
348576
348590
  ...(checkConfig.ai || {}),
348577
- timeout: checkConfig.ai?.timeout || 1800000,
348591
+ timeout: checkConfig.timeout || checkConfig.ai?.timeout || 1800000,
348578
348592
  debug: !!context.debug,
348579
348593
  },
348580
348594
  };
@@ -348667,7 +348681,7 @@ async function executeSingleCheck(checkId, context, state, emitEvent, transition
348667
348681
  session_id: context.sessionId,
348668
348682
  wave: state.wave,
348669
348683
  }, async (span) => {
348670
- const res = await (0, sandbox_routing_1.executeWithSandboxRouting)(checkId, checkConfig, context, prInfo, dependencyResults, checkConfig.ai?.timeout || 1800000, () => provider.execute(prInfo, providerConfig, dependencyResults, executionContext));
348684
+ const res = await (0, sandbox_routing_1.executeWithSandboxRouting)(checkId, checkConfig, context, prInfo, dependencyResults, checkConfig.timeout || checkConfig.ai?.timeout || 1800000, () => provider.execute(prInfo, providerConfig, dependencyResults, executionContext));
348671
348685
  // Capture output in span for trace visualization
348672
348686
  try {
348673
348687
  (0, state_capture_1.captureCheckOutput)(span, res.output);
@@ -349035,7 +349049,7 @@ async function executeCheckWithForEachItems(checkId, forEachParent, forEachItems
349035
349049
  workflowInputs,
349036
349050
  ai: {
349037
349051
  ...(checkConfig.ai || {}),
349038
- timeout: checkConfig.ai?.timeout || 1800000,
349052
+ timeout: checkConfig.timeout || checkConfig.ai?.timeout || 1800000,
349039
349053
  debug: !!context.debug,
349040
349054
  },
349041
349055
  };
@@ -349115,7 +349129,7 @@ async function executeCheckWithForEachItems(checkId, forEachParent, forEachItems
349115
349129
  session_id: context.sessionId,
349116
349130
  wave: state.wave,
349117
349131
  }, async (span) => {
349118
- const res = await (0, sandbox_routing_1.executeWithSandboxRouting)(checkId, checkConfig, context, prInfo, dependencyResults, checkConfig.ai?.timeout || 1800000, () => provider.execute(prInfo, providerConfig, dependencyResults, executionContext));
349132
+ const res = await (0, sandbox_routing_1.executeWithSandboxRouting)(checkId, checkConfig, context, prInfo, dependencyResults, checkConfig.timeout || checkConfig.ai?.timeout || 1800000, () => provider.execute(prInfo, providerConfig, dependencyResults, executionContext));
349119
349133
  try {
349120
349134
  (0, state_capture_1.captureCheckOutput)(span, res.output);
349121
349135
  }
@@ -349606,7 +349620,7 @@ async function executeInvocation(item, context, scope, prInfo, dependencyResults
349606
349620
  __outputHistory: outputHistory,
349607
349621
  ai: {
349608
349622
  ...(stepConfig.ai || {}),
349609
- timeout: stepConfig.ai?.timeout || 1800000,
349623
+ timeout: stepConfig.timeout || stepConfig.ai?.timeout || 1800000,
349610
349624
  debug: !!context.debug,
349611
349625
  },
349612
349626
  };
@@ -351493,7 +351507,7 @@ async function executeCheckWithForEachItems(checkId, forEachParent, forEachItems
351493
351507
  workflowInputs,
351494
351508
  ai: {
351495
351509
  ...(checkConfig.ai || {}),
351496
- timeout: checkConfig.ai?.timeout || 1800000,
351510
+ timeout: checkConfig.timeout || checkConfig.ai?.timeout || 1800000,
351497
351511
  debug: !!context.debug,
351498
351512
  },
351499
351513
  };
@@ -351524,16 +351538,17 @@ async function executeCheckWithForEachItems(checkId, forEachParent, forEachItems
351524
351538
  const conv = slackConv || telegramConv;
351525
351539
  if (conv) {
351526
351540
  const event = payload?.event;
351527
- const messageCount = Array.isArray(conv?.messages)
351528
- ? conv.messages.length
351529
- : 0;
351541
+ const messageCount = Array.isArray(conv?.messages) ? conv.messages.length : 0;
351530
351542
  if (context.debug) {
351531
351543
  logger_1.logger.info(`[LevelDispatch] Conversation extracted (${conv?.transport || 'unknown'}): ${messageCount} messages`);
351532
351544
  }
351533
351545
  // Build transport-specific context
351534
351546
  const transportCtx = slackConv
351535
351547
  ? { slack: { event: event || {}, conversation: slackConv } }
351536
- : { telegram: { event: event || {}, conversation: telegramConv }, webhook: payload };
351548
+ : {
351549
+ telegram: { event: event || {}, conversation: telegramConv },
351550
+ webhook: payload,
351551
+ };
351537
351552
  providerConfig.eventContext = {
351538
351553
  ...providerConfig.eventContext,
351539
351554
  ...transportCtx,
@@ -351708,7 +351723,7 @@ async function executeCheckWithForEachItems(checkId, forEachParent, forEachItems
351708
351723
  session_id: context.sessionId,
351709
351724
  wave: state.wave,
351710
351725
  }, async (span) => {
351711
- const res = await (0, sandbox_routing_1.executeWithSandboxRouting)(checkId, checkConfig, context, prInfo, dependencyResults, checkConfig.ai?.timeout || 1800000, () => provider.execute(prInfo, providerConfig, dependencyResults, executionContext));
351726
+ const res = await (0, sandbox_routing_1.executeWithSandboxRouting)(checkId, checkConfig, context, prInfo, dependencyResults, checkConfig.timeout || checkConfig.ai?.timeout || 1800000, () => provider.execute(prInfo, providerConfig, dependencyResults, executionContext));
351712
351727
  try {
351713
351728
  (0, state_capture_1.captureCheckOutput)(span, res.output);
351714
351729
  }
@@ -352727,7 +352742,7 @@ async function executeSingleCheck(checkId, context, state, emitEvent, transition
352727
352742
  workflowInputs,
352728
352743
  ai: {
352729
352744
  ...(checkConfig.ai || {}),
352730
- timeout: checkConfig.ai?.timeout || 1800000,
352745
+ timeout: checkConfig.timeout || checkConfig.ai?.timeout || 1800000,
352731
352746
  debug: !!context.debug,
352732
352747
  },
352733
352748
  };
@@ -352909,7 +352924,7 @@ async function executeSingleCheck(checkId, context, state, emitEvent, transition
352909
352924
  session_id: context.sessionId,
352910
352925
  wave: state.wave,
352911
352926
  }, async (span) => {
352912
- const res = await (0, sandbox_routing_1.executeWithSandboxRouting)(checkId, checkConfig, context, prInfo, dependencyResults, checkConfig.ai?.timeout || 1800000, () => provider.execute(prInfo, providerConfig, dependencyResults, executionContext));
352927
+ const res = await (0, sandbox_routing_1.executeWithSandboxRouting)(checkId, checkConfig, context, prInfo, dependencyResults, checkConfig.timeout || checkConfig.ai?.timeout || 1800000, () => provider.execute(prInfo, providerConfig, dependencyResults, executionContext));
352913
352928
  try {
352914
352929
  (0, state_capture_1.captureCheckOutput)(span, res.output);
352915
352930
  }
@@ -372702,10 +372717,26 @@ class WorkspaceManager {
372702
372717
  await this.deleteLocalBranches(worktreePath);
372703
372718
  }
372704
372719
  /**
372705
- * Delete all local branches in a worktree.
372720
+ * Delete local branches in a worktree that are safe to remove.
372721
+ * IMPORTANT: Git worktrees share the branch namespace with the main repo
372722
+ * and all other worktrees. We must NOT delete branches that are checked out
372723
+ * in the main working tree or any other worktree — doing so would destroy
372724
+ * the user's work.
372706
372725
  */
372707
372726
  async deleteLocalBranches(worktreePath) {
372708
372727
  const escapedPath = shellEscape(worktreePath);
372728
+ // First, discover which branches are checked out in ANY worktree (including main).
372729
+ // `git worktree list --porcelain` output contains "branch refs/heads/<name>" lines.
372730
+ const worktreeListResult = await command_executor_1.commandExecutor.execute(`git -C ${escapedPath} worktree list --porcelain`, { timeout: 10000 });
372731
+ const protectedBranches = new Set();
372732
+ if (worktreeListResult.exitCode === 0) {
372733
+ for (const line of worktreeListResult.stdout.split('\n')) {
372734
+ const match = line.match(/^branch refs\/heads\/(.+)$/);
372735
+ if (match) {
372736
+ protectedBranches.add(match[1]);
372737
+ }
372738
+ }
372739
+ }
372709
372740
  const listResult = await command_executor_1.commandExecutor.execute(`git -C ${escapedPath} branch --list --format='%(refname:short)'`, { timeout: 10000 });
372710
372741
  if (listResult.exitCode !== 0 || !listResult.stdout.trim()) {
372711
372742
  return;
@@ -372716,6 +372747,10 @@ class WorkspaceManager {
372716
372747
  .map(b => b.trim())
372717
372748
  .filter(b => b.length > 0);
372718
372749
  for (const branch of branches) {
372750
+ if (protectedBranches.has(branch)) {
372751
+ logger_1.logger.debug(`[Workspace] Skipping branch '${branch}' — checked out in another worktree`);
372752
+ continue;
372753
+ }
372719
372754
  const deleteResult = await command_executor_1.commandExecutor.execute(`git -C ${escapedPath} branch -D ${shellEscape(branch)}`, { timeout: 10000 });
372720
372755
  if (deleteResult.exitCode === 0) {
372721
372756
  logger_1.logger.debug(`[Workspace] Deleted local branch '${branch}' from worktree`);
@@ -373415,11 +373450,28 @@ class WorktreeManager {
373415
373450
  await this.deleteLocalBranches(worktreePath);
373416
373451
  }
373417
373452
  /**
373418
- * Delete all local branches in a worktree.
373453
+ * Delete local branches in a worktree that are safe to remove.
373419
373454
  * Worktrees are always used in detached HEAD state, so any local branches
373420
373455
  * were unintentionally created and should be cleaned up.
373456
+ * IMPORTANT: Git worktrees share the branch namespace with the main repo
373457
+ * and all other worktrees. We must NOT delete branches that are checked out
373458
+ * in the main working tree or any other worktree — doing so would destroy
373459
+ * the user's work.
373421
373460
  */
373422
373461
  async deleteLocalBranches(worktreePath) {
373462
+ // First, discover which branches are checked out in ANY worktree (including main).
373463
+ // `git worktree list --porcelain` output contains "branch refs/heads/<name>" lines.
373464
+ const worktreeListCmd = `git -C ${this.escapeShellArg(worktreePath)} worktree list --porcelain`;
373465
+ const worktreeListResult = await this.executeGitCommand(worktreeListCmd, { timeout: 10000 });
373466
+ const protectedBranches = new Set();
373467
+ if (worktreeListResult.exitCode === 0) {
373468
+ for (const line of worktreeListResult.stdout.split('\n')) {
373469
+ const match = line.match(/^branch refs\/heads\/(.+)$/);
373470
+ if (match) {
373471
+ protectedBranches.add(match[1]);
373472
+ }
373473
+ }
373474
+ }
373423
373475
  const listCmd = `git -C ${this.escapeShellArg(worktreePath)} branch --list --format='%(refname:short)'`;
373424
373476
  const listResult = await this.executeGitCommand(listCmd, { timeout: 10000 });
373425
373477
  if (listResult.exitCode !== 0 || !listResult.stdout.trim()) {
@@ -373431,6 +373483,10 @@ class WorktreeManager {
373431
373483
  .map(b => b.trim())
373432
373484
  .filter(b => b.length > 0);
373433
373485
  for (const branch of branches) {
373486
+ if (protectedBranches.has(branch)) {
373487
+ logger_1.logger.debug(`Skipping branch '${branch}' — checked out in another worktree`);
373488
+ continue;
373489
+ }
373434
373490
  const deleteCmd = `git -C ${this.escapeShellArg(worktreePath)} branch -D ${this.escapeShellArg(branch)}`;
373435
373491
  const deleteResult = await this.executeGitCommand(deleteCmd, { timeout: 10000 });
373436
373492
  if (deleteResult.exitCode === 0) {
@@ -540249,7 +540305,12 @@ function generateSandboxGlobals(options) {
540249
540305
  }
540250
540306
  return tryParseJSONValue(text);
540251
540307
  };
540252
- globals[name15] = traceToolCall(name15, rawMcpFn, tracer, logFn);
540308
+ const tracedFn = traceToolCall(name15, rawMcpFn, tracer, logFn);
540309
+ globals[name15] = tracedFn;
540310
+ const sanitized = name15.replace(/[^a-zA-Z0-9_$]/g, "_");
540311
+ if (sanitized !== name15) {
540312
+ globals[sanitized] = tracedFn;
540313
+ }
540253
540314
  }
540254
540315
  }
540255
540316
  if (llmCall) {
@@ -540604,9 +540665,17 @@ ${validation.errors.join("\n")}`,
540604
540665
  "dsl.duration_ms": elapsed,
540605
540666
  "dsl.error": e.message?.substring(0, 500)
540606
540667
  });
540668
+ let errorMsg = `Execution failed: ${e.message}`;
540669
+ if (e.message && e.message.includes("is not defined")) {
540670
+ const globalNames = Object.keys(toolGlobals).sort();
540671
+ errorMsg += `
540672
+ Available functions: ${globalNames.join(", ")}`;
540673
+ errorMsg += `
540674
+ Note: Tools with hyphens (e.g. "my-tool") are available with underscores: my_tool()`;
540675
+ }
540607
540676
  return {
540608
540677
  status: "error",
540609
- error: `Execution failed: ${e.message}`,
540678
+ error: errorMsg,
540610
540679
  logs
540611
540680
  };
540612
540681
  }
@@ -549923,7 +549992,14 @@ function lineTrimmedMatch(contentLines, searchLines) {
549923
549992
  }
549924
549993
  }
549925
549994
  if (allMatch) {
549926
- const matchedText = contentLines.slice(i, i + windowSize).join("\n");
549995
+ const windowLines = contentLines.slice(i, i + windowSize);
549996
+ const windowMinIndent = getMinIndent(windowLines);
549997
+ const searchMinIndent = getMinIndent(searchLines);
549998
+ const indentDiff = Math.abs(windowMinIndent - searchMinIndent);
549999
+ if (isIndentDiffTooLarge(windowLines, searchLines, indentDiff)) {
550000
+ continue;
550001
+ }
550002
+ const matchedText = windowLines.join("\n");
549927
550003
  matches.push(matchedText);
549928
550004
  }
549929
550005
  }
@@ -549953,6 +550029,15 @@ function whitespaceNormalizedMatch(content, search2) {
549953
550029
  actualEnd++;
549954
550030
  }
549955
550031
  const matchedText = content.substring(originalStart, actualEnd);
550032
+ const matchedLines = matchedText.split("\n");
550033
+ const searchLines = search2.split("\n");
550034
+ const matchMinIndent = getMinIndent(matchedLines);
550035
+ const searchMinIndent = getMinIndent(searchLines);
550036
+ const indentDiff = Math.abs(matchMinIndent - searchMinIndent);
550037
+ if (isIndentDiffTooLarge(matchedLines, searchLines, indentDiff)) {
550038
+ searchStart = idx + 1;
550039
+ continue;
550040
+ }
549956
550041
  matches.push(matchedText);
549957
550042
  searchStart = idx + 1;
549958
550043
  }
@@ -550004,6 +550089,10 @@ function indentFlexibleMatch(contentLines, searchLines) {
550004
550089
  }
550005
550090
  }
550006
550091
  if (allMatch) {
550092
+ const indentDiff = Math.abs(windowMinIndent - searchMinIndent);
550093
+ if (isIndentDiffTooLarge(windowLines, searchLines, indentDiff)) {
550094
+ continue;
550095
+ }
550007
550096
  const matchedText = windowLines.join("\n");
550008
550097
  matches.push(matchedText);
550009
550098
  }
@@ -550014,6 +550103,14 @@ function indentFlexibleMatch(contentLines, searchLines) {
550014
550103
  count: matches.length
550015
550104
  };
550016
550105
  }
550106
+ function isIndentDiffTooLarge(linesA, linesB, indentDiff) {
550107
+ if (indentDiff <= 0) return false;
550108
+ const sampleA = linesA.find((l) => l.trim().length > 0) || "";
550109
+ const sampleB = linesB.find((l) => l.trim().length > 0) || "";
550110
+ const useTabs = sampleA.startsWith(" ") || sampleB.startsWith(" ");
550111
+ const maxAllowedDiff = useTabs ? 1 : 4;
550112
+ return indentDiff > maxAllowedDiff;
550113
+ }
550017
550114
  function getMinIndent(lines) {
550018
550115
  let min = Infinity;
550019
550116
  for (const line of lines) {
@@ -550088,6 +550185,12 @@ function restoreIndentation(newStr, originalLines) {
550088
550185
  const targetIndent = detectBaseIndent(originalCode);
550089
550186
  const newIndent = detectBaseIndent(newStr);
550090
550187
  if (targetIndent !== newIndent) {
550188
+ const indentDiff = Math.abs(targetIndent.length - newIndent.length);
550189
+ const useTabs = targetIndent.includes(" ") || newIndent.includes(" ");
550190
+ const maxAllowedDiff = useTabs ? 1 : 4;
550191
+ if (indentDiff > maxAllowedDiff) {
550192
+ return { result: newStr, modifications };
550193
+ }
550091
550194
  const reindented = reindent(newStr, targetIndent);
550092
550195
  if (reindented !== newStr) {
550093
550196
  modifications.push(`reindented from "${newIndent}" to "${targetIndent}"`);
@@ -608760,7 +608863,7 @@ module.exports = /*#__PURE__*/JSON.parse('["aaa","aarp","abb","abbott","abbvie",
608760
608863
  /***/ ((module) => {
608761
608864
 
608762
608865
  "use strict";
608763
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@probelabs/visor","version":"0.1.176","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","@grammyjs/runner":"^2.0.3","@modelcontextprotocol/sdk":"^1.25.3","@nyariv/sandboxjs":"github:probelabs/SandboxJS#23c4bb611f7d05f3cb8c523917b5f57103e48108","@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/api-logs":"^0.203.0","@opentelemetry/core":"^1.30.1","@opentelemetry/exporter-logs-otlp-http":"^0.203.0","@opentelemetry/exporter-metrics-otlp-http":"^0.203.0","@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-logs":"^0.203.0","@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-rc291","@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","botbuilder":"^4.23.3","botframework-connector":"^4.23.3","cli-table3":"^0.6.5","commander":"^14.0.0","deepmerge":"^4.3.1","dotenv":"^17.2.3","grammy":"^1.41.1","ignore":"^7.0.5","imapflow":"^1.2.12","js-yaml":"^4.1.0","jsonpath-plus":"^10.4.0","liquidjs":"^10.21.1","mailparser":"^3.9.3","minimatch":"^10.2.2","node-cron":"^3.0.3","nodemailer":"^8.0.1","open":"^9.1.0","resend":"^6.9.3","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/mailparser":"^3.4.6","@types/node":"^24.3.0","@types/node-cron":"^3.0.11","@types/nodemailer":"^7.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"]}}');
608866
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@probelabs/visor","version":"0.1.177","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","@grammyjs/runner":"^2.0.3","@modelcontextprotocol/sdk":"^1.25.3","@nyariv/sandboxjs":"github:probelabs/SandboxJS#23c4bb611f7d05f3cb8c523917b5f57103e48108","@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/api-logs":"^0.203.0","@opentelemetry/core":"^1.30.1","@opentelemetry/exporter-logs-otlp-http":"^0.203.0","@opentelemetry/exporter-metrics-otlp-http":"^0.203.0","@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-logs":"^0.203.0","@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-rc292","@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","botbuilder":"^4.23.3","botframework-connector":"^4.23.3","cli-table3":"^0.6.5","commander":"^14.0.0","deepmerge":"^4.3.1","dotenv":"^17.2.3","grammy":"^1.41.1","ignore":"^7.0.5","imapflow":"^1.2.12","js-yaml":"^4.1.0","jsonpath-plus":"^10.4.0","liquidjs":"^10.21.1","mailparser":"^3.9.3","minimatch":"^10.2.2","node-cron":"^3.0.3","nodemailer":"^8.0.1","open":"^9.1.0","resend":"^6.9.3","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/mailparser":"^3.4.6","@types/node":"^24.3.0","@types/node-cron":"^3.0.11","@types/nodemailer":"^7.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"]}}');
608764
608867
 
608765
608868
  /***/ })
608766
608869