@askexenow/exe-os 0.9.365 → 0.9.368

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 (357) hide show
  1. package/deploy/compose/.env.askexe-control-plane.example +3 -1
  2. package/deploy/compose/.env.customer.example +6 -2
  3. package/deploy/compose/.env.example +8 -2
  4. package/deploy/compose/docker-compose.yml +21 -2
  5. package/deploy/compose/generate-env.ts +21 -1
  6. package/dist/.dist-verified.json +3 -3
  7. package/dist/{active-agent-MGF7J3HB.js → active-agent-6WNC756A.js} +3 -3
  8. package/dist/{active-agent-C6DPH43L.js → active-agent-RDTJGZHP.js} +3 -3
  9. package/dist/{agent-defs-generator-X7TVMPVB.js → agent-defs-generator-M5AUL3WM.js} +2 -2
  10. package/dist/agent-heartbeat-CQPGJIFF.js +13 -0
  11. package/dist/{agent-loop-E7RZCFDB.js → agent-loop-FOK2IRZQ.js} +1 -1
  12. package/dist/{agentic-ontology-CARDCG37.js → agentic-ontology-ZJBRYETW.js} +1 -1
  13. package/dist/{backfill-metadata-ANCJA6LA.js → backfill-metadata-Q4X23XLR.js} +5 -5
  14. package/dist/{backup-verify-F7BHVEF7.js → backup-verify-UKLX6IEK.js} +1 -1
  15. package/dist/behavior-injection-C3HEKSJY.js +60 -0
  16. package/dist/{behaviors-R2IE3PEN.js → behaviors-UCMAREU3.js} +8 -6
  17. package/dist/bin/agentic-ontology-backfill.js +6 -6
  18. package/dist/bin/agentic-reflection-backfill.js +7 -7
  19. package/dist/bin/agentic-semantic-label.js +6 -6
  20. package/dist/bin/backfill-conversations.js +5 -5
  21. package/dist/bin/backfill-responses.js +5 -5
  22. package/dist/bin/backfill-vectors.js +6 -6
  23. package/dist/bin/bulk-sync-postgres.js +10 -10
  24. package/dist/bin/cc-doctor.js +5 -5
  25. package/dist/bin/cleanup-stale-review-tasks.js +15 -14
  26. package/dist/bin/cli.js +20 -20
  27. package/dist/bin/deferred-daemon-restart.js +88 -83
  28. package/dist/bin/exe-agent-config.js +2 -2
  29. package/dist/bin/exe-agent.js +252 -14
  30. package/dist/bin/exe-assign.js +6 -6
  31. package/dist/bin/exe-boot.js +33 -31
  32. package/dist/bin/exe-call.js +4 -4
  33. package/dist/bin/exe-cloud.js +11 -11
  34. package/dist/bin/exe-config-dump.js +2 -2
  35. package/dist/bin/exe-dispatch.js +16 -15
  36. package/dist/bin/exe-doctor.js +6 -6
  37. package/dist/bin/exe-export-behaviors.js +10 -8
  38. package/dist/bin/exe-forget.js +7 -7
  39. package/dist/bin/exe-gateway.js +7 -7
  40. package/dist/bin/exe-healthcheck.js +5 -5
  41. package/dist/bin/exe-heartbeat.js +18 -17
  42. package/dist/bin/exe-kill.js +19 -18
  43. package/dist/bin/exe-launch-agent.js +25 -23
  44. package/dist/bin/exe-mcp.js +3 -3
  45. package/dist/bin/exe-memory-reads.js +5 -5
  46. package/dist/bin/exe-new-employee.js +8 -8
  47. package/dist/bin/exe-os-mcp-proxy.js +3 -3
  48. package/dist/bin/exe-pending-messages.js +16 -15
  49. package/dist/bin/exe-pending-notifications.js +15 -14
  50. package/dist/bin/exe-pending-reviews.js +15 -14
  51. package/dist/bin/exe-rename.js +4 -4
  52. package/dist/bin/exe-review.js +18 -17
  53. package/dist/bin/exe-search.js +6 -6
  54. package/dist/bin/exe-session-cleanup.js +20 -18
  55. package/dist/bin/exe-settings.js +10 -10
  56. package/dist/bin/exe-start-codex.js +81 -19
  57. package/dist/bin/exe-start-opencode.js +11 -9
  58. package/dist/bin/exe-status.js +17 -16
  59. package/dist/bin/exe-support.js +3 -3
  60. package/dist/bin/exe-team.js +4 -4
  61. package/dist/bin/exe-verify-running-images.js +123 -4
  62. package/dist/bin/exe-watchdog.js +44 -3
  63. package/dist/bin/git-sweep.js +25 -15
  64. package/dist/bin/graph-backfill.js +7 -7
  65. package/dist/bin/graph-export.js +6 -6
  66. package/dist/bin/import-history.js +10 -10
  67. package/dist/bin/install.js +90 -85
  68. package/dist/bin/intercom-check.js +4 -4
  69. package/dist/bin/mcp-sessions.js +2 -2
  70. package/dist/bin/orchestration-metrics.js +4 -4
  71. package/dist/bin/postgres-agentic-reflection-backfill.js +4 -4
  72. package/dist/bin/postgres-agentic-semantic-backfill.js +4 -4
  73. package/dist/bin/reconcile-backlog.js +47 -6
  74. package/dist/bin/registry-proxy.js +1 -1
  75. package/dist/bin/scan-tasks.js +15 -14
  76. package/dist/bin/setup.js +1 -1
  77. package/dist/bin/shard-migrate.js +5 -5
  78. package/dist/bin/stack-update.js +35 -6
  79. package/dist/bin/verify-stack.js +11 -1
  80. package/dist/bin/vps-health-gate.js +1 -1
  81. package/dist/{boot-generation-X45BSVZY.js → boot-generation-7H7Y4KC2.js} +3 -3
  82. package/dist/{boot-review-sections-OBVRXXSF.js → boot-review-sections-4AGCECCP.js} +14 -13
  83. package/dist/build-manifest.json +910 -845
  84. package/dist/{capability-cards-57FURUMR.js → capability-cards-6KAC5D2Z.js} +2 -2
  85. package/dist/{capacity-monitor-QEL62JDO.js → capacity-monitor-J2Y4SFLA.js} +16 -15
  86. package/dist/{catchup-brief-PMXTCASA.js → catchup-brief-F2HKF2CU.js} +19 -18
  87. package/dist/{chunk-5CBGH6RA.js → chunk-2AS6FG6C.js} +3 -3
  88. package/dist/{chunk-TO6TB75E.js → chunk-2UBMXN4D.js} +2 -2
  89. package/dist/{chunk-J6I7X272.js → chunk-2UGU3V63.js} +1 -1
  90. package/dist/{chunk-45EQTS7B.js → chunk-34BMZTWV.js} +1 -1
  91. package/dist/{chunk-JYFYIGYK.js → chunk-4DGIOK6T.js} +1 -1
  92. package/dist/{chunk-T6S45OLV.js → chunk-4GVJIMMK.js} +12 -6
  93. package/dist/{chunk-IXEFO6HD.js → chunk-4L732DE5.js} +3 -3
  94. package/dist/{chunk-MXEIZUXG.js → chunk-4RRMZJLG.js} +1 -1
  95. package/dist/{chunk-3JNVB5LG.js → chunk-5IVLOOJR.js} +1 -1
  96. package/dist/chunk-5YKNEL3W.js +356 -0
  97. package/dist/{chunk-EMZHB767.js → chunk-6EXOW5ZA.js} +9 -9
  98. package/dist/{chunk-6Q263OZE.js → chunk-6P7DVFKA.js} +1 -1
  99. package/dist/{chunk-ZDUO6QBH.js → chunk-6UZ3DEQI.js} +1 -1
  100. package/dist/{chunk-DJK45U7B.js → chunk-72JZQ7EV.js} +1 -1
  101. package/dist/{chunk-22YQBVMO.js → chunk-72QUZX6J.js} +4 -4
  102. package/dist/{chunk-DYWGIPVP.js → chunk-AAL6CDMQ.js} +7 -7
  103. package/dist/{chunk-E6ORBQHP.js → chunk-AAMGHW5W.js} +1 -0
  104. package/dist/{chunk-EJ4522YM.js → chunk-AJGX4Z34.js} +1 -1
  105. package/dist/{chunk-M7EES2KM.js → chunk-BEPO36MW.js} +3 -3
  106. package/dist/{chunk-WR75WUEP.js → chunk-BFL3UB77.js} +1 -1
  107. package/dist/{chunk-NV6A5HDN.js → chunk-BFPQXPN3.js} +1 -1
  108. package/dist/{chunk-VGE6IHZB.js → chunk-BJKC6ZJU.js} +110 -86
  109. package/dist/{chunk-R7RM766N.js → chunk-BLNSUBP3.js} +3 -3
  110. package/dist/{chunk-52TIQJEQ.js → chunk-BNDHQGOY.js} +1 -1
  111. package/dist/{chunk-QYJANQWC.js → chunk-BPQWRR4H.js} +2 -2
  112. package/dist/{chunk-ANPE3TT3.js → chunk-BTGR55GX.js} +3 -3
  113. package/dist/chunk-BTSWFMEH.js +14 -0
  114. package/dist/{chunk-OPNROU5B.js → chunk-C4IJ5IS5.js} +1 -1
  115. package/dist/{chunk-BEHLIRRJ.js → chunk-C5FOA5GO.js} +14 -3
  116. package/dist/{chunk-EHHMNKOA.js → chunk-CSBD7QLZ.js} +1 -1
  117. package/dist/{chunk-EKVTRI3N.js → chunk-CU2OUUSV.js} +27 -6
  118. package/dist/{chunk-P47MPWNU.js → chunk-CXHRNESJ.js} +1 -1
  119. package/dist/{chunk-F2S3M5MB.js → chunk-DRMGPZSC.js} +2 -2
  120. package/dist/{chunk-KRUYQFSH.js → chunk-DYPKSVB7.js} +5 -5
  121. package/dist/{chunk-KSVLBATT.js → chunk-E5QQZDQN.js} +53 -0
  122. package/dist/{chunk-ODBRU6BF.js → chunk-EDB3LXBQ.js} +1542 -984
  123. package/dist/{chunk-IIZITKBV.js → chunk-EDRXCUEP.js} +4 -4
  124. package/dist/{chunk-4QKKLK3C.js → chunk-ELY5WBZX.js} +10 -10
  125. package/dist/{chunk-MPQXQ5IE.js → chunk-EZUSIF66.js} +1 -1
  126. package/dist/{chunk-DEFSN2FQ.js → chunk-FHYX64H3.js} +3 -3
  127. package/dist/{chunk-YMJOLEPE.js → chunk-FSALI4B7.js} +4 -4
  128. package/dist/{chunk-6GQYPJPG.js → chunk-FWKTZURC.js} +8 -8
  129. package/dist/{chunk-EWZYFG5Q.js → chunk-FWVPGXHD.js} +5 -5
  130. package/dist/{chunk-DWAQOEXL.js → chunk-GILYOIMP.js} +2 -2
  131. package/dist/{chunk-RZIKSE6N.js → chunk-GP3J3AOT.js} +4 -4
  132. package/dist/{chunk-LHOKWZKL.js → chunk-H6J7N3BZ.js} +1 -1
  133. package/dist/{chunk-EVPBYX2Z.js → chunk-HQSUXAB4.js} +1 -1
  134. package/dist/{chunk-IM2I7OOS.js → chunk-HTLJHSN4.js} +1 -1
  135. package/dist/{chunk-JUOZLXLH.js → chunk-HXV3DGL7.js} +1 -1
  136. package/dist/{chunk-OFGFRT5J.js → chunk-IEE6X6R2.js} +1 -1
  137. package/dist/{chunk-SP37DONS.js → chunk-IKRIUEIF.js} +1 -1
  138. package/dist/{chunk-RHX6MNWY.js → chunk-J44774XC.js} +1 -1
  139. package/dist/{chunk-7C4FUNVO.js → chunk-J77ZIMH5.js} +5 -5
  140. package/dist/{chunk-NO3M2AFM.js → chunk-JDPV7W2L.js} +1 -1
  141. package/dist/{chunk-FXPAUDCZ.js → chunk-KGPWS4KE.js} +1 -1
  142. package/dist/{chunk-L3TB7CC3.js → chunk-KM6XSFHP.js} +12 -2
  143. package/dist/{chunk-ZEKCHV43.js → chunk-KWQ7RHYD.js} +4 -4
  144. package/dist/{chunk-QFIVK3G5.js → chunk-KYVIV54Y.js} +1 -1
  145. package/dist/chunk-KZXMP6JG.js +319 -0
  146. package/dist/{chunk-AGQAGOQN.js → chunk-LJWCK2DR.js} +9 -9
  147. package/dist/{chunk-O2MEBF23.js → chunk-MCXYNYZI.js} +30 -2
  148. package/dist/{chunk-L2VZBPJJ.js → chunk-MWEIBVBS.js} +13 -1
  149. package/dist/{chunk-RVWALVDT.js → chunk-MXP27XTP.js} +2 -2
  150. package/dist/{chunk-DQ5KHWFD.js → chunk-N3CGSO3S.js} +1 -1
  151. package/dist/{chunk-ZNEBZCZR.js → chunk-NNXPIJRB.js} +1 -1
  152. package/dist/{chunk-MZJBUAC3.js → chunk-NWE3CFX7.js} +4 -4
  153. package/dist/{chunk-BRLS5OLZ.js → chunk-OBESOWFJ.js} +35 -4
  154. package/dist/{chunk-5KLQCGI5.js → chunk-OL3QP3AU.js} +171 -1
  155. package/dist/{chunk-ESTR7QUP.js → chunk-P3PAD6AA.js} +1 -1
  156. package/dist/{chunk-2FYIMTQE.js → chunk-PGF5I7EV.js} +2 -2
  157. package/dist/{agent-heartbeat-I5UPGXAU.js → chunk-PHUHIVD5.js} +4 -5
  158. package/dist/{chunk-C3UAQ3JG.js → chunk-PVWM2WMM.js} +1 -1
  159. package/dist/{chunk-EWCEUO65.js → chunk-QCSAYYL6.js} +1 -1
  160. package/dist/{chunk-SBAU735L.js → chunk-QE5KWKVU.js} +27 -6
  161. package/dist/{chunk-LZKYVMBY.js → chunk-QKZEUCTS.js} +2 -2
  162. package/dist/{chunk-POPRJKAY.js → chunk-QS6HI4B6.js} +6 -0
  163. package/dist/{chunk-JNVQGLPX.js → chunk-QT6CNCXO.js} +3 -3
  164. package/dist/{chunk-J4U5Z7VX.js → chunk-QZYYCPNL.js} +4 -4
  165. package/dist/{chunk-RD4E5G3B.js → chunk-RDIZSXXD.js} +1 -1
  166. package/dist/{chunk-2RQT7TED.js → chunk-RFWOXKVL.js} +55 -3
  167. package/dist/chunk-S2YTU74T.js +76 -0
  168. package/dist/{chunk-X6A2VWVJ.js → chunk-TP7BFVQP.js} +2 -2
  169. package/dist/{chunk-CKG6CVKI.js → chunk-TTJWPV4G.js} +1 -1
  170. package/dist/chunk-TX3Q2GIL.js +97 -0
  171. package/dist/{chunk-Q7BU5Q6I.js → chunk-UATT6BNO.js} +3 -3
  172. package/dist/{chunk-PPGPCWRC.js → chunk-UVM5ZXO2.js} +4 -4
  173. package/dist/{chunk-BATQKSLI.js → chunk-V7E37GE3.js} +2 -2
  174. package/dist/{chunk-U373MEF5.js → chunk-VD3CVNGB.js} +3 -3
  175. package/dist/{chunk-ZSZPMUNX.js → chunk-VIW62NN5.js} +126 -7
  176. package/dist/{chunk-EPNWEOOE.js → chunk-VTOO5UB3.js} +10 -10
  177. package/dist/chunk-W5MCOZTW.js +304 -0
  178. package/dist/{chunk-2ESB5SDP.js → chunk-WJOJWRN5.js} +139 -33
  179. package/dist/{chunk-CPILYY2K.js → chunk-X4MRVNR3.js} +1 -1
  180. package/dist/{chunk-EPDNWY5P.js → chunk-XBTQPQN7.js} +1 -1
  181. package/dist/{behavior-injection-XQ4B7DCF.js → chunk-XOTDAKJL.js} +24 -38
  182. package/dist/{chunk-ORNCMRIX.js → chunk-Y4AYNLXU.js} +31 -37
  183. package/dist/{chunk-WYLFDSIE.js → chunk-YGPJ7VSJ.js} +48 -10
  184. package/dist/{chunk-ZRKEUCUZ.js → chunk-ZR3VMM3X.js} +12 -10
  185. package/dist/{chunk-JITNFE4W.js → chunk-ZWONQU5S.js} +1 -1
  186. package/dist/{cleanup-graph-garbage-CAA625RJ.js → cleanup-graph-garbage-FBSQI33K.js} +8 -8
  187. package/dist/{cloud-sync-command-DBB7WRHL.js → cloud-sync-command-NHGVDTLM.js} +11 -3
  188. package/dist/{cloud-sync-db-init-V7IB23W5.js → cloud-sync-db-init-I75VOTXC.js} +1 -1
  189. package/dist/{cloud-sync-shutdown-2D3B73CJ.js → cloud-sync-shutdown-JGOFGGET.js} +2 -2
  190. package/dist/{cloud-sync-state-5DFKLWNB.js → cloud-sync-state-QF3TMMJ4.js} +3 -1
  191. package/dist/{co-activation-JVN7EBS6.js → co-activation-AE5L2SJV.js} +2 -2
  192. package/dist/{co-occurrence-526PTFGT.js → co-occurrence-O65D4SCN.js} +6 -6
  193. package/dist/codex-consolidation-PPXNBXCV.js +96 -0
  194. package/dist/{conversation-entity-extractor-JO56DB2E.js → conversation-entity-extractor-LFIDTD2O.js} +4 -4
  195. package/dist/{crdt-sync-LIJLZKFE.js → crdt-sync-NRWDBRSE.js} +1 -1
  196. package/dist/{crm-webhook-55F7Y6D2.js → crm-webhook-XOQGX6DV.js} +2 -2
  197. package/dist/{cto-delegation-gate-QIYV4KFO.js → cto-delegation-gate-ZGOAXQI2.js} +14 -13
  198. package/dist/{daemon-orchestration-Q3GJA2JJ.js → daemon-orchestration-ZMQWYYDT.js} +19 -18
  199. package/dist/dispatch-intent-journal-VV6HMZC4.js +17 -0
  200. package/dist/{doc-graph-extractor-P46R4QME.js → doc-graph-extractor-6C5JBKPP.js} +6 -6
  201. package/dist/{documents-7KFEREWO.js → documents-FKSQGSO4.js} +6 -6
  202. package/dist/{dreaming-JMUXBAPU.js → dreaming-IB3H6NDZ.js} +18 -17
  203. package/dist/{employee-boot-brief-HN63D2BY.js → employee-boot-brief-5YRTUEJH.js} +25 -21
  204. package/dist/{exe-drift-7J7GX7DP.js → exe-drift-CUWUYX3O.js} +3 -3
  205. package/dist/{exe-export-KJ7B2OBU.js → exe-export-XWENYJNM.js} +7 -7
  206. package/dist/{exe-import-HPZDWKGE.js → exe-import-OWOMRF2S.js} +7 -7
  207. package/dist/{exe-key-2PREP464.js → exe-key-P356FGK5.js} +88 -83
  208. package/dist/{exe-org-VEIISATF.js → exe-org-UKIVF3KE.js} +8 -8
  209. package/dist/{exe-snapshot-JXQFLUKA.js → exe-snapshot-AZI2WW5Y.js} +19 -18
  210. package/dist/{fast-db-init-SCXJXOYX.js → fast-db-init-FPAPF3GB.js} +1 -1
  211. package/dist/{founder-context-U2SZPLYV.js → founder-context-QTQ6V3B5.js} +2 -2
  212. package/dist/gateway/index.js +11 -11
  213. package/dist/{git-staleness-S4NDR7NX.js → git-staleness-6ACWLV5Q.js} +2 -2
  214. package/dist/{global-procedures-ZOFTOXIR.js → global-procedures-RXIKBVLZ.js} +3 -3
  215. package/dist/{graph-auto-extract-CLVTSUSB.js → graph-auto-extract-Q4A4QMOF.js} +6 -6
  216. package/dist/{graph-rag-LSJLWGXV.js → graph-rag-RLRQMY54.js} +4 -4
  217. package/dist/{hook-integrity-SGTKBL6W.js → hook-integrity-3X2JRLBM.js} +1 -1
  218. package/dist/{hook-prefetch-BDSLB6F4.js → hook-prefetch-DU44UZQP.js} +15 -14
  219. package/dist/hooks/bug-report-worker.js +19 -18
  220. package/dist/hooks/codex-stop-task-finalizer.js +20 -19
  221. package/dist/hooks/commit-complete.js +35 -19
  222. package/dist/hooks/error-recall.js +8 -8
  223. package/dist/hooks/exe-heartbeat-hook.js +4 -4
  224. package/dist/hooks/ingest-worker.js +2 -2
  225. package/dist/hooks/ingest.js +11 -11
  226. package/dist/hooks/instructions-loaded.js +5 -5
  227. package/dist/hooks/manifest.json +20 -20
  228. package/dist/hooks/notification.js +5 -5
  229. package/dist/hooks/post-compact.js +4 -4
  230. package/dist/hooks/post-tool-combined.js +12 -12
  231. package/dist/hooks/pre-compact.js +18 -17
  232. package/dist/hooks/pre-tool-use.js +86 -34
  233. package/dist/hooks/prompt-submit.js +36 -31
  234. package/dist/hooks/session-end.js +114 -100
  235. package/dist/hooks/session-start.js +16 -16
  236. package/dist/hooks/stop.js +83 -20
  237. package/dist/hooks/subagent-stop.js +19 -18
  238. package/dist/hooks/summary-worker.js +23 -22
  239. package/dist/index.js +27 -26
  240. package/dist/{installer-RC2JCKSE.js → installer-B7QYQE56.js} +8 -6
  241. package/dist/{installer-EA7T3PBD.js → installer-EXR25DDG.js} +6 -6
  242. package/dist/{installer-KCEM4RCG.js → installer-TOPA7673.js} +152 -8
  243. package/dist/{intercom-queue-6DZPHHQ2.js → intercom-queue-BZ4M3L4S.js} +14 -13
  244. package/dist/lib/cloud-sync.js +10 -10
  245. package/dist/lib/consolidation.js +8 -8
  246. package/dist/lib/database.js +2 -2
  247. package/dist/lib/db-backup.js +1 -1
  248. package/dist/lib/db-write-worker.js +3 -3
  249. package/dist/lib/db.js +2 -2
  250. package/dist/lib/delivery-truth.js +25 -0
  251. package/dist/lib/device-registry.js +1 -1
  252. package/dist/lib/employee-templates.js +4 -4
  253. package/dist/lib/employees.js +2 -2
  254. package/dist/lib/exe-daemon.js +185 -79
  255. package/dist/lib/hybrid-search.js +6 -6
  256. package/dist/lib/identity.js +2 -2
  257. package/dist/lib/license.js +2 -2
  258. package/dist/lib/messaging.js +15 -14
  259. package/dist/lib/registry-proxy.js +1 -1
  260. package/dist/lib/reminders.js +3 -3
  261. package/dist/lib/schedules.js +6 -6
  262. package/dist/lib/session-registry.js +4 -4
  263. package/dist/lib/skill-learning.js +7 -7
  264. package/dist/lib/status-brief.js +2 -1
  265. package/dist/lib/store.js +5 -5
  266. package/dist/lib/task-router.js +3 -3
  267. package/dist/lib/tasks.js +16 -15
  268. package/dist/lib/tmux-routing.js +14 -13
  269. package/dist/lib/token-spend.js +3 -3
  270. package/dist/{license-gate-HMSMUIAU.js → license-gate-YTIOLKVV.js} +3 -3
  271. package/dist/{license-sync-FBCMPC4J.js → license-sync-5VE5OSTV.js} +2 -2
  272. package/dist/mcp/register-tools.js +87 -82
  273. package/dist/mcp/server.js +90 -85
  274. package/dist/mcp/tools/complete-reminder.js +4 -4
  275. package/dist/mcp/tools/create-reminder.js +4 -4
  276. package/dist/mcp/tools/create-task.js +26 -23
  277. package/dist/mcp/tools/deactivate-behavior.js +8 -8
  278. package/dist/mcp/tools/list-reminders.js +4 -4
  279. package/dist/mcp/tools/list-tasks.js +18 -17
  280. package/dist/mcp/tools/send-message.js +17 -16
  281. package/dist/mcp/tools/update-task.js +17 -16
  282. package/dist/{mcp-http-config-YKJN52HG.js → mcp-http-config-XUNRIGQH.js} +3 -3
  283. package/dist/{mcp-session-identity-QLUVYWPR.js → mcp-session-identity-4UIG7KLK.js} +14 -13
  284. package/dist/{memory-cards-K2OSX4AW.js → memory-cards-R74YU4CO.js} +5 -5
  285. package/dist/{memory-graph-extractor-YLTSKLSY.js → memory-graph-extractor-3B4QJUXI.js} +7 -7
  286. package/dist/{memory-poisoning-defense-IPO4ADRL.js → memory-poisoning-defense-OAKFL5O2.js} +2 -2
  287. package/dist/{memory-pressure-watchdog-ZI3TH2OF.js → memory-pressure-watchdog-FFC2CHFJ.js} +15 -14
  288. package/dist/{memory-reflection-ZKVRU3NT.js → memory-reflection-5IJ6RE2J.js} +2 -2
  289. package/dist/{notification-ledger-4REL6M3T.js → notification-ledger-P5XBUYKO.js} +17 -15
  290. package/dist/{notifications-UXJUAP3C.js → notifications-LLCCHRYV.js} +14 -13
  291. package/dist/{orchestration-events-GMRGGBMN.js → orchestration-events-VBGCIQSS.js} +3 -3
  292. package/dist/{orchestrator-5TV75HDJ.js → orchestrator-EB3SCTAJ.js} +16 -15
  293. package/dist/{org-brief-session-7AZZEO3F.js → org-brief-session-GDCDKBFF.js} +6 -6
  294. package/dist/{org-consent-policy-XT6UZENB.js → org-consent-policy-HCD42NBN.js} +2 -2
  295. package/dist/{org-partner-runtime-WLZAZJIY.js → org-partner-runtime-TPVKFR6E.js} +6 -6
  296. package/dist/{org-row-visibility-A5XM4MVO.js → org-row-visibility-ZZLOPZLH.js} +1 -1
  297. package/dist/{pipeline-router-UEVXDUHR.js → pipeline-router-3JTL2KF6.js} +3 -3
  298. package/dist/{plan-limits-QEP32X4W.js → plan-limits-MTHRP4WY.js} +5 -5
  299. package/dist/{projection-worker-GMRC6SBH.js → projection-worker-FLASNERC.js} +2 -2
  300. package/dist/{prospective-memory-QLHSAPSG.js → prospective-memory-HI3WUY4U.js} +2 -2
  301. package/dist/{push-notifications-GKRPXOGI.js → push-notifications-DFSR6P7V.js} +15 -14
  302. package/dist/{reranker-GB4VEMUV.js → reranker-XHBKUDGG.js} +1 -1
  303. package/dist/{retrieval-health-QIBPBGN6.js → retrieval-health-NYKSDS6M.js} +1 -1
  304. package/dist/{review-polling-MU47NQ2N.js → review-polling-UAV6DZIZ.js} +15 -14
  305. package/dist/runtime/index.js +23 -22
  306. package/dist/{session-events-YMQ3VGBJ.js → session-events-YCYPLWPG.js} +15 -14
  307. package/dist/{session-kill-telemetry-VGPKE57M.js → session-kill-telemetry-UEJTHL65.js} +15 -14
  308. package/dist/{session-scope-P46KAHXQ.js → session-scope-LXDW7LJJ.js} +14 -13
  309. package/dist/{setup-wizard-BRNHSJ4U.js → setup-wizard-OVJQYUUL.js} +1 -1
  310. package/dist/{skill-refinement-NLYDSFEH.js → skill-refinement-EWRJID73.js} +3 -3
  311. package/dist/{stack-promote-NHFTNIM2.js → stack-promote-4IJM36OG.js} +5 -4
  312. package/dist/{stack-release-AQVKZUS7.js → stack-release-BAIRY65H.js} +5 -4
  313. package/dist/{stack-update-LLX5KT7G.js → stack-update-VDM5WXRS.js} +10 -3
  314. package/dist/stalled-dispatch-escalation-MHLYH2PT.js +80 -0
  315. package/dist/{steward-gate-JKHYFAHA.js → steward-gate-Y4N2XY3R.js} +3 -3
  316. package/dist/{subagent-brief-injection-VDVOHDOU.js → subagent-brief-injection-7A6JEVTP.js} +22 -20
  317. package/dist/{support-inbox-S6YO5YZU.js → support-inbox-LT4WJECQ.js} +4 -3
  318. package/dist/{task-enforcement-LXW45H5Z.js → task-enforcement-WOIZ5TLK.js} +15 -14
  319. package/dist/{task-request-inbox-UCSKDC3R.js → task-request-inbox-D65BPUKZ.js} +2 -2
  320. package/dist/{task-scope-GDLFE26E.js → task-scope-PQ67YRWP.js} +18 -16
  321. package/dist/{tasks-crud-W7VGWRUV.js → tasks-crud-TJNMUKKH.js} +14 -13
  322. package/dist/{tasks-notify-CT7NWCS4.js → tasks-notify-7UVC3VGI.js} +15 -14
  323. package/dist/{tasks-review-WCSKOUFW.js → tasks-review-WDWYISZ2.js} +14 -13
  324. package/dist/{telemetry-upload-FK5WKXVB.js → telemetry-upload-6LBGRJUE.js} +7 -7
  325. package/dist/{token-budget-GBNGSIU3.js → token-budget-XO5XW6DL.js} +3 -3
  326. package/dist/{tool-gates-3IC7DK4R.js → tool-gates-2OZY3GZM.js} +1 -1
  327. package/dist/{tool-gates-GXSYBVK4.js → tool-gates-7PLIOLAL.js} +1 -1
  328. package/dist/{tool-telemetry-VKMRS6MP.js → tool-telemetry-ZL6TTZWG.js} +1 -1
  329. package/dist/tui/App.js +23 -22
  330. package/dist/{tui-data-FTPV2XBQ.js → tui-data-UK7ZPKN4.js} +14 -13
  331. package/dist/{update-support-J6UWPUOC.js → update-support-BGL5KAZO.js} +12 -12
  332. package/dist/work-claims-XZL2DKQ3.js +53 -0
  333. package/dist/{work-state-heartbeat-4LDF6DSM.js → work-state-heartbeat-267YQ75U.js} +1 -1
  334. package/dist/{worker-gate-35VZINZG.js → worker-gate-RUM6MLIR.js} +1 -1
  335. package/dist/{workflow-engine-4DA6RSHI.js → workflow-engine-YQHGHKSJ.js} +2 -2
  336. package/dist/{worktree-H3YFJ3NU.js → worktree-3FO6EQ4G.js} +4 -4
  337. package/dist/{worktree-sweep-4EDLLQ2E.js → worktree-sweep-X7MUEEQS.js} +5 -5
  338. package/package.json +7 -2
  339. package/release-notes.json +93 -81
  340. /package/dist/{chunk-7Y6AQWVT.js → chunk-4AN2PWUK.js} +0 -0
  341. /package/dist/{chunk-7DMCAGSC.js → chunk-5U4UJGTW.js} +0 -0
  342. /package/dist/{chunk-3THNS2T7.js → chunk-EYIX6JU7.js} +0 -0
  343. /package/dist/{chunk-QYECRPGD.js → chunk-FDA45THL.js} +0 -0
  344. /package/dist/{chunk-MBBFL2SP.js → chunk-GIO4VU4J.js} +0 -0
  345. /package/dist/{chunk-LKYGSJ2E.js → chunk-I76LRCNA.js} +0 -0
  346. /package/dist/{chunk-UY6HRDB2.js → chunk-LBWEAQ6Z.js} +0 -0
  347. /package/dist/{chunk-VS4LPG66.js → chunk-MQ5RUHNZ.js} +0 -0
  348. /package/dist/{chunk-G2EAYH4U.js → chunk-PFCE4AXQ.js} +0 -0
  349. /package/dist/{chunk-3NBWARKC.js → chunk-SXAERZL2.js} +0 -0
  350. /package/dist/{chunk-BY7WWPRM.js → chunk-TKTQRSSD.js} +0 -0
  351. /package/dist/{chunk-JRPYLUXH.js → chunk-U2AZUMBZ.js} +0 -0
  352. /package/dist/{chunk-CMBF5WCL.js → chunk-W6FVADZS.js} +0 -0
  353. /package/dist/{core-memory-CMPPHJN5.js → core-memory-W5ZHHBRR.js} +0 -0
  354. /package/dist/{memory-isolation-ZB5S5HCO.js → memory-isolation-ZE7EDBO4.js} +0 -0
  355. /package/dist/{oauth-server-NP7KGF7N.js → oauth-server-3HG62YYJ.js} +0 -0
  356. /package/dist/{project-boot-LEZSK3W7.js → project-boot-3OAWKYLO.js} +0 -0
  357. /package/dist/{wiki-acl-5DKOWOIH.js → wiki-acl-FQV4E6M4.js} +0 -0
@@ -8,7 +8,7 @@ import {
8
8
  } from "../chunk-NOKJCF27.js";
9
9
  import {
10
10
  pushNotifyAsync
11
- } from "../chunk-EVPBYX2Z.js";
11
+ } from "../chunk-HQSUXAB4.js";
12
12
  import {
13
13
  isDbVerifyStampFresh
14
14
  } from "../chunk-SVFNWBLF.js";
@@ -29,9 +29,10 @@ import {
29
29
  recordMcpHttpEvent
30
30
  } from "../chunk-YYA5LXCT.js";
31
31
  import {
32
+ hasPendingCloudSyncSlice,
32
33
  readCloudSyncState,
33
34
  writeCloudSyncState
34
- } from "../chunk-L2VZBPJJ.js";
35
+ } from "../chunk-MWEIBVBS.js";
35
36
  import {
36
37
  deserializeArgs,
37
38
  serializeResultSet
@@ -43,35 +44,36 @@ import {
43
44
  findScopedDuplicate,
44
45
  governMemoryRecord,
45
46
  schedulePostWriteMemoryHygiene
46
- } from "../chunk-7DMCAGSC.js";
47
+ } from "../chunk-5U4UJGTW.js";
47
48
  import "../chunk-5MOYSU5A.js";
48
49
  import "../chunk-4QCFFW2H.js";
49
50
  import "../chunk-76CJBM36.js";
50
51
  import {
51
52
  BUSY_PATTERN
52
- } from "../chunk-ORNCMRIX.js";
53
- import "../chunk-ESTR7QUP.js";
54
- import "../chunk-FXPAUDCZ.js";
55
- import "../chunk-QFIVK3G5.js";
53
+ } from "../chunk-Y4AYNLXU.js";
54
+ import "../chunk-BTSWFMEH.js";
55
+ import "../chunk-P3PAD6AA.js";
56
+ import "../chunk-KGPWS4KE.js";
57
+ import "../chunk-KYVIV54Y.js";
56
58
  import "../chunk-WT4RI36X.js";
57
- import "../chunk-C3UAQ3JG.js";
58
59
  import {
59
60
  recordTimerPauseMs,
60
61
  runWithTimerPauseAccounting,
61
62
  sweepPauseTotalMs
62
63
  } from "../chunk-KI5PFRG6.js";
64
+ import "../chunk-QAEWWYHL.js";
63
65
  import "../chunk-EIKATSE4.js";
64
66
  import "../chunk-E23LNUWJ.js";
65
- import "../chunk-QAEWWYHL.js";
66
- import "../chunk-EHHMNKOA.js";
67
+ import "../chunk-CSBD7QLZ.js";
67
68
  import "../chunk-GBNB4EWD.js";
68
69
  import "../chunk-UXLO7VHX.js";
69
70
  import "../chunk-DSOQUQTV.js";
70
- import "../chunk-WR75WUEP.js";
71
+ import "../chunk-BFL3UB77.js";
71
72
  import "../chunk-AJIXH5JF.js";
73
+ import "../chunk-PVWM2WMM.js";
72
74
  import "../chunk-XTWHNLGD.js";
73
75
  import "../chunk-AM7S2TY6.js";
74
- import "../chunk-2FYIMTQE.js";
76
+ import "../chunk-PGF5I7EV.js";
75
77
  import "../chunk-CVYC6DUW.js";
76
78
  import "../chunk-ZVTKWWLV.js";
77
79
  import "../chunk-CDUB5Q6J.js";
@@ -118,7 +120,7 @@ import "../chunk-W2IRQJ6R.js";
118
120
  import "../chunk-HYZV25LY.js";
119
121
  import "../chunk-GJV3WDWM.js";
120
122
  import "../chunk-MP2AFCGL.js";
121
- import "../chunk-BRLS5OLZ.js";
123
+ import "../chunk-OBESOWFJ.js";
122
124
  import "../chunk-TKDITWDN.js";
123
125
  import {
124
126
  logBoot,
@@ -128,7 +130,7 @@ import {
128
130
  logShutdown
129
131
  } from "../chunk-BBMTVAE3.js";
130
132
  import "../chunk-5YEUPUV4.js";
131
- import "../chunk-NO3M2AFM.js";
133
+ import "../chunk-JDPV7W2L.js";
132
134
  import {
133
135
  isPostgresBackendEnabled
134
136
  } from "../chunk-YYB5PMTK.js";
@@ -149,9 +151,9 @@ import {
149
151
  EMBEDDING_DIM
150
152
  } from "../chunk-FXU7JOXK.js";
151
153
  import "../chunk-WNBZJSQT.js";
152
- import "../chunk-ZDUO6QBH.js";
154
+ import "../chunk-6UZ3DEQI.js";
153
155
  import "../chunk-A7XLR3K7.js";
154
- import "../chunk-VS4LPG66.js";
156
+ import "../chunk-MQ5RUHNZ.js";
155
157
  import "../chunk-QILQ5FCG.js";
156
158
  import "../chunk-ARX6TAGN.js";
157
159
  import {
@@ -552,7 +554,7 @@ function runCapturedCloudSyncChild(options) {
552
554
  else resolve({ ...result, stderrTail });
553
555
  };
554
556
  child.once("error", (err) => finish(timedOutError ?? err, { code: null, signal: null }));
555
- child.once("exit", (code, signal) => finish(timedOutError, { code, signal }));
557
+ child.once("close", (code, signal) => finish(timedOutError, { code, signal }));
556
558
  });
557
559
  }
558
560
 
@@ -2528,7 +2530,7 @@ async function loadModel() {
2528
2530
  void (async () => {
2529
2531
  try {
2530
2532
  if (_storeInitialized) {
2531
- const { writeNotification } = await import("../notifications-UXJUAP3C.js");
2533
+ const { writeNotification } = await import("../notifications-LLCCHRYV.js");
2532
2534
  await writeNotification({
2533
2535
  agentId: "exe",
2534
2536
  agentRole: "system",
@@ -2647,7 +2649,7 @@ function disableEmbeddingsForInferenceTimeouts() {
2647
2649
  void (async () => {
2648
2650
  try {
2649
2651
  if (_storeInitialized) {
2650
- const { writeNotification } = await import("../notifications-UXJUAP3C.js");
2652
+ const { writeNotification } = await import("../notifications-LLCCHRYV.js");
2651
2653
  await writeNotification({
2652
2654
  agentId: "exe",
2653
2655
  agentRole: "system",
@@ -2814,7 +2816,7 @@ async function shutdown(exitCode = 0, reason = null, restartKind) {
2814
2816
  _shuttingDown = true;
2815
2817
  _drainingWrites = true;
2816
2818
  try {
2817
- const { stopOrgPartnerRuntime } = await import("../org-partner-runtime-WLZAZJIY.js");
2819
+ const { stopOrgPartnerRuntime } = await import("../org-partner-runtime-TPVKFR6E.js");
2818
2820
  stopOrgPartnerRuntime();
2819
2821
  } catch {
2820
2822
  }
@@ -2897,7 +2899,7 @@ async function shutdown(exitCode = 0, reason = null, restartKind) {
2897
2899
  dbBytes = dbPath ? statSync4(dbPath).size : 0;
2898
2900
  } catch {
2899
2901
  }
2900
- const { getAvailableMemoryBytesSync } = await import("../memory-pressure-watchdog-ZI3TH2OF.js");
2902
+ const { getAvailableMemoryBytesSync } = await import("../memory-pressure-watchdog-FFC2CHFJ.js");
2901
2903
  const freeBytes = getAvailableMemoryBytesSync();
2902
2904
  if (shouldSkipBackupUnderMemoryPressure(freeBytes, dbBytes)) {
2903
2905
  memoryGateSkip = true;
@@ -2950,7 +2952,7 @@ async function shutdown(exitCode = 0, reason = null, restartKind) {
2950
2952
  `);
2951
2953
  }
2952
2954
  try {
2953
- const { stopProjectionWorker } = await import("../projection-worker-GMRC6SBH.js");
2955
+ const { stopProjectionWorker } = await import("../projection-worker-FLASNERC.js");
2954
2956
  stopProjectionWorker();
2955
2957
  } catch {
2956
2958
  }
@@ -3013,7 +3015,7 @@ async function handleHealthCheck(socket, requestId) {
3013
3015
  let pipelineStatus = "unknown";
3014
3016
  if (dbConnected) {
3015
3017
  try {
3016
- await import("../pipeline-router-UEVXDUHR.js");
3018
+ await import("../pipeline-router-3JTL2KF6.js");
3017
3019
  pipelineStatus = "ok";
3018
3020
  } catch {
3019
3021
  pipelineStatus = "unavailable";
@@ -3456,7 +3458,7 @@ async function _writeMemoryRecordInner(entry, syncOnly = false) {
3456
3458
  const vRow = await client.execute({ sql: "SELECT version FROM memories WHERE id = ?", args: [id] });
3457
3459
  const version = Number(vRow.rows[0]?.version) || 0;
3458
3460
  try {
3459
- const { insertOntologyForMemory } = await import("../agentic-ontology-CARDCG37.js");
3461
+ const { insertOntologyForMemory } = await import("../agentic-ontology-ZJBRYETW.js");
3460
3462
  await insertOntologyForMemory({
3461
3463
  id,
3462
3464
  agent_id: record.agent_id,
@@ -4280,7 +4282,7 @@ async function startMcpHttpServer() {
4280
4282
  clearBootstrapFailureMarker();
4281
4283
  setBootPhase("db_ready");
4282
4284
  _storeInitialized = true;
4283
- const { initLicenseGate, getCachedLicenseGate } = await import("../license-gate-HMSMUIAU.js");
4285
+ const { initLicenseGate, getCachedLicenseGate } = await import("../license-gate-YTIOLKVV.js");
4284
4286
  const gateResult = await initLicenseGate();
4285
4287
  if (!gateResult.hasKey) {
4286
4288
  process.stderr.write(
@@ -4295,14 +4297,14 @@ async function startMcpHttpServer() {
4295
4297
  let _cachedWrapTelemetry = null;
4296
4298
  async function getWrapTelemetry() {
4297
4299
  if (!_cachedWrapTelemetry) {
4298
- const { wrapServerWithTelemetry } = await import("../tool-telemetry-VKMRS6MP.js");
4300
+ const { wrapServerWithTelemetry } = await import("../tool-telemetry-ZL6TTZWG.js");
4299
4301
  _cachedWrapTelemetry = wrapServerWithTelemetry;
4300
4302
  }
4301
4303
  return _cachedWrapTelemetry;
4302
4304
  }
4303
4305
  Promise.all([
4304
4306
  import("../tool-capability-index-BT2GGLLI.js"),
4305
- import("../tool-gates-3IC7DK4R.js")
4307
+ import("../tool-gates-2OZY3GZM.js")
4306
4308
  ]).then(async ([{ getToolCapabilityIndex }, { TOOL_CATEGORIES }]) => {
4307
4309
  const gateState = getCachedLicenseGate();
4308
4310
  const index = getToolCapabilityIndex();
@@ -4367,7 +4369,7 @@ async function startMcpHttpServer() {
4367
4369
  const expectedBuf = Buffer.from(_daemonToken);
4368
4370
  if (tokenBuf.length === expectedBuf.length && timingSafeEqual(tokenBuf, expectedBuf)) return true;
4369
4371
  try {
4370
- const { verifyAccessToken } = await import("../oauth-server-NP7KGF7N.js");
4372
+ const { verifyAccessToken } = await import("../oauth-server-3HG62YYJ.js");
4371
4373
  const result = verifyAccessToken(token);
4372
4374
  return result.valid;
4373
4375
  } catch {
@@ -4620,7 +4622,7 @@ async function startMcpHttpServer() {
4620
4622
  return;
4621
4623
  }
4622
4624
  try {
4623
- const { handleOAuthRoute } = await import("../oauth-server-NP7KGF7N.js");
4625
+ const { handleOAuthRoute } = await import("../oauth-server-3HG62YYJ.js");
4624
4626
  const handled = await handleOAuthRoute(req, res, url, MCP_HTTP_PORT);
4625
4627
  if (handled) return;
4626
4628
  } catch (err) {
@@ -4741,14 +4743,14 @@ async function startMcpHttpServer() {
4741
4743
  res.end(JSON.stringify({ error: "agent_id and session_name are required" }));
4742
4744
  return;
4743
4745
  }
4744
- const { recordHeartbeat } = await import("../agent-heartbeat-I5UPGXAU.js");
4746
+ const { recordHeartbeat } = await import("../agent-heartbeat-CQPGJIFF.js");
4745
4747
  recordHeartbeat(body.agent_id, body.session_name, {
4746
4748
  taskId: body.task_id,
4747
4749
  status: body.status,
4748
4750
  contextPct: body.context_pct
4749
4751
  });
4750
4752
  if (body.context_pct !== void 0 && body.context_pct > 70) {
4751
- void import("../orchestration-events-GMRGGBMN.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
4753
+ void import("../orchestration-events-VBGCIQSS.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
4752
4754
  recordOE({
4753
4755
  eventType: "context.pressure",
4754
4756
  source: "exe-daemon.heartbeat",
@@ -4860,7 +4862,7 @@ async function startMcpHttpServer() {
4860
4862
  let sessionHint = req.headers["x-exe-session-name"] || req.headers["x-exe-session"] || "";
4861
4863
  if (sessionHint) {
4862
4864
  try {
4863
- const { sanitizeSessionHintHeader, rejectForgedSessionHint } = await import("../mcp-session-identity-QLUVYWPR.js");
4865
+ const { sanitizeSessionHintHeader, rejectForgedSessionHint } = await import("../mcp-session-identity-4UIG7KLK.js");
4864
4866
  const rawHint = sessionHint;
4865
4867
  sessionHint = sanitizeSessionHintHeader(sessionHint);
4866
4868
  if (!sessionHint) {
@@ -4899,7 +4901,7 @@ async function startMcpHttpServer() {
4899
4901
  try {
4900
4902
  const liveSessions = await getTmuxSessionsAsync();
4901
4903
  const paneCommands = await getPaneCommandsAsync();
4902
- const { resolveMcpSessionHint } = await import("../mcp-session-identity-QLUVYWPR.js");
4904
+ const { resolveMcpSessionHint } = await import("../mcp-session-identity-4UIG7KLK.js");
4903
4905
  let registrySessions = [];
4904
4906
  try {
4905
4907
  const { listSessions: listRegistrySessions } = await import("./session-registry.js");
@@ -5036,7 +5038,7 @@ async function startMcpHttpServer() {
5036
5038
  bindLive = await getTmuxSessionsAsync();
5037
5039
  } catch {
5038
5040
  }
5039
- const { isLauncherCorroboratedIdentity } = await import("../mcp-session-identity-QLUVYWPR.js");
5041
+ const { isLauncherCorroboratedIdentity } = await import("../mcp-session-identity-4UIG7KLK.js");
5040
5042
  const corroborated = isLauncherCorroboratedIdentity({
5041
5043
  agentId,
5042
5044
  registrySessions: bindRegistry,
@@ -5244,7 +5246,7 @@ async function startMcpHttpServer() {
5244
5246
  const toolName = parsedRequest?.method === "tools/call" ? parsedRequest.params?.name : void 0;
5245
5247
  if (toolName && agentRole) {
5246
5248
  try {
5247
- const { TOOL_CATEGORIES, TOOL_GATES } = await import("../tool-gates-3IC7DK4R.js");
5249
+ const { TOOL_CATEGORIES, TOOL_GATES } = await import("../tool-gates-2OZY3GZM.js");
5248
5250
  const registerName = `register${toolName.charAt(0).toUpperCase()}${toolName.slice(1)}`;
5249
5251
  const category = TOOL_CATEGORIES[registerName] || TOOL_CATEGORIES[toolName];
5250
5252
  if (category) {
@@ -5279,7 +5281,7 @@ async function startMcpHttpServer() {
5279
5281
  }
5280
5282
  }
5281
5283
  try {
5282
- const { reconcileHintWithRegistryIdentity } = await import("../mcp-session-identity-QLUVYWPR.js");
5284
+ const { reconcileHintWithRegistryIdentity } = await import("../mcp-session-identity-4UIG7KLK.js");
5283
5285
  const { listSessions: listRegistrySessions } = await import("./session-registry.js");
5284
5286
  const recon = reconcileHintWithRegistryIdentity({
5285
5287
  agentId,
@@ -5492,9 +5494,9 @@ async function ensureStoreForPolling() {
5492
5494
  await initDatabase({ dbPath: config.dbPath, encryptionKey: masterKey.toString("hex") });
5493
5495
  await ensureSchema();
5494
5496
  try {
5495
- const { isLedgerEnabled } = await import("../notification-ledger-4REL6M3T.js");
5497
+ const { isLedgerEnabled } = await import("../notification-ledger-P5XBUYKO.js");
5496
5498
  if (isLedgerEnabled()) {
5497
- const { bumpBootGeneration } = await import("../boot-generation-X45BSVZY.js");
5499
+ const { bumpBootGeneration } = await import("../boot-generation-7H7Y4KC2.js");
5498
5500
  const { setDaemonReadyGeneration } = await import("../daemon-ready-signal-CKXPUMJ2.js");
5499
5501
  const generation = await bumpBootGeneration();
5500
5502
  setDaemonReadyGeneration(generation);
@@ -5534,13 +5536,13 @@ async function ensureStoreForPolling() {
5534
5536
  }
5535
5537
  }
5536
5538
  async function startReviewPolling() {
5537
- const polling = await import("../review-polling-MU47NQ2N.js");
5539
+ const polling = await import("../review-polling-UAV6DZIZ.js");
5538
5540
  const state = {
5539
5541
  lastIntercomSent: /* @__PURE__ */ new Map(),
5540
5542
  lastNudgeSent: /* @__PURE__ */ new Map(),
5541
5543
  intervalMs: REVIEW_POLL_INTERVAL_MS
5542
5544
  };
5543
- const { pollReviewNudge, createReviewNudgeRealDeps, loadNudgeState } = await import("../daemon-orchestration-Q3GJA2JJ.js");
5545
+ const { pollReviewNudge, createReviewNudgeRealDeps, loadNudgeState } = await import("../daemon-orchestration-ZMQWYYDT.js");
5544
5546
  const nudgeState = loadNudgeState();
5545
5547
  const tick = async () => traceDaemonTimer("review_polling", async () => {
5546
5548
  fired("review_polling");
@@ -5548,7 +5550,7 @@ async function startReviewPolling() {
5548
5550
  try {
5549
5551
  const { getClient } = await import("./database.js");
5550
5552
  const deps = polling.createRealDeps(getClient);
5551
- const { strictSessionScopeFilter } = await import("../task-scope-GDLFE26E.js");
5553
+ const { strictSessionScopeFilter } = await import("../task-scope-PQ67YRWP.js");
5552
5554
  const { getCoordinatorName, DEFAULT_COORDINATOR_TEMPLATE_NAME } = await import("./employees.js");
5553
5555
  deps.findOrphanedDoneTasks = async (sessionScope) => {
5554
5556
  const coordinatorName = getCoordinatorName();
@@ -5627,7 +5629,7 @@ function startSessionTTL() {
5627
5629
  if (!await ensureStoreForPolling()) return;
5628
5630
  if (inPostRestartDestructiveGrace("session_ttl")) return;
5629
5631
  const { getClient } = await import("./database.js");
5630
- const { checkSessionTTL, createSessionTTLRealDeps } = await import("../daemon-orchestration-Q3GJA2JJ.js");
5632
+ const { checkSessionTTL, createSessionTTLRealDeps } = await import("../daemon-orchestration-ZMQWYYDT.js");
5631
5633
  const deps = createSessionTTLRealDeps(getClient);
5632
5634
  const killed = await checkSessionTTL(deps, _wedgeObservations);
5633
5635
  if (killed.length > 0) acted("session_ttl");
@@ -5687,7 +5689,7 @@ function startIdleKill() {
5687
5689
  const cfg = await getCachedConfig();
5688
5690
  if (!cfg) return;
5689
5691
  const { getClient } = await import("./database.js");
5690
- const { pollIdleKill, createIdleKillRealDeps } = await import("../daemon-orchestration-Q3GJA2JJ.js");
5692
+ const { pollIdleKill, createIdleKillRealDeps } = await import("../daemon-orchestration-ZMQWYYDT.js");
5691
5693
  const { sessions: liveSessions, paneCache, aliveSessions } = await getSharedOrchestrationCaches();
5692
5694
  const realDeps = createIdleKillRealDeps(
5693
5695
  getClient,
@@ -5803,6 +5805,7 @@ var CLOUD_SYNC_INTERVAL_MS = Number(process.env.EXE_CLOUD_SYNC_INTERVAL_MS) || 5
5803
5805
  var CLOUD_SYNC_BACKOFF_BASE_MS = 5e3;
5804
5806
  var CLOUD_SYNC_BACKOFF_MAX_MS = 5 * 6e4;
5805
5807
  var CLOUD_SYNC_CIRCUIT_BREAK = 10;
5808
+ var CLOUD_SYNC_DEFERRED_RESUME_MS = Number(process.env.EXE_CLOUD_SYNC_DEFERRED_RESUME_MS) || 15e3;
5806
5809
  var _cloudSyncConsecutiveFailures = 0;
5807
5810
  var _cloudSyncBackoffMs = 0;
5808
5811
  var _cloudSyncPaused = false;
@@ -5885,6 +5888,20 @@ function startCloudSyncTimer() {
5885
5888
  _cloudSyncBackoffMs = 0;
5886
5889
  _cloudSyncPaused = false;
5887
5890
  acted("cloud_sync");
5891
+ let slicePending = false;
5892
+ try {
5893
+ slicePending = hasPendingCloudSyncSlice(readCloudSyncState(), Date.now(), CLOUD_SYNC_INTERVAL_MS);
5894
+ } catch {
5895
+ slicePending = false;
5896
+ }
5897
+ if (slicePending) {
5898
+ process.stderr.write(
5899
+ `[exed] Cloud sync slice deferred with memories still pending \u2014 next slice in ${Math.round(CLOUD_SYNC_DEFERRED_RESUME_MS / 1e3)}s
5900
+ `
5901
+ );
5902
+ setTimeout(() => void traceDaemonTimer("cloud_sync", tick), CLOUD_SYNC_DEFERRED_RESUME_MS).unref();
5903
+ return;
5904
+ }
5888
5905
  process.stderr.write(`[exed] Cloud sync child completed successfully
5889
5906
  `);
5890
5907
  };
@@ -6061,7 +6078,7 @@ function startSkillRefinement() {
6061
6078
  if (!shouldRunHeavyJob("skill_refinement")) return;
6062
6079
  try {
6063
6080
  if (!await ensureStoreForPolling()) return;
6064
- const { runSkillRefinement } = await import("../skill-refinement-NLYDSFEH.js");
6081
+ const { runSkillRefinement } = await import("../skill-refinement-EWRJID73.js");
6065
6082
  const result = await runSkillRefinement();
6066
6083
  if (result.reviewed > 0) {
6067
6084
  acted("skill_refinement");
@@ -6083,12 +6100,100 @@ function startSkillRefinement() {
6083
6100
  var STALE_BRANCH_SWEEP_INTERVAL_MS = 60 * 60 * 1e3;
6084
6101
  var STALE_BRANCH_HOURS = 48;
6085
6102
  var _staleBranchAlertedToday = /* @__PURE__ */ new Set();
6103
+ var STALLED_DISPATCH_SWEEP_INTERVAL_MS = 15 * 60 * 1e3;
6104
+ async function stalledDispatchStatePath() {
6105
+ const { join: joinPath } = await import("path");
6106
+ const { homedir: home } = await import("os");
6107
+ const base = process.env.EXE_OS_DIR || process.env.EXE_MEM_DIR || joinPath(home(), ".exe-os");
6108
+ return joinPath(base, "stalled-dispatch-escalations.json");
6109
+ }
6110
+ function startStalledDispatchSweep() {
6111
+ const tick = async () => {
6112
+ fired("stalled_dispatch_sweep");
6113
+ if (sweepStarved("stalled_dispatch_sweep")) return;
6114
+ try {
6115
+ const { findOrphanedDispatchIntents } = await import("../dispatch-intent-journal-VV6HMZC4.js");
6116
+ const {
6117
+ decideStalledDispatchEscalations,
6118
+ STALLED_DISPATCH_WARN_AGE_MS
6119
+ } = await import("../stalled-dispatch-escalation-MHLYH2PT.js");
6120
+ const { readFileSync: rf, writeFileSync: wf, existsSync: ex } = await import("fs");
6121
+ const orphans = findOrphanedDispatchIntents(null, STALLED_DISPATCH_WARN_AGE_MS);
6122
+ const statePath = await stalledDispatchStatePath();
6123
+ let previousState = {};
6124
+ if (orphans.length > 0 && ex(statePath)) {
6125
+ try {
6126
+ previousState = JSON.parse(rf(statePath, "utf-8"));
6127
+ } catch {
6128
+ previousState = {};
6129
+ }
6130
+ }
6131
+ const intents = orphans.map(({ file, entry }) => {
6132
+ const payload = entry?.payload ?? {};
6133
+ return {
6134
+ file,
6135
+ journaledAt: entry?.journaledAt ?? null,
6136
+ status: entry?.status ?? null,
6137
+ taskId: entry?.taskId ?? null,
6138
+ sessionScope: entry?.caller?.sessionScope ?? null,
6139
+ assignedTo: typeof payload.assigned_to === "string" ? payload.assigned_to : null,
6140
+ title: typeof payload.title === "string" ? payload.title : null,
6141
+ corrupted: entry === null
6142
+ };
6143
+ });
6144
+ const { notifications, nextState } = decideStalledDispatchEscalations(intents, previousState);
6145
+ if (notifications.length > 0 && _storeInitialized) {
6146
+ const { writeNotification } = await import("../notifications-LLCCHRYV.js");
6147
+ for (const note of notifications) {
6148
+ try {
6149
+ await writeNotification({
6150
+ agentId: "exe",
6151
+ agentRole: "system",
6152
+ event: "error_spike",
6153
+ project: "dispatch-journal",
6154
+ summary: note.tier === "stalled" ? `STALLED DISPATCH \u2014 ${note.summary}` : `Undelivered dispatch \u2014 ${note.summary}`,
6155
+ sessionScope: null
6156
+ });
6157
+ acted("stalled_dispatch_sweep");
6158
+ } catch {
6159
+ }
6160
+ process.stderr.write(
6161
+ `[exed] Stalled-dispatch ${note.tier}: ${note.intents.length} intent(s) undelivered
6162
+ `
6163
+ );
6164
+ }
6165
+ }
6166
+ try {
6167
+ if (Object.keys(nextState).length > 0) {
6168
+ wf(statePath, JSON.stringify(nextState, null, 2), "utf-8");
6169
+ } else if (ex(statePath)) {
6170
+ wf(statePath, "{}", "utf-8");
6171
+ }
6172
+ } catch {
6173
+ }
6174
+ } catch (err) {
6175
+ process.stderr.write(
6176
+ `[exed] Stalled-dispatch sweep error: ${err instanceof Error ? err.message : String(err)}
6177
+ `
6178
+ );
6179
+ }
6180
+ };
6181
+ const timer = setInterval(
6182
+ () => void traceDaemonTimer("stalled_dispatch_sweep", tick),
6183
+ STALLED_DISPATCH_SWEEP_INTERVAL_MS
6184
+ );
6185
+ timer.unref();
6186
+ process.stderr.write(
6187
+ `[exed] Stalled-dispatch sweep timer started (every ${STALLED_DISPATCH_SWEEP_INTERVAL_MS / 6e4}m)
6188
+ `
6189
+ );
6190
+ }
6086
6191
  function startStaleBranchSweep() {
6087
6192
  const tick = async () => {
6088
6193
  fired("stale_branch_sweep");
6089
6194
  if (sweepStarved("stale_branch_sweep")) return;
6090
6195
  try {
6091
- const { discoverRepoPathsAsync } = await import("../worktree-sweep-4EDLLQ2E.js");
6196
+ const { discoverRepoPathsAsync } = await import("../worktree-sweep-X7MUEEQS.js");
6092
6197
  const { scanUnmergedBranchesCached } = await import("../branch-hygiene-HFJ3HA62.js");
6093
6198
  const { runBudgetedSweep } = await import("../sweep-budget-KMPJ7O5Z.js");
6094
6199
  const today = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
@@ -6121,7 +6226,7 @@ function startStaleBranchSweep() {
6121
6226
  if (!_storeInitialized) return;
6122
6227
  const stale = scan.branches.filter((b) => b.ageHours >= STALE_BRANCH_HOURS).slice(0, 5).map((b) => `${b.name} (+${b.ahead} commits, ${(b.ageHours / 24).toFixed(1)}d)`).join("; ");
6123
6228
  try {
6124
- const { writeNotification } = await import("../notifications-UXJUAP3C.js");
6229
+ const { writeNotification } = await import("../notifications-LLCCHRYV.js");
6125
6230
  await writeNotification({
6126
6231
  agentId: "exe",
6127
6232
  agentRole: "system",
@@ -6176,7 +6281,7 @@ function startWorkStateHeartbeat() {
6176
6281
  const { getClient } = await import("./database.js");
6177
6282
  const { listSessions } = await import("./session-registry.js");
6178
6283
  const { isCoordinatorName } = await import("./employees.js");
6179
- const { runWorkStateTick } = await import("../work-state-heartbeat-4LDF6DSM.js");
6284
+ const { runWorkStateTick } = await import("../work-state-heartbeat-267YQ75U.js");
6180
6285
  let liveTmux = null;
6181
6286
  const loadLiveTmux = async () => {
6182
6287
  if (!liveTmux) liveTmux = await listTmuxSessionNamesAsync();
@@ -6242,7 +6347,7 @@ function startGraphExtraction() {
6242
6347
  if (!await ensureStoreForPolling()) return;
6243
6348
  const { getClient } = await import("./database.js");
6244
6349
  const client = getClient();
6245
- const { extractBatch } = await import("../graph-rag-LSJLWGXV.js");
6350
+ const { extractBatch } = await import("../graph-rag-RLRQMY54.js");
6246
6351
  const result = await extractBatch(client, 50, config.selfQueryModel);
6247
6352
  if (result.processed > 0) {
6248
6353
  acted("graph_extraction");
@@ -6573,7 +6678,7 @@ async function refreshAgentData() {
6573
6678
  const decision = evaluateSpendCapAlert(_lastSpendCapLevel, capStatus);
6574
6679
  _lastSpendCapLevel = decision.level;
6575
6680
  if (decision.shouldAlert && decision.summary) {
6576
- const { writeNotification } = await import("../notifications-UXJUAP3C.js");
6681
+ const { writeNotification } = await import("../notifications-LLCCHRYV.js");
6577
6682
  await writeNotification({
6578
6683
  agentId: "system",
6579
6684
  agentRole: "system",
@@ -6695,7 +6800,7 @@ function startReflectionSweep() {
6695
6800
  );
6696
6801
  let runReflection;
6697
6802
  try {
6698
- ({ runReflection } = await import("../memory-reflection-ZKVRU3NT.js"));
6803
+ ({ runReflection } = await import("../memory-reflection-5IJ6RE2J.js"));
6699
6804
  } catch (importErr) {
6700
6805
  _reflectionImportFailed = true;
6701
6806
  process.stderr.write(`[exed] Reflection module unavailable (stale chunk hash?) \u2014 disabled until daemon restart: ${importErr instanceof Error ? importErr.message : String(importErr)}
@@ -6736,7 +6841,7 @@ function startReflectionSweep() {
6736
6841
  if (memories > 100 && cards < memories * 0.1) {
6737
6842
  process.stderr.write(`[exed] Memory cards sparse (${cards} cards / ${memories} memories) \u2014 running backfill...
6738
6843
  `);
6739
- const { insertMemoryCardsForBatch } = await import("../memory-cards-K2OSX4AW.js");
6844
+ const { insertMemoryCardsForBatch } = await import("../memory-cards-R74YU4CO.js");
6740
6845
  const batchSize = 500;
6741
6846
  let offset = 0;
6742
6847
  let totalCards = 0;
@@ -6817,7 +6922,7 @@ function startDatabaseBackup() {
6817
6922
  `
6818
6923
  );
6819
6924
  try {
6820
- const { maybeVerifyDailyBackup } = await import("../backup-verify-F7BHVEF7.js");
6925
+ const { maybeVerifyDailyBackup } = await import("../backup-verify-UKLX6IEK.js");
6821
6926
  const verdict = await maybeVerifyDailyBackup(backupPath);
6822
6927
  if (verdict && !verdict.ok) {
6823
6928
  process.stderr.write(
@@ -6893,7 +6998,7 @@ function startSessionEventsRetention() {
6893
6998
  fired("session_events_retention");
6894
6999
  if (!await ensureStoreForPolling()) return;
6895
7000
  try {
6896
- const { DEFAULT_SESSION_EVENTS_RETENTION_DAYS } = await import("../session-events-YMQ3VGBJ.js");
7001
+ const { DEFAULT_SESSION_EVENTS_RETENTION_DAYS } = await import("../session-events-YCYPLWPG.js");
6897
7002
  const days = SESSION_EVENTS_RETENTION_DAYS ?? DEFAULT_SESSION_EVENTS_RETENTION_DAYS;
6898
7003
  if (!isWriteWorkerEnabled() || !isDbWriteWorkerReady()) {
6899
7004
  process.stderr.write(
@@ -6939,7 +7044,7 @@ function startIntercomQueueDrain() {
6939
7044
  const tick = async () => traceDaemonTimer("intercom_queue_drain", async () => {
6940
7045
  fired("intercom_queue_drain");
6941
7046
  try {
6942
- const { drainQueueAsync, readQueue } = await import("../intercom-queue-6DZPHHQ2.js");
7047
+ const { drainQueueAsync, readQueue } = await import("../intercom-queue-BZ4M3L4S.js");
6943
7048
  const {
6944
7049
  sendIntercomAsync: centralSendIntercomAsync,
6945
7050
  countScopedPendingReviews,
@@ -7071,7 +7176,7 @@ function startLedgerDrain() {
7071
7176
  const tick = async () => traceDaemonTimer("ledger_drain", async () => {
7072
7177
  fired("ledger_drain");
7073
7178
  try {
7074
- const { isLedgerEnabled, drainLedger } = await import("../notification-ledger-4REL6M3T.js");
7179
+ const { isLedgerEnabled, drainLedger } = await import("../notification-ledger-P5XBUYKO.js");
7075
7180
  if (!isLedgerEnabled()) return;
7076
7181
  const result = await drainLedger({
7077
7182
  // Shadow "would-deliver": idle target = would-deliver, busy = retry.
@@ -7110,7 +7215,7 @@ function startOrphanReaper() {
7110
7215
  const tick = async () => traceDaemonTimer("orphan_reaper", async () => {
7111
7216
  fired("orphan_reaper");
7112
7217
  try {
7113
- const { reapOrphanedMcpProcesses, createOrphanReaperRealDepsAsync } = await import("../daemon-orchestration-Q3GJA2JJ.js");
7218
+ const { reapOrphanedMcpProcesses, createOrphanReaperRealDepsAsync } = await import("../daemon-orchestration-ZMQWYYDT.js");
7114
7219
  const deps = await createOrphanReaperRealDepsAsync();
7115
7220
  const reaped = await reapOrphanedMcpProcesses(deps);
7116
7221
  if (reaped.length > 0) acted("orphan_reaper");
@@ -7135,7 +7240,7 @@ function startZombieAgentReaper() {
7135
7240
  const tick = async () => traceDaemonTimer("zombie_agent_reaper", async () => {
7136
7241
  fired("zombie_agent_reaper");
7137
7242
  try {
7138
- const { reapZombieAgentProcesses, createZombieAgentReaperRealDepsAsync } = await import("../daemon-orchestration-Q3GJA2JJ.js");
7243
+ const { reapZombieAgentProcesses, createZombieAgentReaperRealDepsAsync } = await import("../daemon-orchestration-ZMQWYYDT.js");
7139
7244
  const deps = await createZombieAgentReaperRealDepsAsync();
7140
7245
  const reaped = reapZombieAgentProcesses(deps);
7141
7246
  if (reaped.length > 0) acted("zombie_agent_reaper");
@@ -7159,7 +7264,7 @@ async function startDaemonMemoryPressureWatchdog() {
7159
7264
  try {
7160
7265
  const cfg = await getCachedConfig();
7161
7266
  if (!cfg) return;
7162
- const { startMemoryPressureWatchdog: startWatchdog, MEMORY_PRESSURE_WATCHDOG_DEFAULTS } = await import("../memory-pressure-watchdog-ZI3TH2OF.js");
7267
+ const { startMemoryPressureWatchdog: startWatchdog, MEMORY_PRESSURE_WATCHDOG_DEFAULTS } = await import("../memory-pressure-watchdog-FFC2CHFJ.js");
7163
7268
  const watchdogCfg = {
7164
7269
  ...MEMORY_PRESSURE_WATCHDOG_DEFAULTS,
7165
7270
  ...cfg.memoryPressureWatchdog ?? {}
@@ -7191,7 +7296,7 @@ function startWorktreeReaper() {
7191
7296
  fired("worktree_reaper");
7192
7297
  if (sweepStarved("worktree_reaper")) return;
7193
7298
  try {
7194
- const { reapOrphanedWorktrees, createWorktreeReaperRealDeps } = await import("../daemon-orchestration-Q3GJA2JJ.js");
7299
+ const { reapOrphanedWorktrees, createWorktreeReaperRealDeps } = await import("../daemon-orchestration-ZMQWYYDT.js");
7195
7300
  const deps = await createWorktreeReaperRealDeps();
7196
7301
  const result = await reapOrphanedWorktrees(deps);
7197
7302
  if (result.pruned.length > 0) {
@@ -7235,8 +7340,8 @@ function startWorktreeReaper() {
7235
7340
  }
7236
7341
  return;
7237
7342
  }
7238
- const { cleanupAgentWorktree } = await import("../worktree-sweep-4EDLLQ2E.js");
7239
- const { getMainRepoRootAsync } = await import("../worktree-H3YFJ3NU.js");
7343
+ const { cleanupAgentWorktree } = await import("../worktree-sweep-X7MUEEQS.js");
7344
+ const { getMainRepoRootAsync } = await import("../worktree-3FO6EQ4G.js");
7240
7345
  const repoRoot = await getMainRepoRootAsync(signal.worktreePath);
7241
7346
  if (repoRoot && signal.agentId) {
7242
7347
  const notes = await cleanupAgentWorktree(repoRoot, signal.agentId);
@@ -7273,7 +7378,7 @@ function startAutoWake() {
7273
7378
  if (!await ensureStoreForPolling()) return;
7274
7379
  try {
7275
7380
  const { getClient } = await import("./database.js");
7276
- const { pollOrphanedTasks, createAutoWakeRealDeps } = await import("../daemon-orchestration-Q3GJA2JJ.js");
7381
+ const { pollOrphanedTasks, createAutoWakeRealDeps } = await import("../daemon-orchestration-ZMQWYYDT.js");
7277
7382
  const deps = createAutoWakeRealDeps(getClient, process.cwd(), getTmuxSessionsAsync);
7278
7383
  const woken = await pollOrphanedTasks(deps);
7279
7384
  if (woken.length > 0) acted("auto_wake");
@@ -7348,7 +7453,7 @@ function startAutoWake() {
7348
7453
  if (age > 60 * 60 * 1e3) {
7349
7454
  try {
7350
7455
  await unlink(signalPath);
7351
- void import("../orchestration-events-GMRGGBMN.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
7456
+ void import("../orchestration-events-VBGCIQSS.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
7352
7457
  recordOE({ eventType: "signal.stale", source: "exe-daemon.autoWake", severity: "warn", payload: { file, ageMinutes: Math.round(age / 6e4) } });
7353
7458
  }).catch(() => {
7354
7459
  });
@@ -7497,7 +7602,7 @@ function startStuckTaskRelease() {
7497
7602
  createStaleClaimRealDeps,
7498
7603
  escalateStuckBlockedTasks,
7499
7604
  createStuckBlockedRealDeps
7500
- } = await import("../daemon-orchestration-Q3GJA2JJ.js");
7605
+ } = await import("../daemon-orchestration-ZMQWYYDT.js");
7501
7606
  const { runBudgetedSweep } = await import("../sweep-budget-KMPJ7O5Z.js");
7502
7607
  const steps = [
7503
7608
  async () => {
@@ -7762,12 +7867,12 @@ function startTaskEnforcementScanner() {
7762
7867
  const tick = async () => traceDaemonTimer("task_enforcement", async () => {
7763
7868
  fired("task_enforcement");
7764
7869
  try {
7765
- const { runTaskEnforcementTick } = await import("../task-enforcement-LXW45H5Z.js");
7870
+ const { runTaskEnforcementTick } = await import("../task-enforcement-WOIZ5TLK.js");
7766
7871
  const { getTransport } = await import("./transport.js");
7767
7872
  const { loadAgentConfig } = await import("./agent-config.js");
7768
7873
  const { getClient } = await import("./database.js");
7769
7874
  const { loadEmployeesSync } = await import("./employees.js");
7770
- const { sessionScopeFilter } = await import("../task-scope-GDLFE26E.js");
7875
+ const { sessionScopeFilter } = await import("../task-scope-PQ67YRWP.js");
7771
7876
  const transport = getTransport();
7772
7877
  const { sessions: allSessions, paneCache, aliveSessions } = await getSharedOrchestrationCaches();
7773
7878
  await yieldToEventLoop();
@@ -7778,10 +7883,10 @@ function startTaskEnforcementScanner() {
7778
7883
  sendKeysLiteral: transport.sendKeysLiteral?.bind(transport),
7779
7884
  isAlive: (session) => aliveSessions.has(session)
7780
7885
  };
7781
- const { checkAutoWakeGates } = await import("../daemon-orchestration-Q3GJA2JJ.js");
7886
+ const { checkAutoWakeGates } = await import("../daemon-orchestration-ZMQWYYDT.js");
7782
7887
  const { ensureEmployeeAsync, employeeSessionName, sendIntercomAsync } = await import("./tmux-routing.js");
7783
7888
  const { shouldAutoInstance } = await import("./employees.js");
7784
- const { recordOrchestrationEventBestEffort } = await import("../orchestration-events-GMRGGBMN.js");
7889
+ const { recordOrchestrationEventBestEffort } = await import("../orchestration-events-VBGCIQSS.js");
7785
7890
  const projectDir = process.cwd();
7786
7891
  await runTaskEnforcementTick({
7787
7892
  transport: enforcementTransport,
@@ -8107,7 +8212,7 @@ async function sweepExpiredTracesFromDaemonTimer() {
8107
8212
  const memoryIds = idsResult.rows.map((r) => String(r.id)).filter(Boolean);
8108
8213
  if (memoryIds.length === 0) return 0;
8109
8214
  const { getClient } = await import("./database.js");
8110
- const { cleanupGraphLinksForMemories, cleanupCardsForMemories } = await import("../graph-rag-LSJLWGXV.js");
8215
+ const { cleanupGraphLinksForMemories, cleanupCardsForMemories } = await import("../graph-rag-RLRQMY54.js");
8111
8216
  const client = getClient();
8112
8217
  await cleanupGraphLinksForMemories(client, memoryIds);
8113
8218
  await cleanupCardsForMemories(client, memoryIds);
@@ -8818,7 +8923,7 @@ function startEventLoopLagDetector() {
8818
8923
  const msg = `[exed] EVENT LOOP BLOCKED ${(lag / 1e3).toFixed(1)}s \u2014 MCP UNRESPONSIVE. Sessions will die.`;
8819
8924
  process.stderr.write(msg + "\n");
8820
8925
  logDaemonHealth({ event: "event_loop_blocked", pid: process.pid, message: msg, data: { lagMs: lag } });
8821
- void import("../orchestration-events-GMRGGBMN.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
8926
+ void import("../orchestration-events-VBGCIQSS.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
8822
8927
  recordOE({ eventType: "daemon.event_loop_blocked", source: "exe-daemon.lagDetector", severity: "error", durationMs: lag });
8823
8928
  }).catch(() => {
8824
8929
  });
@@ -9012,7 +9117,7 @@ function startTaskFileResync() {
9012
9117
  });
9013
9118
  if (Number(res.rowsAffected ?? 0) > 0) {
9014
9119
  synced++;
9015
- void import("../orchestration-events-GMRGGBMN.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
9120
+ void import("../orchestration-events-VBGCIQSS.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
9016
9121
  recordOE({
9017
9122
  eventType: "task_file.resynced",
9018
9123
  source: "exe-daemon.taskFileResync",
@@ -9046,7 +9151,7 @@ function startTaskGroupBarriers() {
9046
9151
  fired("task_group_barriers");
9047
9152
  if (!await ensureStoreForPolling()) return;
9048
9153
  try {
9049
- const { pollTaskGroupBarriers } = await import("../daemon-orchestration-Q3GJA2JJ.js");
9154
+ const { pollTaskGroupBarriers } = await import("../daemon-orchestration-ZMQWYYDT.js");
9050
9155
  const firedCount = await pollTaskGroupBarriers();
9051
9156
  if (firedCount > 0) {
9052
9157
  acted("task_group_barriers");
@@ -9068,7 +9173,7 @@ function startCheckpointGc() {
9068
9173
  fired("checkpoint_gc");
9069
9174
  if (!await ensureStoreForPolling()) return;
9070
9175
  try {
9071
- const { gcStaleCheckpoints } = await import("../daemon-orchestration-Q3GJA2JJ.js");
9176
+ const { gcStaleCheckpoints } = await import("../daemon-orchestration-ZMQWYYDT.js");
9072
9177
  const cleared = await gcStaleCheckpoints();
9073
9178
  if (cleared > 0) {
9074
9179
  acted("checkpoint_gc");
@@ -9108,14 +9213,14 @@ function startDispatchAckCleanup() {
9108
9213
  function startProjectionWorkerDeferred() {
9109
9214
  setTimeout(async () => {
9110
9215
  try {
9111
- const { startProjectionWorker } = await import("../projection-worker-GMRC6SBH.js");
9216
+ const { startProjectionWorker } = await import("../projection-worker-FLASNERC.js");
9112
9217
  startProjectionWorker();
9113
9218
  } catch {
9114
9219
  }
9115
9220
  }, 2e4);
9116
9221
  }
9117
9222
  async function startToolTelemetry() {
9118
- const { startToolTelemetryFlush } = await import("../tool-telemetry-VKMRS6MP.js");
9223
+ const { startToolTelemetryFlush } = await import("../tool-telemetry-ZL6TTZWG.js");
9119
9224
  startToolTelemetryFlush();
9120
9225
  process.stderr.write("[exed] Tool telemetry started (flush every 5m)\n");
9121
9226
  }
@@ -9232,6 +9337,7 @@ function startLocalFirstTimers() {
9232
9337
  setTimeout(() => void traceDaemonTimer("background_job_guardrails_start", () => startBackgroundJobGuardrails()), 6e4);
9233
9338
  setTimeout(startWorktreeReaper, 12e4);
9234
9339
  setTimeout(startStaleBranchSweep, 2e5);
9340
+ setTimeout(startStalledDispatchSweep, 21e4);
9235
9341
  setTimeout(startZombieAgentReaper, 25e3);
9236
9342
  setTimeout(() => void startDaemonMemoryPressureWatchdog(), 3e4);
9237
9343
  setTimeout(() => void traceDaemonTimer("intercom_dedup_cleanup", async () => {
@@ -9283,7 +9389,7 @@ function startLocalFirstTimers() {
9283
9389
  fired("orphan_task_cleanup");
9284
9390
  try {
9285
9391
  if (!await ensureStoreForPolling()) return;
9286
- const { cleanOrphanedTaskFiles } = await import("../tasks-crud-W7VGWRUV.js");
9392
+ const { cleanOrphanedTaskFiles } = await import("../tasks-crud-TJNMUKKH.js");
9287
9393
  const count = await cleanOrphanedTaskFiles();
9288
9394
  if (count > 0) {
9289
9395
  acted("orphan_task_cleanup");
@@ -9299,7 +9405,7 @@ function startLocalFirstTimers() {
9299
9405
  fired("task_file_consistency");
9300
9406
  try {
9301
9407
  if (!await ensureStoreForPolling()) return;
9302
- const { checkTaskFileConsistency } = await import("../tasks-crud-W7VGWRUV.js");
9408
+ const { checkTaskFileConsistency } = await import("../tasks-crud-TJNMUKKH.js");
9303
9409
  const mismatches = await checkTaskFileConsistency();
9304
9410
  if (mismatches > 0) {
9305
9411
  acted("task_file_consistency");
@@ -9318,7 +9424,7 @@ function startLocalFirstTimers() {
9318
9424
  const TELEMETRY_DAILY_MS = 24 * 60 * 60 * 1e3;
9319
9425
  const telemetryDaily = async () => {
9320
9426
  try {
9321
- const { sendTelemetry, isTelemetryEnabled } = await import("../telemetry-upload-FK5WKXVB.js");
9427
+ const { sendTelemetry, isTelemetryEnabled } = await import("../telemetry-upload-6LBGRJUE.js");
9322
9428
  if (!isTelemetryEnabled()) return;
9323
9429
  const { upstream } = await sendTelemetry(24);
9324
9430
  if (upstream.startsWith("sent")) {
@@ -9556,7 +9662,7 @@ try {
9556
9662
  });
9557
9663
  }
9558
9664
  try {
9559
- const { initOrgPartnerRuntime } = await import("../org-partner-runtime-WLZAZJIY.js");
9665
+ const { initOrgPartnerRuntime } = await import("../org-partner-runtime-TPVKFR6E.js");
9560
9666
  await initOrgPartnerRuntime();
9561
9667
  } catch (err) {
9562
9668
  process.stderr.write(