@askexenow/exe-os 0.9.205 → 0.9.207

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 (132) hide show
  1. package/dist/{backfill-metadata-BT4RLVMZ.js → backfill-metadata-4N22ZA6N.js} +1 -1
  2. package/dist/bin/agentic-ontology-backfill.js +1 -1
  3. package/dist/bin/agentic-reflection-backfill.js +1 -1
  4. package/dist/bin/agentic-semantic-label.js +1 -1
  5. package/dist/bin/backfill-conversations.js +1 -1
  6. package/dist/bin/backfill-responses.js +1 -1
  7. package/dist/bin/backfill-vectors.js +2 -2
  8. package/dist/bin/bulk-sync-postgres.js +1 -1
  9. package/dist/bin/cleanup-stale-review-tasks.js +3 -3
  10. package/dist/bin/cli.js +4 -4
  11. package/dist/bin/exe-assign.js +1 -1
  12. package/dist/bin/exe-boot.js +4 -4
  13. package/dist/bin/exe-dispatch.js +3 -3
  14. package/dist/bin/exe-doctor.js +1 -1
  15. package/dist/bin/exe-export-behaviors.js +2 -2
  16. package/dist/bin/exe-forget.js +3 -3
  17. package/dist/bin/exe-gateway.js +4 -4
  18. package/dist/bin/exe-heartbeat.js +3 -3
  19. package/dist/bin/exe-kill.js +4 -4
  20. package/dist/bin/exe-launch-agent.js +2 -2
  21. package/dist/bin/exe-pending-messages.js +4 -4
  22. package/dist/bin/exe-pending-notifications.js +3 -3
  23. package/dist/bin/exe-pending-reviews.js +3 -3
  24. package/dist/bin/exe-review.js +4 -4
  25. package/dist/bin/exe-search.js +2 -2
  26. package/dist/bin/exe-session-cleanup.js +6 -6
  27. package/dist/bin/exe-start-codex.js +1 -1
  28. package/dist/bin/exe-start-opencode.js +1 -1
  29. package/dist/bin/exe-status.js +4 -4
  30. package/dist/bin/exe-team.js +1 -1
  31. package/dist/bin/git-sweep.js +3 -3
  32. package/dist/bin/graph-backfill.js +1 -1
  33. package/dist/bin/graph-export.js +2 -2
  34. package/dist/bin/import-history.js +1 -1
  35. package/dist/bin/intercom-check.js +3 -3
  36. package/dist/bin/orchestration-metrics.js +1 -1
  37. package/dist/bin/scan-tasks.js +3 -3
  38. package/dist/bin/shard-migrate.js +1 -1
  39. package/dist/{capacity-monitor-EPHJTSKF.js → capacity-monitor-EHXIFEE2.js} +3 -3
  40. package/dist/{catchup-brief-HVITENL5.js → catchup-brief-AYLBTVRM.js} +4 -4
  41. package/dist/{chunk-MZ2BL3JP.js → chunk-3BV34EJB.js} +1 -1
  42. package/dist/{chunk-VG3VVFF5.js → chunk-3M2CCVXM.js} +1 -1
  43. package/dist/{chunk-XSOKVFQ6.js → chunk-4EKVVGVV.js} +1 -1
  44. package/dist/{chunk-FMKD6N33.js → chunk-4EOXPKWA.js} +5 -5
  45. package/dist/{chunk-O2JGR7EU.js → chunk-7VDMUMHM.js} +3 -3
  46. package/dist/{chunk-7DTEJAIC.js → chunk-BS6YQM5R.js} +1 -1
  47. package/dist/{chunk-GZIAQYGI.js → chunk-CX6GL3ZJ.js} +12 -0
  48. package/dist/{chunk-YOXXZAOR.js → chunk-DBSMRM52.js} +2 -2
  49. package/dist/{chunk-THFFC43M.js → chunk-EAHUS6WU.js} +1 -1
  50. package/dist/{chunk-ZDK3M72Z.js → chunk-FLCWUX6G.js} +1 -1
  51. package/dist/{chunk-HLYNKMAG.js → chunk-MB7PRC5E.js} +1 -1
  52. package/dist/{chunk-W4BFBCZA.js → chunk-MGPVDQIM.js} +1 -1
  53. package/dist/{chunk-EUMLEWXO.js → chunk-MMLE3M4J.js} +1 -1
  54. package/dist/{chunk-HMGIQNME.js → chunk-OBVXTLRM.js} +3 -3
  55. package/dist/{chunk-YXHY5F34.js → chunk-PNQ74YDS.js} +2 -2
  56. package/dist/{chunk-22GPB6FO.js → chunk-QOAPYITU.js} +47 -29
  57. package/dist/{chunk-VH6WU3GK.js → chunk-QOTQZAAE.js} +1 -1
  58. package/dist/{chunk-H7U7FPQF.js → chunk-RRMPIH6C.js} +3 -3
  59. package/dist/{chunk-JUB74GFQ.js → chunk-RS5JCKEP.js} +1 -1
  60. package/dist/{chunk-MQX47XMP.js → chunk-SQK3Q6VY.js} +2 -2
  61. package/dist/{chunk-6MOFCQFH.js → chunk-T4BKQ3CX.js} +23 -23
  62. package/dist/{chunk-PXDR3UTB.js → chunk-T4TMVXF5.js} +4 -4
  63. package/dist/{chunk-6VVSXO3M.js → chunk-TV7ZTQ7L.js} +3 -3
  64. package/dist/{chunk-5HTEMMOJ.js → chunk-WGOVSJNR.js} +1 -1
  65. package/dist/{chunk-PHCK4KQW.js → chunk-YQKFNXGL.js} +2 -2
  66. package/dist/{crm-webhook-AVG4F2NB.js → crm-webhook-VSPYINPL.js} +2 -2
  67. package/dist/{cto-delegation-gate-ZTNJLSPO.js → cto-delegation-gate-W7ESM5IQ.js} +2 -2
  68. package/dist/{daemon-orchestration-AKICH7C5.js → daemon-orchestration-TC3JWVDC.js} +4 -4
  69. package/dist/{exe-export-LL4CXNLT.js → exe-export-6NC4TNCZ.js} +1 -1
  70. package/dist/{exe-import-JNKAAJ5T.js → exe-import-GQRGZKW3.js} +1 -1
  71. package/dist/{fast-db-init-UNK4BEEO.js → fast-db-init-4ETTWASA.js} +1 -1
  72. package/dist/gateway/index.js +5 -5
  73. package/dist/{git-task-sweep-PT3RIE6W.js → git-task-sweep-HMSTHZ6X.js} +3 -3
  74. package/dist/hooks/bug-report-worker.js +4 -4
  75. package/dist/hooks/codex-stop-task-finalizer.js +4 -4
  76. package/dist/hooks/commit-complete.js +5 -5
  77. package/dist/hooks/error-recall.js +2 -2
  78. package/dist/hooks/ingest.js +2 -2
  79. package/dist/hooks/instructions-loaded.js +1 -1
  80. package/dist/hooks/manifest.json +18 -18
  81. package/dist/hooks/notification.js +1 -1
  82. package/dist/hooks/post-compact.js +3 -3
  83. package/dist/hooks/post-tool-combined.js +2 -2
  84. package/dist/hooks/pre-compact.js +4 -4
  85. package/dist/hooks/pre-tool-use.js +7 -7
  86. package/dist/hooks/prompt-submit.js +9 -9
  87. package/dist/hooks/session-end.js +5 -5
  88. package/dist/hooks/session-start.js +4 -4
  89. package/dist/hooks/stop.js +6 -6
  90. package/dist/hooks/subagent-stop.js +3 -3
  91. package/dist/hooks/summary-worker.js +6 -6
  92. package/dist/index.js +9 -9
  93. package/dist/lib/consolidation.js +2 -2
  94. package/dist/lib/exe-daemon.js +56 -51
  95. package/dist/lib/hybrid-search.js +2 -2
  96. package/dist/lib/messaging.js +3 -3
  97. package/dist/lib/schedules.js +2 -2
  98. package/dist/lib/store.js +1 -1
  99. package/dist/lib/tasks.js +3 -3
  100. package/dist/lib/tmux-routing.js +2 -2
  101. package/dist/lib/tmux-status.js +3 -1
  102. package/dist/mcp/register-tools.js +22 -22
  103. package/dist/mcp/server.js +23 -23
  104. package/dist/mcp/tools/create-task.js +4 -4
  105. package/dist/mcp/tools/list-tasks.js +4 -4
  106. package/dist/mcp/tools/send-message.js +4 -4
  107. package/dist/mcp/tools/update-task.js +4 -4
  108. package/dist/{notifications-6GRSVIP6.js → notifications-25FGAXTC.js} +2 -2
  109. package/dist/{orchestrator-QQKU4VM2.js → orchestrator-ZWPDXMW4.js} +3 -3
  110. package/dist/{reranker-JTDM3MV2.js → reranker-TRLLNJHH.js} +1 -1
  111. package/dist/{review-polling-MWBVXHG3.js → review-polling-QQMFB3Q4.js} +3 -3
  112. package/dist/runtime/index.js +4 -4
  113. package/dist/{session-events-FRB3UYJG.js → session-events-OWSPMDJV.js} +3 -3
  114. package/dist/{session-scope-7BZTNB2X.js → session-scope-PKBCQOLO.js} +2 -2
  115. package/dist/{task-enforcement-VB5P45ZM.js → task-enforcement-M2NU3OVK.js} +2 -2
  116. package/dist/{task-scope-ULC62J6G.js → task-scope-LQRP3MQ2.js} +2 -2
  117. package/dist/{tasks-crud-IBSTM6ID.js → tasks-crud-TMYB245Z.js} +2 -2
  118. package/dist/{tasks-review-P4MCKBDT.js → tasks-review-GJWB2BPT.js} +2 -2
  119. package/dist/tui/App.js +8 -8
  120. package/dist/{tui-data-YAT6A36V.js → tui-data-ZVRIZAIF.js} +2 -2
  121. package/dist/{worker-gate-27O2WEYU.js → worker-gate-VZLM2AU3.js} +1 -1
  122. package/dist/{workflow-engine-4T36KCTQ.js → workflow-engine-ESXHBY55.js} +2 -2
  123. package/package.json +1 -1
  124. package/release-notes.json +93 -93
  125. /package/dist/{chunk-ONCFSN5C.js → chunk-5YFC6HQX.js} +0 -0
  126. /package/dist/{chunk-TCBUBBTL.js → chunk-KJVFW5C7.js} +0 -0
  127. /package/dist/{chunk-2THPPZF2.js → chunk-MTR5SMNA.js} +0 -0
  128. /package/dist/{chunk-AF7A5IQ5.js → chunk-P5J37OSU.js} +0 -0
  129. /package/dist/{chunk-GONOOIFL.js → chunk-SEPXWHA3.js} +0 -0
  130. /package/dist/{core-memory-3QGHBERR.js → core-memory-6JX6V4QR.js} +0 -0
  131. /package/dist/{exe-key-C5UQ77AT.js → exe-key-K7FHMOVL.js} +0 -0
  132. /package/dist/{skill-refinement-7C7X42Z5.js → skill-refinement-KL2INB5E.js} +0 -0
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  queryTaskRows
4
- } from "../chunk-FMKD6N33.js";
4
+ } from "../chunk-4EOXPKWA.js";
5
5
  import "../chunk-FYJCMGTD.js";
6
6
  import "../chunk-QI4IXJN7.js";
7
7
  import "../chunk-IR4L6K5L.js";
8
8
  import "../chunk-5YDHBZCO.js";
9
9
  import "../chunk-G4QFC45N.js";
10
- import "../chunk-GZIAQYGI.js";
10
+ import "../chunk-CX6GL3ZJ.js";
11
11
  import "../chunk-ITYWLFYC.js";
12
12
  import "../chunk-ZQX6UOP6.js";
13
13
  import "../chunk-6RX2XEET.js";
@@ -73,7 +73,7 @@ function checkMcpHealth() {
73
73
  }
74
74
  }
75
75
  async function scanFromDb(agentId, tmuxSession, projectName) {
76
- const { fastDbInit } = await import("../fast-db-init-UNK4BEEO.js");
76
+ const { fastDbInit } = await import("../fast-db-init-4ETTWASA.js");
77
77
  try {
78
78
  await fastDbInit();
79
79
  } catch (err) {
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  disposeStore,
10
10
  initStore
11
- } from "../chunk-TCBUBBTL.js";
11
+ } from "../chunk-KJVFW5C7.js";
12
12
  import "../chunk-CHCA3ZM2.js";
13
13
  import "../chunk-XJQASQPO.js";
14
14
  import "../chunk-MP2AFCGL.js";
@@ -8,15 +8,15 @@ import {
8
8
  isAtCapacity,
9
9
  isWithinRelaunchCooldown,
10
10
  pollCapacityDead
11
- } from "./chunk-5HTEMMOJ.js";
11
+ } from "./chunk-WGOVSJNR.js";
12
12
  import "./chunk-3S3ERUUH.js";
13
- import "./chunk-FMKD6N33.js";
13
+ import "./chunk-4EOXPKWA.js";
14
14
  import "./chunk-FYJCMGTD.js";
15
15
  import "./chunk-QI4IXJN7.js";
16
16
  import "./chunk-IR4L6K5L.js";
17
17
  import "./chunk-5YDHBZCO.js";
18
18
  import "./chunk-G4QFC45N.js";
19
- import "./chunk-GZIAQYGI.js";
19
+ import "./chunk-CX6GL3ZJ.js";
20
20
  import "./chunk-ITYWLFYC.js";
21
21
  import "./chunk-ZQX6UOP6.js";
22
22
  import "./chunk-6RX2XEET.js";
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  lightweightSearch
3
- } from "./chunk-PXDR3UTB.js";
4
- import "./chunk-TCBUBBTL.js";
3
+ } from "./chunk-T4TMVXF5.js";
4
+ import "./chunk-KJVFW5C7.js";
5
5
  import "./chunk-CHCA3ZM2.js";
6
6
  import "./chunk-XJQASQPO.js";
7
7
  import {
8
8
  sessionScopeFilter,
9
9
  strictSessionScopeFilter
10
- } from "./chunk-FMKD6N33.js";
10
+ } from "./chunk-4EOXPKWA.js";
11
11
  import "./chunk-FYJCMGTD.js";
12
12
  import "./chunk-QI4IXJN7.js";
13
13
  import "./chunk-IR4L6K5L.js";
14
14
  import "./chunk-5YDHBZCO.js";
15
15
  import "./chunk-G4QFC45N.js";
16
- import "./chunk-GZIAQYGI.js";
16
+ import "./chunk-CX6GL3ZJ.js";
17
17
  import "./chunk-ITYWLFYC.js";
18
18
  import "./chunk-ZQX6UOP6.js";
19
19
  import "./chunk-6RX2XEET.js";
@@ -2,7 +2,7 @@ import {
2
2
  listWorkflowDefinitions,
3
3
  runWorkflow,
4
4
  startWorkflow
5
- } from "./chunk-VG3VVFF5.js";
5
+ } from "./chunk-3M2CCVXM.js";
6
6
  import {
7
7
  initCRMBridge
8
8
  } from "./chunk-ONKIWA3R.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  executeAction,
3
3
  substituteTemplate
4
- } from "./chunk-ONCFSN5C.js";
4
+ } from "./chunk-5YFC6HQX.js";
5
5
 
6
6
  // src/automation/workflow-engine.ts
7
7
  import { randomUUID } from "crypto";
@@ -4,7 +4,7 @@ import {
4
4
  resolveExeSession,
5
5
  sendIntercom,
6
6
  strictSessionScopeFilter
7
- } from "./chunk-FMKD6N33.js";
7
+ } from "./chunk-4EOXPKWA.js";
8
8
  import {
9
9
  recordOrchestrationEventBestEffort
10
10
  } from "./chunk-ITYWLFYC.js";
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-5YDHBZCO.js";
13
13
  import {
14
14
  listTmuxSessions
15
- } from "./chunk-GZIAQYGI.js";
15
+ } from "./chunk-CX6GL3ZJ.js";
16
16
  import {
17
17
  recordOrchestrationEventBestEffort
18
18
  } from "./chunk-ITYWLFYC.js";
@@ -374,7 +374,7 @@ async function createTaskCore(input) {
374
374
  if (isCoordinatorSession) {
375
375
  earlySessionScope = resolved;
376
376
  } else {
377
- const { getSessionProject } = await import("./session-scope-7BZTNB2X.js");
377
+ const { getSessionProject } = await import("./session-scope-PKBCQOLO.js");
378
378
  const sessionProject = getSessionProject(resolved);
379
379
  if (sessionProject && sessionProject !== input.projectName) {
380
380
  scopeMismatchWarning = `session/project mismatch: session "${resolved}" owns "${sessionProject}" but task targets "${input.projectName}". Routed to default scope.`;
@@ -823,7 +823,7 @@ async function updateTaskStatus(input) {
823
823
  } catch {
824
824
  }
825
825
  try {
826
- const { writeNotification: writeNotification2 } = await import("./notifications-6GRSVIP6.js");
826
+ const { writeNotification: writeNotification2 } = await import("./notifications-25FGAXTC.js");
827
827
  await writeNotification2({
828
828
  agentId: reviewer,
829
829
  agentRole: isCoordinatorName(reviewer) ? "COO" : "manager",
@@ -1175,7 +1175,7 @@ ${input.result}` : `\u26A0\uFE0F ${warning}`;
1175
1175
  }
1176
1176
  if (input.status === "done" || input.status === "needs_review") {
1177
1177
  try {
1178
- const { incrementSkillSuccess } = await import("./skill-refinement-7C7X42Z5.js");
1178
+ const { incrementSkillSuccess } = await import("./skill-refinement-KL2INB5E.js");
1179
1179
  await incrementSkillSuccess(
1180
1180
  String(row.assigned_to),
1181
1181
  row.project_name ? String(row.project_name) : null
@@ -2304,7 +2304,7 @@ async function verifyPaneAtCapacity(sessionName) {
2304
2304
  reason: `capture-pane failed: ${err instanceof Error ? err.message : String(err)}`
2305
2305
  };
2306
2306
  }
2307
- const { isAtCapacity } = await import("./capacity-monitor-EPHJTSKF.js");
2307
+ const { isAtCapacity } = await import("./capacity-monitor-EHXIFEE2.js");
2308
2308
  if (!isAtCapacity(pane)) {
2309
2309
  return {
2310
2310
  atCapacity: false,
@@ -11,7 +11,7 @@ import {
11
11
  sessionScopeFilter,
12
12
  updateTaskStatus,
13
13
  writeNotification
14
- } from "./chunk-FMKD6N33.js";
14
+ } from "./chunk-4EOXPKWA.js";
15
15
  import {
16
16
  getTransport
17
17
  } from "./chunk-5YDHBZCO.js";
@@ -159,7 +159,7 @@ async function dispatchTaskToEmployee(input) {
159
159
  let crossProject = false;
160
160
  if (input.projectName) {
161
161
  try {
162
- const { assertSessionScope } = await import("./session-scope-7BZTNB2X.js");
162
+ const { assertSessionScope } = await import("./session-scope-PKBCQOLO.js");
163
163
  const check = assertSessionScope("dispatch_task", input.projectName);
164
164
  if (check.reason === "cross_session_denied") {
165
165
  crossProject = true;
@@ -500,7 +500,7 @@ async function updateTask(input) {
500
500
  await markTaskNotificationsRead(taskFile);
501
501
  if (input.status === "needs_review" && !isCoordinator) {
502
502
  try {
503
- const { writeNotification: writeNotification2 } = await import("./notifications-6GRSVIP6.js");
503
+ const { writeNotification: writeNotification2 } = await import("./notifications-25FGAXTC.js");
504
504
  await writeNotification2({
505
505
  agentId: String(row.assigned_to),
506
506
  agentRole: String(row.assigned_to),
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-3N4ZEPZI.js";
4
4
  import {
5
5
  listTasks
6
- } from "./chunk-FMKD6N33.js";
6
+ } from "./chunk-4EOXPKWA.js";
7
7
 
8
8
  // src/mcp/tools/list-tasks.ts
9
9
  import { z } from "zod";
@@ -65,6 +65,17 @@ function getPaneCwd(windowName) {
65
65
  return void 0;
66
66
  }
67
67
  }
68
+ async function getPaneCwdAsync(windowName) {
69
+ try {
70
+ const { promisify } = await import("util");
71
+ const { execFile } = await import("child_process");
72
+ const exec = promisify(execFile);
73
+ const { stdout } = await exec("tmux", ["display-message", "-t", windowName, "-p", "#{pane_current_path}"], { timeout: 3e3 });
74
+ return stdout.trim() || void 0;
75
+ } catch {
76
+ return void 0;
77
+ }
78
+ }
68
79
  function projectFromPath(dir) {
69
80
  try {
70
81
  const root = execSync("git -C " + JSON.stringify(dir) + " rev-parse --show-toplevel 2>/dev/null", {
@@ -253,6 +264,7 @@ export {
253
264
  listTmuxWindows,
254
265
  capturePaneLines,
255
266
  getPaneCwd,
267
+ getPaneCwdAsync,
256
268
  parseActivity,
257
269
  parseContextPercentage,
258
270
  getEmployeeStatuses,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sessionScopeFilter
3
- } from "./chunk-FMKD6N33.js";
3
+ } from "./chunk-4EOXPKWA.js";
4
4
 
5
5
  // src/lib/git-task-sweep.ts
6
6
  import { execSync } from "child_process";
@@ -178,7 +178,7 @@ async function sweepTasks(projectName, options = {}) {
178
178
  }
179
179
  if (!dryRun) {
180
180
  try {
181
- const { updateTaskStatus } = await import("./tasks-crud-IBSTM6ID.js");
181
+ const { updateTaskStatus } = await import("./tasks-crud-TMYB245Z.js");
182
182
  await updateTaskStatus({
183
183
  taskId: task.id,
184
184
  status: "needs_review",
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getCurrentSessionScope,
3
3
  strictSessionScopeFilter
4
- } from "./chunk-FMKD6N33.js";
4
+ } from "./chunk-4EOXPKWA.js";
5
5
  import {
6
6
  getProjectName
7
7
  } from "./chunk-OPU3NYOO.js";
@@ -111,7 +111,7 @@ function releaseBackfillLock() {
111
111
  }
112
112
  async function getTaskAwareCapacity() {
113
113
  const { getClient } = await import("./lib/database.js");
114
- const { sessionScopeFilter } = await import("./task-scope-ULC62J6G.js");
114
+ const { sessionScopeFilter } = await import("./task-scope-LQRP3MQ2.js");
115
115
  const client = getClient();
116
116
  const scope = sessionScopeFilter();
117
117
  const result = await client.execute({
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  processCRMEvent
3
- } from "./chunk-ONCFSN5C.js";
3
+ } from "./chunk-5YFC6HQX.js";
4
4
 
5
5
  // src/gateway/adapters/crm-webhook.ts
6
6
  function parseTwentyWebhook(payload) {
@@ -9,7 +9,7 @@ import {
9
9
  isEmployeeAlive,
10
10
  sessionScopeFilter,
11
11
  updateTaskStatus
12
- } from "./chunk-FMKD6N33.js";
12
+ } from "./chunk-4EOXPKWA.js";
13
13
  import {
14
14
  DEFAULT_COORDINATOR_TEMPLATE_NAME,
15
15
  getCoordinatorName
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  vectorToBlob
3
- } from "./chunk-TCBUBBTL.js";
3
+ } from "./chunk-KJVFW5C7.js";
4
4
  import {
5
5
  extractKeywords,
6
6
  keywordsToString
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  fastDbInit
3
- } from "./chunk-2THPPZF2.js";
3
+ } from "./chunk-MTR5SMNA.js";
4
4
  import {
5
5
  sessionScopeFilter
6
- } from "./chunk-FMKD6N33.js";
6
+ } from "./chunk-4EOXPKWA.js";
7
7
  import {
8
8
  formatStatusAll,
9
9
  formatStatusDeep,
10
10
  getEmployeeStatuses,
11
11
  inTmux
12
- } from "./chunk-GZIAQYGI.js";
12
+ } from "./chunk-CX6GL3ZJ.js";
13
13
  import {
14
14
  getClient,
15
15
  isCoordinatorRole,
@@ -849,7 +849,7 @@ function formatReport(report, flags) {
849
849
  return lines.join("\n");
850
850
  }
851
851
  async function fixNullVectors() {
852
- const { tryAcquireWorkerSlot, registerWorkerPid } = await import("./worker-gate-27O2WEYU.js");
852
+ const { tryAcquireWorkerSlot, registerWorkerPid } = await import("./worker-gate-VZLM2AU3.js");
853
853
  if (!tryAcquireWorkerSlot()) {
854
854
  process.stderr.write("[exe-doctor] Worker gate full \u2014 waiting for existing backfill workers to finish\n");
855
855
  await new Promise((r) => setTimeout(r, 5e3));
@@ -970,7 +970,7 @@ function splitAtSentences(text, maxChunkSize) {
970
970
  }
971
971
  async function main(argv = process.argv.slice(2)) {
972
972
  const flags = parseFlags(argv);
973
- const { fastDbInit } = await import("./fast-db-init-UNK4BEEO.js");
973
+ const { fastDbInit } = await import("./fast-db-init-4ETTWASA.js");
974
974
  const client = await fastDbInit();
975
975
  const report = await runAudit(client, flags);
976
976
  console.log(formatReport(report, flags));
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-3S3ERUUH.js";
4
4
  import {
5
5
  updateTask
6
- } from "./chunk-O2JGR7EU.js";
6
+ } from "./chunk-7VDMUMHM.js";
7
7
  import {
8
8
  ensureEmployee,
9
9
  extractRootExe,
@@ -14,7 +14,7 @@ import {
14
14
  sessionScopeFilter,
15
15
  strictSessionScopeFilter,
16
16
  writeNotification
17
- } from "./chunk-FMKD6N33.js";
17
+ } from "./chunk-4EOXPKWA.js";
18
18
  import {
19
19
  queueIntercom
20
20
  } from "./chunk-QI4IXJN7.js";
@@ -27,7 +27,7 @@ import {
27
27
  import {
28
28
  listTmuxSessions,
29
29
  parseContextPercentage
30
- } from "./chunk-GZIAQYGI.js";
30
+ } from "./chunk-CX6GL3ZJ.js";
31
31
  import {
32
32
  recordOrchestrationEventBestEffort
33
33
  } from "./chunk-ITYWLFYC.js";
@@ -1621,37 +1621,55 @@ async function reapOrphanedWorktrees(deps, nowMs = Date.now()) {
1621
1621
  return result;
1622
1622
  }
1623
1623
  async function createWorktreeReaperRealDeps() {
1624
- const { getPaneCwd } = await import("./lib/tmux-status.js");
1624
+ const { getPaneCwdAsync } = await import("./lib/tmux-status.js");
1625
1625
  const { getGitRoot, isWorktreeDirty: isDirty } = await import("./worktree-QTCOX6RV.js");
1626
1626
  const { statSync: statSync2 } = await import("fs");
1627
1627
  const { basename } = await import("path");
1628
- return {
1629
- listTmuxSessions: () => listTmuxSessions(),
1630
- getPaneCwd: (s) => getPaneCwd(s),
1631
- listWorktrees: (repoRoot) => {
1632
- try {
1633
- const out = execSync("git worktree list --porcelain", {
1634
- cwd: repoRoot,
1635
- encoding: "utf-8",
1636
- timeout: 1e4,
1637
- stdio: ["pipe", "pipe", "pipe"]
1638
- });
1639
- const worktrees = [];
1640
- let currentPath = "";
1641
- for (const line of out.split("\n")) {
1642
- if (line.startsWith("worktree ")) {
1643
- currentPath = line.slice("worktree ".length);
1644
- } else if (line.startsWith("branch ") && currentPath) {
1645
- const branch = line.slice("branch refs/heads/".length);
1646
- worktrees.push({ path: currentPath, branch });
1647
- currentPath = "";
1648
- }
1628
+ const { promisify } = await import("util");
1629
+ const { execFile: execFileCb } = await import("child_process");
1630
+ const execFileAsync = promisify(execFileCb);
1631
+ const sessions = listTmuxSessions();
1632
+ const cwdMap = /* @__PURE__ */ new Map();
1633
+ const cwdPromises = sessions.map(async (s) => {
1634
+ try {
1635
+ const cwd = await getPaneCwdAsync(s);
1636
+ if (cwd) cwdMap.set(s, cwd);
1637
+ } catch {
1638
+ }
1639
+ });
1640
+ await Promise.all(cwdPromises);
1641
+ const repoRoots = /* @__PURE__ */ new Set();
1642
+ for (const cwd of cwdMap.values()) {
1643
+ const root = getGitRoot(cwd);
1644
+ if (root) repoRoots.add(root);
1645
+ }
1646
+ const worktreeCache = /* @__PURE__ */ new Map();
1647
+ const wtPromises = [...repoRoots].map(async (repoRoot) => {
1648
+ try {
1649
+ const { stdout } = await execFileAsync("git", ["worktree", "list", "--porcelain"], {
1650
+ cwd: repoRoot,
1651
+ timeout: 1e4
1652
+ });
1653
+ const worktrees = [];
1654
+ let currentPath = "";
1655
+ for (const line of stdout.split("\n")) {
1656
+ if (line.startsWith("worktree ")) {
1657
+ currentPath = line.slice("worktree ".length);
1658
+ } else if (line.startsWith("branch ") && currentPath) {
1659
+ const branch = line.slice("branch refs/heads/".length);
1660
+ worktrees.push({ path: currentPath, branch });
1661
+ currentPath = "";
1649
1662
  }
1650
- return worktrees;
1651
- } catch {
1652
- return [];
1653
1663
  }
1654
- },
1664
+ worktreeCache.set(repoRoot, worktrees);
1665
+ } catch {
1666
+ }
1667
+ });
1668
+ await Promise.all(wtPromises);
1669
+ return {
1670
+ listTmuxSessions: () => sessions,
1671
+ getPaneCwd: (s) => cwdMap.get(s),
1672
+ listWorktrees: (repoRoot) => worktreeCache.get(repoRoot) ?? [],
1655
1673
  isWorktreeDirty: (wtPath) => isDirty(wtPath),
1656
1674
  getDirMtimeMs: (dirPath) => {
1657
1675
  try {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  initStore
3
- } from "./chunk-TCBUBBTL.js";
3
+ } from "./chunk-KJVFW5C7.js";
4
4
  import {
5
5
  getClient,
6
6
  isInitialized
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-MLXJ5EZG.js";
4
4
  import {
5
5
  createTask
6
- } from "./chunk-O2JGR7EU.js";
6
+ } from "./chunk-7VDMUMHM.js";
7
7
  import {
8
8
  getActiveAgent
9
9
  } from "./chunk-3N4ZEPZI.js";
@@ -11,7 +11,7 @@ import {
11
11
  ensureEmployee,
12
12
  logTaskDispatch,
13
13
  resolveExeSession
14
- } from "./chunk-FMKD6N33.js";
14
+ } from "./chunk-4EOXPKWA.js";
15
15
  import {
16
16
  recordOrchestrationEventBestEffort
17
17
  } from "./chunk-ITYWLFYC.js";
@@ -243,7 +243,7 @@ function registerCreateTask(server) {
243
243
  let projectConflictOpts = {};
244
244
  try {
245
245
  const { getClient } = await import("./lib/database.js");
246
- const { sessionScopeFilter } = await import("./task-scope-ULC62J6G.js");
246
+ const { sessionScopeFilter } = await import("./task-scope-LQRP3MQ2.js");
247
247
  const client = getClient();
248
248
  const scope = sessionScopeFilter();
249
249
  const existing = await client.execute({
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sendMessage
3
- } from "./chunk-XSOKVFQ6.js";
3
+ } from "./chunk-4EKVVGVV.js";
4
4
  import {
5
5
  getActiveAgent
6
6
  } from "./chunk-3N4ZEPZI.js";
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  createCRMWebhookHandler,
6
6
  parseTwentyWebhook
7
- } from "./chunk-HLYNKMAG.js";
7
+ } from "./chunk-MB7PRC5E.js";
8
8
  import {
9
9
  WhatsAppAdapter
10
10
  } from "./chunk-ECSNSHZ7.js";
@@ -42,7 +42,7 @@ import {
42
42
  retryWithBackoff,
43
43
  routeMessage,
44
44
  validateGatewayConfig
45
- } from "./chunk-MZ2BL3JP.js";
45
+ } from "./chunk-3BV34EJB.js";
46
46
  import {
47
47
  OllamaProvider
48
48
  } from "./chunk-FWFFZGSC.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  listRecentSessionEvents
3
- } from "./chunk-THFFC43M.js";
3
+ } from "./chunk-EAHUS6WU.js";
4
4
  import {
5
5
  isRerankerAvailable,
6
6
  rerankWithScores
7
- } from "./chunk-AF7A5IQ5.js";
7
+ } from "./chunk-P5J37OSU.js";
8
8
  import {
9
9
  getEntityByName,
10
10
  getEntityNeighbors,
@@ -22,7 +22,7 @@ import {
22
22
  } from "./chunk-SEAFDIKF.js";
23
23
  import {
24
24
  AUTO_WAKE_MAX_RETRIES
25
- } from "./chunk-22GPB6FO.js";
25
+ } from "./chunk-QOAPYITU.js";
26
26
  import {
27
27
  getCachedLicenseGate
28
28
  } from "./chunk-GCMXBQ7Y.js";
@@ -52,7 +52,7 @@ import {
52
52
  } from "./chunk-XHTOAJYD.js";
53
53
  import {
54
54
  createOrRefreshResumeTask
55
- } from "./chunk-5HTEMMOJ.js";
55
+ } from "./chunk-WGOVSJNR.js";
56
56
  import {
57
57
  registerCreateReminder
58
58
  } from "./chunk-4RJD3GXL.js";
@@ -72,16 +72,16 @@ import {
72
72
  } from "./chunk-MKOW4EXB.js";
73
73
  import {
74
74
  registerSendMessage
75
- } from "./chunk-JUB74GFQ.js";
75
+ } from "./chunk-RS5JCKEP.js";
76
76
  import {
77
77
  registerCreateTask
78
- } from "./chunk-H7U7FPQF.js";
78
+ } from "./chunk-RRMPIH6C.js";
79
79
  import {
80
80
  registerListTasks
81
- } from "./chunk-7DTEJAIC.js";
81
+ } from "./chunk-BS6YQM5R.js";
82
82
  import {
83
83
  registerUpdateTask
84
- } from "./chunk-PHCK4KQW.js";
84
+ } from "./chunk-YQKFNXGL.js";
85
85
  import {
86
86
  TOKENS_PER_IDLE_MINUTE,
87
87
  countKillsSince,
@@ -100,10 +100,10 @@ import {
100
100
  import {
101
101
  createSchedule,
102
102
  parseHumanCron
103
- } from "./chunk-VH6WU3GK.js";
103
+ } from "./chunk-QOTQZAAE.js";
104
104
  import {
105
105
  status
106
- } from "./chunk-HMGIQNME.js";
106
+ } from "./chunk-OBVXTLRM.js";
107
107
  import {
108
108
  getAgentSpend
109
109
  } from "./chunk-434A3L6O.js";
@@ -122,7 +122,7 @@ import {
122
122
  fixShards,
123
123
  formatReport,
124
124
  runAudit
125
- } from "./chunk-YXHY5F34.js";
125
+ } from "./chunk-PNQ74YDS.js";
126
126
  import {
127
127
  runHealthCheck
128
128
  } from "./chunk-RAV23DU2.js";
@@ -166,7 +166,7 @@ import {
166
166
  groupMemories,
167
167
  runConsolidation,
168
168
  selectUnconsolidated
169
- } from "./chunk-EUMLEWXO.js";
169
+ } from "./chunk-MMLE3M4J.js";
170
170
  import {
171
171
  embed
172
172
  } from "./chunk-OUHHUKPC.js";
@@ -177,17 +177,17 @@ import {
177
177
  } from "./chunk-GD4VXNXO.js";
178
178
  import {
179
179
  updateTask
180
- } from "./chunk-O2JGR7EU.js";
180
+ } from "./chunk-7VDMUMHM.js";
181
181
  import {
182
182
  fastDbInit
183
- } from "./chunk-2THPPZF2.js";
183
+ } from "./chunk-MTR5SMNA.js";
184
184
  import {
185
185
  MAX_CONCURRENT_WORKERS
186
- } from "./chunk-ZDK3M72Z.js";
186
+ } from "./chunk-FLCWUX6G.js";
187
187
  import {
188
188
  hybridSearch,
189
189
  recentRecords
190
- } from "./chunk-PXDR3UTB.js";
190
+ } from "./chunk-T4TMVXF5.js";
191
191
  import {
192
192
  attachDocumentMetadata,
193
193
  flushBatch,
@@ -195,7 +195,7 @@ import {
195
195
  reserveVersions,
196
196
  vectorToBlob,
197
197
  writeMemory
198
- } from "./chunk-TCBUBBTL.js";
198
+ } from "./chunk-KJVFW5C7.js";
199
199
  import {
200
200
  extractKeywords,
201
201
  keywordsToString
@@ -210,7 +210,7 @@ import {
210
210
  sessionScopeFilter,
211
211
  updateTaskStatus,
212
212
  writeCheckpoint
213
- } from "./chunk-FMKD6N33.js";
213
+ } from "./chunk-4EOXPKWA.js";
214
214
  import {
215
215
  listSessions
216
216
  } from "./chunk-IR4L6K5L.js";
@@ -246,7 +246,7 @@ import {
246
246
  isScheduledTrigger,
247
247
  loadTriggers,
248
248
  sanitizeParam
249
- } from "./chunk-ONCFSN5C.js";
249
+ } from "./chunk-5YFC6HQX.js";
250
250
  import {
251
251
  pushConversationToCRM
252
252
  } from "./chunk-ONKIWA3R.js";
@@ -1560,7 +1560,7 @@ function registerMemory(server) {
1560
1560
  if (action === "core_get" || action === "core_set" || action === "core_delete") {
1561
1561
  const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-4RUP4VYK.js");
1562
1562
  const { agentId } = getActiveAgent2();
1563
- const { getCoreMemory, setCoreMemory, deleteCoreMemory, formatCoreMemoryBlock } = await import("./core-memory-3QGHBERR.js");
1563
+ const { getCoreMemory, setCoreMemory, deleteCoreMemory, formatCoreMemoryBlock } = await import("./core-memory-6JX6V4QR.js");
1564
1564
  if (action === "core_get") {
1565
1565
  const entries = await getCoreMemory(agentId);
1566
1566
  const block = formatCoreMemoryBlock(entries);
@@ -2285,7 +2285,7 @@ function registerResumeEmployee(server) {
2285
2285
  };
2286
2286
  }
2287
2287
  try {
2288
- const { isTmuxSessionAlive } = await import("./tasks-crud-IBSTM6ID.js");
2288
+ const { isTmuxSessionAlive } = await import("./tasks-crud-TMYB245Z.js");
2289
2289
  const now = (/* @__PURE__ */ new Date()).toISOString();
2290
2290
  for (const row of openTasks.rows) {
2291
2291
  const status2 = String(row.status);
@@ -5452,7 +5452,7 @@ async function getAgentSessionLoad() {
5452
5452
  return { sessions: [], totalLive: 0, busySessions: 0, idleSessions: 0 };
5453
5453
  }
5454
5454
  const { getClient: getClient2 } = await import("./lib/database.js");
5455
- const { sessionScopeFilter: sessionScopeFilter2 } = await import("./task-scope-ULC62J6G.js");
5455
+ const { sessionScopeFilter: sessionScopeFilter2 } = await import("./task-scope-LQRP3MQ2.js");
5456
5456
  const client = getClient2();
5457
5457
  const scope = sessionScopeFilter2();
5458
5458
  for (const s of liveAgentSessions) {
@@ -9548,7 +9548,7 @@ function registerWorkflowTool(server) {
9548
9548
  getWorkflowInstance,
9549
9549
  listWorkflowInstances,
9550
9550
  approveWorkflowStep
9551
- } = await import("./workflow-engine-4T36KCTQ.js");
9551
+ } = await import("./workflow-engine-ESXHBY55.js");
9552
9552
  try {
9553
9553
  switch (input.action) {
9554
9554
  case "create_workflow": {