@probelabs/visor 0.1.181 → 0.1.182-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 (144) hide show
  1. package/defaults/code-talk.yaml +80 -14
  2. package/defaults/engineer.yaml +33 -15
  3. package/defaults/skills/code-explorer.yaml +5 -0
  4. package/dist/agent-protocol/a2a-frontend.d.ts +10 -0
  5. package/dist/agent-protocol/a2a-frontend.d.ts.map +1 -1
  6. package/dist/agent-protocol/task-evaluator.d.ts +52 -0
  7. package/dist/agent-protocol/task-evaluator.d.ts.map +1 -0
  8. package/dist/agent-protocol/task-store.d.ts +5 -3
  9. package/dist/agent-protocol/task-store.d.ts.map +1 -1
  10. package/dist/agent-protocol/tasks-cli-handler.d.ts.map +1 -1
  11. package/dist/agent-protocol/tasks-tui.d.ts +34 -0
  12. package/dist/agent-protocol/tasks-tui.d.ts.map +1 -0
  13. package/dist/agent-protocol/trace-serializer.d.ts +90 -0
  14. package/dist/agent-protocol/trace-serializer.d.ts.map +1 -0
  15. package/dist/agent-protocol/track-execution.d.ts +2 -0
  16. package/dist/agent-protocol/track-execution.d.ts.map +1 -1
  17. package/dist/cli-main.d.ts.map +1 -1
  18. package/dist/defaults/code-talk.yaml +80 -14
  19. package/dist/defaults/engineer.yaml +33 -15
  20. package/dist/defaults/skills/code-explorer.yaml +5 -0
  21. package/dist/docs/commands.md +57 -14
  22. package/dist/docs/configuration.md +2 -0
  23. package/dist/docs/guides/graceful-restart.md +178 -0
  24. package/dist/docs/observability.md +69 -0
  25. package/dist/docs/production-deployment.md +17 -0
  26. package/dist/email/polling-runner.d.ts +4 -0
  27. package/dist/email/polling-runner.d.ts.map +1 -1
  28. package/dist/generated/config-schema.d.ts +70 -6
  29. package/dist/generated/config-schema.d.ts.map +1 -1
  30. package/dist/generated/config-schema.json +36 -6
  31. package/dist/index.js +7420 -1483
  32. package/dist/providers/mcp-custom-sse-server.d.ts +4 -0
  33. package/dist/providers/mcp-custom-sse-server.d.ts.map +1 -1
  34. package/dist/runners/graceful-restart.d.ts +46 -0
  35. package/dist/runners/graceful-restart.d.ts.map +1 -0
  36. package/dist/runners/mcp-server-runner.d.ts +12 -0
  37. package/dist/runners/mcp-server-runner.d.ts.map +1 -1
  38. package/dist/runners/runner-factory.d.ts.map +1 -1
  39. package/dist/runners/runner-host.d.ts +12 -0
  40. package/dist/runners/runner-host.d.ts.map +1 -1
  41. package/dist/runners/runner.d.ts +12 -0
  42. package/dist/runners/runner.d.ts.map +1 -1
  43. package/dist/sdk/{a2a-frontend-IWOUJOIZ.mjs → a2a-frontend-4LP3MLTS.mjs} +47 -5
  44. package/dist/sdk/a2a-frontend-4LP3MLTS.mjs.map +1 -0
  45. package/dist/sdk/{a2a-frontend-BDACLGMA.mjs → a2a-frontend-MU5EO2HZ.mjs} +35 -1
  46. package/dist/sdk/a2a-frontend-MU5EO2HZ.mjs.map +1 -0
  47. package/dist/sdk/{check-provider-registry-4YKTEDKF.mjs → check-provider-registry-I4BCWKRU.mjs} +7 -7
  48. package/dist/sdk/{check-provider-registry-4YFVBGYU.mjs → check-provider-registry-RRWCXSTG.mjs} +3 -3
  49. package/dist/sdk/{chunk-VMVIM4JB.mjs → chunk-4I3TJ7UJ.mjs} +37 -7
  50. package/dist/sdk/chunk-4I3TJ7UJ.mjs.map +1 -0
  51. package/dist/sdk/{chunk-7YZSSO4X.mjs → chunk-6DPPP7LD.mjs} +10 -10
  52. package/dist/sdk/chunk-7ERVRLDV.mjs +296 -0
  53. package/dist/sdk/chunk-7ERVRLDV.mjs.map +1 -0
  54. package/dist/sdk/{chunk-VXC2XNQJ.mjs → chunk-ANUT54HW.mjs} +3 -3
  55. package/dist/sdk/{chunk-J73GEFPT.mjs → chunk-DHETLQIX.mjs} +2 -2
  56. package/dist/sdk/{chunk-DGIH6EX3.mjs → chunk-QXT47ZHR.mjs} +151 -281
  57. package/dist/sdk/chunk-QXT47ZHR.mjs.map +1 -0
  58. package/dist/sdk/{chunk-4DVP6KVC.mjs → chunk-TQQNSHQV.mjs} +72 -31
  59. package/dist/sdk/chunk-TQQNSHQV.mjs.map +1 -0
  60. package/dist/sdk/chunk-ZOF5QT6U.mjs +5943 -0
  61. package/dist/sdk/chunk-ZOF5QT6U.mjs.map +1 -0
  62. package/dist/sdk/{config-TSA5FUOM.mjs → config-2STD74CJ.mjs} +2 -2
  63. package/dist/sdk/config-JE4HKTWW.mjs +16 -0
  64. package/dist/sdk/{failure-condition-evaluator-HTPB5FYW.mjs → failure-condition-evaluator-5DZYMCGW.mjs} +4 -4
  65. package/dist/sdk/{github-frontend-3SDFCCKI.mjs → github-frontend-L3F5JXPJ.mjs} +4 -4
  66. package/dist/sdk/{host-QE4L7UXE.mjs → host-QBJ7TOWG.mjs} +3 -3
  67. package/dist/sdk/{host-CVH2CSHM.mjs → host-X5ZZCEWN.mjs} +2 -2
  68. package/dist/sdk/knex-store-QCEW4I4R.mjs +527 -0
  69. package/dist/sdk/knex-store-QCEW4I4R.mjs.map +1 -0
  70. package/dist/sdk/loader-ZNKKJEZ3.mjs +89 -0
  71. package/dist/sdk/loader-ZNKKJEZ3.mjs.map +1 -0
  72. package/dist/sdk/opa-policy-engine-QCSSIMUF.mjs +655 -0
  73. package/dist/sdk/opa-policy-engine-QCSSIMUF.mjs.map +1 -0
  74. package/dist/sdk/{routing-YVMTKFDZ.mjs → routing-CVQT4KHX.mjs} +5 -5
  75. package/dist/sdk/{schedule-tool-Z5VG67JK.mjs → schedule-tool-AECLFHSY.mjs} +7 -7
  76. package/dist/sdk/{schedule-tool-ZMX3Y7LF.mjs → schedule-tool-Z6QYL2B3.mjs} +3 -3
  77. package/dist/sdk/{schedule-tool-handler-PCERK6ZZ.mjs → schedule-tool-handler-6QLZRTQA.mjs} +7 -7
  78. package/dist/sdk/{schedule-tool-handler-N7UNABOA.mjs → schedule-tool-handler-J4NUETJ6.mjs} +3 -3
  79. package/dist/sdk/sdk.d.mts +33 -0
  80. package/dist/sdk/sdk.d.ts +33 -0
  81. package/dist/sdk/sdk.js +3545 -455
  82. package/dist/sdk/sdk.js.map +1 -1
  83. package/dist/sdk/sdk.mjs +6 -6
  84. package/dist/sdk/task-evaluator-HLNXKKVV.mjs +1278 -0
  85. package/dist/sdk/task-evaluator-HLNXKKVV.mjs.map +1 -0
  86. package/dist/sdk/{trace-helpers-KXDOJWBL.mjs → trace-helpers-WJXYVV4S.mjs} +3 -3
  87. package/dist/sdk/trace-reader-ZY77OFNM.mjs +266 -0
  88. package/dist/sdk/trace-reader-ZY77OFNM.mjs.map +1 -0
  89. package/dist/sdk/track-execution-MKIQXP2C.mjs +136 -0
  90. package/dist/sdk/track-execution-MKIQXP2C.mjs.map +1 -0
  91. package/dist/sdk/validator-XTZJZZJH.mjs +134 -0
  92. package/dist/sdk/validator-XTZJZZJH.mjs.map +1 -0
  93. package/dist/sdk/{workflow-check-provider-NTHC5ZBF.mjs → workflow-check-provider-EXMC6JIS.mjs} +7 -7
  94. package/dist/sdk/{workflow-check-provider-SRIMWKLQ.mjs → workflow-check-provider-VKYGI5GK.mjs} +3 -3
  95. package/dist/slack/socket-runner.d.ts +12 -0
  96. package/dist/slack/socket-runner.d.ts.map +1 -1
  97. package/dist/teams/webhook-runner.d.ts +4 -0
  98. package/dist/teams/webhook-runner.d.ts.map +1 -1
  99. package/dist/telegram/polling-runner.d.ts +2 -0
  100. package/dist/telegram/polling-runner.d.ts.map +1 -1
  101. package/dist/types/config.d.ts +33 -0
  102. package/dist/types/config.d.ts.map +1 -1
  103. package/dist/whatsapp/webhook-runner.d.ts +4 -0
  104. package/dist/whatsapp/webhook-runner.d.ts.map +1 -1
  105. package/package.json +2 -2
  106. package/dist/output/traces/run-2026-03-17T13-58-29-402Z.ndjson +0 -157
  107. package/dist/output/traces/run-2026-03-17T13-59-10-403Z.ndjson +0 -2333
  108. package/dist/sdk/a2a-frontend-BDACLGMA.mjs.map +0 -1
  109. package/dist/sdk/a2a-frontend-IWOUJOIZ.mjs.map +0 -1
  110. package/dist/sdk/check-provider-registry-67ZLGDDQ.mjs +0 -31
  111. package/dist/sdk/chunk-4DVP6KVC.mjs.map +0 -1
  112. package/dist/sdk/chunk-DGIH6EX3.mjs.map +0 -1
  113. package/dist/sdk/chunk-QGBASDYP.mjs +0 -46153
  114. package/dist/sdk/chunk-QGBASDYP.mjs.map +0 -1
  115. package/dist/sdk/chunk-VMVIM4JB.mjs.map +0 -1
  116. package/dist/sdk/host-VBBSLUWG.mjs +0 -87
  117. package/dist/sdk/host-VBBSLUWG.mjs.map +0 -1
  118. package/dist/sdk/schedule-tool-ADUXTCY7.mjs +0 -37
  119. package/dist/sdk/schedule-tool-handler-QOJVFRB4.mjs +0 -41
  120. package/dist/sdk/workflow-check-provider-CJXW2Z4F.mjs +0 -31
  121. package/dist/sdk/workflow-check-provider-CJXW2Z4F.mjs.map +0 -1
  122. package/dist/sdk/workflow-check-provider-NTHC5ZBF.mjs.map +0 -1
  123. package/dist/sdk/workflow-check-provider-SRIMWKLQ.mjs.map +0 -1
  124. package/dist/traces/run-2026-03-17T13-58-29-402Z.ndjson +0 -157
  125. package/dist/traces/run-2026-03-17T13-59-10-403Z.ndjson +0 -2333
  126. /package/dist/sdk/{check-provider-registry-4YFVBGYU.mjs.map → check-provider-registry-I4BCWKRU.mjs.map} +0 -0
  127. /package/dist/sdk/{check-provider-registry-4YKTEDKF.mjs.map → check-provider-registry-RRWCXSTG.mjs.map} +0 -0
  128. /package/dist/sdk/{chunk-7YZSSO4X.mjs.map → chunk-6DPPP7LD.mjs.map} +0 -0
  129. /package/dist/sdk/{chunk-VXC2XNQJ.mjs.map → chunk-ANUT54HW.mjs.map} +0 -0
  130. /package/dist/sdk/{chunk-J73GEFPT.mjs.map → chunk-DHETLQIX.mjs.map} +0 -0
  131. /package/dist/sdk/{check-provider-registry-67ZLGDDQ.mjs.map → config-2STD74CJ.mjs.map} +0 -0
  132. /package/dist/sdk/{config-TSA5FUOM.mjs.map → config-JE4HKTWW.mjs.map} +0 -0
  133. /package/dist/sdk/{failure-condition-evaluator-HTPB5FYW.mjs.map → failure-condition-evaluator-5DZYMCGW.mjs.map} +0 -0
  134. /package/dist/sdk/{github-frontend-3SDFCCKI.mjs.map → github-frontend-L3F5JXPJ.mjs.map} +0 -0
  135. /package/dist/sdk/{host-CVH2CSHM.mjs.map → host-QBJ7TOWG.mjs.map} +0 -0
  136. /package/dist/sdk/{host-QE4L7UXE.mjs.map → host-X5ZZCEWN.mjs.map} +0 -0
  137. /package/dist/sdk/{routing-YVMTKFDZ.mjs.map → routing-CVQT4KHX.mjs.map} +0 -0
  138. /package/dist/sdk/{schedule-tool-ADUXTCY7.mjs.map → schedule-tool-AECLFHSY.mjs.map} +0 -0
  139. /package/dist/sdk/{schedule-tool-Z5VG67JK.mjs.map → schedule-tool-Z6QYL2B3.mjs.map} +0 -0
  140. /package/dist/sdk/{schedule-tool-ZMX3Y7LF.mjs.map → schedule-tool-handler-6QLZRTQA.mjs.map} +0 -0
  141. /package/dist/sdk/{schedule-tool-handler-N7UNABOA.mjs.map → schedule-tool-handler-J4NUETJ6.mjs.map} +0 -0
  142. /package/dist/sdk/{schedule-tool-handler-PCERK6ZZ.mjs.map → trace-helpers-WJXYVV4S.mjs.map} +0 -0
  143. /package/dist/sdk/{schedule-tool-handler-QOJVFRB4.mjs.map → workflow-check-provider-EXMC6JIS.mjs.map} +0 -0
  144. /package/dist/sdk/{trace-helpers-KXDOJWBL.mjs.map → workflow-check-provider-VKYGI5GK.mjs.map} +0 -0
@@ -58,7 +58,7 @@ import {
58
58
  import {
59
59
  config_exports,
60
60
  init_config
61
- } from "./chunk-VMVIM4JB.mjs";
61
+ } from "./chunk-ZOF5QT6U.mjs";
62
62
  import {
63
63
  ExecutionJournal,
64
64
  checkLoopBudget,
@@ -67,11 +67,11 @@ import {
67
67
  init_routing,
68
68
  init_snapshot_store,
69
69
  snapshot_store_exports
70
- } from "./chunk-KBGQJKIZ.mjs";
70
+ } from "./chunk-ANUT54HW.mjs";
71
71
  import {
72
72
  FailureConditionEvaluator,
73
73
  init_failure_condition_evaluator
74
- } from "./chunk-U6K5SK7X.mjs";
74
+ } from "./chunk-DHETLQIX.mjs";
75
75
  import {
76
76
  addEvent,
77
77
  emitNdjsonFallback,
@@ -82,11 +82,11 @@ import {
82
82
  setSpanAttributes,
83
83
  trace_helpers_exports,
84
84
  withActiveSpan
85
- } from "./chunk-3JFK6KCD.mjs";
85
+ } from "./chunk-7ERVRLDV.mjs";
86
86
  import {
87
87
  generateHumanId,
88
88
  init_human_id
89
- } from "./chunk-6VVXKXTI.mjs";
89
+ } from "./chunk-QXT47ZHR.mjs";
90
90
  import {
91
91
  addDiagramBlock,
92
92
  init_metrics,
@@ -4295,7 +4295,7 @@ async function executeWorkflowAsTool(workflowId, args, context2, argsOverrides)
4295
4295
  ...args,
4296
4296
  ...argsOverrides
4297
4297
  };
4298
- const { WorkflowCheckProvider: WorkflowCheckProvider2 } = await import("./workflow-check-provider-CJXW2Z4F.mjs");
4298
+ const { WorkflowCheckProvider: WorkflowCheckProvider2 } = await import("./workflow-check-provider-EXMC6JIS.mjs");
4299
4299
  const provider = new WorkflowCheckProvider2();
4300
4300
  const checkConfig = {
4301
4301
  type: "workflow",
@@ -10890,7 +10890,7 @@ async function executeCheckWithForEachItems2(checkId, forEachParent, forEachItem
10890
10890
  }
10891
10891
  }
10892
10892
  try {
10893
- const { evaluateTransitions } = await import("./routing-XALEDC2G.mjs");
10893
+ const { evaluateTransitions } = await import("./routing-CVQT4KHX.mjs");
10894
10894
  const transTarget = await evaluateTransitions(
10895
10895
  onFinish.transitions,
10896
10896
  forEachParent,
@@ -10950,7 +10950,7 @@ async function executeCheckWithForEachItems2(checkId, forEachParent, forEachItem
10950
10950
  `[LevelDispatch] Error evaluating on_finish transitions for ${forEachParent}: ${e instanceof Error ? e.message : String(e)}`
10951
10951
  );
10952
10952
  }
10953
- const { evaluateGoto: evaluateGoto2 } = await import("./routing-XALEDC2G.mjs");
10953
+ const { evaluateGoto: evaluateGoto2 } = await import("./routing-CVQT4KHX.mjs");
10954
10954
  if (context2.debug) {
10955
10955
  logger.info(
10956
10956
  `[LevelDispatch] Evaluating on_finish.goto_js for forEach parent: ${forEachParent}`
@@ -14041,7 +14041,7 @@ var init_state_machine_execution_engine = __esm({
14041
14041
  try {
14042
14042
  const map = options?.webhookContext?.webhookData;
14043
14043
  if (map) {
14044
- const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-4YFVBGYU.mjs");
14044
+ const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-I4BCWKRU.mjs");
14045
14045
  const reg = CheckProviderRegistry2.getInstance();
14046
14046
  const p = reg.getProvider("http_input");
14047
14047
  if (p && typeof p.setWebhookContext === "function") p.setWebhookContext(map);
@@ -14154,7 +14154,7 @@ var init_state_machine_execution_engine = __esm({
14154
14154
  logger.info("[StateMachine] Using state machine engine");
14155
14155
  }
14156
14156
  if (!config) {
14157
- const { ConfigManager } = await import("./config-TSA5FUOM.mjs");
14157
+ const { ConfigManager } = await import("./config-JE4HKTWW.mjs");
14158
14158
  const configManager = new ConfigManager();
14159
14159
  config = await configManager.getDefaultConfig();
14160
14160
  logger.debug("[StateMachine] Using default configuration (no config provided)");
@@ -14164,7 +14164,7 @@ var init_state_machine_execution_engine = __esm({
14164
14164
  tag_filter: tagFilter
14165
14165
  } : config;
14166
14166
  try {
14167
- const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-4YFVBGYU.mjs");
14167
+ const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-I4BCWKRU.mjs");
14168
14168
  const registry = CheckProviderRegistry2.getInstance();
14169
14169
  registry.setCustomTools(configWithTagFilter.tools || {});
14170
14170
  } catch (error) {
@@ -14205,7 +14205,7 @@ var init_state_machine_execution_engine = __esm({
14205
14205
  logger.debug(
14206
14206
  `[PolicyEngine] Loading enterprise policy engine (engine=${configWithTagFilter.policy.engine})`
14207
14207
  );
14208
- const { loadEnterprisePolicyEngine } = await import("./enterprise/loader");
14208
+ const { loadEnterprisePolicyEngine } = await import("./loader-ZNKKJEZ3.mjs");
14209
14209
  context2.policyEngine = await loadEnterprisePolicyEngine(configWithTagFilter.policy);
14210
14210
  logger.debug(
14211
14211
  `[PolicyEngine] Initialized: ${context2.policyEngine?.constructor?.name || "unknown"}`
@@ -14228,7 +14228,7 @@ var init_state_machine_execution_engine = __esm({
14228
14228
  try {
14229
14229
  const webhookData = this.executionContext?.webhookContext?.webhookData;
14230
14230
  if (webhookData instanceof Map) {
14231
- const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-PCERK6ZZ.mjs");
14231
+ const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-6QLZRTQA.mjs");
14232
14232
  const slackCtx = extractSlackContext2(webhookData);
14233
14233
  if (slackCtx) {
14234
14234
  const payload = Array.from(webhookData.values())[0];
@@ -14257,7 +14257,7 @@ var init_state_machine_execution_engine = __esm({
14257
14257
  if (Array.isArray(configWithTagFilter.frontends) && configWithTagFilter.frontends.length > 0) {
14258
14258
  try {
14259
14259
  const { EventBus } = await import("./event-bus-5K3Y2FCS.mjs");
14260
- const { FrontendsHost } = await import("./host-QE4L7UXE.mjs");
14260
+ const { FrontendsHost } = await import("./host-QBJ7TOWG.mjs");
14261
14261
  const bus = new EventBus();
14262
14262
  context2.eventBus = bus;
14263
14263
  frontendsHost = new FrontendsHost(bus, logger);
@@ -14609,9 +14609,9 @@ var init_state_machine_execution_engine = __esm({
14609
14609
  * @returns Array of failure condition evaluation results
14610
14610
  */
14611
14611
  async evaluateFailureConditions(checkName, reviewSummary, config, previousOutputs, authorAssociation) {
14612
- const { FailureConditionEvaluator: FailureConditionEvaluator2 } = await import("./failure-condition-evaluator-FFWJRAEQ.mjs");
14612
+ const { FailureConditionEvaluator: FailureConditionEvaluator2 } = await import("./failure-condition-evaluator-5DZYMCGW.mjs");
14613
14613
  const evaluator = new FailureConditionEvaluator2();
14614
- const { addEvent: addEvent3 } = await import("./trace-helpers-3FFAI7X3.mjs");
14614
+ const { addEvent: addEvent3 } = await import("./trace-helpers-WJXYVV4S.mjs");
14615
14615
  const { addFailIfTriggered } = await import("./metrics-JTOG2HNO.mjs");
14616
14616
  const checkConfig = config.checks?.[checkName];
14617
14617
  if (!checkConfig) {
@@ -15447,7 +15447,7 @@ var init_scheduler = __esm({
15447
15447
  inputs: schedule.workflowInputs
15448
15448
  });
15449
15449
  if (this.taskStore) {
15450
- const { trackExecution } = await import("./track-execution-AMQQNXKE.mjs");
15450
+ const { trackExecution } = await import("./track-execution-MKIQXP2C.mjs");
15451
15451
  await trackExecution(
15452
15452
  {
15453
15453
  taskStore: this.taskStore,
@@ -15576,7 +15576,7 @@ Please provide an updated response based on the reminder above. You may referenc
15576
15576
  debug: process.env.VISOR_DEBUG === "true"
15577
15577
  });
15578
15578
  if (this.taskStore) {
15579
- const { trackExecution } = await import("./track-execution-AMQQNXKE.mjs");
15579
+ const { trackExecution } = await import("./track-execution-MKIQXP2C.mjs");
15580
15580
  await trackExecution(
15581
15581
  {
15582
15582
  taskStore: this.taskStore,
@@ -16795,6 +16795,7 @@ var init_mcp_custom_sse_server = __esm({
16795
16795
  workflowContext;
16796
16796
  keepaliveInterval = null;
16797
16797
  activeToolCalls = 0;
16798
+ inFlightToolCalls = /* @__PURE__ */ new Set();
16798
16799
  lastActivityAt = Date.now();
16799
16800
  gracefulStopRequested = false;
16800
16801
  static KEEPALIVE_INTERVAL_MS = 3e4;
@@ -16925,6 +16926,53 @@ var init_mcp_custom_sse_server = __esm({
16925
16926
  this.keepaliveInterval = null;
16926
16927
  }
16927
16928
  }
16929
+ beginToolCall(toolName, workspace) {
16930
+ if (workspace) {
16931
+ workspace.acquire();
16932
+ }
16933
+ const toolCall = {
16934
+ toolName,
16935
+ startedAt: Date.now(),
16936
+ workspace,
16937
+ counted: true,
16938
+ released: false
16939
+ };
16940
+ this.inFlightToolCalls.add(toolCall);
16941
+ this.activeToolCalls++;
16942
+ this.lastActivityAt = Date.now();
16943
+ return toolCall;
16944
+ }
16945
+ finalizeToolCall(toolCall, reason) {
16946
+ if (toolCall.counted) {
16947
+ this.activeToolCalls = Math.max(0, this.activeToolCalls - 1);
16948
+ toolCall.counted = false;
16949
+ }
16950
+ if (toolCall.workspace && !toolCall.released) {
16951
+ toolCall.workspace.release();
16952
+ toolCall.released = true;
16953
+ }
16954
+ this.inFlightToolCalls.delete(toolCall);
16955
+ this.lastActivityAt = Date.now();
16956
+ if (reason === "forced-stop") {
16957
+ logger.warn(
16958
+ `[CustomToolsSSEServer:${this.sessionId}] Force-released stranded tool call '${toolCall.toolName}' after ${Date.now() - toolCall.startedAt}ms`
16959
+ );
16960
+ }
16961
+ }
16962
+ forceDrainToolCalls() {
16963
+ if (this.inFlightToolCalls.size === 0) {
16964
+ if (this.activeToolCalls > 0) {
16965
+ logger.warn(
16966
+ `[CustomToolsSSEServer:${this.sessionId}] Resetting active tool counter with no in-flight records (${this.activeToolCalls})`
16967
+ );
16968
+ this.activeToolCalls = 0;
16969
+ }
16970
+ return;
16971
+ }
16972
+ for (const toolCall of Array.from(this.inFlightToolCalls)) {
16973
+ this.finalizeToolCall(toolCall, "forced-stop");
16974
+ }
16975
+ }
16928
16976
  /**
16929
16977
  * Stop the server and cleanup resources
16930
16978
  */
@@ -16955,6 +17003,7 @@ var init_mcp_custom_sse_server = __esm({
16955
17003
  logger.warn(
16956
17004
  `[CustomToolsSSEServer:${this.sessionId}] Drain timeout reached; stopping with ${this.activeToolCalls} active tool call(s)`
16957
17005
  );
17006
+ this.forceDrainToolCalls();
16958
17007
  }
16959
17008
  }
16960
17009
  if (this.debug) {
@@ -17339,11 +17388,7 @@ var init_mcp_custom_sse_server = __esm({
17339
17388
  */
17340
17389
  async handleToolCall(id, toolName, args) {
17341
17390
  const workspace = this.workflowContext?.workspace;
17342
- if (workspace) {
17343
- workspace.acquire();
17344
- }
17345
- this.activeToolCalls++;
17346
- this.lastActivityAt = Date.now();
17391
+ const toolCall = this.beginToolCall(toolName, workspace);
17347
17392
  try {
17348
17393
  if (this.debug) {
17349
17394
  logger.debug(
@@ -17630,11 +17675,7 @@ var init_mcp_custom_sse_server = __esm({
17630
17675
  }
17631
17676
  };
17632
17677
  } finally {
17633
- this.activeToolCalls = Math.max(0, this.activeToolCalls - 1);
17634
- this.lastActivityAt = Date.now();
17635
- if (workspace) {
17636
- workspace.release();
17637
- }
17678
+ this.finalizeToolCall(toolCall, "completed");
17638
17679
  }
17639
17680
  }
17640
17681
  /**
@@ -42425,8 +42466,8 @@ function buildBuiltinGlobals(opts) {
42425
42466
  const asyncFunctionNames = /* @__PURE__ */ new Set();
42426
42467
  const scheduleFn = async (args = {}) => {
42427
42468
  try {
42428
- const { handleScheduleAction: handleScheduleAction2, buildScheduleToolContext: buildScheduleToolContext2 } = await import("./schedule-tool-ZMX3Y7LF.mjs");
42429
- const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-PCERK6ZZ.mjs");
42469
+ const { handleScheduleAction: handleScheduleAction2, buildScheduleToolContext: buildScheduleToolContext2 } = await import("./schedule-tool-AECLFHSY.mjs");
42470
+ const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-6QLZRTQA.mjs");
42430
42471
  const parentCtx = opts.sessionInfo?._parentContext;
42431
42472
  const webhookData = parentCtx?.prInfo?.eventContext?.webhookData;
42432
42473
  const visorCfg = parentCtx?.config;
@@ -46150,4 +46191,4 @@ undici/lib/fetch/body.js:
46150
46191
  undici/lib/websocket/frame.js:
46151
46192
  (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
46152
46193
  */
46153
- //# sourceMappingURL=chunk-4DVP6KVC.mjs.map
46194
+ //# sourceMappingURL=chunk-TQQNSHQV.mjs.map