@askexenow/exe-os 0.9.199 → 0.9.200

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 (230) hide show
  1. package/dist/{active-agent-O433V5SV.js → active-agent-J3YKAXE2.js} +2 -2
  2. package/dist/{active-agent-PWI2YWBG.js → active-agent-LCEW3PSL.js} +2 -2
  3. package/dist/{agentic-ontology-64X76FKF.js → agentic-ontology-N5HXDWIN.js} +1 -1
  4. package/dist/{backfill-metadata-RL7T4XGY.js → backfill-metadata-LIACQP2F.js} +3 -3
  5. package/dist/{behaviors-ZW4BWUGD.js → behaviors-GXMZW7B3.js} +2 -2
  6. package/dist/bin/agentic-ontology-backfill.js +4 -4
  7. package/dist/bin/agentic-reflection-backfill.js +5 -5
  8. package/dist/bin/agentic-semantic-label.js +4 -4
  9. package/dist/bin/backfill-conversations.js +4 -4
  10. package/dist/bin/backfill-responses.js +4 -4
  11. package/dist/bin/backfill-vectors.js +5 -5
  12. package/dist/bin/bulk-sync-postgres.js +5 -5
  13. package/dist/bin/cleanup-stale-review-tasks.js +7 -6
  14. package/dist/bin/cli.js +13 -13
  15. package/dist/bin/deferred-daemon-restart.js +1 -1
  16. package/dist/bin/exe-agent-config.js +1 -1
  17. package/dist/bin/exe-agent.js +4 -4
  18. package/dist/bin/exe-assign.js +6 -6
  19. package/dist/bin/exe-boot.js +14 -13
  20. package/dist/bin/exe-call.js +3 -3
  21. package/dist/bin/exe-cloud.js +3 -3
  22. package/dist/bin/exe-dispatch.js +7 -6
  23. package/dist/bin/exe-doctor.js +1 -1
  24. package/dist/bin/exe-export-behaviors.js +6 -6
  25. package/dist/bin/exe-forget.js +5 -5
  26. package/dist/bin/exe-gateway.js +5 -5
  27. package/dist/bin/exe-heartbeat.js +7 -6
  28. package/dist/bin/exe-kill.js +10 -9
  29. package/dist/bin/exe-launch-agent.js +9 -9
  30. package/dist/bin/exe-new-employee.js +5 -5
  31. package/dist/bin/exe-pending-messages.js +8 -7
  32. package/dist/bin/exe-pending-notifications.js +7 -6
  33. package/dist/bin/exe-pending-reviews.js +7 -6
  34. package/dist/bin/exe-rename.js +3 -3
  35. package/dist/bin/exe-review.js +9 -8
  36. package/dist/bin/exe-search.js +4 -4
  37. package/dist/bin/exe-session-cleanup.js +11 -10
  38. package/dist/bin/exe-settings.js +3 -3
  39. package/dist/bin/exe-start-codex.js +10 -10
  40. package/dist/bin/exe-start-opencode.js +7 -7
  41. package/dist/bin/exe-status.js +8 -7
  42. package/dist/bin/exe-team.js +2 -2
  43. package/dist/bin/git-sweep.js +7 -6
  44. package/dist/bin/graph-backfill.js +3 -3
  45. package/dist/bin/graph-export.js +4 -4
  46. package/dist/bin/import-history.js +4 -4
  47. package/dist/bin/install.js +6 -6
  48. package/dist/bin/intercom-check.js +4 -4
  49. package/dist/bin/orchestration-metrics.js +47 -0
  50. package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
  51. package/dist/bin/postgres-agentic-semantic-backfill.js +4 -4
  52. package/dist/bin/scan-tasks.js +7 -6
  53. package/dist/bin/setup.js +1 -1
  54. package/dist/bin/shard-migrate.js +3 -3
  55. package/dist/bin/stack-update.js +1 -1
  56. package/dist/bin/vps-health-gate.js +1 -1
  57. package/dist/{capacity-monitor-2TRPP3AX.js → capacity-monitor-HJSJ2PCF.js} +8 -7
  58. package/dist/{catchup-brief-74ORL525.js → catchup-brief-XD7IJBMN.js} +9 -8
  59. package/dist/{chunk-7WUBXLK2.js → chunk-2EYYW724.js} +2 -2
  60. package/dist/{chunk-TGOJR5SS.js → chunk-3HM6MZ4O.js} +36 -0
  61. package/dist/{chunk-JRLSQFIE.js → chunk-43HRNKQX.js} +68 -68
  62. package/dist/{chunk-4X7CMJDN.js → chunk-6UZHYTLV.js} +42 -7
  63. package/dist/{chunk-M7NGABPF.js → chunk-7BNZUXFJ.js} +1 -1
  64. package/dist/{chunk-5YVGHP2B.js → chunk-7Y4F7IPJ.js} +8 -8
  65. package/dist/{chunk-GIIRWR35.js → chunk-7YTVWNSS.js} +2 -2
  66. package/dist/{chunk-JW3MATT5.js → chunk-ATVB6CY7.js} +1 -1
  67. package/dist/{chunk-6BJ5GZD4.js → chunk-AVRQWLQR.js} +6 -6
  68. package/dist/{chunk-2DWKMJPE.js → chunk-AWYLVIGA.js} +2 -2
  69. package/dist/chunk-BDRSCPCG.js +221 -0
  70. package/dist/{chunk-WSYFZZCP.js → chunk-C5A3L3HS.js} +2 -2
  71. package/dist/{chunk-KTJ57PVS.js → chunk-CBAW3YFB.js} +1 -1
  72. package/dist/{chunk-L7ZYZCJ5.js → chunk-D42R5MZU.js} +1 -1
  73. package/dist/{chunk-65K2BQTG.js → chunk-E5P2TY4E.js} +1 -1
  74. package/dist/{chunk-K6K55GMZ.js → chunk-EEG6E34W.js} +1 -1
  75. package/dist/{chunk-JDHB6I4O.js → chunk-F3QROFHP.js} +2 -2
  76. package/dist/{chunk-5XAGTHF2.js → chunk-GKQXZZBT.js} +1 -1
  77. package/dist/{chunk-2HEXCZGP.js → chunk-GR53PEEH.js} +1 -1
  78. package/dist/{chunk-FDD7KX7Q.js → chunk-GSKJ72LT.js} +7 -7
  79. package/dist/{chunk-OO5EWGC6.js → chunk-HGO5VFED.js} +1 -1
  80. package/dist/{chunk-JSMOQRIV.js → chunk-HUIYZHN3.js} +1 -1
  81. package/dist/{chunk-V5U3FYDZ.js → chunk-HVUBZOOT.js} +2 -2
  82. package/dist/{chunk-JPZQM7VW.js → chunk-IOEK5ZX6.js} +1 -1
  83. package/dist/{chunk-JDGCEOT4.js → chunk-K3FJHQ3F.js} +2 -2
  84. package/dist/{chunk-QPSUK5HA.js → chunk-K6A7ZE2F.js} +1 -1
  85. package/dist/{chunk-BO3ZQIWF.js → chunk-KEJ3HOBN.js} +1 -1
  86. package/dist/{chunk-FBTIOBF6.js → chunk-KVVCXK3J.js} +3 -3
  87. package/dist/{chunk-ACOQS4ZL.js → chunk-LKBN6BFL.js} +2 -2
  88. package/dist/{chunk-RUKOGGQG.js → chunk-LLYF22CH.js} +2 -2
  89. package/dist/{chunk-YT67TJQZ.js → chunk-LPPCJZVI.js} +1 -1
  90. package/dist/{chunk-JQLWMZZJ.js → chunk-LWM3FUGY.js} +1 -1
  91. package/dist/{chunk-PHIQW2IU.js → chunk-LWYXWPZZ.js} +6 -6
  92. package/dist/{chunk-KRYEHI4V.js → chunk-NOSCV7MH.js} +3 -3
  93. package/dist/{chunk-OYU7TCBG.js → chunk-OOMA2AEM.js} +1 -1
  94. package/dist/{chunk-SKXHR35T.js → chunk-OW4QI3K4.js} +3 -3
  95. package/dist/{chunk-CGAYSKQF.js → chunk-P4LUVVX4.js} +5 -5
  96. package/dist/{chunk-FXVTLBBA.js → chunk-P6PKNRFD.js} +3 -3
  97. package/dist/{chunk-DNEOEKWA.js → chunk-PIJSZELU.js} +2 -2
  98. package/dist/{chunk-BDYUENC7.js → chunk-QOW5EEYO.js} +1 -1
  99. package/dist/{chunk-ZAF4GJTD.js → chunk-QQXMGLSN.js} +9 -9
  100. package/dist/{chunk-OF6TXNOC.js → chunk-SUNFUS3O.js} +1 -1
  101. package/dist/{chunk-ZLP5TNRU.js → chunk-TBZB4PPZ.js} +3 -3
  102. package/dist/{chunk-YZIUQ77U.js → chunk-TJHE2HYS.js} +3 -3
  103. package/dist/{chunk-ZHINF5CG.js → chunk-VQB4VBEQ.js} +1 -1
  104. package/dist/{chunk-IFFVONU6.js → chunk-WVNKXOWZ.js} +1 -1
  105. package/dist/{chunk-MABQMUCQ.js → chunk-WXQRFDY4.js} +230 -18
  106. package/dist/{chunk-CWY3M4SR.js → chunk-X2KLWLCB.js} +1 -1
  107. package/dist/{chunk-MWGAC2ER.js → chunk-X33TOTUD.js} +2 -2
  108. package/dist/{chunk-WATDOTGK.js → chunk-XZQWEY5S.js} +1 -1
  109. package/dist/{chunk-2GJWENBT.js → chunk-Y35YW6EL.js} +1 -1
  110. package/dist/{chunk-6FBYGI2H.js → chunk-YZNGBIXU.js} +1 -1
  111. package/dist/{chunk-UWMFQKOB.js → chunk-Z4FV45FW.js} +1 -1
  112. package/dist/{chunk-XNXTN5XZ.js → chunk-Z6AUK6YH.js} +1 -1
  113. package/dist/{chunk-OGQX7HLN.js → chunk-ZB3TDCXG.js} +1 -1
  114. package/dist/{chunk-WRCETUYE.js → chunk-ZZODXCWK.js} +1 -1
  115. package/dist/{co-occurrence-OVDIX3OS.js → co-occurrence-6OAMOUTF.js} +1 -1
  116. package/dist/{code-context-index-TBCTP47N.js → code-context-index-JPQDRTTX.js} +2 -2
  117. package/dist/{crdt-sync-L42FZQ7O.js → crdt-sync-6EI7LAPI.js} +1 -1
  118. package/dist/{crm-webhook-OFWPEK33.js → crm-webhook-LEWQNEDD.js} +2 -2
  119. package/dist/{cto-delegation-gate-7PGS5IN4.js → cto-delegation-gate-GXRHD4WX.js} +6 -5
  120. package/dist/{daemon-orchestration-MP3PPX7Q.js → daemon-orchestration-QOKZVECP.js} +9 -8
  121. package/dist/{exe-drift-BUFQKOM5.js → exe-drift-N2IDPAQ7.js} +2 -2
  122. package/dist/{exe-export-QMGWH3PL.js → exe-export-63FYZTV3.js} +4 -4
  123. package/dist/{exe-import-7NNKSCKI.js → exe-import-T5OPTK5T.js} +4 -4
  124. package/dist/{exe-key-QZ5GWV6D.js → exe-key-ROFJ6HUG.js} +1 -1
  125. package/dist/{fast-db-init-DAZZ7ZUP.js → fast-db-init-GC4SYSFV.js} +1 -1
  126. package/dist/gateway/index.js +9 -9
  127. package/dist/{git-staleness-JY7PJT6F.js → git-staleness-QKURDEMW.js} +1 -1
  128. package/dist/{git-task-sweep-SLANXCSW.js → git-task-sweep-5YHZF2E5.js} +7 -6
  129. package/dist/{global-procedures-GKQGLYXQ.js → global-procedures-PQKUKKM6.js} +2 -2
  130. package/dist/{graph-auto-extract-5OYWXUKD.js → graph-auto-extract-GUEMG3Q3.js} +1 -1
  131. package/dist/hooks/bug-report-worker.js +8 -7
  132. package/dist/hooks/codex-stop-task-finalizer.js +8 -7
  133. package/dist/hooks/commit-complete.js +9 -8
  134. package/dist/hooks/error-recall.js +5 -5
  135. package/dist/hooks/exe-heartbeat-hook.js +2 -2
  136. package/dist/hooks/ingest-worker.js +2 -2
  137. package/dist/hooks/ingest.js +5 -5
  138. package/dist/hooks/instructions-loaded.js +3 -3
  139. package/dist/hooks/manifest.json +20 -20
  140. package/dist/hooks/notification.js +3 -3
  141. package/dist/hooks/post-compact.js +8 -7
  142. package/dist/hooks/post-tool-combined.js +5 -5
  143. package/dist/hooks/pre-compact.js +11 -10
  144. package/dist/hooks/pre-tool-use.js +12 -11
  145. package/dist/hooks/prompt-submit.js +18 -17
  146. package/dist/hooks/session-end.js +14 -13
  147. package/dist/hooks/session-start.js +7 -7
  148. package/dist/hooks/stop.js +15 -14
  149. package/dist/hooks/subagent-stop.js +8 -7
  150. package/dist/hooks/summary-worker.js +14 -13
  151. package/dist/index.js +15 -14
  152. package/dist/{installer-CWKEI7SE.js → installer-AYN7WB62.js} +4 -4
  153. package/dist/{installer-DWVZFKAH.js → installer-D4XB27FY.js} +4 -4
  154. package/dist/{installer-GSA2KOSE.js → installer-Z4LBQTL6.js} +4 -4
  155. package/dist/lib/cloud-sync.js +3 -3
  156. package/dist/lib/consolidation.js +4 -4
  157. package/dist/lib/database.js +1 -1
  158. package/dist/lib/db-daemon-client.js +1 -1
  159. package/dist/lib/db.js +1 -1
  160. package/dist/lib/embedder.js +2 -2
  161. package/dist/lib/employee-templates.js +3 -3
  162. package/dist/lib/employees.js +1 -1
  163. package/dist/lib/exe-daemon-client.js +1 -1
  164. package/dist/lib/exe-daemon.js +47 -23
  165. package/dist/lib/hybrid-search.js +4 -4
  166. package/dist/lib/identity.js +1 -1
  167. package/dist/lib/messaging.js +7 -6
  168. package/dist/lib/reminders.js +2 -2
  169. package/dist/lib/schedules.js +4 -4
  170. package/dist/lib/skill-learning.js +3 -3
  171. package/dist/lib/store.js +3 -3
  172. package/dist/lib/task-router.js +2 -2
  173. package/dist/lib/tasks.js +7 -6
  174. package/dist/lib/tmux-routing.js +6 -5
  175. package/dist/lib/token-spend.js +2 -2
  176. package/dist/mcp/register-tools.js +49 -48
  177. package/dist/mcp/server.js +50 -49
  178. package/dist/mcp/tools/complete-reminder.js +3 -3
  179. package/dist/mcp/tools/create-reminder.js +3 -3
  180. package/dist/mcp/tools/create-task.js +9 -8
  181. package/dist/mcp/tools/deactivate-behavior.js +4 -4
  182. package/dist/mcp/tools/list-reminders.js +3 -3
  183. package/dist/mcp/tools/list-tasks.js +9 -8
  184. package/dist/mcp/tools/send-message.js +9 -8
  185. package/dist/mcp/tools/update-task.js +8 -7
  186. package/dist/{mcp-http-config-YOB4QWYP.js → mcp-http-config-JFGNXQ5M.js} +2 -2
  187. package/dist/{memory-cards-UPFWA3YQ.js → memory-cards-QHCHERFV.js} +1 -1
  188. package/dist/{memory-graph-extractor-XTH3U6QS.js → memory-graph-extractor-RAF4M3YY.js} +2 -2
  189. package/dist/{memory-poisoning-defense-WDSEUEBW.js → memory-poisoning-defense-M4E6D6NI.js} +1 -1
  190. package/dist/{memory-queue-client-FJOLJYUK.js → memory-queue-client-XCBQIT3T.js} +2 -2
  191. package/dist/{memory-reflection-A2PLKX7A.js → memory-reflection-OVQDAOKW.js} +1 -1
  192. package/dist/{notifications-WYNI5OG6.js → notifications-QCZJTMU4.js} +6 -5
  193. package/dist/{orchestrator-FRFCMLW3.js → orchestrator-RETZBZNU.js} +8 -7
  194. package/dist/{plan-limits-FKTRN25T.js → plan-limits-KY5FB6FM.js} +2 -2
  195. package/dist/{projection-worker-R2JOVCXX.js → projection-worker-B4FYF4FS.js} +1 -1
  196. package/dist/{reranker-2ZWUZRUF.js → reranker-DLESU7S4.js} +1 -1
  197. package/dist/{review-polling-ADP5YFHW.js → review-polling-S4HD536T.js} +7 -6
  198. package/dist/runtime/index.js +13 -12
  199. package/dist/{session-events-JA3MCMZK.js → session-events-TRCSYKGW.js} +7 -6
  200. package/dist/{session-kill-telemetry-GV7LE56P.js → session-kill-telemetry-WBB7YHWC.js} +2 -2
  201. package/dist/{session-scope-LXQKQDIS.js → session-scope-H6H7EVMH.js} +6 -5
  202. package/dist/{setup-wizard-GRR4F4TX.js → setup-wizard-QGJEHEJP.js} +1 -1
  203. package/dist/{skill-refinement-3UVLBCZD.js → skill-refinement-DDFALKOD.js} +1 -1
  204. package/dist/{stack-update-C4BAPLXJ.js → stack-update-Q2WQOJTS.js} +1 -1
  205. package/dist/{task-enforcement-KSLBFILH.js → task-enforcement-7NCE6NJC.js} +25 -5
  206. package/dist/{task-scope-AI62AIPT.js → task-scope-C7QECQSB.js} +6 -5
  207. package/dist/{tasks-crud-IEOK55IV.js → tasks-crud-4VGXAUW5.js} +6 -5
  208. package/dist/{tasks-review-ID7V6RSR.js → tasks-review-ATHR7IZK.js} +6 -5
  209. package/dist/{token-budget-Z4ONSQLC.js → token-budget-2ZZRFSHF.js} +1 -1
  210. package/dist/{tool-capability-index-2MHWYQH5.js → tool-capability-index-6ICPKH5O.js} +1 -1
  211. package/dist/{tool-telemetry-Z46QEUD5.js → tool-telemetry-EWE2YR2K.js} +1 -1
  212. package/dist/tui/App.js +14 -13
  213. package/dist/{tui-data-HIFVW2PE.js → tui-data-LQQ66HCW.js} +6 -5
  214. package/dist/{worker-gate-F3L7XDMJ.js → worker-gate-POIBNVX7.js} +1 -1
  215. package/dist/{workflow-engine-H5KTDDJG.js → workflow-engine-MA2H5JEZ.js} +2 -2
  216. package/package.json +2 -1
  217. package/release-notes.json +101 -104
  218. /package/dist/{chunk-MQLMIY6U.js → chunk-2GHDAIDB.js} +0 -0
  219. /package/dist/{chunk-NF4AEKQK.js → chunk-35ES3HTI.js} +0 -0
  220. /package/dist/{chunk-MNNWWEVJ.js → chunk-6YFGFW4V.js} +0 -0
  221. /package/dist/{chunk-KBZM7HRB.js → chunk-GOA7VQT7.js} +0 -0
  222. /package/dist/{chunk-54MZI4PK.js → chunk-I3B4QG5C.js} +0 -0
  223. /package/dist/{chunk-AFJWUI3Y.js → chunk-JMMYWY7C.js} +0 -0
  224. /package/dist/{chunk-G5GFP5J6.js → chunk-LZPZ67IT.js} +0 -0
  225. /package/dist/{chunk-OO5CPMT3.js → chunk-SY4TZ224.js} +0 -0
  226. /package/dist/{chunk-GHCVD7WV.js → chunk-XJTHRKML.js} +0 -0
  227. /package/dist/{core-memory-VQKCHGFX.js → core-memory-4QNM6MZ5.js} +0 -0
  228. /package/dist/{entity-boost-WEQDV6P6.js → entity-boost-QXR3LCYV.js} +0 -0
  229. /package/dist/{message-queue-client-BR7DXK7J.js → message-queue-client-CUCAQME6.js} +0 -0
  230. /package/dist/{wiki-acl-DDF2QQOD.js → wiki-acl-UTITDXLT.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  isRerankerAvailable,
3
3
  rerankWithScores
4
- } from "./chunk-MNNWWEVJ.js";
4
+ } from "./chunk-6YFGFW4V.js";
5
5
  import {
6
6
  getEntityByName,
7
7
  getEntityNeighbors,
@@ -12,19 +12,19 @@ import {
12
12
  } from "./chunk-KH5Y6RR4.js";
13
13
  import {
14
14
  listRecentSessionEvents
15
- } from "./chunk-JQLWMZZJ.js";
15
+ } from "./chunk-LWM3FUGY.js";
16
16
  import {
17
17
  getToolUsageStats
18
- } from "./chunk-AFJWUI3Y.js";
18
+ } from "./chunk-JMMYWY7C.js";
19
19
  import {
20
20
  AUTO_WAKE_MAX_RETRIES
21
- } from "./chunk-FDD7KX7Q.js";
21
+ } from "./chunk-GSKJ72LT.js";
22
22
  import {
23
23
  getCachedLicenseGate
24
24
  } from "./chunk-PLNYW6PA.js";
25
25
  import {
26
26
  getToolCapabilityIndex
27
- } from "./chunk-GHCVD7WV.js";
27
+ } from "./chunk-XJTHRKML.js";
28
28
  import {
29
29
  isToolAllowed,
30
30
  isToolAllowedForPlan
@@ -37,56 +37,56 @@ import {
37
37
  searchCodeContext,
38
38
  searchCodeContextSemantic,
39
39
  traceCodeSymbol
40
- } from "./chunk-YT67TJQZ.js";
40
+ } from "./chunk-LPPCJZVI.js";
41
+ import {
42
+ runDriftProbes
43
+ } from "./chunk-IOEK5ZX6.js";
41
44
  import {
42
45
  exportOrchestration,
43
46
  importOrchestration,
44
47
  validatePackage
45
- } from "./chunk-JSMOQRIV.js";
46
- import {
47
- runDriftProbes
48
- } from "./chunk-JPZQM7VW.js";
48
+ } from "./chunk-HUIYZHN3.js";
49
49
  import {
50
50
  loadOrchestrationPhase,
51
51
  setOrchestrationPhase
52
52
  } from "./chunk-DH65L4XI.js";
53
53
  import {
54
54
  createOrRefreshResumeTask
55
- } from "./chunk-ZLP5TNRU.js";
55
+ } from "./chunk-TBZB4PPZ.js";
56
+ import {
57
+ registerCreateReminder
58
+ } from "./chunk-XZQWEY5S.js";
56
59
  import {
57
60
  registerListReminders
58
- } from "./chunk-K6K55GMZ.js";
61
+ } from "./chunk-EEG6E34W.js";
59
62
  import {
60
63
  registerCompleteReminder
61
- } from "./chunk-5XAGTHF2.js";
64
+ } from "./chunk-GKQXZZBT.js";
62
65
  import {
63
66
  registerDeactivateBehavior
64
- } from "./chunk-FBTIOBF6.js";
67
+ } from "./chunk-KVVCXK3J.js";
68
+ import {
69
+ completeReminder,
70
+ createReminder,
71
+ listReminders
72
+ } from "./chunk-Z4FV45FW.js";
65
73
  import {
66
74
  registerSendMessage
67
- } from "./chunk-MWGAC2ER.js";
75
+ } from "./chunk-X33TOTUD.js";
68
76
  import {
69
77
  registerCreateTask
70
- } from "./chunk-PHIQW2IU.js";
78
+ } from "./chunk-LWYXWPZZ.js";
71
79
  import {
72
80
  registerListTasks
73
- } from "./chunk-JDGCEOT4.js";
81
+ } from "./chunk-K3FJHQ3F.js";
74
82
  import {
75
83
  registerUpdateTask
76
- } from "./chunk-YZIUQ77U.js";
77
- import {
78
- registerCreateReminder
79
- } from "./chunk-WATDOTGK.js";
80
- import {
81
- completeReminder,
82
- createReminder,
83
- listReminders
84
- } from "./chunk-UWMFQKOB.js";
84
+ } from "./chunk-TJHE2HYS.js";
85
85
  import {
86
86
  TOKENS_PER_IDLE_MINUTE,
87
87
  countKillsSince,
88
88
  sumTokensSavedSince
89
- } from "./chunk-WRCETUYE.js";
89
+ } from "./chunk-ZZODXCWK.js";
90
90
  import {
91
91
  conversationsToMemories,
92
92
  detectFormat,
@@ -96,17 +96,17 @@ import {
96
96
  } from "./chunk-Q2G5C3HV.js";
97
97
  import {
98
98
  extractMemoryGraph
99
- } from "./chunk-GIIRWR35.js";
99
+ } from "./chunk-7YTVWNSS.js";
100
100
  import {
101
101
  createSchedule,
102
102
  parseHumanCron
103
- } from "./chunk-RUKOGGQG.js";
103
+ } from "./chunk-LLYF22CH.js";
104
104
  import {
105
105
  status
106
- } from "./chunk-KRYEHI4V.js";
106
+ } from "./chunk-NOSCV7MH.js";
107
107
  import {
108
108
  getAgentSpend
109
- } from "./chunk-OO5EWGC6.js";
109
+ } from "./chunk-HGO5VFED.js";
110
110
  import {
111
111
  exportGraphHTML,
112
112
  generateGraphReport
@@ -122,7 +122,7 @@ import {
122
122
  fixShards,
123
123
  formatReport,
124
124
  runAudit
125
- } from "./chunk-WSYFZZCP.js";
125
+ } from "./chunk-C5A3L3HS.js";
126
126
  import {
127
127
  runHealthCheck
128
128
  } from "./chunk-J73N5EJ6.js";
@@ -133,12 +133,12 @@ import {
133
133
  } from "./chunk-46Q3LLXC.js";
134
134
  import {
135
135
  renderClientCOOTemplate
136
- } from "./chunk-2HEXCZGP.js";
136
+ } from "./chunk-GR53PEEH.js";
137
137
  import {
138
138
  deactivateGlobalProcedure,
139
139
  loadGlobalProcedures,
140
140
  storeGlobalProcedure
141
- } from "./chunk-65K2BQTG.js";
141
+ } from "./chunk-E5P2TY4E.js";
142
142
  import {
143
143
  PLATFORM_PROCEDURES
144
144
  } from "./chunk-2ZYEO7U7.js";
@@ -147,29 +147,29 @@ import {
147
147
  cloudSync,
148
148
  getCloudReuploadRequired,
149
149
  markCloudReuploadRequired
150
- } from "./chunk-SKXHR35T.js";
150
+ } from "./chunk-OW4QI3K4.js";
151
151
  import {
152
152
  createARecord
153
153
  } from "./chunk-X2Z5GT3V.js";
154
154
  import {
155
155
  findSimilarTrajectories,
156
156
  hashSignature
157
- } from "./chunk-V5U3FYDZ.js";
157
+ } from "./chunk-HVUBZOOT.js";
158
158
  import {
159
159
  deactivateBehavior,
160
160
  listBehaviorsByDomain,
161
161
  listSharedSkills,
162
162
  storeBehavior
163
- } from "./chunk-OGQX7HLN.js";
163
+ } from "./chunk-ZB3TDCXG.js";
164
164
  import {
165
165
  countUnconsolidated,
166
166
  groupMemories,
167
167
  runConsolidation,
168
168
  selectUnconsolidated
169
- } from "./chunk-JDHB6I4O.js";
169
+ } from "./chunk-F3QROFHP.js";
170
170
  import {
171
171
  embed
172
- } from "./chunk-KTJ57PVS.js";
172
+ } from "./chunk-CBAW3YFB.js";
173
173
  import {
174
174
  readMcpHttpEvents,
175
175
  summarizeMcpTransport,
@@ -177,17 +177,17 @@ import {
177
177
  } from "./chunk-T5YT64SZ.js";
178
178
  import {
179
179
  updateTask
180
- } from "./chunk-6BJ5GZD4.js";
180
+ } from "./chunk-AVRQWLQR.js";
181
181
  import {
182
182
  fastDbInit
183
- } from "./chunk-NF4AEKQK.js";
183
+ } from "./chunk-35ES3HTI.js";
184
184
  import {
185
185
  MAX_CONCURRENT_WORKERS
186
- } from "./chunk-IFFVONU6.js";
186
+ } from "./chunk-WVNKXOWZ.js";
187
187
  import {
188
188
  hybridSearch,
189
189
  recentRecords
190
- } from "./chunk-ZAF4GJTD.js";
190
+ } from "./chunk-QQXMGLSN.js";
191
191
  import {
192
192
  attachDocumentMetadata,
193
193
  flushBatch,
@@ -195,14 +195,14 @@ import {
195
195
  reserveVersions,
196
196
  vectorToBlob,
197
197
  writeMemory
198
- } from "./chunk-4X7CMJDN.js";
198
+ } from "./chunk-6UZHYTLV.js";
199
199
  import {
200
200
  extractKeywords,
201
201
  keywordsToString
202
202
  } from "./chunk-CHCA3ZM2.js";
203
203
  import {
204
204
  getActiveAgent
205
- } from "./chunk-BDYUENC7.js";
205
+ } from "./chunk-QOW5EEYO.js";
206
206
  import {
207
207
  getMySession,
208
208
  resolveExeSession,
@@ -210,7 +210,7 @@ import {
210
210
  sessionScopeFilter,
211
211
  updateTaskStatus,
212
212
  writeCheckpoint
213
- } from "./chunk-MABQMUCQ.js";
213
+ } from "./chunk-WXQRFDY4.js";
214
214
  import {
215
215
  listSessions
216
216
  } from "./chunk-64WZEXXA.js";
@@ -230,7 +230,7 @@ import {
230
230
  assertEmployeeLimit,
231
231
  assertFeature,
232
232
  assertMemoryLimit
233
- } from "./chunk-ZHINF5CG.js";
233
+ } from "./chunk-VQB4VBEQ.js";
234
234
  import {
235
235
  getProjectName
236
236
  } from "./chunk-OPU3NYOO.js";
@@ -243,7 +243,7 @@ import {
243
243
  isScheduledTrigger,
244
244
  loadTriggers,
245
245
  sanitizeParam
246
- } from "./chunk-54MZI4PK.js";
246
+ } from "./chunk-I3B4QG5C.js";
247
247
  import {
248
248
  pushConversationToCRM
249
249
  } from "./chunk-ONKIWA3R.js";
@@ -263,7 +263,7 @@ import {
263
263
  loadEmployeesSync,
264
264
  saveEmployees,
265
265
  updateIdentity
266
- } from "./chunk-TGOJR5SS.js";
266
+ } from "./chunk-3HM6MZ4O.js";
267
267
  import {
268
268
  getMasterKey
269
269
  } from "./chunk-6D23UNXU.js";
@@ -459,7 +459,7 @@ function registerRecallMyMemory(server) {
459
459
  let federatedCount = 0;
460
460
  if (!recent && query && results.length < FEDERATION_THRESHOLD) {
461
461
  try {
462
- const { searchCodeContextSemantic: searchCodeContextSemantic2 } = await import("./code-context-index-TBCTP47N.js");
462
+ const { searchCodeContextSemantic: searchCodeContextSemantic2 } = await import("./code-context-index-JPQDRTTX.js");
463
463
  const codeResults = await Promise.race([
464
464
  searchCodeContextSemantic2(query, { limit: 5 }),
465
465
  new Promise((_, rej) => setTimeout(() => rej(new Error("timeout")), 2e3))
@@ -1445,7 +1445,7 @@ async function handleSupersede(input) {
1445
1445
  }
1446
1446
  try {
1447
1447
  const { getClient: getClient2 } = await import("./lib/database.js");
1448
- const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-O433V5SV.js");
1448
+ const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-J3YKAXE2.js");
1449
1449
  const { writeMemory: writeMemory2, flushBatch: flushBatch2 } = await import("./lib/store.js");
1450
1450
  const { randomUUID: randomUUID2 } = await import("crypto");
1451
1451
  const client = getClient2();
@@ -1555,9 +1555,9 @@ function registerMemory(server) {
1555
1555
  return handleSupersede(input);
1556
1556
  }
1557
1557
  if (action === "core_get" || action === "core_set" || action === "core_delete") {
1558
- const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-O433V5SV.js");
1558
+ const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-J3YKAXE2.js");
1559
1559
  const { agentId } = getActiveAgent2();
1560
- const { getCoreMemory, setCoreMemory, deleteCoreMemory, formatCoreMemoryBlock } = await import("./core-memory-VQKCHGFX.js");
1560
+ const { getCoreMemory, setCoreMemory, deleteCoreMemory, formatCoreMemoryBlock } = await import("./core-memory-4QNM6MZ5.js");
1561
1561
  if (action === "core_get") {
1562
1562
  const entries = await getCoreMemory(agentId);
1563
1563
  const block = formatCoreMemoryBlock(entries);
@@ -2266,7 +2266,7 @@ function registerResumeEmployee(server) {
2266
2266
  };
2267
2267
  }
2268
2268
  try {
2269
- const { isTmuxSessionAlive } = await import("./tasks-crud-IEOK55IV.js");
2269
+ const { isTmuxSessionAlive } = await import("./tasks-crud-4VGXAUW5.js");
2270
2270
  const now = (/* @__PURE__ */ new Date()).toISOString();
2271
2271
  for (const row of openTasks.rows) {
2272
2272
  const status2 = String(row.status);
@@ -3315,8 +3315,8 @@ function registerIngestDocument(server) {
3315
3315
  },
3316
3316
  async (input) => {
3317
3317
  try {
3318
- const { assertFeature: assertFeature2 } = await import("./plan-limits-FKTRN25T.js");
3319
- const { assertMemoryLimit: assertMemoryLimit2 } = await import("./plan-limits-FKTRN25T.js");
3318
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-KY5FB6FM.js");
3319
+ const { assertMemoryLimit: assertMemoryLimit2 } = await import("./plan-limits-KY5FB6FM.js");
3320
3320
  await assertFeature2("wiki");
3321
3321
  await assertMemoryLimit2();
3322
3322
  const result3 = await ingestDocument(input);
@@ -5433,7 +5433,7 @@ async function getAgentSessionLoad() {
5433
5433
  return { sessions: [], totalLive: 0, busySessions: 0, idleSessions: 0 };
5434
5434
  }
5435
5435
  const { getClient: getClient2 } = await import("./lib/database.js");
5436
- const { sessionScopeFilter: sessionScopeFilter2 } = await import("./task-scope-AI62AIPT.js");
5436
+ const { sessionScopeFilter: sessionScopeFilter2 } = await import("./task-scope-C7QECQSB.js");
5437
5437
  const client = getClient2();
5438
5438
  const scope = sessionScopeFilter2();
5439
5439
  for (const s of liveAgentSessions) {
@@ -7083,7 +7083,7 @@ function registerCreateTrigger(server) {
7083
7083
  }
7084
7084
  },
7085
7085
  async ({ name, event, conditions, actions, project, enabled, schedule, query }) => {
7086
- const { assertFeature: assertFeature2 } = await import("./plan-limits-FKTRN25T.js");
7086
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-KY5FB6FM.js");
7087
7087
  const gatedActions = {
7088
7088
  send_whatsapp: "external_agents",
7089
7089
  update_wiki: "wiki"
@@ -7987,7 +7987,7 @@ function registerConfig(server) {
7987
7987
  const existing = loadEmployeesSync2();
7988
7988
  if (existing.some((e) => e.name === employeeName)) return errorResult8(`Employee "${employeeName}" already exists.`);
7989
7989
  try {
7990
- const { assertEmployeeLimit: assertEmployeeLimit2 } = await import("./plan-limits-FKTRN25T.js");
7990
+ const { assertEmployeeLimit: assertEmployeeLimit2 } = await import("./plan-limits-KY5FB6FM.js");
7991
7991
  await assertEmployeeLimit2();
7992
7992
  } catch (e) {
7993
7993
  return errorResult8(e instanceof Error ? e.message : "Employee limit reached.");
@@ -8028,7 +8028,7 @@ You are ${employeeName}. Role: ${role}.`, "utf-8");
8028
8028
  }
8029
8029
  try {
8030
8030
  const { generateSessionWrappers } = await import("./lib/session-wrappers.js");
8031
- const { resolvePackageRoot } = await import("./installer-CWKEI7SE.js");
8031
+ const { resolvePackageRoot } = await import("./installer-AYN7WB62.js");
8032
8032
  generateSessionWrappers(resolvePackageRoot());
8033
8033
  } catch {
8034
8034
  }
@@ -8064,7 +8064,7 @@ function registerListWikiPages(server) {
8064
8064
  }
8065
8065
  },
8066
8066
  async ({ workspace, folder }) => {
8067
- const { assertFeature: assertFeature2 } = await import("./plan-limits-FKTRN25T.js");
8067
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-KY5FB6FM.js");
8068
8068
  await assertFeature2("wiki");
8069
8069
  const apiUrl = process.env.EXE_WIKI_API_URL;
8070
8070
  const apiKey = process.env.EXE_WIKI_API_KEY;
@@ -8164,7 +8164,7 @@ function registerGetWikiPage(server) {
8164
8164
  }
8165
8165
  },
8166
8166
  async ({ workspace, document_id, title }) => {
8167
- const { assertFeature: assertFeature2 } = await import("./plan-limits-FKTRN25T.js");
8167
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-KY5FB6FM.js");
8168
8168
  await assertFeature2("wiki");
8169
8169
  const apiUrl = process.env.EXE_WIKI_API_URL;
8170
8170
  const apiKey = process.env.EXE_WIKI_API_KEY;
@@ -8359,7 +8359,7 @@ function registerWiki(server) {
8359
8359
  if (!legacyToolName) return errorResult9(`Unknown wiki action: ${String(input.action)}`);
8360
8360
  const { action: _action, user_id, ...legacyArgs } = input;
8361
8361
  if (user_id && legacyArgs.workspace) {
8362
- const { checkWikiAccess } = await import("./wiki-acl-DDF2QQOD.js");
8362
+ const { checkWikiAccess } = await import("./wiki-acl-UTITDXLT.js");
8363
8363
  const { allowed } = await checkWikiAccess(
8364
8364
  String(user_id),
8365
8365
  String(legacyArgs.workspace),
@@ -9529,7 +9529,7 @@ function registerWorkflowTool(server) {
9529
9529
  getWorkflowInstance,
9530
9530
  listWorkflowInstances,
9531
9531
  approveWorkflowStep
9532
- } = await import("./workflow-engine-H5KTDDJG.js");
9532
+ } = await import("./workflow-engine-MA2H5JEZ.js");
9533
9533
  try {
9534
9534
  switch (input.action) {
9535
9535
  case "create_workflow": {
@@ -10452,7 +10452,7 @@ function registerCliParityTools(server) {
10452
10452
  }, async () => {
10453
10453
  const out = runHealthCheck();
10454
10454
  const text3 = ["exe-os healthcheck", "", ...out.results.map((r) => `${r.pass ? "\u2705" : "\u274C"} ${r.name}: ${r.detail}`), "", `${out.passed} passed, ${out.failed} failed`].join("\n");
10455
- return result2(text3, out, out.failed > 0);
10455
+ return result2(text3, out);
10456
10456
  });
10457
10457
  server.registerTool("doctor", {
10458
10458
  title: "Doctor",
@@ -10707,7 +10707,7 @@ function registerCodeContext(server) {
10707
10707
  const index = buildCodeContextIndex(opts);
10708
10708
  let graphExtract;
10709
10709
  try {
10710
- const { autoExtractGraphEntities } = await import("./graph-auto-extract-5OYWXUKD.js");
10710
+ const { autoExtractGraphEntities } = await import("./graph-auto-extract-GUEMG3Q3.js");
10711
10711
  graphExtract = await autoExtractGraphEntities(opts.projectRoot);
10712
10712
  } catch {
10713
10713
  }
@@ -11000,14 +11000,14 @@ async function sendStatusUpstream(endpointPath, payload) {
11000
11000
  return "failed: insecure endpoint rejected";
11001
11001
  }
11002
11002
  const response = await fetch(parsed, {
11003
- method: "PATCH",
11003
+ method: "POST",
11004
11004
  headers: {
11005
11005
  "content-type": "application/json",
11006
11006
  ...token ? { authorization: `Bearer ${token}` } : {},
11007
11007
  ...licenseKey ? { "x-exe-license-key": licenseKey } : {},
11008
11008
  ...licenseToken ? { "x-exe-license-token": licenseToken } : {}
11009
11009
  },
11010
- body: JSON.stringify(payload),
11010
+ body: JSON.stringify({ ...payload, action: "status_update" }),
11011
11011
  signal: AbortSignal.timeout(1e4)
11012
11012
  });
11013
11013
  if (!response.ok) return `failed: HTTP ${response.status}`;
@@ -6,7 +6,7 @@ import {
6
6
  findScopedDuplicate,
7
7
  governMemoryRecord,
8
8
  schedulePostWriteMemoryHygiene
9
- } from "./chunk-OO5CPMT3.js";
9
+ } from "./chunk-SY4TZ224.js";
10
10
  import {
11
11
  orgBus
12
12
  } from "./chunk-MP2AFCGL.js";
@@ -15,7 +15,7 @@ import {
15
15
  ensureSchema,
16
16
  getClient,
17
17
  initTurso
18
- } from "./chunk-TGOJR5SS.js";
18
+ } from "./chunk-3HM6MZ4O.js";
19
19
  import {
20
20
  EMBEDDING_DIM
21
21
  } from "./chunk-FXU7JOXK.js";
@@ -42,6 +42,35 @@ function logStoreWarn(context, err) {
42
42
  `
43
43
  );
44
44
  }
45
+ var SHARD_CB_MAX_FAILURES = 3;
46
+ var SHARD_CB_COOLDOWN_MS = 5 * 6e4;
47
+ var _shardCircuits = /* @__PURE__ */ new Map();
48
+ function isShardCircuitOpen(project) {
49
+ const state = _shardCircuits.get(project);
50
+ if (!state || state.openedAt === null) return false;
51
+ if (Date.now() - state.openedAt > SHARD_CB_COOLDOWN_MS) {
52
+ state.openedAt = null;
53
+ state.failures = 0;
54
+ return false;
55
+ }
56
+ return true;
57
+ }
58
+ function recordShardFailure(project, error) {
59
+ const state = _shardCircuits.get(project) ?? { failures: 0, openedAt: null, lastError: "" };
60
+ state.failures++;
61
+ state.lastError = error;
62
+ if (state.failures >= SHARD_CB_MAX_FAILURES && state.openedAt === null) {
63
+ state.openedAt = Date.now();
64
+ process.stderr.write(
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
+ `
67
+ );
68
+ }
69
+ _shardCircuits.set(project, state);
70
+ }
71
+ function recordShardSuccess(project) {
72
+ _shardCircuits.delete(project);
73
+ }
45
74
  var INIT_MAX_RETRIES = 3;
46
75
  var INIT_RETRY_DELAY_MS = 1e3;
47
76
  function isBusyError(err) {
@@ -123,7 +152,7 @@ async function initStore(options) {
123
152
  );
124
153
  _nextVersion = (Number(vResult.rows[0]?.max_v) || 0) + 1;
125
154
  try {
126
- const { loadGlobalProcedures } = await import("./global-procedures-GKQGLYXQ.js");
155
+ const { loadGlobalProcedures } = await import("./global-procedures-PQKUKKM6.js");
127
156
  await loadGlobalProcedures();
128
157
  } catch (e) {
129
158
  logStoreWarn("catch", e);
@@ -250,7 +279,7 @@ async function writeMemory(record) {
250
279
  keywords: record.keywords ?? keywordsToString(extractKeywords(record.raw_text))
251
280
  };
252
281
  try {
253
- const { checkMemoryPoisoning } = await import("./memory-poisoning-defense-WDSEUEBW.js");
282
+ const { checkMemoryPoisoning } = await import("./memory-poisoning-defense-M4E6D6NI.js");
254
283
  const poisonResult = await checkMemoryPoisoning({
255
284
  memoryId: dbRow.id,
256
285
  vector: Array.isArray(dbRow.vector) ? dbRow.vector : void 0,
@@ -436,19 +465,19 @@ async function flushBatch() {
436
465
  }
437
466
  _nextVersion = baseVersion;
438
467
  try {
439
- const { insertMemoryCardsForBatch } = await import("./memory-cards-UPFWA3YQ.js");
468
+ const { insertMemoryCardsForBatch } = await import("./memory-cards-QHCHERFV.js");
440
469
  await insertMemoryCardsForBatch(batch);
441
470
  } catch (e) {
442
471
  logStoreWarn("catch", e);
443
472
  }
444
473
  try {
445
- const { insertOntologyForBatch } = await import("./agentic-ontology-64X76FKF.js");
474
+ const { insertOntologyForBatch } = await import("./agentic-ontology-N5HXDWIN.js");
446
475
  await insertOntologyForBatch(batch);
447
476
  } catch (e) {
448
477
  logStoreWarn("catch", e);
449
478
  }
450
479
  try {
451
- const { extractGraphForBatch } = await import("./memory-graph-extractor-XTH3U6QS.js");
480
+ const { extractGraphForBatch } = await import("./memory-graph-extractor-RAF4M3YY.js");
452
481
  await extractGraphForBatch(batch);
453
482
  } catch (e) {
454
483
  logStoreWarn("catch", e);
@@ -476,13 +505,19 @@ async function flushBatch() {
476
505
  );
477
506
  }
478
507
  for (const [project, rows] of byProject) {
508
+ if (isShardCircuitOpen(project)) {
509
+ logStoreDebug("shard-circuit", `Skipping shard write for "${project}" \u2014 circuit open`);
510
+ continue;
511
+ }
479
512
  try {
480
513
  const shardClient = await getReadyShardClient(project);
481
514
  const shardStmts = rows.map(buildStmt);
482
515
  await shardClient.batch(shardStmts, "write");
516
+ recordShardSuccess(project);
483
517
  } catch (err) {
484
518
  const fullError = err instanceof Error ? `${err.name}: ${err.message}${err.stack ? `
485
519
  ${err.stack.split("\n").slice(1, 3).join("\n")}` : ""}` : String(err);
520
+ recordShardFailure(project, fullError);
486
521
  process.stderr.write(
487
522
  `[store] Shard write failed for ${project} (${rows.length} records): ${fullError}
488
523
  `
@@ -154,7 +154,7 @@ function validateComposeImageLiteral(image, label) {
154
154
  const trimmed = image.trim().replace(/^['"]|['"]$/g, "");
155
155
  if (!trimmed) return `${label} is empty`;
156
156
  if (trimmed.startsWith("ghcr.io/askexe/") || trimmed.startsWith("update.askexe.com/askexe/")) return validatePinnedGhcrImage(trimmed, label);
157
- if (/^(postgres|pgvector\/pgvector|clickhouse\/clickhouse-server|redis|nginx|postgrest\/postgrest|supabase\/gotrue):[^:]+$/i.test(trimmed)) return null;
157
+ if (/^(postgres|pgvector\/pgvector|clickhouse\/clickhouse-server|redis|nginx|postgrest\/postgrest|supabase\/gotrue|cloudflare\/cloudflared):[^:]+$/i.test(trimmed)) return null;
158
158
  return `${label} uses unsupported non-AskExe image ${trimmed}; customer app images must come from pinned update.askexe.com/askexe or ghcr.io/askexe images`;
159
159
  }
160
160
  function collectProductionDeployGateIssues(plan, envRaw, composeRaw) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  MultiAgentOrchestrator
3
- } from "./chunk-FXVTLBBA.js";
3
+ } from "./chunk-P6PKNRFD.js";
4
4
  import {
5
5
  createQuietRenderer,
6
6
  createTerminalRenderer,
@@ -39,10 +39,6 @@ import {
39
39
  createPermissionsFromPreset,
40
40
  createRestrictedPermissions
41
41
  } from "./chunk-PRKVT4KN.js";
42
- import {
43
- composeHooks,
44
- createDefaultHooks
45
- } from "./chunk-O377P7GM.js";
46
42
  import {
47
43
  PERMISSION_PRESETS,
48
44
  evaluatePermission,
@@ -50,6 +46,10 @@ import {
50
46
  matchInputPattern,
51
47
  matchToolPattern
52
48
  } from "./chunk-HF25XPZE.js";
49
+ import {
50
+ composeHooks,
51
+ createDefaultHooks
52
+ } from "./chunk-O377P7GM.js";
53
53
  import {
54
54
  StateBus,
55
55
  orgBus
@@ -206,7 +206,7 @@ function createExeOSHooks(config) {
206
206
  );
207
207
  }
208
208
  try {
209
- const { listBehaviors } = await import("./behaviors-ZW4BWUGD.js");
209
+ const { listBehaviors } = await import("./behaviors-GXMZW7B3.js");
210
210
  const behaviors = await listBehaviors(config.agentId, config.projectName, 12);
211
211
  if (behaviors.length > 0) {
212
212
  process.stderr.write(
@@ -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-AI62AIPT.js");
330
+ const { sessionScopeFilter } = await import("./task-scope-C7QECQSB.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-AI62AIPT.js");
422
+ const { sessionScopeFilter: cpScopeFilter } = await import("./task-scope-C7QECQSB.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
  getClient
3
- } from "./chunk-TGOJR5SS.js";
3
+ } from "./chunk-3HM6MZ4O.js";
4
4
 
5
5
  // src/lib/memory-graph-extractor.ts
6
6
  function entityId(type, name) {
@@ -179,7 +179,7 @@ async function upsertMemoryGraph(result, memoryId) {
179
179
  });
180
180
  }
181
181
  try {
182
- const { createCoOccurrenceEdges } = await import("./co-occurrence-OVDIX3OS.js");
182
+ const { createCoOccurrenceEdges } = await import("./co-occurrence-6OAMOUTF.js");
183
183
  await createCoOccurrenceEdges(result.entities, memoryId);
184
184
  } catch {
185
185
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadEmployees
3
- } from "./chunk-TGOJR5SS.js";
3
+ } from "./chunk-3HM6MZ4O.js";
4
4
 
5
5
  // src/lib/agent-symlinks.ts
6
6
  import os from "os";
@@ -11,7 +11,7 @@ import {
11
11
  sessionScopeFilter,
12
12
  updateTaskStatus,
13
13
  writeNotification
14
- } from "./chunk-MABQMUCQ.js";
14
+ } from "./chunk-WXQRFDY4.js";
15
15
  import {
16
16
  getTransport
17
17
  } from "./chunk-TXWQPL2U.js";
@@ -27,7 +27,7 @@ import {
27
27
  isCoordinatorName,
28
28
  isMultiInstance,
29
29
  shouldAutoInstance
30
- } from "./chunk-TGOJR5SS.js";
30
+ } from "./chunk-3HM6MZ4O.js";
31
31
  import {
32
32
  EXE_AI_DIR
33
33
  } from "./chunk-4GXRETYL.js";
@@ -136,7 +136,7 @@ async function dispatchTaskToEmployee(input) {
136
136
  let crossProject = false;
137
137
  if (input.projectName) {
138
138
  try {
139
- const { assertSessionScope } = await import("./session-scope-LXQKQDIS.js");
139
+ const { assertSessionScope } = await import("./session-scope-H6H7EVMH.js");
140
140
  const check = assertSessionScope("dispatch_task", input.projectName);
141
141
  if (check.reason === "cross_session_denied") {
142
142
  crossProject = true;
@@ -334,13 +334,13 @@ async function updateTask(input) {
334
334
  const exeSession = row.session_scope ? String(row.session_scope) : resolveExeSession2();
335
335
  if (exeSession) {
336
336
  const reviewerSession = `${reviewer}-${exeSession}`;
337
- const result = sendIntercom2(reviewerSession);
337
+ const result = sendIntercom2(reviewerSession, { reason: "completion" });
338
338
  if (result !== "failed") {
339
339
  delivered = true;
340
340
  process.stderr.write(`[tasks] EVENT: notified reviewer "${reviewer}" via tmux for "${taskTitle}"
341
341
  `);
342
342
  } else if (isCoordinatorName(reviewer)) {
343
- const cooResult = sendIntercom2(exeSession);
343
+ const cooResult = sendIntercom2(exeSession, { reason: "completion" });
344
344
  if (cooResult !== "failed") {
345
345
  delivered = true;
346
346
  process.stderr.write(`[tasks] EVENT: notified coordinator "${reviewer}" for "${taskTitle}"
@@ -396,7 +396,7 @@ async function updateTask(input) {
396
396
  await markTaskNotificationsRead(taskFile);
397
397
  if (input.status === "needs_review" && !isCoordinator) {
398
398
  try {
399
- const { writeNotification: writeNotification2 } = await import("./notifications-WYNI5OG6.js");
399
+ const { writeNotification: writeNotification2 } = await import("./notifications-QCZJTMU4.js");
400
400
  await writeNotification2({
401
401
  agentId: String(row.assigned_to),
402
402
  agentRole: String(row.assigned_to),