@askexenow/exe-os 0.9.233 → 0.9.235

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 (142) hide show
  1. package/dist/{backfill-metadata-DQ7CJSYU.js → backfill-metadata-42OHVO74.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 +5 -5
  10. package/dist/bin/cli.js +6 -6
  11. package/dist/bin/exe-assign.js +1 -1
  12. package/dist/bin/exe-boot.js +6 -6
  13. package/dist/bin/exe-dispatch.js +5 -5
  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 +5 -5
  18. package/dist/bin/exe-heartbeat.js +5 -5
  19. package/dist/bin/exe-kill.js +6 -6
  20. package/dist/bin/exe-launch-agent.js +6 -6
  21. package/dist/bin/exe-pending-messages.js +6 -6
  22. package/dist/bin/exe-pending-notifications.js +5 -5
  23. package/dist/bin/exe-pending-reviews.js +5 -5
  24. package/dist/bin/exe-review.js +6 -6
  25. package/dist/bin/exe-search.js +2 -2
  26. package/dist/bin/exe-session-cleanup.js +9 -9
  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 +6 -6
  30. package/dist/bin/exe-team.js +1 -1
  31. package/dist/bin/git-sweep.js +5 -5
  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 +2 -2
  35. package/dist/bin/intercom-check.js +3 -3
  36. package/dist/bin/mcp-sessions.js +2 -2
  37. package/dist/bin/orchestration-metrics.js +2 -2
  38. package/dist/bin/scan-tasks.js +5 -5
  39. package/dist/bin/shard-migrate.js +1 -1
  40. package/dist/{capacity-monitor-4EFUNBHQ.js → capacity-monitor-S5VVRWNX.js} +5 -5
  41. package/dist/{catchup-brief-AREGE4U6.js → catchup-brief-QHZWZPDK.js} +6 -6
  42. package/dist/{chunk-3L4A54VE.js → chunk-2GFZSEST.js} +5 -5
  43. package/dist/{chunk-J5MOKLCJ.js → chunk-2UD2P2LO.js} +1 -1
  44. package/dist/{chunk-FOP5EAJZ.js → chunk-2V3TDLQ2.js} +6 -6
  45. package/dist/{chunk-HIWXAE6E.js → chunk-3I2EA54D.js} +1 -1
  46. package/dist/{chunk-G5WLNJSC.js → chunk-4CPXB27E.js} +1 -1
  47. package/dist/{chunk-CGBH7RVU.js → chunk-4TFOQEM7.js} +3 -3
  48. package/dist/{chunk-B4KT7ZX4.js → chunk-5GN363L5.js} +32 -32
  49. package/dist/{chunk-WJV6N65Y.js → chunk-5XAAMTTY.js} +2 -2
  50. package/dist/{chunk-WKVBGGSZ.js → chunk-65AEKCC2.js} +1 -1
  51. package/dist/{chunk-WD7JP4LN.js → chunk-ALVMBSU3.js} +1 -1
  52. package/dist/{chunk-AVICWQYY.js → chunk-CFHTPEIC.js} +1 -1
  53. package/dist/{chunk-OHCRCEPG.js → chunk-ERZDN63F.js} +4 -4
  54. package/dist/{chunk-C36GJWKH.js → chunk-EYMTIOBH.js} +1 -1
  55. package/dist/{chunk-5UH67CWJ.js → chunk-G2Q2QELX.js} +1 -1
  56. package/dist/{chunk-3HH4YLLN.js → chunk-HLWU3NEV.js} +2 -2
  57. package/dist/{chunk-JFUVMMBE.js → chunk-IJCGZ36F.js} +2 -2
  58. package/dist/{chunk-QRHVGJOB.js → chunk-JQUFMZHI.js} +80 -31
  59. package/dist/{chunk-O4MTX7JR.js → chunk-KZU2ZG6R.js} +2 -2
  60. package/dist/{chunk-35AKID7J.js → chunk-LNH5BL3I.js} +3 -3
  61. package/dist/{chunk-LQZULPXV.js → chunk-LSD6SHBJ.js} +1 -1
  62. package/dist/{chunk-WDSSDXXM.js → chunk-LWCQXP6U.js} +2 -2
  63. package/dist/{chunk-YXRY4LH2.js → chunk-MJMJMHFC.js} +3 -0
  64. package/dist/{chunk-LEK3ANCA.js → chunk-MQVA77HS.js} +1 -1
  65. package/dist/{chunk-GQHV2QYL.js → chunk-RP7BANLZ.js} +4 -4
  66. package/dist/{chunk-RJAKV7GY.js → chunk-SAVQLE3L.js} +1 -1
  67. package/dist/{chunk-5O5NXKDM.js → chunk-T7NGFQNB.js} +2 -2
  68. package/dist/{chunk-MOMOSSS3.js → chunk-TN4H5D45.js} +2 -2
  69. package/dist/{chunk-DIO7YUAT.js → chunk-XORJOW4J.js} +1 -1
  70. package/dist/{chunk-F4CQKTVZ.js → chunk-ZKFW6ZV3.js} +1 -1
  71. package/dist/{crm-webhook-RMHBLDL4.js → crm-webhook-MMMSL3YF.js} +2 -2
  72. package/dist/{cto-delegation-gate-D3TEAQGU.js → cto-delegation-gate-VBGJULVJ.js} +4 -4
  73. package/dist/{daemon-orchestration-Y7SJSLBI.js → daemon-orchestration-V7THLPEZ.js} +6 -6
  74. package/dist/{exe-export-4A74HNYL.js → exe-export-6YZOWOON.js} +1 -1
  75. package/dist/{exe-import-UZSWB6RS.js → exe-import-6SLISBOQ.js} +1 -1
  76. package/dist/{exe-snapshot-EMYU745D.js → exe-snapshot-3BUMC3XW.js} +1 -1
  77. package/dist/{fast-db-init-IXMJATO6.js → fast-db-init-L66PVC3N.js} +1 -1
  78. package/dist/gateway/index.js +6 -6
  79. package/dist/{git-task-sweep-5MTDROCJ.js → git-task-sweep-2QZU6PCS.js} +5 -5
  80. package/dist/hooks/bug-report-worker.js +6 -6
  81. package/dist/hooks/codex-stop-task-finalizer.js +6 -6
  82. package/dist/hooks/commit-complete.js +7 -7
  83. package/dist/hooks/error-recall.js +2 -2
  84. package/dist/hooks/ingest.js +2 -2
  85. package/dist/hooks/instructions-loaded.js +1 -1
  86. package/dist/hooks/manifest.json +18 -18
  87. package/dist/hooks/notification.js +1 -1
  88. package/dist/hooks/post-compact.js +5 -5
  89. package/dist/hooks/post-tool-combined.js +2 -2
  90. package/dist/hooks/pre-compact.js +6 -6
  91. package/dist/hooks/pre-tool-use.js +9 -9
  92. package/dist/hooks/prompt-submit.js +12 -12
  93. package/dist/hooks/session-end.js +8 -8
  94. package/dist/hooks/session-start.js +7 -7
  95. package/dist/hooks/stop.js +8 -8
  96. package/dist/hooks/subagent-stop.js +5 -5
  97. package/dist/hooks/summary-worker.js +8 -8
  98. package/dist/index.js +12 -12
  99. package/dist/lib/consolidation.js +2 -2
  100. package/dist/lib/exe-daemon.js +50 -27
  101. package/dist/lib/hybrid-search.js +2 -2
  102. package/dist/lib/messaging.js +5 -5
  103. package/dist/lib/schedules.js +2 -2
  104. package/dist/lib/session-registry.js +2 -2
  105. package/dist/lib/store.js +1 -1
  106. package/dist/lib/tasks.js +5 -5
  107. package/dist/lib/tmux-routing.js +4 -4
  108. package/dist/mcp/register-tools.js +25 -25
  109. package/dist/mcp/server.js +26 -26
  110. package/dist/mcp/tools/create-task.js +6 -6
  111. package/dist/mcp/tools/list-tasks.js +6 -6
  112. package/dist/mcp/tools/send-message.js +6 -6
  113. package/dist/mcp/tools/update-task.js +6 -6
  114. package/dist/{notifications-A3OLWT3R.js → notifications-KAZF7SNO.js} +4 -4
  115. package/dist/{orchestration-events-CLOS2654.js → orchestration-events-PCGTHJ67.js} +1 -1
  116. package/dist/{orchestrator-H7PCVWFN.js → orchestrator-GHAI42OK.js} +5 -5
  117. package/dist/{pipeline-router-EXS46KX2.js → pipeline-router-4JKKNJI2.js} +1 -1
  118. package/dist/{project-boot-2NFMLUZ3.js → project-boot-QYOQXRZ2.js} +54 -19
  119. package/dist/{reranker-7IPGFTAV.js → reranker-EHMLOVRA.js} +1 -1
  120. package/dist/{review-polling-CFLEDNJ6.js → review-polling-YEA52GYB.js} +5 -5
  121. package/dist/runtime/index.js +6 -6
  122. package/dist/{session-events-DLHFZHDF.js → session-events-HMGXVXSQ.js} +5 -5
  123. package/dist/{session-scope-EHSZJLAT.js → session-scope-WKK56DKR.js} +4 -4
  124. package/dist/{task-enforcement-YXMYVVLM.js → task-enforcement-CIFQHHKV.js} +4 -4
  125. package/dist/{task-scope-7TDJLRUR.js → task-scope-EX7IDCJU.js} +4 -4
  126. package/dist/{tasks-crud-CHPEFXSN.js → tasks-crud-IEKYIELP.js} +4 -4
  127. package/dist/{tasks-review-OID7RS2I.js → tasks-review-2Y35RIEG.js} +4 -4
  128. package/dist/{telemetry-upload-ZBGLL62D.js → telemetry-upload-QTBI5CFE.js} +1 -1
  129. package/dist/tui/App.js +10 -10
  130. package/dist/{tui-data-MVYA3OR6.js → tui-data-ZTHWN4TU.js} +4 -4
  131. package/dist/{worker-gate-42USIUF6.js → worker-gate-PJMTVOTJ.js} +1 -1
  132. package/dist/{workflow-engine-6UBYDBVR.js → workflow-engine-4G2GSWJZ.js} +2 -2
  133. package/dist/{worktree-Q6Y5IHSI.js → worktree-W6OAHIBE.js} +2 -2
  134. package/package.json +1 -1
  135. /package/dist/{chunk-ZEYDN4ER.js → chunk-KTIV2FSO.js} +0 -0
  136. /package/dist/{chunk-HBJZ5QZI.js → chunk-KTZSPK6P.js} +0 -0
  137. /package/dist/{chunk-C2D37S73.js → chunk-NUYXOC4J.js} +0 -0
  138. /package/dist/{chunk-TFYTFEPR.js → chunk-QRW3HU7V.js} +0 -0
  139. /package/dist/{chunk-EMOIEQ4A.js → chunk-WI7DZU5G.js} +0 -0
  140. /package/dist/{core-memory-2BTZ2RKT.js → core-memory-VWEANH4H.js} +0 -0
  141. /package/dist/{exe-key-VRUDYTN5.js → exe-key-PZBD646Y.js} +0 -0
  142. /package/dist/{skill-refinement-ALEPGNC6.js → skill-refinement-OJVGVSNP.js} +0 -0
@@ -9,7 +9,7 @@ import {
9
9
  isEmployeeAlive,
10
10
  sessionScopeFilter,
11
11
  updateTaskStatus
12
- } from "./chunk-QRHVGJOB.js";
12
+ } from "./chunk-JQUFMZHI.js";
13
13
  import {
14
14
  DEFAULT_COORDINATOR_TEMPLATE_NAME,
15
15
  getCoordinatorName
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  processCRMEvent
3
- } from "./chunk-TFYTFEPR.js";
3
+ } from "./chunk-QRW3HU7V.js";
4
4
 
5
5
  // src/gateway/adapters/crm-webhook.ts
6
6
  function parseTwentyWebhook(payload) {
@@ -859,7 +859,7 @@ function formatReport(report, flags) {
859
859
  return lines.join("\n");
860
860
  }
861
861
  async function fixNullVectors() {
862
- const { tryAcquireWorkerSlot, registerWorkerPid } = await import("./worker-gate-42USIUF6.js");
862
+ const { tryAcquireWorkerSlot, registerWorkerPid } = await import("./worker-gate-PJMTVOTJ.js");
863
863
  if (!tryAcquireWorkerSlot()) {
864
864
  process.stderr.write("[exe-doctor] Worker gate full \u2014 waiting for existing backfill workers to finish\n");
865
865
  await new Promise((r) => setTimeout(r, 5e3));
@@ -982,7 +982,7 @@ function splitAtSentences(text, maxChunkSize) {
982
982
  }
983
983
  async function main(argv = process.argv.slice(2)) {
984
984
  const flags = parseFlags(argv);
985
- const { fastDbInit } = await import("./fast-db-init-IXMJATO6.js");
985
+ const { fastDbInit } = await import("./fast-db-init-L66PVC3N.js");
986
986
  const client = await fastDbInit();
987
987
  const report = await runAudit(client, flags);
988
988
  console.log(formatReport(report, flags));
@@ -4,14 +4,14 @@ import {
4
4
  resolveExeSession,
5
5
  sendIntercom,
6
6
  strictSessionScopeFilter
7
- } from "./chunk-QRHVGJOB.js";
7
+ } from "./chunk-JQUFMZHI.js";
8
8
  import {
9
9
  parseMessage,
10
10
  serializeMessage
11
11
  } from "./chunk-4JERP7NT.js";
12
12
  import {
13
13
  recordOrchestrationEventBestEffort
14
- } from "./chunk-YXRY4LH2.js";
14
+ } from "./chunk-MJMJMHFC.js";
15
15
  import {
16
16
  getClient
17
17
  } from "./chunk-VTLUUTWI.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ensureWorktree
3
- } from "./chunk-DIO7YUAT.js";
3
+ } from "./chunk-XORJOW4J.js";
4
4
  import {
5
5
  queueIntercom
6
6
  } from "./chunk-QI4IXJN7.js";
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-4JERP7NT.js";
11
11
  import {
12
12
  registerSession
13
- } from "./chunk-J5MOKLCJ.js";
13
+ } from "./chunk-2UD2P2LO.js";
14
14
  import {
15
15
  getTransport
16
16
  } from "./chunk-MVW62NIZ.js";
@@ -19,7 +19,7 @@ import {
19
19
  } from "./chunk-CX6GL3ZJ.js";
20
20
  import {
21
21
  recordOrchestrationEventBestEffort
22
- } from "./chunk-YXRY4LH2.js";
22
+ } from "./chunk-MJMJMHFC.js";
23
23
  import {
24
24
  getAgentRuntime,
25
25
  normalizeCcModelName
@@ -459,6 +459,30 @@ async function resolveTask(client, identifier, scopeSession) {
459
459
  }
460
460
  throw new Error(`Task not found: ${identifier}`);
461
461
  }
462
+ function renderTaskMarkdown(f) {
463
+ return `# ${f.title}
464
+
465
+ ## MANDATORY: When done
466
+
467
+ You MUST call update_task with status "done" and a result summary when finished.
468
+ If you skip this, your reviewer will not know you're done and your work won't be reviewed.
469
+ Do NOT let a failed commit or any error prevent you from calling update_task(done).
470
+
471
+ **ID:** ${f.id}
472
+ **Status:** ${f.status}
473
+ **Priority:** ${f.priority}
474
+ **Assigned by:** ${f.assignedBy}
475
+ **Assigned to:** ${f.assignedTo}
476
+ **Project:** ${f.projectName}
477
+ **Created:** ${f.created}${f.parentTaskId ? `
478
+ **Parent task:** ${f.parentTaskId}` : ""}
479
+ **Reviewer:** ${f.reviewer}
480
+
481
+ ## Context
482
+
483
+ ${f.context}
484
+ `;
485
+ }
462
486
  async function createTaskCore(input) {
463
487
  const client = getClient();
464
488
  const id = crypto.randomUUID();
@@ -503,7 +527,7 @@ async function createTaskCore(input) {
503
527
  if (isCoordinatorSession) {
504
528
  earlySessionScope = resolved;
505
529
  } else {
506
- const { getSessionProject } = await import("./session-scope-EHSZJLAT.js");
530
+ const { getSessionProject } = await import("./session-scope-WKK56DKR.js");
507
531
  const sessionProject = getSessionProject(resolved);
508
532
  if (sessionProject && sessionProject !== input.projectName) {
509
533
  scopeMismatchWarning = `session/project mismatch: session "${resolved}" owns "${sessionProject}" but task targets "${input.projectName}". Routed to default scope.`;
@@ -659,28 +683,19 @@ ${scopeMismatchWarning}` : scopeMismatchWarning;
659
683
  const mdDir = path2.dirname(mdPath);
660
684
  if (!existsSync2(mdDir)) await mkdir(mdDir, { recursive: true });
661
685
  const reviewer = input.reviewer ?? input.assignedBy;
662
- const mdContent = `# ${input.title}
663
-
664
- ## MANDATORY: When done
665
-
666
- You MUST call update_task with status "done" and a result summary when finished.
667
- If you skip this, your reviewer will not know you're done and your work won't be reviewed.
668
- Do NOT let a failed commit or any error prevent you from calling update_task(done).
669
-
670
- **ID:** ${id}
671
- **Status:** ${initialStatus}
672
- **Priority:** ${input.priority}
673
- **Assigned by:** ${input.assignedBy}
674
- **Assigned to:** ${input.assignedTo}
675
- **Project:** ${input.projectName}
676
- **Created:** ${now.split("T")[0]}${parentTaskId ? `
677
- **Parent task:** ${parentTaskId}` : ""}
678
- **Reviewer:** ${reviewer}
679
-
680
- ## Context
681
-
682
- ${input.context}
683
- `;
686
+ const mdContent = renderTaskMarkdown({
687
+ id,
688
+ title: input.title,
689
+ status: initialStatus,
690
+ priority: input.priority,
691
+ assignedBy: input.assignedBy,
692
+ assignedTo: input.assignedTo,
693
+ projectName: input.projectName,
694
+ created: now.split("T")[0],
695
+ reviewer,
696
+ context: input.context,
697
+ parentTaskId
698
+ });
684
699
  await writeFile(mdPath, mdContent, "utf-8");
685
700
  } catch (err) {
686
701
  process.stderr.write(
@@ -970,7 +985,7 @@ async function updateTaskStatus(input) {
970
985
  } catch {
971
986
  }
972
987
  try {
973
- const { writeNotification: writeNotification2 } = await import("./notifications-A3OLWT3R.js");
988
+ const { writeNotification: writeNotification2 } = await import("./notifications-KAZF7SNO.js");
974
989
  await writeNotification2({
975
990
  agentId: reviewer,
976
991
  agentRole: isCoordinatorName(reviewer) ? "COO" : "manager",
@@ -1479,7 +1494,7 @@ ${input.result ?? ""}`;
1479
1494
  }
1480
1495
  if (input.status === "done" || input.status === "needs_review") {
1481
1496
  try {
1482
- const { incrementSkillSuccess } = await import("./skill-refinement-ALEPGNC6.js");
1497
+ const { incrementSkillSuccess } = await import("./skill-refinement-OJVGVSNP.js");
1483
1498
  await incrementSkillSuccess(
1484
1499
  String(row.assigned_to),
1485
1500
  row.project_name ? String(row.project_name) : null
@@ -1929,7 +1944,8 @@ async function checkTaskFileConsistency() {
1929
1944
  let mismatches = 0;
1930
1945
  try {
1931
1946
  const result = await client.execute({
1932
- sql: `SELECT id, title, task_file, status, assigned_to, session_scope, project_name
1947
+ sql: `SELECT id, title, task_file, status, priority, assigned_to, assigned_by,
1948
+ reviewer, context, parent_task_id, created_at, session_scope, project_name
1933
1949
  FROM tasks
1934
1950
  WHERE status IN ('open', 'in_progress', 'needs_review', 'blocked')
1935
1951
  AND task_file IS NOT NULL AND task_file != ''`,
@@ -1939,7 +1955,40 @@ async function checkTaskFileConsistency() {
1939
1955
  const taskFile = String(row.task_file ?? "");
1940
1956
  if (!taskFile) continue;
1941
1957
  const fullPath = taskFile.startsWith("/") ? taskFile : path2.join(os2.homedir(), ".exe-os", taskFile);
1942
- if (!existsSync2(fullPath)) {
1958
+ if (existsSync2(fullPath)) continue;
1959
+ let repaired = false;
1960
+ try {
1961
+ const dir = path2.dirname(fullPath);
1962
+ if (!existsSync2(dir)) await mkdir(dir, { recursive: true });
1963
+ const mdContent = renderTaskMarkdown({
1964
+ id: String(row.id),
1965
+ title: String(row.title ?? ""),
1966
+ status: String(row.status ?? ""),
1967
+ priority: String(row.priority ?? ""),
1968
+ assignedBy: String(row.assigned_by ?? ""),
1969
+ assignedTo: String(row.assigned_to ?? ""),
1970
+ projectName: String(row.project_name ?? ""),
1971
+ created: String(row.created_at ?? "").split("T")[0] || "",
1972
+ reviewer: row.reviewer ? String(row.reviewer) : row.assigned_by ? String(row.assigned_by) : "",
1973
+ context: String(row.context ?? ""),
1974
+ parentTaskId: row.parent_task_id ? String(row.parent_task_id) : null
1975
+ });
1976
+ await writeFile(fullPath, mdContent, "utf-8");
1977
+ repaired = true;
1978
+ } catch {
1979
+ }
1980
+ if (repaired) {
1981
+ recordOrchestrationEventBestEffort({
1982
+ eventType: "consistency.repaired",
1983
+ source: "tasks-crud.checkTaskFileConsistency",
1984
+ severity: "info",
1985
+ taskId: String(row.id),
1986
+ agentId: row.assigned_to ? String(row.assigned_to) : null,
1987
+ sessionScope: row.session_scope ? String(row.session_scope) : null,
1988
+ projectName: row.project_name ? String(row.project_name) : null,
1989
+ payload: { taskFile, status: String(row.status), type: "db_row_missing_file_regenerated" }
1990
+ });
1991
+ } else {
1943
1992
  mismatches++;
1944
1993
  recordOrchestrationEventBestEffort({
1945
1994
  eventType: "consistency.mismatch",
@@ -2913,7 +2962,7 @@ async function verifyPaneAtCapacity(sessionName) {
2913
2962
  reason: `capture-pane failed: ${err instanceof Error ? err.message : String(err)}`
2914
2963
  };
2915
2964
  }
2916
- const { isAtCapacity } = await import("./capacity-monitor-4EFUNBHQ.js");
2965
+ const { isAtCapacity } = await import("./capacity-monitor-S5VVRWNX.js");
2917
2966
  if (!isAtCapacity(pane)) {
2918
2967
  return {
2919
2968
  atCapacity: false,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  updateTask
3
- } from "./chunk-GQHV2QYL.js";
3
+ } from "./chunk-RP7BANLZ.js";
4
4
  import {
5
5
  TASK_ALREADY_CLAIMED_PREFIX
6
- } from "./chunk-QRHVGJOB.js";
6
+ } from "./chunk-JQUFMZHI.js";
7
7
 
8
8
  // src/mcp/tools/update-task.ts
9
9
  import { z } from "zod";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  MultiAgentOrchestrator
3
- } from "./chunk-C36GJWKH.js";
3
+ } from "./chunk-EYMTIOBH.js";
4
4
  import {
5
5
  createQuietRenderer,
6
6
  createTerminalRenderer,
@@ -327,7 +327,7 @@ function createExeOSHooks(config) {
327
327
  async onSubagentStop(_reason) {
328
328
  try {
329
329
  const { getClient } = await import("./lib/database.js");
330
- const { sessionScopeFilter } = await import("./task-scope-7TDJLRUR.js");
330
+ const { sessionScopeFilter } = await import("./task-scope-EX7IDCJU.js");
331
331
  const client = getClient();
332
332
  const ehScope = sessionScopeFilter();
333
333
  const tasks = await client.execute({
@@ -419,7 +419,7 @@ function createExeOSHooks(config) {
419
419
  try {
420
420
  const { writeMemory, flushBatch } = await import("./lib/store.js");
421
421
  const { getClient } = await import("./lib/database.js");
422
- const { sessionScopeFilter: cpScopeFilter } = await import("./task-scope-7TDJLRUR.js");
422
+ const { sessionScopeFilter: cpScopeFilter } = await import("./task-scope-EX7IDCJU.js");
423
423
  const client = getClient();
424
424
  const cpScope = cpScopeFilter();
425
425
  const tasks = await client.execute({
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sendMessage
3
- } from "./chunk-JFUVMMBE.js";
3
+ } from "./chunk-IJCGZ36F.js";
4
4
  import {
5
5
  getActiveAgent
6
6
  } from "./chunk-ZOPLM7G3.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  fastDbInit
3
- } from "./chunk-EMOIEQ4A.js";
3
+ } from "./chunk-WI7DZU5G.js";
4
4
  import {
5
5
  sessionScopeFilter
6
- } from "./chunk-QRHVGJOB.js";
6
+ } from "./chunk-JQUFMZHI.js";
7
7
  import {
8
8
  formatStatusAll,
9
9
  formatStatusDeep,
@@ -43,6 +43,7 @@ var ORCHESTRATION_COUNTER_KEYS = [
43
43
  "tmuxSpawnAttempted",
44
44
  "tmuxSpawnCompleted",
45
45
  "consistencyMismatches",
46
+ "consistencyRepaired",
46
47
  "fileRowsResynced",
47
48
  "fileOrphansCleaned",
48
49
  "worktreeCreated",
@@ -251,6 +252,7 @@ async function getOrchestrationMetrics(input = {}) {
251
252
  tmuxSpawnAttempted: 0,
252
253
  tmuxSpawnCompleted: 0,
253
254
  consistencyMismatches: 0,
255
+ consistencyRepaired: 0,
254
256
  fileRowsResynced: 0,
255
257
  fileOrphansCleaned: 0,
256
258
  worktreeCreated: 0,
@@ -311,6 +313,7 @@ async function getOrchestrationMetrics(input = {}) {
311
313
  if (type === "tmux.spawn.attempted") counts.tmuxSpawnAttempted++;
312
314
  if (type === "tmux.spawn.completed") counts.tmuxSpawnCompleted++;
313
315
  if (type === "consistency.mismatch") counts.consistencyMismatches++;
316
+ if (type === "consistency.repaired") counts.consistencyRepaired++;
314
317
  if (type === "task_file.resynced") counts.fileRowsResynced++;
315
318
  if (type === "task_file.orphan_cleaned") counts.fileOrphansCleaned++;
316
319
  if (type === "worktree.created") counts.worktreeCreated++;
@@ -65,7 +65,7 @@ function recordShardFailure(project, error) {
65
65
  `[store] Shard circuit OPEN for "${project}" after ${state.failures} consecutive failures. Will retry in ${SHARD_CB_COOLDOWN_MS / 6e4}min. Last error: ${error}
66
66
  `
67
67
  );
68
- void import("./orchestration-events-CLOS2654.js").then(({ recordOrchestrationEventBestEffort }) => {
68
+ void import("./orchestration-events-PCGTHJ67.js").then(({ recordOrchestrationEventBestEffort }) => {
69
69
  recordOrchestrationEventBestEffort({
70
70
  eventType: "shard.circuit_open",
71
71
  source: "store.recordShardFailure",
@@ -11,13 +11,13 @@ import {
11
11
  sessionScopeFilter,
12
12
  updateTaskStatus,
13
13
  writeNotification
14
- } from "./chunk-QRHVGJOB.js";
14
+ } from "./chunk-JQUFMZHI.js";
15
15
  import {
16
16
  getTransport
17
17
  } from "./chunk-MVW62NIZ.js";
18
18
  import {
19
19
  recordOrchestrationEventBestEffort
20
- } from "./chunk-YXRY4LH2.js";
20
+ } from "./chunk-MJMJMHFC.js";
21
21
  import {
22
22
  getAgentRuntime
23
23
  } from "./chunk-6OJJF4WP.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-EHSZJLAT.js");
162
+ const { assertSessionScope } = await import("./session-scope-WKK56DKR.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-A3OLWT3R.js");
503
+ const { writeNotification: writeNotification2 } = await import("./notifications-KAZF7SNO.js");
504
504
  await writeNotification2({
505
505
  agentId: String(row.assigned_to),
506
506
  agentRole: String(row.assigned_to),
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getCurrentSessionScope,
3
3
  strictSessionScopeFilter
4
- } from "./chunk-QRHVGJOB.js";
4
+ } from "./chunk-JQUFMZHI.js";
5
5
  import {
6
6
  getProjectName
7
7
  } from "./chunk-OPU3NYOO.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  ingest
3
- } from "./chunk-C2D37S73.js";
3
+ } from "./chunk-NUYXOC4J.js";
4
4
  import {
5
5
  listWorkflowDefinitions,
6
6
  runWorkflow,
7
7
  startWorkflow
8
- } from "./chunk-AVICWQYY.js";
8
+ } from "./chunk-CFHTPEIC.js";
9
9
  import {
10
10
  initCRMBridge
11
11
  } from "./chunk-ONKIWA3R.js";
@@ -19,7 +19,7 @@ import {
19
19
  import {
20
20
  createCRMWebhookHandler,
21
21
  parseTwentyWebhook
22
- } from "./chunk-5UH67CWJ.js";
22
+ } from "./chunk-G2Q2QELX.js";
23
23
  import {
24
24
  OllamaProvider
25
25
  } from "./chunk-FWFFZGSC.js";
@@ -49,7 +49,7 @@ import {
49
49
  retryWithBackoff,
50
50
  routeMessage,
51
51
  validateGatewayConfig
52
- } from "./chunk-5O5NXKDM.js";
52
+ } from "./chunk-T7NGFQNB.js";
53
53
  import {
54
54
  getAccountByName,
55
55
  getAccountByPhoneNumberId,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  recordOrchestrationEventBestEffort
3
- } from "./chunk-YXRY4LH2.js";
3
+ } from "./chunk-MJMJMHFC.js";
4
4
 
5
5
  // src/lib/worktree.ts
6
6
  import { execSync } from "child_process";
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  flushBatch,
6
6
  writeMemory
7
- } from "./chunk-LEK3ANCA.js";
7
+ } from "./chunk-MQVA77HS.js";
8
8
  import {
9
9
  extractKeywords
10
10
  } from "./chunk-CHCA3ZM2.js";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  createCRMWebhookHandler,
3
3
  parseTwentyWebhook
4
- } from "./chunk-5UH67CWJ.js";
5
- import "./chunk-TFYTFEPR.js";
4
+ } from "./chunk-G2Q2QELX.js";
5
+ import "./chunk-QRW3HU7V.js";
6
6
  import "./chunk-MLKGABMK.js";
7
7
  export {
8
8
  createCRMWebhookHandler,
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  sessionScopeFilter
3
- } from "./chunk-QRHVGJOB.js";
4
- import "./chunk-DIO7YUAT.js";
3
+ } from "./chunk-JQUFMZHI.js";
4
+ import "./chunk-XORJOW4J.js";
5
5
  import "./chunk-QI4IXJN7.js";
6
6
  import "./chunk-4JERP7NT.js";
7
- import "./chunk-J5MOKLCJ.js";
7
+ import "./chunk-2UD2P2LO.js";
8
8
  import "./chunk-MVW62NIZ.js";
9
9
  import "./chunk-OYNKIAVW.js";
10
10
  import "./chunk-CX6GL3ZJ.js";
11
- import "./chunk-YXRY4LH2.js";
11
+ import "./chunk-MJMJMHFC.js";
12
12
  import "./chunk-6OJJF4WP.js";
13
13
  import "./chunk-NGP6LSV2.js";
14
14
  import "./chunk-VXVI75ED.js";
@@ -50,18 +50,18 @@ import {
50
50
  shouldKillIdleSession,
51
51
  shouldKillSession,
52
52
  shouldNudgeEmployee
53
- } from "./chunk-FOP5EAJZ.js";
53
+ } from "./chunk-2V3TDLQ2.js";
54
54
  import "./chunk-5NIUTWV4.js";
55
- import "./chunk-GQHV2QYL.js";
56
- import "./chunk-QRHVGJOB.js";
57
- import "./chunk-DIO7YUAT.js";
55
+ import "./chunk-RP7BANLZ.js";
56
+ import "./chunk-JQUFMZHI.js";
57
+ import "./chunk-XORJOW4J.js";
58
58
  import "./chunk-QI4IXJN7.js";
59
59
  import "./chunk-4JERP7NT.js";
60
- import "./chunk-J5MOKLCJ.js";
60
+ import "./chunk-2UD2P2LO.js";
61
61
  import "./chunk-MVW62NIZ.js";
62
62
  import "./chunk-OYNKIAVW.js";
63
63
  import "./chunk-CX6GL3ZJ.js";
64
- import "./chunk-YXRY4LH2.js";
64
+ import "./chunk-MJMJMHFC.js";
65
65
  import "./chunk-6OJJF4WP.js";
66
66
  import "./chunk-NGP6LSV2.js";
67
67
  import "./chunk-VXVI75ED.js";
@@ -6,7 +6,7 @@ import "./chunk-5NFBE376.js";
6
6
  import {
7
7
  disposeStore,
8
8
  initStore
9
- } from "./chunk-LEK3ANCA.js";
9
+ } from "./chunk-MQVA77HS.js";
10
10
  import "./chunk-CHCA3ZM2.js";
11
11
  import "./chunk-N345XXAA.js";
12
12
  import "./chunk-F7LU65PQ.js";
@@ -7,7 +7,7 @@ import "./chunk-5NFBE376.js";
7
7
  import {
8
8
  disposeStore,
9
9
  initStore
10
- } from "./chunk-LEK3ANCA.js";
10
+ } from "./chunk-MQVA77HS.js";
11
11
  import "./chunk-CHCA3ZM2.js";
12
12
  import "./chunk-N345XXAA.js";
13
13
  import "./chunk-F7LU65PQ.js";
@@ -10,7 +10,7 @@ import {
10
10
  flushBatch,
11
11
  initStore,
12
12
  writeMemory
13
- } from "./chunk-LEK3ANCA.js";
13
+ } from "./chunk-MQVA77HS.js";
14
14
  import "./chunk-CHCA3ZM2.js";
15
15
  import "./chunk-N345XXAA.js";
16
16
  import "./chunk-F7LU65PQ.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  fastDbInit
3
- } from "./chunk-EMOIEQ4A.js";
3
+ } from "./chunk-WI7DZU5G.js";
4
4
  import "./chunk-MLKGABMK.js";
5
5
  export {
6
6
  fastDbInit
@@ -11,7 +11,7 @@ import {
11
11
  createSignupBot,
12
12
  ensureCRMContact,
13
13
  formatAlert
14
- } from "../chunk-MOMOSSS3.js";
14
+ } from "../chunk-TN4H5D45.js";
15
15
  import {
16
16
  WhatsAppAdapter
17
17
  } from "../chunk-ECSNSHZ7.js";
@@ -33,7 +33,7 @@ import {
33
33
  import {
34
34
  createCRMWebhookHandler,
35
35
  parseTwentyWebhook
36
- } from "../chunk-5UH67CWJ.js";
36
+ } from "../chunk-G2Q2QELX.js";
37
37
  import {
38
38
  OllamaProvider
39
39
  } from "../chunk-FWFFZGSC.js";
@@ -63,16 +63,16 @@ import {
63
63
  retryWithBackoff,
64
64
  routeMessage,
65
65
  validateGatewayConfig
66
- } from "../chunk-5O5NXKDM.js";
67
- import "../chunk-C2D37S73.js";
68
- import "../chunk-AVICWQYY.js";
66
+ } from "../chunk-T7NGFQNB.js";
67
+ import "../chunk-NUYXOC4J.js";
68
+ import "../chunk-CFHTPEIC.js";
69
69
  import {
70
70
  getAccountByName,
71
71
  getAccountByPhoneNumberId,
72
72
  getDefaultAccount,
73
73
  loadAccounts
74
74
  } from "../chunk-YGAAZN3E.js";
75
- import "../chunk-TFYTFEPR.js";
75
+ import "../chunk-QRW3HU7V.js";
76
76
  import {
77
77
  createPerson,
78
78
  findPersonByContact,
@@ -4,16 +4,16 @@ import {
4
4
  getRecentCommits,
5
5
  matchScore,
6
6
  sweepTasks
7
- } from "./chunk-WJV6N65Y.js";
8
- import "./chunk-QRHVGJOB.js";
9
- import "./chunk-DIO7YUAT.js";
7
+ } from "./chunk-5XAAMTTY.js";
8
+ import "./chunk-JQUFMZHI.js";
9
+ import "./chunk-XORJOW4J.js";
10
10
  import "./chunk-QI4IXJN7.js";
11
11
  import "./chunk-4JERP7NT.js";
12
- import "./chunk-J5MOKLCJ.js";
12
+ import "./chunk-2UD2P2LO.js";
13
13
  import "./chunk-MVW62NIZ.js";
14
14
  import "./chunk-OYNKIAVW.js";
15
15
  import "./chunk-CX6GL3ZJ.js";
16
- import "./chunk-YXRY4LH2.js";
16
+ import "./chunk-MJMJMHFC.js";
17
17
  import "./chunk-6OJJF4WP.js";
18
18
  import "./chunk-NGP6LSV2.js";
19
19
  import "./chunk-VXVI75ED.js";
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  createTask
3
- } from "../chunk-GQHV2QYL.js";
3
+ } from "../chunk-RP7BANLZ.js";
4
4
  import {
5
5
  fastDbInit
6
- } from "../chunk-EMOIEQ4A.js";
7
- import "../chunk-QRHVGJOB.js";
8
- import "../chunk-DIO7YUAT.js";
6
+ } from "../chunk-WI7DZU5G.js";
7
+ import "../chunk-JQUFMZHI.js";
8
+ import "../chunk-XORJOW4J.js";
9
9
  import "../chunk-QI4IXJN7.js";
10
10
  import "../chunk-4JERP7NT.js";
11
- import "../chunk-J5MOKLCJ.js";
11
+ import "../chunk-2UD2P2LO.js";
12
12
  import "../chunk-MVW62NIZ.js";
13
13
  import "../chunk-OYNKIAVW.js";
14
14
  import "../chunk-CX6GL3ZJ.js";
15
- import "../chunk-YXRY4LH2.js";
15
+ import "../chunk-MJMJMHFC.js";
16
16
  import "../chunk-6OJJF4WP.js";
17
17
  import "../chunk-NGP6LSV2.js";
18
18
  import "../chunk-VXVI75ED.js";
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  updateTask
3
- } from "../chunk-GQHV2QYL.js";
3
+ } from "../chunk-RP7BANLZ.js";
4
4
  import {
5
5
  fastDbInit
6
- } from "../chunk-EMOIEQ4A.js";
6
+ } from "../chunk-WI7DZU5G.js";
7
7
  import {
8
8
  listTasks
9
- } from "../chunk-QRHVGJOB.js";
10
- import "../chunk-DIO7YUAT.js";
9
+ } from "../chunk-JQUFMZHI.js";
10
+ import "../chunk-XORJOW4J.js";
11
11
  import "../chunk-QI4IXJN7.js";
12
12
  import "../chunk-4JERP7NT.js";
13
- import "../chunk-J5MOKLCJ.js";
13
+ import "../chunk-2UD2P2LO.js";
14
14
  import "../chunk-MVW62NIZ.js";
15
15
  import "../chunk-OYNKIAVW.js";
16
16
  import "../chunk-CX6GL3ZJ.js";
17
- import "../chunk-YXRY4LH2.js";
17
+ import "../chunk-MJMJMHFC.js";
18
18
  import "../chunk-6OJJF4WP.js";
19
19
  import "../chunk-NGP6LSV2.js";
20
20
  import "../chunk-VXVI75ED.js";