@askexenow/exe-os 0.9.239 → 0.9.243

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 (316) hide show
  1. package/deploy/compose/.env.customer.example +12 -0
  2. package/deploy/compose/.env.example +13 -1
  3. package/deploy/compose/cloudflared/config.yml.example +23 -4
  4. package/deploy/compose/docker-compose.yml +27 -7
  5. package/deploy/compose/generate-env.ts +49 -1
  6. package/deploy/compose/init-db.sql +10 -2
  7. package/deploy/stack-manifests/v0.9.json +113 -9
  8. package/dist/{active-agent-7MIVNARP.js → active-agent-KO4ZWDXE.js} +4 -4
  9. package/dist/{active-agent-55C5Y3XL.js → active-agent-KP2O52HA.js} +4 -4
  10. package/dist/{agentic-ontology-NCAQIQQI.js → agentic-ontology-DXE5J6I5.js} +1 -1
  11. package/dist/{backfill-metadata-3JP7EZ2U.js → backfill-metadata-DFTIGPXP.js} +7 -7
  12. package/dist/{background-jobs-RWL46VRD.js → background-jobs-CRXY7T4Y.js} +2 -2
  13. package/dist/{behaviors-6BGALYGW.js → behaviors-BL3QCHBT.js} +4 -4
  14. package/dist/bin/age-ontology-load.js +2 -2
  15. package/dist/bin/agentic-ontology-backfill.js +9 -9
  16. package/dist/bin/agentic-reflection-backfill.js +10 -10
  17. package/dist/bin/agentic-semantic-label.js +9 -9
  18. package/dist/bin/backfill-conversations.js +9 -9
  19. package/dist/bin/backfill-responses.js +9 -9
  20. package/dist/bin/backfill-vectors.js +11 -11
  21. package/dist/bin/bulk-sync-postgres.js +10 -10
  22. package/dist/bin/cc-doctor.js +3 -3
  23. package/dist/bin/cleanup-stale-review-tasks.js +13 -13
  24. package/dist/bin/cli.js +27 -22
  25. package/dist/bin/exe-agent-config.js +4 -4
  26. package/dist/bin/exe-agent.js +8 -8
  27. package/dist/bin/exe-assign.js +11 -11
  28. package/dist/bin/exe-boot.js +22 -22
  29. package/dist/bin/exe-call.js +5 -5
  30. package/dist/bin/exe-cloud.js +8 -8
  31. package/dist/bin/exe-dispatch.js +13 -13
  32. package/dist/bin/exe-doctor.js +1 -1
  33. package/dist/bin/exe-export-behaviors.js +10 -10
  34. package/dist/bin/exe-forget.js +9 -9
  35. package/dist/bin/exe-gateway.js +8 -8
  36. package/dist/bin/exe-healthcheck.js +3 -3
  37. package/dist/bin/exe-heartbeat.js +13 -13
  38. package/dist/bin/exe-kill.js +18 -18
  39. package/dist/bin/exe-launch-agent.js +22 -22
  40. package/dist/bin/exe-new-employee.js +8 -8
  41. package/dist/bin/exe-pending-messages.js +14 -14
  42. package/dist/bin/exe-pending-notifications.js +13 -13
  43. package/dist/bin/exe-pending-reviews.js +13 -13
  44. package/dist/bin/exe-rename.js +5 -5
  45. package/dist/bin/exe-review.js +17 -17
  46. package/dist/bin/exe-search.js +8 -8
  47. package/dist/bin/exe-session-cleanup.js +20 -20
  48. package/dist/bin/exe-settings.js +7 -7
  49. package/dist/bin/exe-start-codex.js +14 -14
  50. package/dist/bin/exe-start-opencode.js +11 -11
  51. package/dist/bin/exe-status.js +14 -14
  52. package/dist/bin/exe-support.js +3 -3
  53. package/dist/bin/exe-team.js +4 -4
  54. package/dist/bin/git-sweep.js +13 -13
  55. package/dist/bin/graph-backfill.js +8 -8
  56. package/dist/bin/graph-export.js +8 -8
  57. package/dist/bin/import-history.js +10 -10
  58. package/dist/bin/install.js +7 -7
  59. package/dist/bin/intercom-check.js +4 -4
  60. package/dist/bin/mcp-sessions.js +2 -2
  61. package/dist/bin/orchestration-metrics.js +5 -5
  62. package/dist/bin/postgres-agentic-reflection-backfill.js +4 -4
  63. package/dist/bin/postgres-agentic-semantic-backfill.js +3 -3
  64. package/dist/bin/scan-tasks.js +13 -13
  65. package/dist/bin/setup.js +3 -3
  66. package/dist/bin/shard-migrate.js +8 -8
  67. package/dist/bin/stack-update.js +324 -20
  68. package/dist/bin/verify-stack.js +3 -383
  69. package/dist/bin/vps-backup.js +8 -160
  70. package/dist/bin/vps-health-gate.js +10 -220
  71. package/dist/{branding-I7YYX4FM.js → branding-XWMO5EDR.js} +1 -1
  72. package/dist/{capacity-monitor-IFCZKRPG.js → capacity-monitor-4CSBC7AP.js} +14 -14
  73. package/dist/{catchup-brief-PIDRWXOW.js → catchup-brief-LF5Z6Q6E.js} +17 -17
  74. package/dist/{chunk-FGJUGDNM.js → chunk-222SI7QC.js} +14 -14
  75. package/dist/{chunk-JZMVLAZ2.js → chunk-2WBBVEIB.js} +1 -1
  76. package/dist/{chunk-JDOE33C2.js → chunk-3V53HH5T.js} +4 -4
  77. package/dist/{chunk-2KZSKURT.js → chunk-57SULZJ2.js} +3 -3
  78. package/dist/{chunk-QI4IXJN7.js → chunk-5CHYEKMH.js} +7 -4
  79. package/dist/chunk-5DMAMQNU.js +168 -0
  80. package/dist/{chunk-PLQAFB3Z.js → chunk-5JIG2FP2.js} +1 -1
  81. package/dist/{chunk-UWQ3XCDG.js → chunk-5WK7X5CF.js} +2 -2
  82. package/dist/{chunk-DDPAQ4LT.js → chunk-6JAGJN77.js} +2 -2
  83. package/dist/{chunk-7F37NMKB.js → chunk-73UE2PHT.js} +1 -1
  84. package/dist/{chunk-JL3K5OTS.js → chunk-7IZWLMTP.js} +1 -1
  85. package/dist/{chunk-ELRRL2NC.js → chunk-A4K2ZT6N.js} +4 -4
  86. package/dist/{chunk-GWYADLIW.js → chunk-AHXEU5XB.js} +1 -1
  87. package/dist/{chunk-WSHMBME6.js → chunk-AWRL5FGM.js} +19 -78
  88. package/dist/{chunk-OMPCFLWA.js → chunk-BSPOEYAO.js} +1 -1
  89. package/dist/{chunk-DHVC4RN7.js → chunk-CBDPEJOR.js} +5 -5
  90. package/dist/{chunk-2H55BIV2.js → chunk-CEJO7244.js} +2 -2
  91. package/dist/{chunk-FKWZVO2T.js → chunk-CPXGLSIL.js} +3 -3
  92. package/dist/{chunk-HX5G4AS4.js → chunk-CWITU7DW.js} +2 -2
  93. package/dist/{chunk-5GG7MTRJ.js → chunk-DGBGIXCC.js} +4 -4
  94. package/dist/{chunk-IQXPMK46.js → chunk-DLZYAYVM.js} +60 -14
  95. package/dist/{chunk-PPYWQV2M.js → chunk-DR5BGWFR.js} +2 -2
  96. package/dist/{chunk-BZWKTFEB.js → chunk-ENVRFBTB.js} +2 -2
  97. package/dist/{chunk-DUVO2PUJ.js → chunk-F3GM6OOP.js} +4 -4
  98. package/dist/{chunk-HNLPLLE6.js → chunk-F7JLZXHC.js} +60 -26
  99. package/dist/{chunk-AL4DRC5H.js → chunk-FFLILAG6.js} +1 -1
  100. package/dist/{chunk-BZNI4OK5.js → chunk-GHEWRYMY.js} +18 -2
  101. package/dist/{chunk-C7SFJO5F.js → chunk-GHT4REOS.js} +5 -5
  102. package/dist/{chunk-FBWUJEXS.js → chunk-HANG6NLF.js} +4 -6
  103. package/dist/{chunk-5NJ4A4ZA.js → chunk-HCBMPZDT.js} +1 -1
  104. package/dist/chunk-HOGTZLVU.js +244 -0
  105. package/dist/{chunk-IQSCZDBQ.js → chunk-I5PIBL56.js} +3 -3
  106. package/dist/chunk-IRHNV4GY.js +388 -0
  107. package/dist/{chunk-F4TCKCKK.js → chunk-ITZVPCBQ.js} +33 -12
  108. package/dist/{chunk-4HROS3GJ.js → chunk-IZVKWBIP.js} +1 -1
  109. package/dist/{chunk-DKI5BTBC.js → chunk-J7V7LPPX.js} +2 -2
  110. package/dist/{chunk-TOZ5NN5V.js → chunk-JLKUVK5J.js} +1 -1
  111. package/dist/{chunk-4SC65UBG.js → chunk-JLNXKG3K.js} +1 -1
  112. package/dist/{chunk-KVSQOG3W.js → chunk-K2BDE2B5.js} +4 -4
  113. package/dist/{chunk-KDJRFJDL.js → chunk-K333WOW4.js} +30 -2
  114. package/dist/{chunk-6LBCUA2A.js → chunk-KEZXW3RP.js} +1 -1
  115. package/dist/{chunk-W7G3GY4I.js → chunk-KLQI7QY4.js} +3 -3
  116. package/dist/{chunk-UODVZGBQ.js → chunk-KN7LPTIB.js} +1 -1
  117. package/dist/{chunk-ESKBZN4Q.js → chunk-L4WRH3DL.js} +1 -1
  118. package/dist/{chunk-VFQKKMKE.js → chunk-LAOB5BKV.js} +2 -2
  119. package/dist/{chunk-MAN5LZQ4.js → chunk-LQSFP2BV.js} +1 -1
  120. package/dist/{chunk-EJ7LOTV2.js → chunk-LSFHEMVI.js} +9 -9
  121. package/dist/{chunk-RA2RO27E.js → chunk-MCESA5UW.js} +2 -2
  122. package/dist/{chunk-UPMHG7ET.js → chunk-MEIHREPM.js} +1 -1
  123. package/dist/{chunk-D5C56WO3.js → chunk-MOZ2YQ54.js} +1 -1
  124. package/dist/{chunk-CLGB3FGL.js → chunk-MPX3TRMQ.js} +2 -2
  125. package/dist/{chunk-5R75ODPS.js → chunk-NBY6R37W.js} +61 -232
  126. package/dist/{chunk-RWFGXC35.js → chunk-NEYQAEYU.js} +7 -7
  127. package/dist/{chunk-MBHZDXGN.js → chunk-NL35XNLI.js} +1 -1
  128. package/dist/{chunk-TPQVLYSV.js → chunk-NLGMHPEN.js} +1 -1
  129. package/dist/{chunk-5LMH4YHG.js → chunk-NRVV4Y5V.js} +4 -4
  130. package/dist/{chunk-GN5VHPPR.js → chunk-NVZR7T4E.js} +1 -1
  131. package/dist/{chunk-Y2L7RMGH.js → chunk-NWBHL5PI.js} +1 -1
  132. package/dist/{chunk-YPYDLW75.js → chunk-OEMX65EA.js} +1 -1
  133. package/dist/{chunk-UAFUGPKO.js → chunk-ONAQAL3O.js} +1 -1
  134. package/dist/{chunk-AVM7XZE4.js → chunk-OWQ3CCYJ.js} +7 -6
  135. package/dist/{chunk-K525WLL7.js → chunk-PI6V23GF.js} +5 -4
  136. package/dist/{chunk-AURM7FOT.js → chunk-Q2OAQPWY.js} +1 -1
  137. package/dist/{chunk-FB5VRO5S.js → chunk-QLDWASTX.js} +28 -32
  138. package/dist/{chunk-EPWDTS2Q.js → chunk-QMTGMCWB.js} +1 -1
  139. package/dist/{chunk-VI2FJY2M.js → chunk-QP4FHME2.js} +2 -2
  140. package/dist/{chunk-NJWK6J4N.js → chunk-QUNKPR6Y.js} +5 -5
  141. package/dist/{chunk-O6DAF2TY.js → chunk-QUZVAHO7.js} +2 -2
  142. package/dist/{chunk-VHKL4S4T.js → chunk-RRHSONV5.js} +2 -2
  143. package/dist/{chunk-GPF6X6HE.js → chunk-RYDHEWYY.js} +2 -2
  144. package/dist/{chunk-C2YS2AA6.js → chunk-U7WOVXBB.js} +2 -2
  145. package/dist/chunk-UIRWDGMB.js +230 -0
  146. package/dist/{chunk-FE45RXGC.js → chunk-V2GZMY6O.js} +1 -1
  147. package/dist/{chunk-PATCHPNY.js → chunk-VHALWCUO.js} +1 -1
  148. package/dist/{chunk-HLZSC5WK.js → chunk-VQAP35DA.js} +20 -18
  149. package/dist/{chunk-452XB7OZ.js → chunk-VRIMTCX2.js} +1 -1
  150. package/dist/{chunk-SUNYJ6YE.js → chunk-VT2B5BHM.js} +1 -1
  151. package/dist/{chunk-UZIJDYDA.js → chunk-VWVJVQDH.js} +2 -2
  152. package/dist/{chunk-TRZ5KA2R.js → chunk-VXIMSRTO.js} +2 -2
  153. package/dist/{chunk-DAZIV4QZ.js → chunk-WCXZF42W.js} +1 -1
  154. package/dist/{chunk-6OJJF4WP.js → chunk-XJUUWHVN.js} +1 -1
  155. package/dist/{chunk-F7LU65PQ.js → chunk-Y25OJWOQ.js} +14 -2
  156. package/dist/{chunk-2ORPA23Y.js → chunk-YMXXD2GW.js} +36 -8
  157. package/dist/{chunk-5WLMF6PL.js → chunk-YMZHTTOQ.js} +1 -1
  158. package/dist/{chunk-7DIDOQCX.js → chunk-YRVW57UW.js} +139 -125
  159. package/dist/{chunk-BRFH5X7G.js → chunk-Z7VDUS6L.js} +1 -1
  160. package/dist/{chunk-YFE6W75D.js → chunk-ZKFPHJIJ.js} +1 -1
  161. package/dist/{chunk-5WUTKDH6.js → chunk-ZVXJSQOR.js} +1 -1
  162. package/dist/{co-activation-VB4CJQZB.js → co-activation-L6I2LSJO.js} +3 -3
  163. package/dist/{co-occurrence-XZQJJIBM.js → co-occurrence-QARWYUAY.js} +3 -3
  164. package/dist/{code-context-index-FCQOPUEA.js → code-context-index-UIYQRDHD.js} +4 -4
  165. package/dist/{content-extractor-SPSH5X33.js → content-extractor-EYRVGD6O.js} +2 -2
  166. package/dist/{conversation-wiki-populator-YU35LNRK.js → conversation-wiki-populator-L7O6F3BB.js} +1 -1
  167. package/dist/{crdt-sync-KXETGV45.js → crdt-sync-R6YROKDH.js} +1 -1
  168. package/dist/{crm-webhook-JMOAHTJ6.js → crm-webhook-WK3PYJJK.js} +2 -2
  169. package/dist/{cto-delegation-gate-IJ3KQIKF.js → cto-delegation-gate-5JZORQIT.js} +12 -12
  170. package/dist/{daemon-auth-2IZACWSG.js → daemon-auth-2HEOL6VG.js} +2 -2
  171. package/dist/{daemon-orchestration-ZCY4GEI3.js → daemon-orchestration-BJ3T5MMF.js} +16 -15
  172. package/dist/{db-backup-HLX5OLIV.js → db-backup-EWS52P2W.js} +2 -2
  173. package/dist/{dreaming-2CJML3TU.js → dreaming-BOSBDRI3.js} +13 -13
  174. package/dist/{entity-boost-T5IYWWDZ.js → entity-boost-6ZVX7DFB.js} +26 -2
  175. package/dist/{exe-drift-P5OIRNSH.js → exe-drift-WRE6RADZ.js} +4 -4
  176. package/dist/{exe-export-QQL2H322.js → exe-export-7N5PBCMK.js} +8 -8
  177. package/dist/{exe-import-V4RJCUEP.js → exe-import-YOOE7S3H.js} +8 -8
  178. package/dist/{exe-key-MENJGDD7.js → exe-key-GXJSTCX2.js} +4 -4
  179. package/dist/{exe-org-3FNET2J7.js → exe-org-42YMQL75.js} +2 -2
  180. package/dist/{exe-snapshot-YRARQE7F.js → exe-snapshot-ODUCFW7G.js} +18 -18
  181. package/dist/{fast-db-init-HIJWWKAO.js → fast-db-init-YSR7RMVZ.js} +1 -1
  182. package/dist/{founder-context-BQ5NBDUV.js → founder-context-Q2HUCZX4.js} +2 -2
  183. package/dist/gateway/index.js +9 -9
  184. package/dist/{gateway-client-YGSA5QMC.js → gateway-client-4QXHKN5C.js} +1 -1
  185. package/dist/{git-staleness-IHTKCUMN.js → git-staleness-BJDTCDPC.js} +3 -3
  186. package/dist/{git-task-sweep-5ZPNQS7Y.js → git-task-sweep-L3U3T5HM.js} +13 -13
  187. package/dist/{global-procedures-XHDIZRJU.js → global-procedures-HCHEHKY2.js} +4 -4
  188. package/dist/{graph-auto-extract-5TPT67GP.js → graph-auto-extract-FP5C76LS.js} +3 -3
  189. package/dist/{hook-integrity-SB53Y7UK.js → hook-integrity-2OU3T6UC.js} +1 -1
  190. package/dist/hooks/bug-report-worker.js +15 -14
  191. package/dist/hooks/codex-stop-task-finalizer.js +15 -14
  192. package/dist/hooks/commit-complete.js +16 -16
  193. package/dist/hooks/error-recall.js +10 -10
  194. package/dist/hooks/exe-heartbeat-hook.js +5 -5
  195. package/dist/hooks/ingest-worker.js +8 -8
  196. package/dist/hooks/ingest.js +13 -13
  197. package/dist/hooks/instructions-loaded.js +7 -7
  198. package/dist/hooks/manifest.json +20 -20
  199. package/dist/hooks/notification.js +6 -6
  200. package/dist/hooks/post-compact.js +15 -15
  201. package/dist/hooks/post-tool-combined.js +7 -7
  202. package/dist/hooks/pre-compact.js +20 -20
  203. package/dist/hooks/pre-tool-use.js +28 -25
  204. package/dist/hooks/prompt-submit.js +62 -31
  205. package/dist/hooks/session-end.js +26 -26
  206. package/dist/hooks/session-start.js +39 -15
  207. package/dist/hooks/stop.js +22 -22
  208. package/dist/hooks/subagent-stop.js +15 -15
  209. package/dist/hooks/summary-worker.js +32 -27
  210. package/dist/index.js +21 -21
  211. package/dist/{installer-AMZM4MLS.js → installer-AWMUCRN4.js} +7 -7
  212. package/dist/{installer-KT5FW4CN.js → installer-HB3NH6FG.js} +9 -9
  213. package/dist/{installer-HW74W3IT.js → installer-RU6EVOBL.js} +6 -6
  214. package/dist/{intercom-queue-RNM6EPGA.js → intercom-queue-A6UJEFIF.js} +1 -1
  215. package/dist/{key-backup-status-OZ2CXUDW.js → key-backup-status-4YKCV4ZV.js} +1 -1
  216. package/dist/lib/agent-config.js +2 -2
  217. package/dist/lib/cloud-sync.js +10 -8
  218. package/dist/lib/config.js +1 -1
  219. package/dist/lib/consolidation.js +8 -8
  220. package/dist/lib/database.js +3 -3
  221. package/dist/lib/db-daemon-client.js +3 -3
  222. package/dist/lib/db.js +3 -3
  223. package/dist/lib/device-registry.js +1 -1
  224. package/dist/lib/embedder.js +4 -4
  225. package/dist/lib/employee-templates.js +5 -5
  226. package/dist/lib/employees.js +3 -3
  227. package/dist/lib/exe-daemon-client.js +3 -3
  228. package/dist/lib/exe-daemon.js +105 -74
  229. package/dist/lib/hybrid-search.js +8 -8
  230. package/dist/lib/identity.js +3 -3
  231. package/dist/lib/keychain.js +1 -1
  232. package/dist/lib/license.js +2 -2
  233. package/dist/lib/messaging.js +13 -13
  234. package/dist/lib/post-tool-memory.js +3 -3
  235. package/dist/lib/reminders.js +4 -4
  236. package/dist/lib/schedules.js +8 -8
  237. package/dist/lib/session-registry.js +5 -5
  238. package/dist/lib/skill-learning.js +5 -5
  239. package/dist/lib/store.js +7 -7
  240. package/dist/lib/task-router.js +4 -4
  241. package/dist/lib/tasks.js +14 -13
  242. package/dist/lib/tmux-routing.js +12 -12
  243. package/dist/lib/token-spend.js +4 -4
  244. package/dist/lib/ws-client.js +1 -1
  245. package/dist/{license-gate-XJDIL6OZ.js → license-gate-6JQQFBHS.js} +3 -3
  246. package/dist/mcp/register-tools.js +68 -67
  247. package/dist/mcp/server.js +70 -69
  248. package/dist/mcp/tools/complete-reminder.js +5 -5
  249. package/dist/mcp/tools/create-reminder.js +5 -5
  250. package/dist/mcp/tools/create-task.js +16 -15
  251. package/dist/mcp/tools/deactivate-behavior.js +6 -6
  252. package/dist/mcp/tools/list-reminders.js +5 -5
  253. package/dist/mcp/tools/list-tasks.js +16 -15
  254. package/dist/mcp/tools/send-message.js +15 -15
  255. package/dist/mcp/tools/update-task.js +15 -14
  256. package/dist/{mcp-http-config-BXX3RZPR.js → mcp-http-config-XIJR5P2Z.js} +4 -4
  257. package/dist/{memory-cards-KRTP5GFM.js → memory-cards-H4BJJ5OK.js} +3 -3
  258. package/dist/{memory-graph-extractor-G532PUHC.js → memory-graph-extractor-SDGM3GVR.js} +4 -4
  259. package/dist/{memory-poisoning-defense-HJM3FQA3.js → memory-poisoning-defense-UVU67DGJ.js} +3 -3
  260. package/dist/{memory-queue-FTNBWLS4.js → memory-queue-FNT5WHXP.js} +2 -2
  261. package/dist/{memory-queue-client-DHSHEIHQ.js → memory-queue-client-JZCFYTWQ.js} +5 -5
  262. package/dist/{memory-reflection-RANRFUQL.js → memory-reflection-GGB5K35L.js} +3 -3
  263. package/dist/{notifications-4P2PVEOT.js → notifications-P3XQZDTH.js} +12 -12
  264. package/dist/{orchestration-events-IYTASMSN.js → orchestration-events-25WEKUKH.js} +4 -4
  265. package/dist/{orchestration-phase-SGA7PJ5G.js → orchestration-phase-C26XVKLZ.js} +2 -2
  266. package/dist/{orchestrator-VKVHZ4MV.js → orchestrator-VIXTY4E4.js} +14 -14
  267. package/dist/{pipeline-router-E4L5BDXN.js → pipeline-router-S5PE5U6B.js} +4 -4
  268. package/dist/{plan-limits-5O5QG55H.js → plan-limits-DGIVM42H.js} +5 -5
  269. package/dist/{prediction-log-OMWHW7FL.js → prediction-log-DOEOHDHS.js} +1 -1
  270. package/dist/{project-boot-WMI6CWRX.js → project-boot-4ZL2W7DN.js} +12 -2
  271. package/dist/{projection-worker-54KRNQSO.js → projection-worker-GG2W5OM3.js} +3 -3
  272. package/dist/{push-notifications-E2XXEWJZ.js → push-notifications-AMHVR6DF.js} +2 -2
  273. package/dist/{reranker-4NTUFNYT.js → reranker-UCPLQZE2.js} +2 -2
  274. package/dist/{review-polling-BFRJDLUA.js → review-polling-P2MWEXLR.js} +13 -13
  275. package/dist/runtime/index.js +15 -15
  276. package/dist/{session-events-KCZCWGE4.js → session-events-5CD66R6U.js} +13 -13
  277. package/dist/{session-kill-telemetry-TMNIDYWY.js → session-kill-telemetry-7FBHTEDN.js} +4 -4
  278. package/dist/{session-scope-DRZBQ32Y.js → session-scope-VMIPAZU7.js} +12 -12
  279. package/dist/{setup-wizard-TQKGDAHO.js → setup-wizard-BNR47URR.js} +3 -3
  280. package/dist/{shard-manager-G6MHCO7X.js → shard-manager-VGA2TYHM.js} +2 -2
  281. package/dist/{skill-refinement-Z5SWD3AM.js → skill-refinement-NRG4WWRW.js} +3 -3
  282. package/dist/stack-release-PFZI22WC.js +521 -0
  283. package/dist/{stack-update-NO5MNARG.js → stack-update-JIWJGGLX.js} +3 -3
  284. package/dist/{steward-gate-7DWYS5AT.js → steward-gate-L7DJMF4C.js} +4 -4
  285. package/dist/{task-enforcement-2VL5J6JJ.js → task-enforcement-XQL77PZH.js} +52 -12
  286. package/dist/{task-scope-YHALISIB.js → task-scope-R3XKBIHL.js} +12 -12
  287. package/dist/{tasks-crud-JXZEBZFR.js → tasks-crud-DQOG2NPG.js} +12 -12
  288. package/dist/tasks-notify-4EQYG52H.js +37 -0
  289. package/dist/{tasks-review-PGPYJQF5.js → tasks-review-XPFJ4DSJ.js} +12 -12
  290. package/dist/{telemetry-upload-H7OJNBIF.js → telemetry-upload-OT5B5HUY.js} +7 -7
  291. package/dist/{token-budget-JJ7JQIA2.js → token-budget-D2LQKCAV.js} +3 -3
  292. package/dist/{tool-capability-index-WIV4K3FB.js → tool-capability-index-FAJ5ZHDF.js} +1 -1
  293. package/dist/{tool-telemetry-W4LFCHFT.js → tool-telemetry-QIF5BCLF.js} +1 -1
  294. package/dist/tui/App.js +26 -26
  295. package/dist/{tui-data-72U6N2DC.js → tui-data-UEV2QOR3.js} +108 -12
  296. package/dist/{whatsapp-config-W63RQ3AU.js → whatsapp-config-GOSELKTE.js} +7 -0
  297. package/dist/{worker-gate-SCSN6IHI.js → worker-gate-PRCKA23W.js} +2 -2
  298. package/dist/{workflow-engine-OICYBE4F.js → workflow-engine-7X6LLH3M.js} +2 -2
  299. package/dist/{worktree-JXN4RCWC.js → worktree-RICSCT2S.js} +5 -5
  300. package/package.json +1 -1
  301. package/release-notes.json +137 -297
  302. package/stack.release.json +4 -3
  303. package/dist/preflight-EAH2MI76.js +0 -287
  304. /package/dist/{chunk-H42LEGLB.js → chunk-AQBEG33D.js} +0 -0
  305. /package/dist/{chunk-AU5426YP.js → chunk-B7JGEDVE.js} +0 -0
  306. /package/dist/{chunk-YFDDTHNM.js → chunk-JXI4XUTV.js} +0 -0
  307. /package/dist/{chunk-SNYDRHV3.js → chunk-U3DUFHOT.js} +0 -0
  308. /package/dist/{chunk-N2XUH2HQ.js → chunk-VBPC7IC7.js} +0 -0
  309. /package/dist/{chunk-HTUJBTBM.js → chunk-VUS6WXQ3.js} +0 -0
  310. /package/dist/{chunk-NOLIN2YI.js → chunk-XAYRZHLV.js} +0 -0
  311. /package/dist/{core-memory-VOBGGB2Q.js → core-memory-4KAIKQRQ.js} +0 -0
  312. /package/dist/{message-queue-client-KAJN6TIJ.js → message-queue-client-S6W5VMJV.js} +0 -0
  313. /package/dist/{oauth-server-QEXRSXEP.js → oauth-server-2ESBZB7F.js} +0 -0
  314. /package/dist/{webhook-pipe-LY4XEDL7.js → webhook-pipe-ZRUVOG5H.js} +0 -0
  315. /package/dist/{wiki-acl-M3OR547L.js → wiki-acl-MFLSS6DE.js} +0 -0
  316. /package/dist/{wiki-client-MAFYBXCQ.js → wiki-client-GBPR45BQ.js} +0 -0
@@ -2,7 +2,7 @@
2
2
  process.on("uncaughtException", () => process.exit(0));
3
3
  process.on("unhandledRejection", () => process.exit(0));
4
4
  try {
5
- const { verifyOrBlock } = await import("../hook-integrity-SB53Y7UK.js");
5
+ const { verifyOrBlock } = await import("../hook-integrity-2OU3T6UC.js");
6
6
  if (!await verifyOrBlock(new URL(import.meta.url).pathname)) process.exit(2);
7
7
  } catch {
8
8
  }
@@ -52,7 +52,7 @@ ${context}`
52
52
  try {
53
53
  const payload = JSON.parse(input);
54
54
  const toolName = String(payload.tool_name ?? "");
55
- const { getActiveAgent } = await import("../active-agent-7MIVNARP.js");
55
+ const { getActiveAgent } = await import("../active-agent-KO4ZWDXE.js");
56
56
  const driftAgent = getActiveAgent();
57
57
  if (driftAgent.agentId !== "default" && toolName) {
58
58
  const { existsSync: driftExists, readFileSync: driftRead, writeFileSync: driftWrite, mkdirSync: driftMkdir } = await import("fs");
@@ -111,7 +111,7 @@ You are **${driftAgent.agentId}** (${driftAgent.agentRole}). You've used ${misma
111
111
  }
112
112
  try {
113
113
  const payload = JSON.parse(input);
114
- const { getActiveAgent: getInvAgent } = await import("../active-agent-7MIVNARP.js");
114
+ const { getActiveAgent: getInvAgent } = await import("../active-agent-KO4ZWDXE.js");
115
115
  const invAgent = getInvAgent();
116
116
  const { trackToolResult } = await import("../investigation-tracker-WSCY4XBP.js");
117
117
  trackToolResult({
@@ -128,12 +128,12 @@ You are **${driftAgent.agentId}** (${driftAgent.agentRole}). You've used ${misma
128
128
  }
129
129
  try {
130
130
  const data = JSON.parse(input);
131
- const { getActiveAgent } = await import("../active-agent-7MIVNARP.js");
131
+ const { getActiveAgent } = await import("../active-agent-KO4ZWDXE.js");
132
132
  const { detectError } = await import("../lib/error-detector.js");
133
133
  const agent = getActiveAgent();
134
134
  try {
135
- const { fastDbInit } = await import("../fast-db-init-HIJWWKAO.js");
136
- const { recordSessionEvent } = await import("../session-events-KCZCWGE4.js");
135
+ const { fastDbInit } = await import("../fast-db-init-YSR7RMVZ.js");
136
+ const { recordSessionEvent } = await import("../session-events-5CD66R6U.js");
137
137
  const client = await fastDbInit();
138
138
  const toolName = String(data.tool_name ?? "unknown");
139
139
  const toolInput = JSON.stringify(data.tool_input ?? {});
@@ -157,7 +157,7 @@ result: ${toolResponse.slice(0, 8e3)}`,
157
157
  }
158
158
  const { loadConfigSync } = await import("../lib/config.js");
159
159
  if (loadConfigSync().autoIngestion) {
160
- const { writeMemoryViaDaemon } = await import("../memory-queue-client-DHSHEIHQ.js");
160
+ const { writeMemoryViaDaemon } = await import("../memory-queue-client-JZCFYTWQ.js");
161
161
  const { buildPostToolMemoryEntry } = await import("../lib/post-tool-memory.js");
162
162
  const entry = buildPostToolMemoryEntry(data, agent);
163
163
  if (entry) await writeMemoryViaDaemon(entry);
@@ -1,41 +1,41 @@
1
1
  import {
2
2
  checkpointActiveTask,
3
3
  writeContinuityCheckpoint
4
- } from "../chunk-Y2L7RMGH.js";
5
- import "../chunk-BZWKTFEB.js";
6
- import "../chunk-UPMHG7ET.js";
7
- import "../chunk-VHKL4S4T.js";
8
- import "../chunk-JL3K5OTS.js";
4
+ } from "../chunk-NWBHL5PI.js";
5
+ import "../chunk-ENVRFBTB.js";
6
+ import "../chunk-MEIHREPM.js";
7
+ import "../chunk-RRHSONV5.js";
8
+ import "../chunk-7IZWLMTP.js";
9
9
  import "../chunk-SH45SJQW.js";
10
10
  import {
11
11
  getActiveAgent
12
- } from "../chunk-RA2RO27E.js";
12
+ } from "../chunk-MCESA5UW.js";
13
13
  import {
14
14
  sessionScopeFilter
15
- } from "../chunk-HNLPLLE6.js";
16
- import "../chunk-YFE6W75D.js";
17
- import "../chunk-QI4IXJN7.js";
15
+ } from "../chunk-F7JLZXHC.js";
16
+ import "../chunk-ZKFPHJIJ.js";
17
+ import "../chunk-5CHYEKMH.js";
18
18
  import "../chunk-4JERP7NT.js";
19
- import "../chunk-BZNI4OK5.js";
19
+ import "../chunk-GHEWRYMY.js";
20
20
  import "../chunk-MVW62NIZ.js";
21
21
  import "../chunk-OYNKIAVW.js";
22
22
  import "../chunk-CX6GL3ZJ.js";
23
- import "../chunk-5NJ4A4ZA.js";
24
- import "../chunk-6OJJF4WP.js";
23
+ import "../chunk-HCBMPZDT.js";
24
+ import "../chunk-XJUUWHVN.js";
25
25
  import "../chunk-NGP6LSV2.js";
26
- import "../chunk-IQSCZDBQ.js";
26
+ import "../chunk-I5PIBL56.js";
27
27
  import "../chunk-CVYC6DUW.js";
28
28
  import "../chunk-OPU3NYOO.js";
29
29
  import "../chunk-GJV3WDWM.js";
30
30
  import "../chunk-MP2AFCGL.js";
31
31
  import "../chunk-PWMMIGVQ.js";
32
- import "../chunk-4SC65UBG.js";
32
+ import "../chunk-JLNXKG3K.js";
33
33
  import "../chunk-HYZV25LY.js";
34
- import "../chunk-2H55BIV2.js";
35
- import "../chunk-WSHMBME6.js";
34
+ import "../chunk-CEJO7244.js";
35
+ import "../chunk-AWRL5FGM.js";
36
36
  import "../chunk-FXU7JOXK.js";
37
- import "../chunk-D5C56WO3.js";
38
- import "../chunk-TRZ5KA2R.js";
37
+ import "../chunk-MOZ2YQ54.js";
38
+ import "../chunk-VXIMSRTO.js";
39
39
  import "../chunk-LYH5HE24.js";
40
40
  import "../chunk-MLKGABMK.js";
41
41
 
@@ -43,7 +43,7 @@ import "../chunk-MLKGABMK.js";
43
43
  process.on("uncaughtException", () => process.exit(0));
44
44
  process.on("unhandledRejection", () => process.exit(0));
45
45
  try {
46
- const { verifyOrBlock } = await import("../hook-integrity-SB53Y7UK.js");
46
+ const { verifyOrBlock } = await import("../hook-integrity-2OU3T6UC.js");
47
47
  if (!await verifyOrBlock(new URL(import.meta.url).pathname)) process.exit(2);
48
48
  } catch {
49
49
  }
@@ -66,7 +66,7 @@ process.stdin.on("end", async () => {
66
66
  const agent = getActiveAgent();
67
67
  const sections = [];
68
68
  try {
69
- const { fastDbInit } = await import("../fast-db-init-HIJWWKAO.js");
69
+ const { fastDbInit } = await import("../fast-db-init-YSR7RMVZ.js");
70
70
  const client = await fastDbInit();
71
71
  const projectName = process.cwd().split("/").pop() ?? "unknown";
72
72
  const pcScope = sessionScopeFilter();
@@ -2,39 +2,39 @@ import "../chunk-YSU7JB7H.js";
2
2
  import "../chunk-SH45SJQW.js";
3
3
  import {
4
4
  getActiveAgent
5
- } from "../chunk-RA2RO27E.js";
5
+ } from "../chunk-MCESA5UW.js";
6
6
  import {
7
7
  sessionScopeFilter
8
- } from "../chunk-HNLPLLE6.js";
9
- import "../chunk-YFE6W75D.js";
10
- import "../chunk-QI4IXJN7.js";
8
+ } from "../chunk-F7JLZXHC.js";
9
+ import "../chunk-ZKFPHJIJ.js";
10
+ import "../chunk-5CHYEKMH.js";
11
11
  import "../chunk-4JERP7NT.js";
12
- import "../chunk-BZNI4OK5.js";
12
+ import "../chunk-GHEWRYMY.js";
13
13
  import "../chunk-MVW62NIZ.js";
14
14
  import "../chunk-OYNKIAVW.js";
15
15
  import "../chunk-CX6GL3ZJ.js";
16
- import "../chunk-5NJ4A4ZA.js";
17
- import "../chunk-6OJJF4WP.js";
16
+ import "../chunk-HCBMPZDT.js";
17
+ import "../chunk-XJUUWHVN.js";
18
18
  import "../chunk-NGP6LSV2.js";
19
- import "../chunk-IQSCZDBQ.js";
19
+ import "../chunk-I5PIBL56.js";
20
20
  import {
21
21
  getSessionKey
22
22
  } from "../chunk-CVYC6DUW.js";
23
23
  import "../chunk-OPU3NYOO.js";
24
24
  import "../chunk-GJV3WDWM.js";
25
25
  import "../chunk-MP2AFCGL.js";
26
- import "../chunk-4SC65UBG.js";
26
+ import "../chunk-JLNXKG3K.js";
27
27
  import "../chunk-HYZV25LY.js";
28
28
  import {
29
29
  canCoordinate,
30
30
  loadEmployeesSync
31
- } from "../chunk-2H55BIV2.js";
32
- import "../chunk-WSHMBME6.js";
31
+ } from "../chunk-CEJO7244.js";
32
+ import "../chunk-AWRL5FGM.js";
33
33
  import "../chunk-FXU7JOXK.js";
34
- import "../chunk-D5C56WO3.js";
34
+ import "../chunk-MOZ2YQ54.js";
35
35
  import {
36
36
  EXE_AI_DIR
37
- } from "../chunk-TRZ5KA2R.js";
37
+ } from "../chunk-VXIMSRTO.js";
38
38
  import "../chunk-LYH5HE24.js";
39
39
  import "../chunk-MLKGABMK.js";
40
40
 
@@ -45,7 +45,7 @@ import path from "path";
45
45
  process.on("uncaughtException", () => process.exit(0));
46
46
  process.on("unhandledRejection", () => process.exit(0));
47
47
  try {
48
- const { verifyOrBlock } = await import("../hook-integrity-SB53Y7UK.js");
48
+ const { verifyOrBlock } = await import("../hook-integrity-2OU3T6UC.js");
49
49
  if (!await verifyOrBlock(new URL(import.meta.url).pathname)) process.exit(2);
50
50
  } catch {
51
51
  }
@@ -126,10 +126,12 @@ process.stdin.on("end", async () => {
126
126
  const agent = getActiveAgent();
127
127
  if (data.tool_name === "Bash") {
128
128
  const command = data.tool_input?.command ?? "";
129
+ const isCoordinator = canCoordinate(agent.agentId, agent.agentRole);
129
130
  if (/tmux\s+send-keys/i.test(command)) {
130
- const output = JSON.stringify({
131
- hookSpecificOutput: { hookEventName: "PreToolUse", permissionDecision: "deny" },
132
- systemMessage: `\u274C BLOCKED: tmux send-keys is not allowed for ANY agent (including COO).
131
+ if (!isCoordinator) {
132
+ const output = JSON.stringify({
133
+ hookSpecificOutput: { hookEventName: "PreToolUse", permissionDecision: "deny" },
134
+ systemMessage: `\u274C BLOCKED: tmux send-keys is not allowed for non-coordinator agents.
133
135
  Use MCP tools to communicate:
134
136
  - create_task to assign work (auto-spawns + sends intercom)
135
137
  - send_message for context
@@ -137,9 +139,10 @@ Use MCP tools to communicate:
137
139
  - task(action="resume") to respawn a dead session
138
140
  Read-only tmux (capture-pane, list-sessions) is fine for monitoring.
139
141
  If MCP is down, tell the user: "MCP disconnected. Run /mcp to reconnect."`
140
- });
141
- process.stdout.write(output);
142
- process.exit(0);
142
+ });
143
+ process.stdout.write(output);
144
+ process.exit(0);
145
+ }
143
146
  }
144
147
  }
145
148
  if (data.tool_name === "Bash") {
@@ -313,15 +316,15 @@ Do NOT report this as successful. No file was changed. If you are a sub-agent, r
313
316
  process.exit(0);
314
317
  }
315
318
  }
316
- const { getGatedAgent } = await import("../cto-delegation-gate-IJ3KQIKF.js");
319
+ const { getGatedAgent } = await import("../cto-delegation-gate-5JZORQIT.js");
317
320
  const gatedAgent = getGatedAgent();
318
321
  if (agent.agentId === gatedAgent && /^(Write|Edit)$/.test(data.tool_name)) {
319
322
  const filePath = data.tool_input?.file_path ?? "";
320
323
  if (filePath) {
321
324
  try {
322
- const { fastDbInit } = await import("../fast-db-init-HIJWWKAO.js");
325
+ const { fastDbInit } = await import("../fast-db-init-YSR7RMVZ.js");
323
326
  await fastDbInit();
324
- const { evaluateDelegationGate, GATE_BLOCK_MESSAGE } = await import("../cto-delegation-gate-IJ3KQIKF.js");
327
+ const { evaluateDelegationGate, GATE_BLOCK_MESSAGE } = await import("../cto-delegation-gate-5JZORQIT.js");
325
328
  const decision = await evaluateDelegationGate({
326
329
  agentId: agent.agentId,
327
330
  toolName: data.tool_name,
@@ -367,7 +370,7 @@ Do NOT report this as successful. No file was changed. If you are a sub-agent, r
367
370
  const isUpdateTaskDone = (data.tool_name === "mcp__exe-os__update_task" || data.tool_name === "mcp__exe-mem__update_task") && toolInput.status === "done" && CTO_ROLES.includes(agent.agentRole);
368
371
  if (isUpdateTaskDone) {
369
372
  try {
370
- const { fastDbInit } = await import("../fast-db-init-HIJWWKAO.js");
373
+ const { fastDbInit } = await import("../fast-db-init-YSR7RMVZ.js");
371
374
  const client = await fastDbInit();
372
375
  const taskId = String(toolInput.task_id ?? "");
373
376
  const ptScope = sessionScopeFilter();
@@ -425,7 +428,7 @@ Do NOT report this as successful. No file was changed. If you are a sub-agent, r
425
428
  }
426
429
  if (CTO_ROLES.includes(agent.agentRole) && !hasDelegationFired()) {
427
430
  try {
428
- const { fastDbInit } = await import("../fast-db-init-HIJWWKAO.js");
431
+ const { fastDbInit } = await import("../fast-db-init-YSR7RMVZ.js");
429
432
  const client = await fastDbInit();
430
433
  const dlScope = sessionScopeFilter();
431
434
  const result = await client.execute({
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  hybridSearch,
3
3
  lightweightSearch
4
- } from "../chunk-IQXPMK46.js";
4
+ } from "../chunk-DLZYAYVM.js";
5
5
  import {
6
6
  initStore
7
- } from "../chunk-FGJUGDNM.js";
7
+ } from "../chunk-222SI7QC.js";
8
8
  import "../chunk-CHCA3ZM2.js";
9
- import "../chunk-4HROS3GJ.js";
9
+ import "../chunk-IZVKWBIP.js";
10
10
  import {
11
11
  isCacheCold
12
12
  } from "../chunk-6A7P74QV.js";
@@ -14,22 +14,23 @@ import "../chunk-YSU7JB7H.js";
14
14
  import "../chunk-SH45SJQW.js";
15
15
  import {
16
16
  getActiveAgent
17
- } from "../chunk-RA2RO27E.js";
18
- import "../chunk-F7LU65PQ.js";
17
+ } from "../chunk-MCESA5UW.js";
18
+ import "../chunk-Y25OJWOQ.js";
19
19
  import {
20
+ formatIntercomPrompt,
20
21
  isExeSession
21
- } from "../chunk-HNLPLLE6.js";
22
- import "../chunk-YFE6W75D.js";
23
- import "../chunk-QI4IXJN7.js";
22
+ } from "../chunk-F7JLZXHC.js";
23
+ import "../chunk-ZKFPHJIJ.js";
24
+ import "../chunk-5CHYEKMH.js";
24
25
  import "../chunk-4JERP7NT.js";
25
- import "../chunk-BZNI4OK5.js";
26
+ import "../chunk-GHEWRYMY.js";
26
27
  import "../chunk-MVW62NIZ.js";
27
28
  import "../chunk-OYNKIAVW.js";
28
29
  import "../chunk-CX6GL3ZJ.js";
29
- import "../chunk-5NJ4A4ZA.js";
30
- import "../chunk-6OJJF4WP.js";
30
+ import "../chunk-HCBMPZDT.js";
31
+ import "../chunk-XJUUWHVN.js";
31
32
  import "../chunk-NGP6LSV2.js";
32
- import "../chunk-IQSCZDBQ.js";
33
+ import "../chunk-I5PIBL56.js";
33
34
  import {
34
35
  getSessionKey
35
36
  } from "../chunk-CVYC6DUW.js";
@@ -38,20 +39,20 @@ import {
38
39
  } from "../chunk-OPU3NYOO.js";
39
40
  import "../chunk-GJV3WDWM.js";
40
41
  import "../chunk-MP2AFCGL.js";
41
- import "../chunk-4SC65UBG.js";
42
+ import "../chunk-JLNXKG3K.js";
42
43
  import "../chunk-HYZV25LY.js";
43
44
  import {
44
45
  canCoordinate
45
- } from "../chunk-2H55BIV2.js";
46
- import "../chunk-WSHMBME6.js";
46
+ } from "../chunk-CEJO7244.js";
47
+ import "../chunk-AWRL5FGM.js";
47
48
  import "../chunk-FXU7JOXK.js";
48
- import "../chunk-KDJRFJDL.js";
49
- import "../chunk-D5C56WO3.js";
49
+ import "../chunk-K333WOW4.js";
50
+ import "../chunk-MOZ2YQ54.js";
50
51
  import {
51
52
  EXE_AI_DIR,
52
53
  loadConfig,
53
54
  loadConfigSync
54
- } from "../chunk-TRZ5KA2R.js";
55
+ } from "../chunk-VXIMSRTO.js";
55
56
  import {
56
57
  atomicWriteJsonSync,
57
58
  atomicWriteSync
@@ -66,7 +67,7 @@ import os from "os";
66
67
  process.on("uncaughtException", () => process.exit(0));
67
68
  process.on("unhandledRejection", () => process.exit(0));
68
69
  try {
69
- const { verifyOrBlock } = await import("../hook-integrity-SB53Y7UK.js");
70
+ const { verifyOrBlock } = await import("../hook-integrity-2OU3T6UC.js");
70
71
  if (!await verifyOrBlock(new URL(import.meta.url).pathname)) process.exit(2);
71
72
  } catch {
72
73
  }
@@ -156,7 +157,7 @@ process.stdin.on("end", async () => {
156
157
  if (inTmux) try {
157
158
  const currentSession = getTmuxSession();
158
159
  if (currentSession) {
159
- const { drainForSession } = await import("../intercom-queue-RNM6EPGA.js");
160
+ const { drainForSession } = await import("../intercom-queue-A6UJEFIF.js");
160
161
  const transport = (await import("../lib/transport.js")).getTransport();
161
162
  const { getAgentRuntime } = await import("../lib/agent-config.js");
162
163
  const { baseAgentName } = await import("../lib/employees.js");
@@ -179,12 +180,12 @@ process.stdin.on("end", async () => {
179
180
  return false;
180
181
  }
181
182
  };
182
- drainForSession(currentSession, (session) => {
183
+ drainForSession(currentSession, (session, item) => {
183
184
  try {
184
185
  const agentName = baseAgentName(session.split("-")[0] ?? session);
185
186
  if (isSessionBusy(session) || hasInProgressTask(agentName)) return true;
186
187
  const rtConfig = getAgentRuntime(agentName);
187
- const nudgeMsg = "You have pending notifications. Run list_tasks to check for assigned work.";
188
+ const nudgeMsg = formatIntercomPrompt(item.intercomReason ?? "nudge");
188
189
  transport.sendKeysLiteral(session, nudgeMsg);
189
190
  if (rtConfig.runtime === "codex" || rtConfig.runtime === "opencode") {
190
191
  try {
@@ -232,6 +233,36 @@ process.stdin.on("end", async () => {
232
233
  } catch {
233
234
  daemonUp = false;
234
235
  }
236
+ if (daemonUp && !mcpStaleNotice) {
237
+ try {
238
+ const { existsSync: exFs, readFileSync: rdFs } = await import("fs");
239
+ const tokenPath = path.join(EXE_AI_DIR, "exed.token");
240
+ if (exFs(tokenPath)) {
241
+ const token = rdFs(tokenPath, "utf8").trim();
242
+ const controller = new AbortController();
243
+ const timeout2 = setTimeout(() => controller.abort(), 200);
244
+ try {
245
+ const resp = await fetch(`http://127.0.0.1:48739/mcp`, {
246
+ method: "POST",
247
+ headers: {
248
+ "Authorization": `Bearer ${token}`,
249
+ "Content-Type": "application/json"
250
+ },
251
+ body: JSON.stringify({ jsonrpc: "2.0", method: "ping", id: "health" }),
252
+ signal: controller.signal
253
+ });
254
+ clearTimeout(timeout2);
255
+ if (!resp.ok && resp.status !== 404) {
256
+ mcpStaleNotice = "\n\u26A0\uFE0F MCP degraded (daemon unresponsive). Run /mcp to reconnect.\n";
257
+ }
258
+ } catch {
259
+ clearTimeout(timeout2);
260
+ mcpStaleNotice = "\n\u26A0\uFE0F MCP unreachable (daemon may be overloaded). Run /mcp to reconnect.\n";
261
+ }
262
+ }
263
+ } catch {
264
+ }
265
+ }
235
266
  const search = config.hookSearchMode === "hybrid" && daemonUp ? hybridSearch : lightweightSearch;
236
267
  let cacheContext = "";
237
268
  try {
@@ -291,7 +322,7 @@ ${fresh.map(
291
322
  atomicWriteSync(counterPath, String(count));
292
323
  const BEHAVIOR_REINJECT_INTERVAL = 50;
293
324
  if (count === 1 || count % BEHAVIOR_REINJECT_INTERVAL === 0) {
294
- const { listBehaviors } = await import("../behaviors-6BGALYGW.js");
325
+ const { listBehaviors } = await import("../behaviors-BL3QCHBT.js");
295
326
  const behaviors = await listBehaviors(agent.agentId);
296
327
  const active = behaviors.filter((b) => b.active !== 0).sort((a, b) => (a.priority === "p0" ? -1 : 1) - (b.priority === "p0" ? -1 : 1)).slice(0, 15);
297
328
  if (active.length > 0) {
@@ -316,7 +347,7 @@ ${lines.join("\n")}`;
316
347
  if (!lastCheckedAt) {
317
348
  lastCheckedAt = "1970-01-01T00:00:00.000Z";
318
349
  }
319
- const { listBehaviorsSince } = await import("../behaviors-6BGALYGW.js");
350
+ const { listBehaviorsSince } = await import("../behaviors-BL3QCHBT.js");
320
351
  const newBehaviors = await listBehaviorsSince(agent.agentId, lastCheckedAt);
321
352
  if (newBehaviors.length > 0) {
322
353
  const lines = newBehaviors.map(
@@ -369,7 +400,7 @@ ${body}`;
369
400
  let reviewContext = "";
370
401
  if (canCoordinate(agent.agentId, agent.agentRole)) {
371
402
  try {
372
- const { countPendingReviews, countNewPendingReviewsSince } = await import("../tasks-review-PGPYJQF5.js");
403
+ const { countPendingReviews, countNewPendingReviewsSince } = await import("../tasks-review-XPFJ4DSJ.js");
373
404
  const sessionKey = getSessionKey();
374
405
  const lastCheckPath = path.join(CACHE_DIR, `review-lastcheck-${sessionKey}.json`);
375
406
  let sessionScope;
@@ -426,7 +457,7 @@ IMPORTANT: After completing your current task, you MUST address the pending revi
426
457
  let coreMemoryContext = "";
427
458
  if (!IS_CODEX_RUNTIME && agent.agentId !== "default") {
428
459
  try {
429
- const { getCoreMemory, formatCoreMemoryBlock } = await import("../core-memory-VOBGGB2Q.js");
460
+ const { getCoreMemory, formatCoreMemoryBlock } = await import("../core-memory-4KAIKQRQ.js");
430
461
  const entries = await getCoreMemory(agent.agentId);
431
462
  const block = formatCoreMemoryBlock(entries);
432
463
  if (block) coreMemoryContext = block;
@@ -494,7 +525,7 @@ IMPORTANT: After completing your current task, you MUST address the new task abo
494
525
  } catch {
495
526
  }
496
527
  try {
497
- const { recordOrchestrationEventBestEffort: recordOE } = await import("../orchestration-events-IYTASMSN.js");
528
+ const { recordOrchestrationEventBestEffort: recordOE } = await import("../orchestration-events-25WEKUKH.js");
498
529
  recordOE({
499
530
  eventType: "signal.consumed",
500
531
  source: "prompt-submit.hook",
@@ -564,7 +595,7 @@ IMPORTANT: After completing your current task, you MUST address the new task abo
564
595
  let idleTaskContext = "";
565
596
  if (!taskSignalContext && agent.agentId !== "default" && !IS_CODEX_RUNTIME) {
566
597
  try {
567
- const { fastDbInit } = await import("../fast-db-init-HIJWWKAO.js");
598
+ const { fastDbInit } = await import("../fast-db-init-YSR7RMVZ.js");
568
599
  const client = await fastDbInit();
569
600
  let taskSessionScope = null;
570
601
  if (inTmux) {
@@ -657,8 +688,8 @@ async function writePromptMemory(prompt, sessionId, agent) {
657
688
  return;
658
689
  }
659
690
  try {
660
- const { fastDbInit } = await import("../fast-db-init-HIJWWKAO.js");
661
- const { recordSessionEvent } = await import("../session-events-KCZCWGE4.js");
691
+ const { fastDbInit } = await import("../fast-db-init-YSR7RMVZ.js");
692
+ const { recordSessionEvent } = await import("../session-events-5CD66R6U.js");
662
693
  const client = await fastDbInit();
663
694
  await recordSessionEvent(client, {
664
695
  agentId: agent.agentId,
@@ -673,7 +704,7 @@ async function writePromptMemory(prompt, sessionId, agent) {
673
704
  }
674
705
  if (!loadConfigSync().autoIngestion) return;
675
706
  try {
676
- const { writeMemoryViaDaemon } = await import("../memory-queue-client-DHSHEIHQ.js");
707
+ const { writeMemoryViaDaemon } = await import("../memory-queue-client-JZCFYTWQ.js");
677
708
  const trimmed = prompt.trim();
678
709
  const isSlashCommand = trimmed.startsWith("/");
679
710
  const isDirective = /\b(from now on|never|always|rule:|decision:|policy:)\b/i.test(trimmed);
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  writeContinuityCheckpoint
3
- } from "../chunk-Y2L7RMGH.js";
4
- import "../chunk-BZWKTFEB.js";
5
- import "../chunk-UPMHG7ET.js";
6
- import "../chunk-VHKL4S4T.js";
7
- import "../chunk-JL3K5OTS.js";
3
+ } from "../chunk-NWBHL5PI.js";
4
+ import "../chunk-ENVRFBTB.js";
5
+ import "../chunk-MEIHREPM.js";
6
+ import "../chunk-RRHSONV5.js";
7
+ import "../chunk-7IZWLMTP.js";
8
8
  import {
9
9
  clearCacheState
10
10
  } from "../chunk-6A7P74QV.js";
@@ -13,21 +13,21 @@ import "../chunk-SH45SJQW.js";
13
13
  import {
14
14
  clearActiveAgent,
15
15
  getActiveAgent
16
- } from "../chunk-RA2RO27E.js";
16
+ } from "../chunk-MCESA5UW.js";
17
17
  import {
18
18
  strictSessionScopeFilter
19
- } from "../chunk-HNLPLLE6.js";
20
- import "../chunk-YFE6W75D.js";
21
- import "../chunk-QI4IXJN7.js";
19
+ } from "../chunk-F7JLZXHC.js";
20
+ import "../chunk-ZKFPHJIJ.js";
21
+ import "../chunk-5CHYEKMH.js";
22
22
  import "../chunk-4JERP7NT.js";
23
- import "../chunk-BZNI4OK5.js";
23
+ import "../chunk-GHEWRYMY.js";
24
24
  import "../chunk-MVW62NIZ.js";
25
25
  import "../chunk-OYNKIAVW.js";
26
26
  import "../chunk-CX6GL3ZJ.js";
27
- import "../chunk-5NJ4A4ZA.js";
28
- import "../chunk-6OJJF4WP.js";
27
+ import "../chunk-HCBMPZDT.js";
28
+ import "../chunk-XJUUWHVN.js";
29
29
  import "../chunk-NGP6LSV2.js";
30
- import "../chunk-IQSCZDBQ.js";
30
+ import "../chunk-I5PIBL56.js";
31
31
  import {
32
32
  getSessionKey
33
33
  } from "../chunk-CVYC6DUW.js";
@@ -35,15 +35,15 @@ import "../chunk-OPU3NYOO.js";
35
35
  import "../chunk-GJV3WDWM.js";
36
36
  import "../chunk-MP2AFCGL.js";
37
37
  import "../chunk-PWMMIGVQ.js";
38
- import "../chunk-4SC65UBG.js";
38
+ import "../chunk-JLNXKG3K.js";
39
39
  import "../chunk-HYZV25LY.js";
40
40
  import {
41
41
  canCoordinate
42
- } from "../chunk-2H55BIV2.js";
43
- import "../chunk-WSHMBME6.js";
42
+ } from "../chunk-CEJO7244.js";
43
+ import "../chunk-AWRL5FGM.js";
44
44
  import "../chunk-FXU7JOXK.js";
45
- import "../chunk-D5C56WO3.js";
46
- import "../chunk-TRZ5KA2R.js";
45
+ import "../chunk-MOZ2YQ54.js";
46
+ import "../chunk-VXIMSRTO.js";
47
47
  import "../chunk-LYH5HE24.js";
48
48
  import "../chunk-MLKGABMK.js";
49
49
 
@@ -52,7 +52,7 @@ import { closeSync, openSync, readSync, statSync } from "fs";
52
52
  process.on("uncaughtException", () => process.exit(0));
53
53
  process.on("unhandledRejection", () => process.exit(0));
54
54
  try {
55
- const { verifyOrBlock } = await import("../hook-integrity-SB53Y7UK.js");
55
+ const { verifyOrBlock } = await import("../hook-integrity-2OU3T6UC.js");
56
56
  if (!await verifyOrBlock(new URL(import.meta.url).pathname)) process.exit(2);
57
57
  } catch {
58
58
  }
@@ -238,7 +238,7 @@ process.stdin.on("end", async () => {
238
238
  process.stderr.write(`[session-end] EXIT: ${agent.agentId} session=${Math.round((transcript.sessionDurationMs ?? 0) / 1e3)}s hook=${Math.round(hookUptimeMs / 1e3)}s \u2014 reason=${exitReason} daemon=${daemonAlive ? "alive" : "DEAD"}
239
239
  `);
240
240
  try {
241
- const { recordOrchestrationEvent } = await import("../orchestration-events-IYTASMSN.js");
241
+ const { recordOrchestrationEvent } = await import("../orchestration-events-25WEKUKH.js");
242
242
  await recordOrchestrationEvent({
243
243
  eventType: "session.exit",
244
244
  source: "hooks.session-end",
@@ -261,9 +261,9 @@ process.stdin.on("end", async () => {
261
261
  }
262
262
  } catch {
263
263
  }
264
- if (agent.agentId !== "default") {
264
+ if (agent.agentId) {
265
265
  try {
266
- const { fastDbInit } = await import("../fast-db-init-HIJWWKAO.js");
266
+ const { fastDbInit } = await import("../fast-db-init-YSR7RMVZ.js");
267
267
  const client = await fastDbInit();
268
268
  const seScope = strictSessionScopeFilter();
269
269
  const orphanResult = await client.execute({
@@ -339,7 +339,7 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
339
339
  });
340
340
  if (conversationSummary.length > 100) {
341
341
  try {
342
- const { writeMemoryViaDaemon } = await import("../memory-queue-client-DHSHEIHQ.js");
342
+ const { writeMemoryViaDaemon } = await import("../memory-queue-client-JZCFYTWQ.js");
343
343
  await writeMemoryViaDaemon({
344
344
  raw_text: conversationSummary.slice(0, 8e3),
345
345
  agent_id: agent.agentId,
@@ -355,12 +355,12 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
355
355
  }
356
356
  }
357
357
  try {
358
- const { clearSessionFileReads } = await import("../git-staleness-IHTKCUMN.js");
358
+ const { clearSessionFileReads } = await import("../git-staleness-BJDTCDPC.js");
359
359
  await clearSessionFileReads(data.session_id);
360
360
  } catch {
361
361
  }
362
362
  try {
363
- const { DreamingEngine } = await import("../dreaming-2CJML3TU.js");
363
+ const { DreamingEngine } = await import("../dreaming-BOSBDRI3.js");
364
364
  const engine = new DreamingEngine();
365
365
  const dreamResult = await engine.runDreamCycle(agent.agentId);
366
366
  let promoted = 0;
@@ -434,7 +434,7 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
434
434
  parts.push(`Left in_progress (no matching commits, needs triage): ${leftInProgress.join(", ")}`);
435
435
  }
436
436
  try {
437
- const { writeNotification } = await import("../notifications-4P2PVEOT.js");
437
+ const { writeNotification } = await import("../notifications-P3XQZDTH.js");
438
438
  await writeNotification({
439
439
  agentId: agent.agentId,
440
440
  agentRole: agent.agentRole,