@askexenow/exe-os 0.9.345 → 0.9.347

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 (310) hide show
  1. package/deploy/compose/clickhouse-config.xml +14 -0
  2. package/dist/{active-agent-6ZH2D6IP.js → active-agent-CMY7WTJL.js} +3 -3
  3. package/dist/{active-agent-BAWQYSNJ.js → active-agent-US4KO4LV.js} +3 -3
  4. package/dist/{agentic-ontology-IUFSZUI6.js → agentic-ontology-3Y37SQYR.js} +1 -1
  5. package/dist/{backfill-metadata-CWMJBLNQ.js → backfill-metadata-GK66TYQE.js} +5 -5
  6. package/dist/{backup-verify-NMXFX6NR.js → backup-verify-72XBKKHL.js} +1 -1
  7. package/dist/{behaviors-XZOZKID2.js → behaviors-G7TR6LBM.js} +6 -6
  8. package/dist/bin/agentic-ontology-backfill.js +6 -6
  9. package/dist/bin/agentic-reflection-backfill.js +7 -7
  10. package/dist/bin/agentic-semantic-label.js +6 -6
  11. package/dist/bin/backfill-conversations.js +5 -5
  12. package/dist/bin/backfill-responses.js +5 -5
  13. package/dist/bin/backfill-vectors.js +6 -6
  14. package/dist/bin/bulk-sync-postgres.js +10 -10
  15. package/dist/bin/cc-doctor.js +4 -4
  16. package/dist/bin/cleanup-stale-review-tasks.js +17 -16
  17. package/dist/bin/cli.js +18 -18
  18. package/dist/bin/deferred-daemon-restart.js +72 -71
  19. package/dist/bin/exe-agent-config.js +4 -4
  20. package/dist/bin/exe-agent.js +7 -7
  21. package/dist/bin/exe-assign.js +6 -6
  22. package/dist/bin/exe-boot.js +29 -28
  23. package/dist/bin/exe-call.js +4 -4
  24. package/dist/bin/exe-cloud.js +10 -10
  25. package/dist/bin/exe-config-dump.js +4 -4
  26. package/dist/bin/exe-dispatch.js +17 -16
  27. package/dist/bin/exe-doctor.js +4 -4
  28. package/dist/bin/exe-export-behaviors.js +8 -8
  29. package/dist/bin/exe-forget.js +7 -7
  30. package/dist/bin/exe-gateway.js +7 -7
  31. package/dist/bin/exe-healthcheck.js +4 -4
  32. package/dist/bin/exe-heartbeat.js +19 -18
  33. package/dist/bin/exe-kill.js +21 -20
  34. package/dist/bin/exe-launch-agent.js +26 -25
  35. package/dist/bin/exe-mcp.js +494 -0
  36. package/dist/bin/exe-memory-reads.js +5 -5
  37. package/dist/bin/exe-new-employee.js +8 -8
  38. package/dist/bin/exe-os-mcp-proxy.js +46 -10
  39. package/dist/bin/exe-pending-messages.js +18 -17
  40. package/dist/bin/exe-pending-notifications.js +17 -16
  41. package/dist/bin/exe-pending-reviews.js +17 -16
  42. package/dist/bin/exe-rename.js +4 -4
  43. package/dist/bin/exe-review.js +20 -19
  44. package/dist/bin/exe-search.js +6 -6
  45. package/dist/bin/exe-session-cleanup.js +21 -20
  46. package/dist/bin/exe-settings.js +12 -12
  47. package/dist/bin/exe-start-codex.js +54 -28
  48. package/dist/bin/exe-start-opencode.js +10 -10
  49. package/dist/bin/exe-status.js +18 -17
  50. package/dist/bin/exe-support.js +3 -3
  51. package/dist/bin/exe-team.js +3 -3
  52. package/dist/bin/git-sweep.js +18 -17
  53. package/dist/bin/graph-backfill.js +6 -6
  54. package/dist/bin/graph-export.js +6 -6
  55. package/dist/bin/import-history.js +9 -9
  56. package/dist/bin/install.js +74 -73
  57. package/dist/bin/intercom-check.js +4 -4
  58. package/dist/bin/mcp-sessions.js +2 -2
  59. package/dist/bin/orchestration-metrics.js +4 -4
  60. package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
  61. package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
  62. package/dist/bin/reconcile-backlog.js +2 -2
  63. package/dist/bin/registry-proxy.js +1 -1
  64. package/dist/bin/scan-tasks.js +17 -16
  65. package/dist/bin/setup.js +2 -2
  66. package/dist/bin/shard-migrate.js +5 -5
  67. package/dist/bin/stack-update.js +4 -4
  68. package/dist/bin/vps-health-gate.js +1 -1
  69. package/dist/{boot-generation-OTC2ESGV.js → boot-generation-KG43UYL4.js} +3 -3
  70. package/dist/{boot-review-sections-RXFU3QRA.js → boot-review-sections-56BRURLM.js} +16 -15
  71. package/dist/{capability-cards-HOOLOBCU.js → capability-cards-4MN3IVJO.js} +2 -2
  72. package/dist/{capacity-monitor-SFLPNE7M.js → capacity-monitor-4NJTN5QQ.js} +18 -17
  73. package/dist/{catchup-brief-YUCZX3CR.js → catchup-brief-AMBXLHXU.js} +21 -20
  74. package/dist/{chunk-REH7YNV4.js → chunk-2BOEUPL6.js} +1 -1
  75. package/dist/{chunk-W5SRIJU4.js → chunk-2ESYTX6F.js} +1 -1
  76. package/dist/{chunk-6YH44JOY.js → chunk-2LZMDOC6.js} +55 -10
  77. package/dist/{chunk-ZXQRVYRS.js → chunk-3EMAJBBN.js} +10 -6
  78. package/dist/{chunk-4SBOGUGG.js → chunk-3HGAAWNZ.js} +5 -5
  79. package/dist/{chunk-6RYNOXTC.js → chunk-3LQMUO5D.js} +3 -3
  80. package/dist/{chunk-CKZ7CI55.js → chunk-3T4BRBSH.js} +1 -1
  81. package/dist/{chunk-B77H77VF.js → chunk-4K2PLZKF.js} +1 -1
  82. package/dist/{chunk-GGVP2B2O.js → chunk-4P7NUL4D.js} +5 -2
  83. package/dist/{chunk-XM3EARTG.js → chunk-4VLRGKNY.js} +2 -2
  84. package/dist/{chunk-PISA226N.js → chunk-53VXPGZ2.js} +2 -2
  85. package/dist/{chunk-XQASVF7H.js → chunk-7667KFAG.js} +77 -22
  86. package/dist/{chunk-FABOJ6IJ.js → chunk-7AD4GSRT.js} +3 -3
  87. package/dist/{chunk-IGF7YLMD.js → chunk-7DAJHBFH.js} +1 -1
  88. package/dist/{chunk-DWNRLCUQ.js → chunk-AHR3F7HW.js} +1 -1
  89. package/dist/{chunk-O7LWR36Z.js → chunk-AJIXH5JF.js} +122 -19
  90. package/dist/{chunk-6Z6ZVYHA.js → chunk-BMTUSSHV.js} +1 -1
  91. package/dist/{chunk-SDC5XIA5.js → chunk-BRVDGE7N.js} +4 -4
  92. package/dist/{chunk-ENVO4NIX.js → chunk-CNIAEIWV.js} +1 -1
  93. package/dist/{chunk-5A5LNAMW.js → chunk-DBDMZTU5.js} +1 -1
  94. package/dist/{chunk-WT6YYIEL.js → chunk-DNN27P35.js} +4 -4
  95. package/dist/{chunk-TLQDDKU4.js → chunk-DSGFX3RT.js} +40 -10
  96. package/dist/{chunk-YESAKOJE.js → chunk-DZJL775P.js} +1 -1
  97. package/dist/{chunk-VNYSLHHX.js → chunk-EWWCMMES.js} +488 -77
  98. package/dist/{chunk-MJJJSU6M.js → chunk-EYWB6526.js} +3 -3
  99. package/dist/{chunk-Q5I5MLKV.js → chunk-F4ZW76IX.js} +1 -1
  100. package/dist/{chunk-T5BGKRYS.js → chunk-F6NABQJ4.js} +2 -2
  101. package/dist/{chunk-E5XAVXQG.js → chunk-FAH7JUNS.js} +171 -46
  102. package/dist/{chunk-RF3O2OZL.js → chunk-FBSAXAXQ.js} +2 -2
  103. package/dist/{chunk-ORVC4XVZ.js → chunk-FDOURKUO.js} +1 -1
  104. package/dist/{chunk-OYDXYENC.js → chunk-FJPZ7KHN.js} +1 -1
  105. package/dist/{chunk-7IE3NPBV.js → chunk-FM4ZI5ZP.js} +1 -1
  106. package/dist/{chunk-R26I3YCN.js → chunk-G4HOMQY7.js} +1 -1
  107. package/dist/{chunk-EK2R7ORH.js → chunk-G6IANQKD.js} +1 -1
  108. package/dist/{chunk-AEVN4MPT.js → chunk-H44V3Y6D.js} +1 -1
  109. package/dist/{chunk-XDO4DVSB.js → chunk-HWK5GKE6.js} +1 -1
  110. package/dist/{chunk-NLVOLANR.js → chunk-I3XN3G3H.js} +208 -162
  111. package/dist/{chunk-P376KDEZ.js → chunk-ILLBFFY6.js} +2 -2
  112. package/dist/{chunk-DUO4WGDT.js → chunk-IMHERTUL.js} +3 -3
  113. package/dist/{chunk-7DZYO3Z5.js → chunk-IRMJHC23.js} +2 -2
  114. package/dist/{chunk-MI7OSFOA.js → chunk-JLYQD2XF.js} +1 -1
  115. package/dist/{chunk-437JTUZZ.js → chunk-JYFBQH5O.js} +9 -9
  116. package/dist/{chunk-442L6MA5.js → chunk-K3ZHVW26.js} +4 -4
  117. package/dist/{chunk-4YXTASUU.js → chunk-KI5PFRG6.js} +26 -1
  118. package/dist/{chunk-4LZLQ3ZK.js → chunk-KWRO4RMT.js} +3 -3
  119. package/dist/{chunk-QGNOYTSU.js → chunk-LJGHAZYU.js} +7 -7
  120. package/dist/{chunk-W4IUPJJ2.js → chunk-M3NSYVE3.js} +5 -5
  121. package/dist/{chunk-UBJRI2UU.js → chunk-M722B4DA.js} +1 -1
  122. package/dist/{chunk-U6NQ6OEU.js → chunk-MESFJRIT.js} +1 -1
  123. package/dist/{chunk-SDPOSTDC.js → chunk-MT6YGWJ6.js} +1 -1
  124. package/dist/{chunk-MHTDXXXW.js → chunk-OE6D2IJI.js} +5 -5
  125. package/dist/{chunk-GWDSB25T.js → chunk-OSKWCKUC.js} +1 -1
  126. package/dist/{chunk-WYMGEGOM.js → chunk-PEVOVM3W.js} +4 -4
  127. package/dist/{chunk-MDIVCWQW.js → chunk-PO64LWTM.js} +9 -9
  128. package/dist/{chunk-WD6PJ7IY.js → chunk-PRUZNNEF.js} +4 -4
  129. package/dist/{chunk-BG4Q4ZUW.js → chunk-PYNWGP72.js} +1 -1
  130. package/dist/{chunk-ILBB65TX.js → chunk-QFGUAJ6T.js} +2 -2
  131. package/dist/{chunk-IYCE7UES.js → chunk-QIALRZZG.js} +1 -1
  132. package/dist/{chunk-CBWJ5DRL.js → chunk-QZA5NG6Z.js} +1 -1
  133. package/dist/{chunk-LF4DHB5A.js → chunk-SUG5P42S.js} +14 -4
  134. package/dist/{chunk-SNJLKMCY.js → chunk-SVFNWBLF.js} +26 -4
  135. package/dist/{chunk-GY6VSMMB.js → chunk-T7ZLJZAO.js} +1 -1
  136. package/dist/{chunk-XWD6F6EZ.js → chunk-TQSAPNFW.js} +40 -30
  137. package/dist/{chunk-SFT7M6MC.js → chunk-UMK7TNCF.js} +107 -47
  138. package/dist/{chunk-B3Z6LHVV.js → chunk-UO56K55W.js} +31 -6
  139. package/dist/{chunk-CBZPE5J4.js → chunk-UVPLZ6AK.js} +2 -2
  140. package/dist/{chunk-PW557TJV.js → chunk-VA3ZUIWG.js} +1 -1
  141. package/dist/{chunk-V3AZC2K6.js → chunk-VALVWYAK.js} +104 -11
  142. package/dist/{chunk-TNZSK6L7.js → chunk-VBHLE3TR.js} +1 -0
  143. package/dist/{chunk-JFLUUBQK.js → chunk-VDJUATQJ.js} +1 -1
  144. package/dist/{chunk-LOK3PZP3.js → chunk-VDKDW5IA.js} +17 -18
  145. package/dist/{chunk-IM6FMNTO.js → chunk-VMTKHDFM.js} +3 -3
  146. package/dist/{chunk-7TZ6HV4G.js → chunk-VTMSGELG.js} +6 -3
  147. package/dist/{chunk-4FYXYJUX.js → chunk-W666YWFU.js} +3 -3
  148. package/dist/{chunk-UHUODLGJ.js → chunk-W7HKGDJO.js} +3 -3
  149. package/dist/{chunk-NGP6LSV2.js → chunk-WNBZJSQT.js} +10 -1
  150. package/dist/{chunk-Q7LTWGQK.js → chunk-WOKPKILI.js} +1 -1
  151. package/dist/{chunk-JELPA53I.js → chunk-XDVLCS64.js} +1 -1
  152. package/dist/{chunk-OJBWWOSM.js → chunk-XOVHWGPV.js} +1 -1
  153. package/dist/{chunk-QEHVKL27.js → chunk-XRX7F7XW.js} +1 -1
  154. package/dist/{chunk-LEESW32W.js → chunk-Y7637VDZ.js} +2 -2
  155. package/dist/{chunk-QHDUGZVP.js → chunk-YJK4JZ35.js} +3 -3
  156. package/dist/{chunk-BLV57HND.js → chunk-YSTIPPZK.js} +1 -1
  157. package/dist/{chunk-7WGEZ5WM.js → chunk-Z7DWUHDP.js} +1 -1
  158. package/dist/{chunk-RSMOYIVR.js → chunk-ZK53K7OR.js} +1 -1
  159. package/dist/{chunk-3BO6S3L2.js → chunk-ZY2ABBVR.js} +144 -103
  160. package/dist/{chunk-WFEOKA2T.js → chunk-ZYNQXN73.js} +4 -4
  161. package/dist/{cleanup-graph-garbage-EVPEOMIW.js → cleanup-graph-garbage-5HKGGUS3.js} +10 -6
  162. package/dist/{cloud-sync-shutdown-QVXYVLWQ.js → cloud-sync-shutdown-2JAEIAW6.js} +2 -2
  163. package/dist/{co-activation-XGBTXQAN.js → co-activation-SYSIFY66.js} +2 -2
  164. package/dist/{co-occurrence-ZQAKCA5V.js → co-occurrence-QZFT5ORJ.js} +8 -4
  165. package/dist/{conversation-entity-extractor-CVJ43JCX.js → conversation-entity-extractor-YC3A2ODD.js} +6 -2
  166. package/dist/{crdt-sync-FQIHFFCI.js → crdt-sync-W45AKWCU.js} +1 -1
  167. package/dist/{crm-webhook-IA2N224B.js → crm-webhook-ZAGDYWB3.js} +2 -2
  168. package/dist/{cto-delegation-gate-5OUCWJYA.js → cto-delegation-gate-PLSICYEK.js} +16 -15
  169. package/dist/{daemon-orchestration-7XWMZXN4.js → daemon-orchestration-QX3FS4L2.js} +26 -21
  170. package/dist/{daemon-ready-QGU7MZZB.js → daemon-ready-56VAPZU6.js} +1 -1
  171. package/dist/{db-verify-stamp-YTRPEKZ5.js → db-verify-stamp-P2FCVTXK.js} +1 -1
  172. package/dist/{dispatch-ack-VYH3ONSS.js → dispatch-ack-AZL3WKCK.js} +1 -1
  173. package/dist/{doc-graph-extractor-VZ6SE7BC.js → doc-graph-extractor-NK6CP4LE.js} +8 -4
  174. package/dist/{documents-7ZVGEZ2X.js → documents-FGXV6BDL.js} +6 -6
  175. package/dist/{dreaming-GANGWVRH.js → dreaming-YIESEME7.js} +20 -19
  176. package/dist/{exe-drift-X62H7KFD.js → exe-drift-TLY7MCXW.js} +3 -3
  177. package/dist/{exe-export-DZNDPQ7I.js → exe-export-32J4WPS6.js} +7 -7
  178. package/dist/{exe-import-JZ4BOQUV.js → exe-import-MDEWE325.js} +7 -7
  179. package/dist/{exe-key-RWMZZOJI.js → exe-key-NW42YUA3.js} +72 -71
  180. package/dist/{exe-snapshot-VTGR53OI.js → exe-snapshot-NNEEAGYI.js} +21 -20
  181. package/dist/{fast-db-init-CZSSDWDG.js → fast-db-init-O7AECNTB.js} +1 -1
  182. package/dist/{founder-context-7OKZVVEH.js → founder-context-3WDZ6LIS.js} +2 -2
  183. package/dist/gateway/index.js +11 -11
  184. package/dist/{git-staleness-JN7YOMDP.js → git-staleness-GEJ7U4MW.js} +2 -2
  185. package/dist/{global-procedures-NOJL7AQ7.js → global-procedures-HY3BJXY4.js} +3 -3
  186. package/dist/{graph-auto-extract-DNY7O7YL.js → graph-auto-extract-DBAIFNDK.js} +8 -4
  187. package/dist/{graph-rag-HHNAX7YO.js → graph-rag-LWKKHY72.js} +6 -2
  188. package/dist/{hook-prefetch-LYJMDLRJ.js → hook-prefetch-KNHZNI4L.js} +17 -16
  189. package/dist/hooks/bug-report-worker.js +19 -19
  190. package/dist/hooks/codex-stop-task-finalizer.js +20 -20
  191. package/dist/hooks/commit-complete.js +19 -18
  192. package/dist/hooks/error-recall.js +7 -7
  193. package/dist/hooks/exe-heartbeat-hook.js +3 -3
  194. package/dist/hooks/ingest.js +6 -6
  195. package/dist/hooks/instructions-loaded.js +4 -4
  196. package/dist/hooks/manifest.json +19 -19
  197. package/dist/hooks/notification.js +4 -4
  198. package/dist/hooks/post-compact.js +18 -17
  199. package/dist/hooks/post-tool-combined.js +9 -9
  200. package/dist/hooks/pre-compact.js +19 -18
  201. package/dist/hooks/pre-tool-use.js +84 -44
  202. package/dist/hooks/prompt-submit.js +36 -35
  203. package/dist/hooks/session-end.js +23 -22
  204. package/dist/hooks/session-start.js +44 -23
  205. package/dist/hooks/stop.js +22 -21
  206. package/dist/hooks/subagent-stop.js +20 -19
  207. package/dist/hooks/summary-worker.js +23 -22
  208. package/dist/index.js +28 -27
  209. package/dist/{installer-KBK7EE3F.js → installer-AWALPCAX.js} +5 -5
  210. package/dist/{installer-EWFK5EBH.js → installer-R2S64Q6T.js} +5 -5
  211. package/dist/{installer-6O3XLAQ5.js → installer-SQF5I6YS.js} +5 -5
  212. package/dist/{intercom-queue-EOYSBHUA.js → intercom-queue-SJL4G3J5.js} +16 -15
  213. package/dist/lib/agent-config.js +2 -2
  214. package/dist/lib/cloud-sync.js +14 -10
  215. package/dist/lib/consolidation.js +7 -7
  216. package/dist/lib/database.js +2 -2
  217. package/dist/lib/db-backup.js +1 -1
  218. package/dist/lib/db-write-worker.js +2 -2
  219. package/dist/lib/db.js +2 -2
  220. package/dist/lib/device-registry.js +1 -1
  221. package/dist/lib/employee-templates.js +4 -4
  222. package/dist/lib/employees.js +2 -2
  223. package/dist/lib/exe-daemon.js +248 -194
  224. package/dist/lib/hybrid-search.js +6 -6
  225. package/dist/lib/identity.js +2 -2
  226. package/dist/lib/license.js +2 -2
  227. package/dist/lib/messaging.js +17 -16
  228. package/dist/lib/registry-proxy.js +1 -1
  229. package/dist/lib/reminders.js +3 -3
  230. package/dist/lib/runtime-table.js +9 -3
  231. package/dist/lib/schedules.js +6 -6
  232. package/dist/lib/session-registry.js +4 -4
  233. package/dist/lib/skill-learning.js +7 -7
  234. package/dist/lib/store.js +5 -5
  235. package/dist/lib/task-router.js +3 -3
  236. package/dist/lib/tasks.js +18 -18
  237. package/dist/lib/tmux-routing.js +16 -15
  238. package/dist/lib/token-spend.js +3 -3
  239. package/dist/{license-gate-WO3NO5FX.js → license-gate-ZYZQGPKW.js} +3 -3
  240. package/dist/{license-sync-QRG2TCBR.js → license-sync-GU3L66JR.js} +2 -2
  241. package/dist/mcp/register-tools.js +71 -70
  242. package/dist/mcp/server.js +72 -71
  243. package/dist/mcp/tools/complete-reminder.js +4 -4
  244. package/dist/mcp/tools/create-reminder.js +4 -4
  245. package/dist/mcp/tools/create-task.js +20 -20
  246. package/dist/mcp/tools/deactivate-behavior.js +8 -8
  247. package/dist/mcp/tools/list-reminders.js +4 -4
  248. package/dist/mcp/tools/list-tasks.js +20 -20
  249. package/dist/mcp/tools/send-message.js +19 -18
  250. package/dist/mcp/tools/update-task.js +19 -19
  251. package/dist/{mcp-http-config-A2SKBXA6.js → mcp-http-config-BV2GO7P4.js} +3 -3
  252. package/dist/{mcp-session-identity-PGAE4IB2.js → mcp-session-identity-3QQPOGNI.js} +16 -15
  253. package/dist/{memory-cards-BMHZILXL.js → memory-cards-NISTO4EP.js} +5 -5
  254. package/dist/{memory-graph-extractor-5EDOSSZH.js → memory-graph-extractor-CO3R5K7L.js} +9 -5
  255. package/dist/{memory-poisoning-defense-OV75EWM6.js → memory-poisoning-defense-QZCG3BMC.js} +2 -2
  256. package/dist/{memory-pressure-watchdog-MEB53N4D.js → memory-pressure-watchdog-VWQM3GXR.js} +17 -16
  257. package/dist/{memory-reflection-KRYBPDHC.js → memory-reflection-G32OQ3X3.js} +2 -2
  258. package/dist/{notification-ledger-XPT4GVNX.js → notification-ledger-C3J4HFMM.js} +17 -16
  259. package/dist/{notifications-XTLG4LEM.js → notifications-JIARMDZ5.js} +16 -15
  260. package/dist/{orchestration-events-ZZQZCV4J.js → orchestration-events-AL7AWHBX.js} +3 -3
  261. package/dist/{orchestrator-YXNVVWAA.js → orchestrator-LWVALDUO.js} +18 -17
  262. package/dist/{pipeline-router-4RBSYZND.js → pipeline-router-HK5BI3LQ.js} +3 -3
  263. package/dist/{plan-limits-5P5GMLKB.js → plan-limits-4LMRHOUW.js} +5 -5
  264. package/dist/{projection-worker-72KRZL37.js → projection-worker-Z5U6UWCE.js} +2 -2
  265. package/dist/{prospective-memory-HEF2QHEU.js → prospective-memory-UDQWFP5Y.js} +2 -2
  266. package/dist/{reranker-DA7FSOUJ.js → reranker-FX4QOK2G.js} +1 -1
  267. package/dist/{retrieval-health-MHNE5SSF.js → retrieval-health-2LIKKDMW.js} +1 -1
  268. package/dist/{review-polling-GYKRBUX2.js → review-polling-B2EP4KGE.js} +17 -16
  269. package/dist/runtime/index.js +24 -23
  270. package/dist/{session-events-Q5IYAH44.js → session-events-HVYX42HD.js} +17 -16
  271. package/dist/{session-kill-telemetry-P3P3U6TE.js → session-kill-telemetry-BHKUHSK2.js} +17 -16
  272. package/dist/{session-scope-GHM4GKYR.js → session-scope-TXCBVOSN.js} +16 -15
  273. package/dist/{setup-wizard-5D56CWVZ.js → setup-wizard-QMKBAK6B.js} +2 -2
  274. package/dist/{skill-refinement-M24DG2TN.js → skill-refinement-G6BPD6QK.js} +3 -3
  275. package/dist/{stack-update-ABMTXOZR.js → stack-update-CBP5S5BG.js} +3 -3
  276. package/dist/{steward-gate-DYQP3BWO.js → steward-gate-CGP6U7KC.js} +3 -3
  277. package/dist/{support-inbox-5AG4QTKQ.js → support-inbox-3ATAP7KN.js} +3 -3
  278. package/dist/{sweep-budget-74FIUNX3.js → sweep-budget-KMPJ7O5Z.js} +5 -1
  279. package/dist/{task-enforcement-6FLLHH43.js → task-enforcement-YINAK3T6.js} +17 -16
  280. package/dist/{task-scope-RR34UA2U.js → task-scope-5OSP2MUP.js} +16 -15
  281. package/dist/{tasks-crud-VI7Q65IE.js → tasks-crud-PTN36B5F.js} +22 -15
  282. package/dist/{tasks-notify-MLE2AVHJ.js → tasks-notify-QCJXVZCJ.js} +17 -17
  283. package/dist/{tasks-review-WR3XEADY.js → tasks-review-ZY3S65OV.js} +16 -15
  284. package/dist/{telemetry-upload-LIJY4IB7.js → telemetry-upload-Z47OEELW.js} +7 -7
  285. package/dist/{token-budget-JTSFQTWP.js → token-budget-B3OKOYDA.js} +3 -3
  286. package/dist/{tool-telemetry-L62XZXK5.js → tool-telemetry-KIHAHUPT.js} +1 -1
  287. package/dist/tui/App.js +24 -23
  288. package/dist/{tui-data-LY27NK2Z.js → tui-data-YIFXHE2D.js} +16 -15
  289. package/dist/{update-support-G2XWFHEH.js → update-support-IZUWVU2U.js} +9 -9
  290. package/dist/{work-state-heartbeat-QCLCEQV3.js → work-state-heartbeat-WIURKX3N.js} +1 -1
  291. package/dist/{worker-gate-XJJXOMUN.js → worker-gate-NZRA426F.js} +1 -1
  292. package/dist/{workflow-engine-55LTMEXZ.js → workflow-engine-LAB6TGBZ.js} +2 -2
  293. package/dist/{worktree-EEW45PPV.js → worktree-TBUUZJHY.js} +4 -4
  294. package/dist/{worktree-sweep-PBDRKK7L.js → worktree-sweep-LXDNIZPM.js} +5 -5
  295. package/package.json +1 -1
  296. package/release-notes.json +53 -89
  297. package/dist/exe-mcp-GCZLSGCO.js +0 -286
  298. /package/dist/{chunk-IGAODB3D.js → chunk-CYI2YR56.js} +0 -0
  299. /package/dist/{chunk-EJVVGC6C.js → chunk-D4UCBR4O.js} +0 -0
  300. /package/dist/{chunk-IUMAJIHE.js → chunk-FFUEDKYK.js} +0 -0
  301. /package/dist/{chunk-4RM3364E.js → chunk-G4JZ22KK.js} +0 -0
  302. /package/dist/{chunk-SPV2RTA4.js → chunk-MA22RV3T.js} +0 -0
  303. /package/dist/{chunk-KHIBBGMT.js → chunk-MDK7E653.js} +0 -0
  304. /package/dist/{chunk-5OVON46B.js → chunk-OG2RT4IY.js} +0 -0
  305. /package/dist/{chunk-V7RT3NZH.js → chunk-QPNXYGWG.js} +0 -0
  306. /package/dist/{chunk-DQOBH5VO.js → chunk-SJLZ53ZR.js} +0 -0
  307. /package/dist/{core-memory-X3FUV5X3.js → core-memory-FOW4BCPN.js} +0 -0
  308. /package/dist/{oauth-server-XKEJ4LE5.js → oauth-server-OR4RAQYM.js} +0 -0
  309. /package/dist/{project-boot-XBUAQWVL.js → project-boot-WP54EOAG.js} +0 -0
  310. /package/dist/{wiki-acl-D3CNNLP5.js → wiki-acl-4DQQCP4V.js} +0 -0
@@ -138,7 +138,8 @@ async function writeContinuityCheckpoint(input) {
138
138
  timestamp: now,
139
139
  importance: importanceForReason(input.reason, input.importance),
140
140
  task_id: input.taskId,
141
- memory_type: "checkpoint"
141
+ memory_type: "checkpoint",
142
+ session_scope: process.env.EXE_SESSION || process.env.EXE_SESSION_NAME?.split("-").pop() || void 0
142
143
  });
143
144
  const decisionLimit = input.reason === "periodic" ? 3 : 5;
144
145
  for (const decisionText of result.decisionTexts.slice(0, decisionLimit)) {
@@ -161,7 +162,9 @@ async function checkpointActiveTask(input) {
161
162
  await writeCheckpoint({
162
163
  taskId: input.taskId,
163
164
  step: input.step ?? "pre-compaction-checkpoint",
164
- contextSummary: `Auto-checkpoint before context compaction. Task: ${input.taskTitle}. Session: ${input.sessionId}. Project: ${input.projectName}.`
165
+ contextSummary: `Auto-checkpoint before context compaction. Task: ${input.taskTitle}. Session: ${input.sessionId}. Project: ${input.projectName}.`,
166
+ callerSession: process.env.EXE_SESSION_NAME ?? process.env.MY_TMUX_SESSION ?? null,
167
+ sessionInstanceId: input.sessionId
165
168
  });
166
169
  }
167
170
 
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  vectorToSqlLiteral
3
- } from "./chunk-XWD6F6EZ.js";
3
+ } from "./chunk-TQSAPNFW.js";
4
4
  import {
5
5
  blobToVector
6
6
  } from "./chunk-OTVEIJUQ.js";
7
7
  import {
8
8
  getClient
9
- } from "./chunk-3BO6S3L2.js";
9
+ } from "./chunk-ZY2ABBVR.js";
10
10
 
11
11
  // src/lib/behaviors.ts
12
12
  import crypto from "crypto";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  ingest
3
- } from "./chunk-FABOJ6IJ.js";
3
+ } from "./chunk-7AD4GSRT.js";
4
4
  import {
5
5
  listWorkflowDefinitions,
6
6
  runWorkflow,
7
7
  startWorkflow
8
- } from "./chunk-EK2R7ORH.js";
8
+ } from "./chunk-G6IANQKD.js";
9
9
  import {
10
10
  initCRMBridge
11
11
  } from "./chunk-ML4S5SHZ.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  recordOrchestrationEventBestEffort
3
- } from "./chunk-SDPOSTDC.js";
3
+ } from "./chunk-MT6YGWJ6.js";
4
4
 
5
5
  // src/lib/worktree.ts
6
- import { execFile, execSync } from "child_process";
6
+ import { execFile, execFileSync, execSync } from "child_process";
7
7
  import { promisify } from "util";
8
8
  import { existsSync, readFileSync, appendFileSync, mkdirSync, realpathSync, statSync, writeFileSync, chmodSync } from "fs";
9
9
  import path from "path";
@@ -17,6 +17,79 @@ async function gitAsync(args, cwd) {
17
17
  });
18
18
  return String(stdout ?? "");
19
19
  }
20
+ function gitSync(args, cwd) {
21
+ return String(execFileSync("git", args, {
22
+ cwd,
23
+ encoding: "utf-8",
24
+ timeout: GIT_TIMEOUT_MS,
25
+ stdio: ["pipe", "pipe", "pipe"]
26
+ }) ?? "");
27
+ }
28
+ var GIT_CRYPT_SMUDGE_BYPASS_ARGS = [
29
+ "-c",
30
+ "filter.git-crypt.smudge=cat",
31
+ "-c",
32
+ "filter.git-crypt.process=",
33
+ "-c",
34
+ "filter.git-crypt.required=false"
35
+ ];
36
+ function gitErrorText(err) {
37
+ if (!err || typeof err !== "object") return String(err);
38
+ const e = err;
39
+ const parts = [e.message, e.stderr, e.stdout].map((part) => Buffer.isBuffer(part) ? part.toString("utf8") : String(part ?? "")).filter(Boolean);
40
+ return parts.join("\n");
41
+ }
42
+ function isGitCryptSmudgeFailure(err) {
43
+ const text = gitErrorText(err);
44
+ return /git-crypt/i.test(text) && /smudge|filter/i.test(text);
45
+ }
46
+ function worktreeAddArgs(wtPath, branch, branchExists) {
47
+ return branchExists ? ["worktree", "add", wtPath, branch] : ["worktree", "add", wtPath, "-b", branch, "HEAD"];
48
+ }
49
+ function removePartialWorktreeSync(repoRoot, wtPath) {
50
+ try {
51
+ if (existsSync(wtPath)) gitSync(["worktree", "remove", "--force", wtPath], repoRoot);
52
+ } catch {
53
+ }
54
+ }
55
+ async function removePartialWorktreeAsync(repoRoot, wtPath) {
56
+ try {
57
+ if (existsSync(wtPath)) await gitAsync(["worktree", "remove", "--force", wtPath], repoRoot);
58
+ } catch {
59
+ }
60
+ }
61
+ function addWorktreeSync(repoRoot, wtPath, branch, branchExists) {
62
+ try {
63
+ gitSync(worktreeAddArgs(wtPath, branch, branchExists), repoRoot);
64
+ } catch (err) {
65
+ if (!isGitCryptSmudgeFailure(err)) throw err;
66
+ removePartialWorktreeSync(repoRoot, wtPath);
67
+ const retryBranchExists = branchExists || branchExistsLocally(repoRoot, branch);
68
+ gitSync([...GIT_CRYPT_SMUDGE_BYPASS_ARGS, ...worktreeAddArgs(wtPath, branch, retryBranchExists)], repoRoot);
69
+ recordOrchestrationEventBestEffort({
70
+ eventType: "worktree.gitcrypt_smudge_bypassed",
71
+ source: "worktree.ensureWorktree",
72
+ severity: "warn",
73
+ payload: { branch }
74
+ });
75
+ }
76
+ }
77
+ async function addWorktreeAsync(repoRoot, wtPath, branch, branchExists) {
78
+ try {
79
+ await gitAsync(worktreeAddArgs(wtPath, branch, branchExists), repoRoot);
80
+ } catch (err) {
81
+ if (!isGitCryptSmudgeFailure(err)) throw err;
82
+ await removePartialWorktreeAsync(repoRoot, wtPath);
83
+ const retryBranchExists = branchExists || await branchExistsLocallyAsync(repoRoot, branch);
84
+ await gitAsync([...GIT_CRYPT_SMUDGE_BYPASS_ARGS, ...worktreeAddArgs(wtPath, branch, retryBranchExists)], repoRoot);
85
+ recordOrchestrationEventBestEffort({
86
+ eventType: "worktree.gitcrypt_smudge_bypassed",
87
+ source: "worktree.ensureWorktreeAsync",
88
+ severity: "warn",
89
+ payload: { branch }
90
+ });
91
+ }
92
+ }
20
93
  function classifyGitFailure(err) {
21
94
  if (!err || typeof err !== "object") return "unavailable";
22
95
  const e = err;
@@ -350,21 +423,7 @@ function ensureWorktree(projectDir, employeeName, instance) {
350
423
  }
351
424
  const branchExists = branchExistsLocally(repoRoot, branch);
352
425
  try {
353
- if (branchExists) {
354
- execSync(`git worktree add "${wtPath}" "${branch}"`, {
355
- cwd: repoRoot,
356
- encoding: "utf-8",
357
- timeout: GIT_TIMEOUT_MS,
358
- stdio: ["pipe", "pipe", "pipe"]
359
- });
360
- } else {
361
- execSync(`git worktree add "${wtPath}" -b "${branch}" HEAD`, {
362
- cwd: repoRoot,
363
- encoding: "utf-8",
364
- timeout: GIT_TIMEOUT_MS,
365
- stdio: ["pipe", "pipe", "pipe"]
366
- });
367
- }
426
+ addWorktreeSync(repoRoot, wtPath, branch, branchExists);
368
427
  recordOrchestrationEventBestEffort({
369
428
  eventType: "worktree.created",
370
429
  source: "worktree.ensureWorktree",
@@ -469,11 +528,7 @@ async function ensureWorktreeAsync(projectDir, employeeName, instance) {
469
528
  }
470
529
  const branchExists = await branchExistsLocallyAsync(repoRoot, branch);
471
530
  try {
472
- if (branchExists) {
473
- await gitAsync(["worktree", "add", wtPath, branch], repoRoot);
474
- } else {
475
- await gitAsync(["worktree", "add", wtPath, "-b", branch, "HEAD"], repoRoot);
476
- }
531
+ await addWorktreeAsync(repoRoot, wtPath, branch, branchExists);
477
532
  recordOrchestrationEventBestEffort({
478
533
  eventType: "worktree.created",
479
534
  source: "worktree.ensureWorktreeAsync",
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getClient
3
- } from "./chunk-3BO6S3L2.js";
3
+ } from "./chunk-ZY2ABBVR.js";
4
4
 
5
5
  // src/lib/pipeline-router.ts
6
6
  import crypto from "crypto";
@@ -140,8 +140,8 @@ Agent response: ${agentResponse}` : ""
140
140
  }
141
141
  async function sinkEntityExtraction(msg, agentResponse, agentName) {
142
142
  try {
143
- const { extractFromConversation } = await import("./conversation-entity-extractor-CVJ43JCX.js");
144
- const { storeExtraction } = await import("./graph-rag-HHNAX7YO.js");
143
+ const { extractFromConversation } = await import("./conversation-entity-extractor-YC3A2ODD.js");
144
+ const { storeExtraction } = await import("./graph-rag-LWKKHY72.js");
145
145
  if ((msg.text?.length ?? 0) < 20) return false;
146
146
  if (msg.isHistorical) return false;
147
147
  const extraction = await extractFromConversation(msg, agentResponse, agentName);
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  clean,
3
3
  stableId
4
- } from "./chunk-SPV2RTA4.js";
4
+ } from "./chunk-MA22RV3T.js";
5
5
 
6
6
  // src/lib/reflection-checkpoints.ts
7
7
  function parsePayload(payload) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sessionScopeFilter
3
- } from "./chunk-VNYSLHHX.js";
3
+ } from "./chunk-EWWCMMES.js";
4
4
  import {
5
5
  leaseExpiryIso
6
6
  } from "./chunk-E23LNUWJ.js";
@@ -1,25 +1,90 @@
1
1
  // src/lib/dispatch-ack.ts
2
2
  import {
3
- existsSync,
4
- mkdirSync,
3
+ existsSync as existsSync2,
4
+ mkdirSync as mkdirSync2,
5
5
  readFileSync,
6
6
  writeFileSync,
7
- unlinkSync,
8
- readdirSync,
7
+ unlinkSync as unlinkSync2,
8
+ readdirSync as readdirSync2,
9
9
  rmSync
10
10
  } from "fs";
11
11
  import path from "path";
12
12
  import os from "os";
13
+
14
+ // src/lib/dispatch-journal.ts
15
+ import { appendFileSync, existsSync, mkdirSync, readdirSync, renameSync, statSync, unlinkSync } from "fs";
16
+ import { join } from "path";
17
+ import { homedir } from "os";
18
+ var MAX_JSONL_BYTES = Number(process.env.EXE_DISPATCH_JOURNAL_MAX_BYTES) || 1e6;
19
+ var MAX_ARCHIVES = Number(process.env.EXE_DISPATCH_JOURNAL_MAX_ARCHIVES) || 3;
20
+ function dispatchJournalDir() {
21
+ const base = process.env.EXE_OS_DIR || join(homedir(), ".exe-os");
22
+ return join(base, "dispatch-journal");
23
+ }
24
+ function journalPath() {
25
+ return join(dispatchJournalDir(), "events.jsonl");
26
+ }
27
+ function rotateIfNeeded(file) {
28
+ try {
29
+ if (!existsSync(file)) return;
30
+ if (statSync(file).size < MAX_JSONL_BYTES) return;
31
+ for (let i = MAX_ARCHIVES; i >= 1; i--) {
32
+ const src = `${file}.${i}`;
33
+ const dst = `${file}.${i + 1}`;
34
+ if (!existsSync(src)) continue;
35
+ if (i === MAX_ARCHIVES) unlinkSync(src);
36
+ else renameSync(src, dst);
37
+ }
38
+ renameSync(file, `${file}.1`);
39
+ } catch {
40
+ }
41
+ }
42
+ function appendDispatchJournalEvent(input) {
43
+ try {
44
+ const dir = dispatchJournalDir();
45
+ mkdirSync(dir, { recursive: true });
46
+ const file = journalPath();
47
+ rotateIfNeeded(file);
48
+ appendFileSync(
49
+ file,
50
+ JSON.stringify({
51
+ ts: (/* @__PURE__ */ new Date()).toISOString(),
52
+ ...input
53
+ }) + "\n",
54
+ "utf-8"
55
+ );
56
+ for (const entry of readdirSync(dir)) {
57
+ const match = entry.match(/^events\.jsonl\.(\d+)$/);
58
+ if (match && Number(match[1]) > MAX_ARCHIVES) {
59
+ try {
60
+ unlinkSync(join(dir, entry));
61
+ } catch {
62
+ }
63
+ }
64
+ }
65
+ } catch {
66
+ }
67
+ }
68
+
69
+ // src/lib/dispatch-ack.ts
13
70
  function ackDir() {
14
71
  return process.env.EXE_DISPATCH_ACK_DIR || path.join(os.homedir(), ".exe-os", "dispatch-acks");
15
72
  }
16
73
  var DISPATCH_DEDUP_WINDOW_MS = 90 * 1e3;
17
74
  function ensureAckDir() {
18
75
  const dir = ackDir();
19
- if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
76
+ if (!existsSync2(dir)) mkdirSync2(dir, { recursive: true });
20
77
  }
21
78
  function writeDispatchPending(taskId, assignedTo, sessionName) {
22
79
  ensureAckDir();
80
+ try {
81
+ unlinkSync2(path.join(ackDir(), `${taskId}.failed`));
82
+ } catch {
83
+ }
84
+ try {
85
+ unlinkSync2(path.join(ackDir(), `${taskId}.ack`));
86
+ } catch {
87
+ }
23
88
  const signal = {
24
89
  taskId,
25
90
  assignedTo,
@@ -27,6 +92,13 @@ function writeDispatchPending(taskId, assignedTo, sessionName) {
27
92
  sessionName
28
93
  };
29
94
  writeFileSync(path.join(ackDir(), `${taskId}.pending`), JSON.stringify(signal), "utf-8");
95
+ appendDispatchJournalEvent({
96
+ event: "dispatch.pending",
97
+ taskId,
98
+ agentId: assignedTo,
99
+ sessionName: sessionName ?? null,
100
+ sessionScope: sessionName?.includes("-") ? sessionName.slice(sessionName.indexOf("-") + 1) : sessionName ?? null
101
+ });
30
102
  }
31
103
  function spawnLockName(taskId, bucket) {
32
104
  return `${taskId}.spawnlock.b${bucket}`;
@@ -52,11 +124,11 @@ function tryAcquireDispatchClaim(taskId, assignedTo, sessionName, windowMs = DIS
52
124
  const curLock = path.join(dir, spawnLockName(taskId, bucket));
53
125
  const prevLock = path.join(dir, spawnLockName(taskId, bucket - 1));
54
126
  try {
55
- if (existsSync(prevLock) && ownerPidAlive(prevLock)) return false;
127
+ if (existsSync2(prevLock) && ownerPidAlive(prevLock)) return false;
56
128
  } catch {
57
129
  }
58
130
  try {
59
- mkdirSync(curLock);
131
+ mkdirSync2(curLock);
60
132
  } catch (err) {
61
133
  if (err?.code === "EEXIST") return false;
62
134
  return true;
@@ -73,13 +145,20 @@ function tryAcquireDispatchClaim(taskId, assignedTo, sessionName, windowMs = DIS
73
145
  writeDispatchPending(taskId, assignedTo, sessionName);
74
146
  } catch {
75
147
  }
148
+ appendDispatchJournalEvent({
149
+ event: "dispatch.claim_acquired",
150
+ taskId,
151
+ agentId: assignedTo,
152
+ sessionName: sessionName ?? null,
153
+ sessionScope: sessionName?.includes("-") ? sessionName.slice(sessionName.indexOf("-") + 1) : sessionName ?? null
154
+ });
76
155
  return true;
77
156
  }
78
157
  function removeSpawnLockdirs(taskId) {
79
158
  const dir = ackDir();
80
159
  try {
81
160
  const prefix = `${taskId}.spawnlock.b`;
82
- for (const entry of readdirSync(dir)) {
161
+ for (const entry of readdirSync2(dir)) {
83
162
  if (entry.startsWith(prefix)) {
84
163
  try {
85
164
  rmSync(path.join(dir, entry), { recursive: true, force: true });
@@ -97,6 +176,13 @@ function releaseDispatchClaim(taskId, assignedTo, reason = "dispatch failed") {
97
176
  writeDispatchFailed(taskId, assignedTo, reason);
98
177
  } catch {
99
178
  }
179
+ appendDispatchJournalEvent({
180
+ event: "dispatch.claim_released",
181
+ taskId,
182
+ agentId: assignedTo,
183
+ result: "released",
184
+ reason
185
+ });
100
186
  }
101
187
  function writeDispatchAck(taskId, agentId) {
102
188
  ensureAckDir();
@@ -111,10 +197,17 @@ function writeDispatchAck(taskId, agentId) {
111
197
  signal.ackedAt = (/* @__PURE__ */ new Date()).toISOString();
112
198
  writeFileSync(ackPath, JSON.stringify(signal), "utf-8");
113
199
  try {
114
- unlinkSync(pendingPath);
200
+ unlinkSync2(pendingPath);
115
201
  } catch {
116
202
  }
117
203
  removeSpawnLockdirs(taskId);
204
+ appendDispatchJournalEvent({
205
+ event: "dispatch.acked",
206
+ taskId,
207
+ agentId,
208
+ sessionName: signal.sessionName ?? null,
209
+ sessionScope: signal.sessionName?.includes("-") ? signal.sessionName.slice(signal.sessionName.indexOf("-") + 1) : signal.sessionName ?? null
210
+ });
118
211
  }
119
212
  function writeDispatchFailed(taskId, assignedTo, error, sessionName) {
120
213
  ensureAckDir();
@@ -130,16 +223,25 @@ function writeDispatchFailed(taskId, assignedTo, error, sessionName) {
130
223
  if (sessionName) signal.sessionName = sessionName;
131
224
  writeFileSync(path.join(ackDir(), `${taskId}.failed`), JSON.stringify(signal), "utf-8");
132
225
  try {
133
- unlinkSync(pendingPath);
226
+ unlinkSync2(pendingPath);
134
227
  } catch {
135
228
  }
229
+ appendDispatchJournalEvent({
230
+ event: "dispatch.failed",
231
+ taskId,
232
+ agentId: assignedTo,
233
+ sessionName: signal.sessionName ?? null,
234
+ sessionScope: signal.sessionName?.includes("-") ? signal.sessionName.slice(signal.sessionName.indexOf("-") + 1) : signal.sessionName ?? null,
235
+ result: "failed",
236
+ reason: error
237
+ });
136
238
  }
137
239
  function checkDispatchStatus(taskId) {
138
240
  ensureAckDir();
139
241
  const ackPath = path.join(ackDir(), `${taskId}.ack`);
140
242
  const failedPath = path.join(ackDir(), `${taskId}.failed`);
141
243
  const pendingPath = path.join(ackDir(), `${taskId}.pending`);
142
- if (existsSync(ackPath)) {
244
+ if (existsSync2(ackPath)) {
143
245
  try {
144
246
  const signal = JSON.parse(readFileSync(ackPath, "utf-8"));
145
247
  return { status: "acked", signal };
@@ -147,7 +249,7 @@ function checkDispatchStatus(taskId) {
147
249
  return { status: "acked" };
148
250
  }
149
251
  }
150
- if (existsSync(failedPath)) {
252
+ if (existsSync2(failedPath)) {
151
253
  try {
152
254
  const signal = JSON.parse(readFileSync(failedPath, "utf-8"));
153
255
  return { status: "failed", signal };
@@ -155,7 +257,7 @@ function checkDispatchStatus(taskId) {
155
257
  return { status: "failed" };
156
258
  }
157
259
  }
158
- if (existsSync(pendingPath)) {
260
+ if (existsSync2(pendingPath)) {
159
261
  try {
160
262
  const signal = JSON.parse(readFileSync(pendingPath, "utf-8"));
161
263
  return { status: "pending", signal };
@@ -173,7 +275,7 @@ function terminalFailurePath(agentId, scope, baseDir) {
173
275
  }
174
276
  function writeTerminalLauncherFailure(rec, baseDir = TERMINAL_FAILURE_DIR) {
175
277
  try {
176
- if (!existsSync(baseDir)) mkdirSync(baseDir, { recursive: true });
278
+ if (!existsSync2(baseDir)) mkdirSync2(baseDir, { recursive: true });
177
279
  const payload = {
178
280
  reason: rec.reason,
179
281
  ...rec.detail ? { detail: rec.detail } : {},
@@ -190,7 +292,7 @@ function readTerminalLauncherFailure(agentId, scope, opts) {
190
292
  const now = opts?.now ?? Date.now();
191
293
  try {
192
294
  const p = terminalFailurePath(agentId, scope, baseDir);
193
- if (!existsSync(p)) return null;
295
+ if (!existsSync2(p)) return null;
194
296
  const rec = JSON.parse(readFileSync(p, "utf-8"));
195
297
  if (!rec || typeof rec.reason !== "string" || rec.reason.trim().length === 0) return null;
196
298
  if (typeof rec.ts !== "string") return null;
@@ -205,7 +307,7 @@ function readTerminalLauncherFailure(agentId, scope, opts) {
205
307
  }
206
308
  function clearTerminalLauncherFailure(agentId, scope, baseDir = TERMINAL_FAILURE_DIR) {
207
309
  try {
208
- unlinkSync(terminalFailurePath(agentId, scope, baseDir));
310
+ unlinkSync2(terminalFailurePath(agentId, scope, baseDir));
209
311
  } catch {
210
312
  }
211
313
  }
@@ -215,7 +317,7 @@ function cleanStaleDispatchAcks(maxAgeMs = 60 * 60 * 1e3) {
215
317
  let cleaned = 0;
216
318
  try {
217
319
  const dir = ackDir();
218
- for (const file of readdirSync(dir)) {
320
+ for (const file of readdirSync2(dir)) {
219
321
  const fullPath = path.join(dir, file);
220
322
  if (file.includes(".spawnlock.b")) {
221
323
  try {
@@ -238,12 +340,12 @@ function cleanStaleDispatchAcks(maxAgeMs = 60 * 60 * 1e3) {
238
340
  const signal = JSON.parse(readFileSync(fullPath, "utf-8"));
239
341
  const ts = signal.ackedAt ?? signal.dispatchedAt;
240
342
  if (now - new Date(ts).getTime() > maxAgeMs) {
241
- unlinkSync(fullPath);
343
+ unlinkSync2(fullPath);
242
344
  cleaned++;
243
345
  }
244
346
  } catch {
245
347
  try {
246
- unlinkSync(fullPath);
348
+ unlinkSync2(fullPath);
247
349
  cleaned++;
248
350
  } catch {
249
351
  }
@@ -255,6 +357,7 @@ function cleanStaleDispatchAcks(maxAgeMs = 60 * 60 * 1e3) {
255
357
  }
256
358
 
257
359
  export {
360
+ appendDispatchJournalEvent,
258
361
  DISPATCH_DEDUP_WINDOW_MS,
259
362
  writeDispatchPending,
260
363
  tryAcquireDispatchClaim,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getClient
3
- } from "./chunk-3BO6S3L2.js";
3
+ } from "./chunk-ZY2ABBVR.js";
4
4
 
5
5
  // src/lib/token-budget.ts
6
6
  var WARN_THRESHOLD = 0.8;
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  isExeSession,
3
3
  strictSessionScopeFilter
4
- } from "./chunk-VNYSLHHX.js";
4
+ } from "./chunk-EWWCMMES.js";
5
5
  import {
6
6
  recordOrchestrationEventBestEffort
7
- } from "./chunk-SDPOSTDC.js";
7
+ } from "./chunk-MT6YGWJ6.js";
8
8
  import {
9
9
  getProjectName
10
10
  } from "./chunk-OPU3NYOO.js";
11
11
  import {
12
12
  DEFAULT_COORDINATOR_TEMPLATE_NAME,
13
13
  getCoordinatorName
14
- } from "./chunk-3BO6S3L2.js";
14
+ } from "./chunk-ZY2ABBVR.js";
15
15
  import {
16
16
  loadConfigSync
17
17
  } from "./chunk-BCZF3AGJ.js";
@@ -260,7 +260,7 @@ function createRealDeps(getClient) {
260
260
  });
261
261
  },
262
262
  createReviewForOrphan: async (task) => {
263
- const { createReviewForCompletedTask } = await import("./tasks-review-WR3XEADY.js");
263
+ const { createReviewForCompletedTask } = await import("./tasks-review-ZY3S65OV.js");
264
264
  const cwd = process.cwd();
265
265
  await createReviewForCompletedTask(
266
266
  task,
@@ -212,7 +212,7 @@ async function main(args) {
212
212
  console.log("[health-gate] Starting rollback...");
213
213
  restorePreDeployBackup();
214
214
  try {
215
- const { rollbackStackUpdate, defaultStackPaths } = await import("./stack-update-ABMTXOZR.js");
215
+ const { rollbackStackUpdate, defaultStackPaths } = await import("./stack-update-CBP5S5BG.js");
216
216
  const paths = defaultStackPaths();
217
217
  await rollbackStackUpdate({
218
218
  manifestRef: paths.manifestRef,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  checkLicense,
3
3
  loadLicense
4
- } from "./chunk-RSMOYIVR.js";
4
+ } from "./chunk-ZK53K7OR.js";
5
5
 
6
6
  // src/lib/license-gate.ts
7
7
  var _cachedLicense = null;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  formatDegradations,
3
3
  getRetrievalHealth
4
- } from "./chunk-IGAODB3D.js";
4
+ } from "./chunk-CYI2YR56.js";
5
5
  import {
6
6
  buildRestartReport,
7
7
  formatRestartReport
@@ -20,7 +20,7 @@ import {
20
20
  } from "./chunk-OTVEIJUQ.js";
21
21
  import {
22
22
  offloadReadIfMain
23
- } from "./chunk-3BO6S3L2.js";
23
+ } from "./chunk-ZY2ABBVR.js";
24
24
  import {
25
25
  isMainModule
26
26
  } from "./chunk-6Y4B3QF6.js";
@@ -1023,7 +1023,7 @@ function formatReport(report, flags) {
1023
1023
  return lines.join("\n");
1024
1024
  }
1025
1025
  async function fixNullVectors() {
1026
- const { tryAcquireWorkerSlot, registerWorkerPid } = await import("./worker-gate-XJJXOMUN.js");
1026
+ const { tryAcquireWorkerSlot, registerWorkerPid } = await import("./worker-gate-NZRA426F.js");
1027
1027
  if (!tryAcquireWorkerSlot()) {
1028
1028
  process.stderr.write("[exe-doctor] Worker gate full \u2014 waiting for existing backfill workers to finish\n");
1029
1029
  await new Promise((r) => setTimeout(r, 5e3));
@@ -1209,7 +1209,7 @@ async function main(argv = process.argv.slice(2)) {
1209
1209
  console.log(formatRestartReport(restartReport));
1210
1210
  return emptyAuditReport();
1211
1211
  }
1212
- const { fastDbInit } = await import("./fast-db-init-CZSSDWDG.js");
1212
+ const { fastDbInit } = await import("./fast-db-init-O7AECNTB.js");
1213
1213
  const client = await fastDbInit();
1214
1214
  const report = await runAudit(client, flags);
1215
1215
  console.log(formatReport(report, flags));