@askexenow/exe-os 0.9.365 → 0.9.367

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 (342) hide show
  1. package/dist/.dist-verified.json +3 -3
  2. package/dist/{active-agent-C6DPH43L.js → active-agent-R6Q7UEUD.js} +3 -3
  3. package/dist/{active-agent-MGF7J3HB.js → active-agent-V3CUDNED.js} +3 -3
  4. package/dist/{agent-defs-generator-X7TVMPVB.js → agent-defs-generator-MLPRGY75.js} +2 -2
  5. package/dist/agent-heartbeat-CQPGJIFF.js +13 -0
  6. package/dist/{agent-loop-E7RZCFDB.js → agent-loop-FOK2IRZQ.js} +1 -1
  7. package/dist/{agentic-ontology-CARDCG37.js → agentic-ontology-5FMQWGDZ.js} +1 -1
  8. package/dist/{backfill-metadata-ANCJA6LA.js → backfill-metadata-YXUMCKRV.js} +5 -5
  9. package/dist/{backup-verify-F7BHVEF7.js → backup-verify-GYHKAX7K.js} +1 -1
  10. package/dist/{behavior-injection-XQ4B7DCF.js → behavior-injection-7VGYY2KO.js} +7 -7
  11. package/dist/{behaviors-R2IE3PEN.js → behaviors-O6HKTSOF.js} +6 -6
  12. package/dist/bin/agentic-ontology-backfill.js +6 -6
  13. package/dist/bin/agentic-reflection-backfill.js +7 -7
  14. package/dist/bin/agentic-semantic-label.js +6 -6
  15. package/dist/bin/backfill-conversations.js +5 -5
  16. package/dist/bin/backfill-responses.js +5 -5
  17. package/dist/bin/backfill-vectors.js +6 -6
  18. package/dist/bin/bulk-sync-postgres.js +10 -10
  19. package/dist/bin/cc-doctor.js +5 -5
  20. package/dist/bin/cleanup-stale-review-tasks.js +14 -13
  21. package/dist/bin/cli.js +20 -20
  22. package/dist/bin/deferred-daemon-restart.js +78 -75
  23. package/dist/bin/exe-agent-config.js +2 -2
  24. package/dist/bin/exe-agent.js +251 -13
  25. package/dist/bin/exe-assign.js +6 -6
  26. package/dist/bin/exe-boot.js +29 -27
  27. package/dist/bin/exe-call.js +4 -4
  28. package/dist/bin/exe-cloud.js +11 -11
  29. package/dist/bin/exe-config-dump.js +2 -2
  30. package/dist/bin/exe-dispatch.js +15 -14
  31. package/dist/bin/exe-doctor.js +5 -5
  32. package/dist/bin/exe-export-behaviors.js +8 -8
  33. package/dist/bin/exe-forget.js +7 -7
  34. package/dist/bin/exe-gateway.js +7 -7
  35. package/dist/bin/exe-healthcheck.js +5 -5
  36. package/dist/bin/exe-heartbeat.js +17 -16
  37. package/dist/bin/exe-kill.js +18 -17
  38. package/dist/bin/exe-launch-agent.js +23 -22
  39. package/dist/bin/exe-mcp.js +3 -3
  40. package/dist/bin/exe-memory-reads.js +5 -5
  41. package/dist/bin/exe-new-employee.js +8 -8
  42. package/dist/bin/exe-os-mcp-proxy.js +3 -3
  43. package/dist/bin/exe-pending-messages.js +15 -14
  44. package/dist/bin/exe-pending-notifications.js +14 -13
  45. package/dist/bin/exe-pending-reviews.js +14 -13
  46. package/dist/bin/exe-rename.js +4 -4
  47. package/dist/bin/exe-review.js +17 -16
  48. package/dist/bin/exe-search.js +6 -6
  49. package/dist/bin/exe-session-cleanup.js +18 -17
  50. package/dist/bin/exe-settings.js +10 -10
  51. package/dist/bin/exe-start-codex.js +21 -13
  52. package/dist/bin/exe-start-opencode.js +9 -9
  53. package/dist/bin/exe-status.js +16 -15
  54. package/dist/bin/exe-support.js +3 -3
  55. package/dist/bin/exe-team.js +4 -4
  56. package/dist/bin/git-sweep.js +23 -14
  57. package/dist/bin/graph-backfill.js +6 -6
  58. package/dist/bin/graph-export.js +6 -6
  59. package/dist/bin/import-history.js +9 -9
  60. package/dist/bin/install.js +80 -77
  61. package/dist/bin/intercom-check.js +4 -4
  62. package/dist/bin/mcp-sessions.js +2 -2
  63. package/dist/bin/orchestration-metrics.js +4 -4
  64. package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
  65. package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
  66. package/dist/bin/reconcile-backlog.js +2 -2
  67. package/dist/bin/registry-proxy.js +1 -1
  68. package/dist/bin/scan-tasks.js +14 -13
  69. package/dist/bin/setup.js +1 -1
  70. package/dist/bin/shard-migrate.js +5 -5
  71. package/dist/bin/stack-update.js +34 -6
  72. package/dist/bin/verify-stack.js +6 -1
  73. package/dist/bin/vps-health-gate.js +1 -1
  74. package/dist/{boot-generation-X45BSVZY.js → boot-generation-EZ2Y74IG.js} +3 -3
  75. package/dist/{boot-review-sections-OBVRXXSF.js → boot-review-sections-7CNQTAYR.js} +13 -12
  76. package/dist/build-manifest.json +865 -835
  77. package/dist/{capability-cards-57FURUMR.js → capability-cards-ZTFMK4VJ.js} +2 -2
  78. package/dist/{capacity-monitor-QEL62JDO.js → capacity-monitor-B2XU4YHP.js} +15 -14
  79. package/dist/{catchup-brief-PMXTCASA.js → catchup-brief-3BEOL7EV.js} +18 -17
  80. package/dist/{chunk-J6I7X272.js → chunk-267QB6VB.js} +1 -1
  81. package/dist/{chunk-IXEFO6HD.js → chunk-2IZH6W73.js} +3 -3
  82. package/dist/{chunk-6GQYPJPG.js → chunk-4DJDC4Y2.js} +8 -8
  83. package/dist/{chunk-LZKYVMBY.js → chunk-4WOOCTON.js} +2 -2
  84. package/dist/{chunk-RHX6MNWY.js → chunk-52CFP2AV.js} +1 -1
  85. package/dist/{chunk-EWZYFG5Q.js → chunk-53LCVVX5.js} +2 -2
  86. package/dist/{chunk-52TIQJEQ.js → chunk-5CH6XKVC.js} +1 -1
  87. package/dist/{chunk-22YQBVMO.js → chunk-66BFQOWR.js} +4 -4
  88. package/dist/{chunk-ESTR7QUP.js → chunk-6MCUXRIP.js} +1 -1
  89. package/dist/{chunk-LHOKWZKL.js → chunk-6NJURKRG.js} +1 -1
  90. package/dist/{chunk-VGE6IHZB.js → chunk-7W5LCREK.js} +80 -12
  91. package/dist/{chunk-FXPAUDCZ.js → chunk-7W6FDHHY.js} +1 -1
  92. package/dist/{chunk-E6ORBQHP.js → chunk-AAMGHW5W.js} +1 -0
  93. package/dist/{chunk-EMZHB767.js → chunk-AE3PYLLS.js} +9 -9
  94. package/dist/{chunk-JUOZLXLH.js → chunk-AEVE654G.js} +1 -1
  95. package/dist/{chunk-PPGPCWRC.js → chunk-ALKYXAMB.js} +4 -4
  96. package/dist/{chunk-MPQXQ5IE.js → chunk-ALYI3P5D.js} +1 -1
  97. package/dist/{chunk-4QKKLK3C.js → chunk-BQYQES2Z.js} +10 -10
  98. package/dist/{chunk-WYLFDSIE.js → chunk-BTMX2D4X.js} +5 -5
  99. package/dist/chunk-BTSWFMEH.js +14 -0
  100. package/dist/{chunk-EKVTRI3N.js → chunk-BY3V5CLX.js} +5 -4
  101. package/dist/{chunk-ZSZPMUNX.js → chunk-CKKLSY7B.js} +126 -7
  102. package/dist/{chunk-6Q263OZE.js → chunk-CTPG4KYZ.js} +1 -1
  103. package/dist/{chunk-C3UAQ3JG.js → chunk-CX4MVEM3.js} +1 -1
  104. package/dist/{chunk-DEFSN2FQ.js → chunk-CYNL3ZFD.js} +3 -3
  105. package/dist/{chunk-RD4E5G3B.js → chunk-DTTISDTI.js} +1 -1
  106. package/dist/{chunk-ZRKEUCUZ.js → chunk-DXCTHNEF.js} +12 -10
  107. package/dist/{chunk-KSVLBATT.js → chunk-E5QQZDQN.js} +53 -0
  108. package/dist/{chunk-DQ5KHWFD.js → chunk-EDZ5URGR.js} +1 -1
  109. package/dist/{chunk-ZDUO6QBH.js → chunk-F3PIHVVY.js} +1 -1
  110. package/dist/{chunk-EJ4522YM.js → chunk-FSIAGX55.js} +1 -1
  111. package/dist/{chunk-RVWALVDT.js → chunk-GUOMZ3JM.js} +2 -2
  112. package/dist/{chunk-BRLS5OLZ.js → chunk-HSBKV5LB.js} +35 -4
  113. package/dist/{chunk-QFIVK3G5.js → chunk-IIVFXD6P.js} +1 -1
  114. package/dist/{chunk-SBAU735L.js → chunk-J6VQ7HYV.js} +4 -4
  115. package/dist/{chunk-EWCEUO65.js → chunk-JFOZHVNO.js} +1 -1
  116. package/dist/{chunk-T6S45OLV.js → chunk-JJRZE2LD.js} +1 -1
  117. package/dist/{chunk-DYWGIPVP.js → chunk-JOKKIFRN.js} +3 -3
  118. package/dist/{chunk-X6A2VWVJ.js → chunk-K2OFS57E.js} +2 -2
  119. package/dist/{chunk-NV6A5HDN.js → chunk-KDD26FUY.js} +1 -1
  120. package/dist/{chunk-L3TB7CC3.js → chunk-KM6XSFHP.js} +12 -2
  121. package/dist/{chunk-CKG6CVKI.js → chunk-LIZ3QQGK.js} +1 -1
  122. package/dist/{chunk-OFGFRT5J.js → chunk-LW5WRSDD.js} +1 -1
  123. package/dist/{chunk-JITNFE4W.js → chunk-MLPPG2OG.js} +1 -1
  124. package/dist/{chunk-3JNVB5LG.js → chunk-MQ3N4KZY.js} +1 -1
  125. package/dist/{chunk-2FYIMTQE.js → chunk-N3JLNMPF.js} +2 -2
  126. package/dist/{chunk-RZIKSE6N.js → chunk-NPND34FS.js} +4 -4
  127. package/dist/{chunk-DWAQOEXL.js → chunk-O3F5P6Z5.js} +2 -2
  128. package/dist/{chunk-M7EES2KM.js → chunk-OADOH45L.js} +3 -3
  129. package/dist/{chunk-MZJBUAC3.js → chunk-OISZ2I4X.js} +4 -4
  130. package/dist/{chunk-R7RM766N.js → chunk-OPS7KUFV.js} +3 -3
  131. package/dist/{chunk-JNVQGLPX.js → chunk-P5XER5QY.js} +3 -3
  132. package/dist/{chunk-J4U5Z7VX.js → chunk-P76VYS6V.js} +4 -4
  133. package/dist/{chunk-KRUYQFSH.js → chunk-PFOJX6CR.js} +5 -5
  134. package/dist/chunk-PFR6EOUY.js +356 -0
  135. package/dist/{agent-heartbeat-I5UPGXAU.js → chunk-PHUHIVD5.js} +4 -5
  136. package/dist/{chunk-45EQTS7B.js → chunk-PQ6NRLKL.js} +1 -1
  137. package/dist/{chunk-5CBGH6RA.js → chunk-PR3AHVFW.js} +3 -3
  138. package/dist/{chunk-ODBRU6BF.js → chunk-PS4NA7PM.js} +1399 -943
  139. package/dist/{chunk-CPILYY2K.js → chunk-PS6VPW64.js} +1 -1
  140. package/dist/{chunk-YMJOLEPE.js → chunk-PWCZFIQH.js} +4 -4
  141. package/dist/{chunk-POPRJKAY.js → chunk-QS6HI4B6.js} +6 -0
  142. package/dist/{chunk-ZNEBZCZR.js → chunk-QWDZNQXA.js} +1 -1
  143. package/dist/{chunk-ORNCMRIX.js → chunk-QX33D4CH.js} +25 -31
  144. package/dist/{chunk-BATQKSLI.js → chunk-R3H3WW7H.js} +2 -2
  145. package/dist/chunk-R4AROSYI.js +496 -0
  146. package/dist/{chunk-F2S3M5MB.js → chunk-SFKIZYKK.js} +2 -2
  147. package/dist/{chunk-IIZITKBV.js → chunk-TCR7NBHD.js} +4 -4
  148. package/dist/{chunk-7C4FUNVO.js → chunk-TJSTWACD.js} +2 -2
  149. package/dist/chunk-TX3Q2GIL.js +97 -0
  150. package/dist/{chunk-2ESB5SDP.js → chunk-TZFOWWPM.js} +1 -1
  151. package/dist/{chunk-WR75WUEP.js → chunk-UI3K73LD.js} +1 -1
  152. package/dist/{chunk-DJK45U7B.js → chunk-URHJDUWO.js} +1 -1
  153. package/dist/{chunk-SP37DONS.js → chunk-V3ISR2QT.js} +1 -1
  154. package/dist/{chunk-EPNWEOOE.js → chunk-VY3QUSWS.js} +6 -6
  155. package/dist/{chunk-O2MEBF23.js → chunk-WBKIU6UJ.js} +2 -2
  156. package/dist/{chunk-TO6TB75E.js → chunk-WCDIDSLR.js} +2 -2
  157. package/dist/{chunk-EVPBYX2Z.js → chunk-WSLFGJBA.js} +1 -1
  158. package/dist/{chunk-OPNROU5B.js → chunk-WYVBWDFY.js} +1 -1
  159. package/dist/{chunk-JYFYIGYK.js → chunk-XA4EU3CW.js} +1 -1
  160. package/dist/{chunk-ZEKCHV43.js → chunk-XAMLDTRA.js} +4 -4
  161. package/dist/{chunk-EHHMNKOA.js → chunk-XKFMNAJ7.js} +1 -1
  162. package/dist/{chunk-5KLQCGI5.js → chunk-XKZD5FGK.js} +55 -0
  163. package/dist/{chunk-U373MEF5.js → chunk-XSXZVKJ7.js} +3 -3
  164. package/dist/{chunk-IM2I7OOS.js → chunk-XTEKGO44.js} +1 -1
  165. package/dist/{chunk-Q7BU5Q6I.js → chunk-XUGOVOID.js} +3 -3
  166. package/dist/{chunk-BEHLIRRJ.js → chunk-XVRQZCTS.js} +1 -1
  167. package/dist/{chunk-P47MPWNU.js → chunk-Y4JVM3SI.js} +1 -1
  168. package/dist/{chunk-NO3M2AFM.js → chunk-Y7OK5PJE.js} +1 -1
  169. package/dist/{chunk-ANPE3TT3.js → chunk-YA4PM3MV.js} +3 -3
  170. package/dist/{chunk-EPDNWY5P.js → chunk-YYLVHUYZ.js} +1 -1
  171. package/dist/{chunk-QYJANQWC.js → chunk-Z5Z3MYUW.js} +2 -2
  172. package/dist/{chunk-MXEIZUXG.js → chunk-ZSHLY5BS.js} +1 -1
  173. package/dist/{chunk-AGQAGOQN.js → chunk-ZZ3JQM5I.js} +9 -9
  174. package/dist/{cleanup-graph-garbage-CAA625RJ.js → cleanup-graph-garbage-XDIX3HLN.js} +7 -7
  175. package/dist/{cloud-sync-command-DBB7WRHL.js → cloud-sync-command-VPYE4FIH.js} +2 -2
  176. package/dist/{cloud-sync-db-init-V7IB23W5.js → cloud-sync-db-init-NSDBTFGI.js} +1 -1
  177. package/dist/{cloud-sync-shutdown-2D3B73CJ.js → cloud-sync-shutdown-6OUYTG4T.js} +2 -2
  178. package/dist/{co-activation-JVN7EBS6.js → co-activation-EAAKGGZH.js} +2 -2
  179. package/dist/{co-occurrence-526PTFGT.js → co-occurrence-OFVF55RX.js} +5 -5
  180. package/dist/codex-consolidation-PPXNBXCV.js +96 -0
  181. package/dist/{conversation-entity-extractor-JO56DB2E.js → conversation-entity-extractor-ZR5GFKAI.js} +3 -3
  182. package/dist/{crdt-sync-LIJLZKFE.js → crdt-sync-FGH4SBFW.js} +1 -1
  183. package/dist/{crm-webhook-55F7Y6D2.js → crm-webhook-PJATR2DC.js} +2 -2
  184. package/dist/{cto-delegation-gate-QIYV4KFO.js → cto-delegation-gate-PO4LSSQ4.js} +13 -12
  185. package/dist/{daemon-orchestration-Q3GJA2JJ.js → daemon-orchestration-IJFZFQUX.js} +18 -17
  186. package/dist/{doc-graph-extractor-P46R4QME.js → doc-graph-extractor-CAYUAM5A.js} +5 -5
  187. package/dist/{documents-7KFEREWO.js → documents-W2G477QE.js} +6 -6
  188. package/dist/{dreaming-JMUXBAPU.js → dreaming-FVXSIIWV.js} +17 -16
  189. package/dist/{employee-boot-brief-HN63D2BY.js → employee-boot-brief-OYMSHFHA.js} +19 -18
  190. package/dist/{exe-drift-7J7GX7DP.js → exe-drift-67RGJOBX.js} +3 -3
  191. package/dist/{exe-export-KJ7B2OBU.js → exe-export-SGYX6XZG.js} +7 -7
  192. package/dist/{exe-import-HPZDWKGE.js → exe-import-UABVA5N3.js} +7 -7
  193. package/dist/{exe-key-2PREP464.js → exe-key-XNYDCVFE.js} +78 -75
  194. package/dist/{exe-org-VEIISATF.js → exe-org-XJVSU5HN.js} +8 -8
  195. package/dist/{exe-snapshot-JXQFLUKA.js → exe-snapshot-YXOGYZUX.js} +18 -17
  196. package/dist/{fast-db-init-SCXJXOYX.js → fast-db-init-GDFJY5UH.js} +1 -1
  197. package/dist/{founder-context-U2SZPLYV.js → founder-context-KUXSNXKS.js} +2 -2
  198. package/dist/gateway/index.js +8 -8
  199. package/dist/{git-staleness-S4NDR7NX.js → git-staleness-NN6RWNLW.js} +2 -2
  200. package/dist/{global-procedures-ZOFTOXIR.js → global-procedures-XDNA3TNA.js} +3 -3
  201. package/dist/{graph-auto-extract-CLVTSUSB.js → graph-auto-extract-KTOR45V4.js} +5 -5
  202. package/dist/{graph-rag-LSJLWGXV.js → graph-rag-L5NV5YWD.js} +3 -3
  203. package/dist/{hook-integrity-SGTKBL6W.js → hook-integrity-X3YAVGUW.js} +1 -1
  204. package/dist/{hook-prefetch-BDSLB6F4.js → hook-prefetch-WE4MIXBM.js} +14 -13
  205. package/dist/hooks/bug-report-worker.js +18 -17
  206. package/dist/hooks/codex-stop-task-finalizer.js +19 -18
  207. package/dist/hooks/commit-complete.js +33 -19
  208. package/dist/hooks/error-recall.js +8 -8
  209. package/dist/hooks/exe-heartbeat-hook.js +4 -4
  210. package/dist/hooks/ingest-worker.js +2 -2
  211. package/dist/hooks/ingest.js +11 -11
  212. package/dist/hooks/instructions-loaded.js +5 -5
  213. package/dist/hooks/manifest.json +20 -20
  214. package/dist/hooks/notification.js +5 -5
  215. package/dist/hooks/post-compact.js +4 -4
  216. package/dist/hooks/post-tool-combined.js +12 -12
  217. package/dist/hooks/pre-compact.js +17 -16
  218. package/dist/hooks/pre-tool-use.js +68 -23
  219. package/dist/hooks/prompt-submit.js +30 -29
  220. package/dist/hooks/session-end.js +113 -99
  221. package/dist/hooks/session-start.js +16 -16
  222. package/dist/hooks/stop.js +82 -19
  223. package/dist/hooks/subagent-stop.js +18 -17
  224. package/dist/hooks/summary-worker.js +22 -21
  225. package/dist/index.js +24 -23
  226. package/dist/{installer-RC2JCKSE.js → installer-EAAYEEEF.js} +6 -6
  227. package/dist/{installer-KCEM4RCG.js → installer-EPQAOI6M.js} +152 -8
  228. package/dist/{installer-EA7T3PBD.js → installer-UDRMFY75.js} +6 -6
  229. package/dist/{intercom-queue-6DZPHHQ2.js → intercom-queue-IBOAVT2I.js} +13 -12
  230. package/dist/lib/cloud-sync.js +10 -10
  231. package/dist/lib/consolidation.js +7 -7
  232. package/dist/lib/database.js +2 -2
  233. package/dist/lib/db-backup.js +1 -1
  234. package/dist/lib/db-write-worker.js +3 -3
  235. package/dist/lib/db.js +2 -2
  236. package/dist/lib/device-registry.js +1 -1
  237. package/dist/lib/employee-templates.js +4 -4
  238. package/dist/lib/employees.js +2 -2
  239. package/dist/lib/exe-daemon.js +77 -76
  240. package/dist/lib/hybrid-search.js +6 -6
  241. package/dist/lib/identity.js +2 -2
  242. package/dist/lib/license.js +2 -2
  243. package/dist/lib/messaging.js +14 -13
  244. package/dist/lib/registry-proxy.js +1 -1
  245. package/dist/lib/reminders.js +3 -3
  246. package/dist/lib/schedules.js +6 -6
  247. package/dist/lib/session-registry.js +4 -4
  248. package/dist/lib/skill-learning.js +7 -7
  249. package/dist/lib/status-brief.js +2 -1
  250. package/dist/lib/store.js +5 -5
  251. package/dist/lib/task-router.js +3 -3
  252. package/dist/lib/tasks.js +15 -14
  253. package/dist/lib/tmux-routing.js +13 -12
  254. package/dist/lib/token-spend.js +3 -3
  255. package/dist/{license-gate-HMSMUIAU.js → license-gate-3TTWJABL.js} +3 -3
  256. package/dist/{license-sync-FBCMPC4J.js → license-sync-ZC6TPKVV.js} +2 -2
  257. package/dist/mcp/register-tools.js +77 -74
  258. package/dist/mcp/server.js +78 -75
  259. package/dist/mcp/tools/complete-reminder.js +4 -4
  260. package/dist/mcp/tools/create-reminder.js +4 -4
  261. package/dist/mcp/tools/create-task.js +17 -16
  262. package/dist/mcp/tools/deactivate-behavior.js +8 -8
  263. package/dist/mcp/tools/list-reminders.js +4 -4
  264. package/dist/mcp/tools/list-tasks.js +17 -16
  265. package/dist/mcp/tools/send-message.js +16 -15
  266. package/dist/mcp/tools/update-task.js +16 -15
  267. package/dist/{mcp-http-config-YKJN52HG.js → mcp-http-config-ROF5EPEF.js} +3 -3
  268. package/dist/{mcp-session-identity-QLUVYWPR.js → mcp-session-identity-ERU6FEUB.js} +13 -12
  269. package/dist/{memory-cards-K2OSX4AW.js → memory-cards-3QTXI2SG.js} +5 -5
  270. package/dist/{memory-graph-extractor-YLTSKLSY.js → memory-graph-extractor-7GAILMYG.js} +6 -6
  271. package/dist/{memory-poisoning-defense-IPO4ADRL.js → memory-poisoning-defense-TPXSRJTQ.js} +2 -2
  272. package/dist/{memory-pressure-watchdog-ZI3TH2OF.js → memory-pressure-watchdog-ZSOP6T2F.js} +14 -13
  273. package/dist/{memory-reflection-ZKVRU3NT.js → memory-reflection-3AI4JBV2.js} +2 -2
  274. package/dist/{notification-ledger-4REL6M3T.js → notification-ledger-ZU7ZFJJX.js} +16 -14
  275. package/dist/{notifications-UXJUAP3C.js → notifications-S4GU22GF.js} +13 -12
  276. package/dist/{orchestration-events-GMRGGBMN.js → orchestration-events-HVG56HJ5.js} +3 -3
  277. package/dist/{orchestrator-5TV75HDJ.js → orchestrator-UW3Q3WYG.js} +15 -14
  278. package/dist/{org-brief-session-7AZZEO3F.js → org-brief-session-G36TJBN4.js} +5 -5
  279. package/dist/{org-consent-policy-XT6UZENB.js → org-consent-policy-RMYVMM3X.js} +1 -1
  280. package/dist/{org-partner-runtime-WLZAZJIY.js → org-partner-runtime-KXMGEYFW.js} +5 -5
  281. package/dist/{org-row-visibility-A5XM4MVO.js → org-row-visibility-UI5PGN76.js} +1 -1
  282. package/dist/{pipeline-router-UEVXDUHR.js → pipeline-router-IODWXDDI.js} +3 -3
  283. package/dist/{plan-limits-QEP32X4W.js → plan-limits-XMAQVEJZ.js} +5 -5
  284. package/dist/{projection-worker-GMRC6SBH.js → projection-worker-6LZUCI3B.js} +2 -2
  285. package/dist/{prospective-memory-QLHSAPSG.js → prospective-memory-G5VK5GCD.js} +2 -2
  286. package/dist/{push-notifications-GKRPXOGI.js → push-notifications-S2RYRXLF.js} +14 -13
  287. package/dist/{reranker-GB4VEMUV.js → reranker-EHQTAA3L.js} +1 -1
  288. package/dist/{retrieval-health-QIBPBGN6.js → retrieval-health-WZ4ICGNF.js} +1 -1
  289. package/dist/{review-polling-MU47NQ2N.js → review-polling-MAWLRDSP.js} +14 -13
  290. package/dist/runtime/index.js +18 -17
  291. package/dist/{session-events-YMQ3VGBJ.js → session-events-BRUIZ5E4.js} +14 -13
  292. package/dist/{session-kill-telemetry-VGPKE57M.js → session-kill-telemetry-PTZLHT33.js} +14 -13
  293. package/dist/{session-scope-P46KAHXQ.js → session-scope-G4RVJJGR.js} +13 -12
  294. package/dist/{setup-wizard-BRNHSJ4U.js → setup-wizard-WFEUB63Z.js} +1 -1
  295. package/dist/{skill-refinement-NLYDSFEH.js → skill-refinement-2OYPH7WD.js} +3 -3
  296. package/dist/{stack-promote-NHFTNIM2.js → stack-promote-DLYYQXQI.js} +5 -4
  297. package/dist/{stack-release-AQVKZUS7.js → stack-release-OPWARLXI.js} +5 -4
  298. package/dist/{stack-update-LLX5KT7G.js → stack-update-SJ43IEQE.js} +10 -3
  299. package/dist/{steward-gate-JKHYFAHA.js → steward-gate-V7PBGVFK.js} +3 -3
  300. package/dist/{subagent-brief-injection-VDVOHDOU.js → subagent-brief-injection-BLCRI2AJ.js} +20 -19
  301. package/dist/{support-inbox-S6YO5YZU.js → support-inbox-6HOQYFD2.js} +3 -3
  302. package/dist/{task-enforcement-LXW45H5Z.js → task-enforcement-EF6O2V26.js} +14 -13
  303. package/dist/{task-request-inbox-UCSKDC3R.js → task-request-inbox-OB2KIJWO.js} +1 -1
  304. package/dist/{task-scope-GDLFE26E.js → task-scope-74JBTKJN.js} +17 -15
  305. package/dist/{tasks-crud-W7VGWRUV.js → tasks-crud-ZU6RZDEZ.js} +13 -12
  306. package/dist/{tasks-notify-CT7NWCS4.js → tasks-notify-767DRYAA.js} +14 -13
  307. package/dist/{tasks-review-WCSKOUFW.js → tasks-review-4F6PZZ3B.js} +13 -12
  308. package/dist/{telemetry-upload-FK5WKXVB.js → telemetry-upload-2JM6KIAB.js} +7 -7
  309. package/dist/{token-budget-GBNGSIU3.js → token-budget-NH2RD4YX.js} +3 -3
  310. package/dist/{tool-gates-3IC7DK4R.js → tool-gates-2OZY3GZM.js} +1 -1
  311. package/dist/{tool-gates-GXSYBVK4.js → tool-gates-7PLIOLAL.js} +1 -1
  312. package/dist/{tool-telemetry-VKMRS6MP.js → tool-telemetry-CHCBD4OQ.js} +1 -1
  313. package/dist/tui/App.js +22 -21
  314. package/dist/{tui-data-FTPV2XBQ.js → tui-data-244GF3BI.js} +13 -12
  315. package/dist/{update-support-J6UWPUOC.js → update-support-P2LO3DAB.js} +9 -9
  316. package/dist/work-claims-4QOE7DT2.js +53 -0
  317. package/dist/{work-state-heartbeat-4LDF6DSM.js → work-state-heartbeat-GX3VWWWK.js} +1 -1
  318. package/dist/{worker-gate-35VZINZG.js → worker-gate-62PZATOV.js} +1 -1
  319. package/dist/{workflow-engine-4DA6RSHI.js → workflow-engine-7YIRU62F.js} +2 -2
  320. package/dist/{worktree-H3YFJ3NU.js → worktree-3TUKIZWY.js} +4 -4
  321. package/dist/{worktree-sweep-4EDLLQ2E.js → worktree-sweep-MYQHUXDE.js} +5 -5
  322. package/package.json +6 -2
  323. package/release-notes.json +68 -62
  324. package/dist/chunk-2RQT7TED.js +0 -275
  325. /package/dist/{chunk-7Y6AQWVT.js → chunk-25EN7XXN.js} +0 -0
  326. /package/dist/{chunk-3THNS2T7.js → chunk-62U63R3E.js} +0 -0
  327. /package/dist/{chunk-VS4LPG66.js → chunk-65ZSFW3O.js} +0 -0
  328. /package/dist/{chunk-LKYGSJ2E.js → chunk-BTFDA3UJ.js} +0 -0
  329. /package/dist/{chunk-JRPYLUXH.js → chunk-DAXFAXLN.js} +0 -0
  330. /package/dist/{chunk-3NBWARKC.js → chunk-FLP2BQOA.js} +0 -0
  331. /package/dist/{chunk-CMBF5WCL.js → chunk-GTOMDMJL.js} +0 -0
  332. /package/dist/{chunk-QYECRPGD.js → chunk-JLYHJJHU.js} +0 -0
  333. /package/dist/{chunk-MBBFL2SP.js → chunk-JZBZI36P.js} +0 -0
  334. /package/dist/{chunk-BY7WWPRM.js → chunk-OUIEDJFO.js} +0 -0
  335. /package/dist/{chunk-7DMCAGSC.js → chunk-WM7Y5ZV2.js} +0 -0
  336. /package/dist/{chunk-G2EAYH4U.js → chunk-XM7HJ5SS.js} +0 -0
  337. /package/dist/{chunk-UY6HRDB2.js → chunk-YNPOELAN.js} +0 -0
  338. /package/dist/{core-memory-CMPPHJN5.js → core-memory-EARETDZ6.js} +0 -0
  339. /package/dist/{memory-isolation-ZB5S5HCO.js → memory-isolation-XASOGA7G.js} +0 -0
  340. /package/dist/{oauth-server-NP7KGF7N.js → oauth-server-C3BXAKAW.js} +0 -0
  341. /package/dist/{project-boot-LEZSK3W7.js → project-boot-LCFBQ6NB.js} +0 -0
  342. /package/dist/{wiki-acl-5DKOWOIH.js → wiki-acl-XQH4UBP2.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  writeContinuityCheckpoint
3
- } from "../chunk-BY7WWPRM.js";
3
+ } from "../chunk-OUIEDJFO.js";
4
4
  import {
5
5
  clearCacheState
6
6
  } from "../chunk-6A7P74QV.js";
@@ -9,29 +9,30 @@ import "../chunk-SH45SJQW.js";
9
9
  import {
10
10
  clearActiveAgent,
11
11
  getActiveAgent
12
- } from "../chunk-ZNEBZCZR.js";
12
+ } from "../chunk-QWDZNQXA.js";
13
13
  import "../chunk-2ADYTOHQ.js";
14
14
  import {
15
15
  strictSessionScopeFilter
16
- } from "../chunk-ORNCMRIX.js";
17
- import "../chunk-ESTR7QUP.js";
18
- import "../chunk-FXPAUDCZ.js";
19
- import "../chunk-QFIVK3G5.js";
16
+ } from "../chunk-QX33D4CH.js";
17
+ import "../chunk-BTSWFMEH.js";
18
+ import "../chunk-6MCUXRIP.js";
19
+ import "../chunk-7W6FDHHY.js";
20
+ import "../chunk-IIVFXD6P.js";
20
21
  import "../chunk-WT4RI36X.js";
21
- import "../chunk-C3UAQ3JG.js";
22
+ import "../chunk-CX4MVEM3.js";
22
23
  import "../chunk-KI5PFRG6.js";
23
24
  import "../chunk-EIKATSE4.js";
24
25
  import "../chunk-E23LNUWJ.js";
25
26
  import "../chunk-QAEWWYHL.js";
26
- import "../chunk-EHHMNKOA.js";
27
+ import "../chunk-XKFMNAJ7.js";
27
28
  import "../chunk-GBNB4EWD.js";
28
29
  import "../chunk-UXLO7VHX.js";
29
30
  import "../chunk-DSOQUQTV.js";
30
- import "../chunk-WR75WUEP.js";
31
+ import "../chunk-UI3K73LD.js";
31
32
  import "../chunk-AJIXH5JF.js";
32
33
  import "../chunk-XTWHNLGD.js";
33
34
  import "../chunk-AM7S2TY6.js";
34
- import "../chunk-2FYIMTQE.js";
35
+ import "../chunk-N3JLNMPF.js";
35
36
  import {
36
37
  getSessionKey
37
38
  } from "../chunk-CVYC6DUW.js";
@@ -49,20 +50,20 @@ import "../chunk-GJV3WDWM.js";
49
50
  import "../chunk-MP2AFCGL.js";
50
51
  import {
51
52
  canCoordinate
52
- } from "../chunk-BRLS5OLZ.js";
53
+ } from "../chunk-HSBKV5LB.js";
53
54
  import "../chunk-TKDITWDN.js";
54
55
  import "../chunk-BBMTVAE3.js";
55
56
  import "../chunk-5YEUPUV4.js";
56
- import "../chunk-NO3M2AFM.js";
57
+ import "../chunk-Y7OK5PJE.js";
57
58
  import "../chunk-YYB5PMTK.js";
58
59
  import "../chunk-NJFJWQNN.js";
59
60
  import "../chunk-V3W3SATA.js";
60
61
  import "../chunk-JY5GAZYC.js";
61
62
  import "../chunk-FXU7JOXK.js";
62
63
  import "../chunk-WNBZJSQT.js";
63
- import "../chunk-ZDUO6QBH.js";
64
+ import "../chunk-F3PIHVVY.js";
64
65
  import "../chunk-A7XLR3K7.js";
65
- import "../chunk-VS4LPG66.js";
66
+ import "../chunk-65ZSFW3O.js";
66
67
  import "../chunk-QILQ5FCG.js";
67
68
  import "../chunk-ARX6TAGN.js";
68
69
  import "../chunk-QMSEL5YS.js";
@@ -81,7 +82,7 @@ process.on("unhandledRejection", (err) => {
81
82
  process.exit(1);
82
83
  });
83
84
  try {
84
- const { verifyOrBlock } = await import("../hook-integrity-SGTKBL6W.js");
85
+ const { verifyOrBlock } = await import("../hook-integrity-X3YAVGUW.js");
85
86
  if (!await verifyOrBlock(new URL(import.meta.url).pathname)) process.exit(2);
86
87
  } catch (err) {
87
88
  const code = err?.code;
@@ -99,6 +100,8 @@ if (!process.env.AGENT_ID) {
99
100
  process.env.AGENT_ID = "default";
100
101
  process.env.AGENT_ROLE = "employee";
101
102
  }
103
+ var CONSOLIDATION_ONLY = process.env.EXE_CONSOLIDATION_MODE === "cadence";
104
+ var LOG_TAG = CONSOLIDATION_ONLY ? "[session-consolidate]" : "[session-end]";
102
105
  var timeout = setTimeout(() => {
103
106
  process.exit(0);
104
107
  }, 15e3);
@@ -226,92 +229,96 @@ process.stdin.on("end", async () => {
226
229
  }
227
230
  const data = JSON.parse(input);
228
231
  const agent = getActiveAgent();
229
- try {
230
- const { appendFileSync, mkdirSync } = await import("fs");
231
- const { join, dirname } = await import("path");
232
- const { homedir } = await import("os");
233
- const deathLog = join(homedir(), ".exe-os", "logs", "session-deaths.jsonl");
234
- mkdirSync(dirname(deathLog), { recursive: true });
235
- let daemonAlive = false;
236
- const requestedPort = process.env.EXE_MCP_PORT ?? "";
237
- const requestedPortNumber = Number(requestedPort);
238
- const daemonPort = /^\d{1,5}$/.test(requestedPort) && requestedPortNumber > 0 && requestedPortNumber <= 65535 ? String(requestedPortNumber) : "48739";
239
- const pingController = new AbortController();
240
- const pingTimeout = setTimeout(() => pingController.abort(), 2e3);
241
- pingTimeout.unref();
232
+ if (!CONSOLIDATION_ONLY) {
242
233
  try {
243
- const response = await fetch(`http://127.0.0.1:${daemonPort}/v1/ping`, {
244
- method: "GET",
245
- signal: pingController.signal
246
- });
247
- daemonAlive = response.ok;
248
- } catch {
249
- } finally {
250
- clearTimeout(pingTimeout);
251
- }
252
- const hookUptimeMs = Math.round(process.uptime() * 1e3);
253
- const transcript = readTranscriptExitForensics(data.transcript_path);
254
- const exitReason = inferExitReason(daemonAlive, data, transcript);
255
- const durationMs = transcript.sessionDurationMs ?? hookUptimeMs;
256
- const entry = JSON.stringify({
257
- timestamp: (/* @__PURE__ */ new Date()).toISOString(),
258
- event: "session_exit",
259
- agent: agent.agentId,
260
- role: agent.agentRole,
261
- session: data.session_id,
262
- project: resolveProjectName(),
263
- tmuxSession: process.env.EXE_SESSION ?? process.env.TMUX_PANE ?? "unknown",
264
- tty: process.env.TTY ?? process.env.GPG_TTY ?? "unknown",
265
- hookPid: process.pid,
266
- hookPpid: process.ppid,
267
- // Legacy keys retained for downstream readers; these are hook process IDs.
268
- pid: process.pid,
269
- ppid: process.ppid,
270
- hookUptimeMs,
271
- sessionDurationMs: transcript.sessionDurationMs,
272
- exitReason,
273
- daemonAlive,
274
- memoryRssMB: Math.round(process.memoryUsage.rss() / 1024 / 1024),
275
- transcript
276
- });
277
- appendFileSync(deathLog, entry + "\n");
278
- 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"}
279
- `);
280
- try {
281
- const { recordOrchestrationEvent } = await import("../orchestration-events-GMRGGBMN.js");
282
- await recordOrchestrationEvent({
283
- eventType: "session.exit",
284
- source: "hooks.session-end",
285
- agentId: agent.agentId,
234
+ const { appendFileSync, mkdirSync } = await import("fs");
235
+ const { join, dirname } = await import("path");
236
+ const { homedir } = await import("os");
237
+ const deathLog = join(homedir(), ".exe-os", "logs", "session-deaths.jsonl");
238
+ mkdirSync(dirname(deathLog), { recursive: true });
239
+ let daemonAlive = false;
240
+ const requestedPort = process.env.EXE_MCP_PORT ?? "";
241
+ const requestedPortNumber = Number(requestedPort);
242
+ const daemonPort = /^\d{1,5}$/.test(requestedPort) && requestedPortNumber > 0 && requestedPortNumber <= 65535 ? String(requestedPortNumber) : "48739";
243
+ const pingController = new AbortController();
244
+ const pingTimeout = setTimeout(() => pingController.abort(), 2e3);
245
+ pingTimeout.unref();
246
+ try {
247
+ const response = await fetch(`http://127.0.0.1:${daemonPort}/v1/ping`, {
248
+ method: "GET",
249
+ signal: pingController.signal
250
+ });
251
+ daemonAlive = response.ok;
252
+ } catch {
253
+ } finally {
254
+ clearTimeout(pingTimeout);
255
+ }
256
+ const hookUptimeMs = Math.round(process.uptime() * 1e3);
257
+ const transcript = readTranscriptExitForensics(data.transcript_path);
258
+ const exitReason = inferExitReason(daemonAlive, data, transcript);
259
+ const durationMs = transcript.sessionDurationMs ?? hookUptimeMs;
260
+ const entry = JSON.stringify({
261
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
262
+ event: "session_exit",
263
+ agent: agent.agentId,
264
+ role: agent.agentRole,
265
+ session: data.session_id,
266
+ project: resolveProjectName(),
286
267
  tmuxSession: process.env.EXE_SESSION ?? process.env.TMUX_PANE ?? "unknown",
287
- sessionScope: process.env.EXE_SESSION_NAME?.includes("-") ? process.env.EXE_SESSION_NAME.split("-").pop() : process.env.EXE_SESSION_NAME,
288
- result: exitReason,
289
- durationMs,
290
- payload: {
291
- daemonAlive,
292
- hookUptimeMs,
293
- sessionDurationMs: transcript.sessionDurationMs,
294
- memoryRssMB: Math.round(process.memoryUsage.rss() / 1024 / 1024),
295
- lastAssistantStopReason: transcript.lastAssistantStopReason,
296
- lastSystemSubtype: transcript.lastSystemSubtype,
297
- queuedPrompt: transcript.queuedPrompt
298
- }
268
+ tty: process.env.TTY ?? process.env.GPG_TTY ?? "unknown",
269
+ hookPid: process.pid,
270
+ hookPpid: process.ppid,
271
+ // Legacy keys retained for downstream readers; these are hook process IDs.
272
+ pid: process.pid,
273
+ ppid: process.ppid,
274
+ hookUptimeMs,
275
+ sessionDurationMs: transcript.sessionDurationMs,
276
+ exitReason,
277
+ daemonAlive,
278
+ memoryRssMB: Math.round(process.memoryUsage.rss() / 1024 / 1024),
279
+ transcript
299
280
  });
281
+ appendFileSync(deathLog, entry + "\n");
282
+ 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"}
283
+ `);
284
+ try {
285
+ const { recordOrchestrationEvent } = await import("../orchestration-events-HVG56HJ5.js");
286
+ await recordOrchestrationEvent({
287
+ eventType: "session.exit",
288
+ source: "hooks.session-end",
289
+ agentId: agent.agentId,
290
+ tmuxSession: process.env.EXE_SESSION ?? process.env.TMUX_PANE ?? "unknown",
291
+ sessionScope: process.env.EXE_SESSION_NAME?.includes("-") ? process.env.EXE_SESSION_NAME.split("-").pop() : process.env.EXE_SESSION_NAME,
292
+ result: exitReason,
293
+ durationMs,
294
+ payload: {
295
+ daemonAlive,
296
+ hookUptimeMs,
297
+ sessionDurationMs: transcript.sessionDurationMs,
298
+ memoryRssMB: Math.round(process.memoryUsage.rss() / 1024 / 1024),
299
+ lastAssistantStopReason: transcript.lastAssistantStopReason,
300
+ lastSystemSubtype: transcript.lastSystemSubtype,
301
+ queuedPrompt: transcript.queuedPrompt
302
+ }
303
+ });
304
+ } catch {
305
+ }
300
306
  } catch {
301
307
  }
302
- } catch {
303
308
  }
304
309
  if (agent.agentId) {
305
310
  try {
306
- const { fastDbInit } = await import("../fast-db-init-SCXJXOYX.js");
311
+ const { fastDbInit } = await import("../fast-db-init-GDFJY5UH.js");
307
312
  const client = await fastDbInit({ caller: "hook" });
308
313
  const seScope = strictSessionScopeFilter();
309
314
  const orphanResult = await client.execute({
310
315
  sql: `SELECT title, status FROM tasks WHERE assigned_to = ? AND status IN ('open', 'in_progress')${seScope.sql}`,
311
316
  args: [agent.agentId, ...seScope.args]
312
317
  });
313
- const orphanInfo = orphanResult.rows.length > 0 ? `
314
- Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title)}" (${String(r.status)})`).join(", ")}` : "";
318
+ const openTaskList = orphanResult.rows.map((r) => `"${String(r.title)}" (${String(r.status)})`).join(", ");
319
+ const orphanInfo = orphanResult.rows.length > 0 ? CONSOLIDATION_ONLY ? `
320
+ Still open at checkpoint: ${openTaskList}` : `
321
+ Orphaned tasks at session end: ${openTaskList}` : "";
315
322
  let conversationSummary = "";
316
323
  try {
317
324
  if (data.transcript_path) {
@@ -365,14 +372,19 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
365
372
  args: [agent.agentId, ...seScope.args]
366
373
  });
367
374
  const extraSections = [];
368
- if (orphanInfo) extraSections.push(`## Session-End Warnings${orphanInfo}`);
375
+ if (orphanInfo) {
376
+ extraSections.push(
377
+ `## ${CONSOLIDATION_ONLY ? "Open Tasks At Checkpoint" : "Session-End Warnings"}${orphanInfo}`
378
+ );
379
+ }
369
380
  if (conversationSummary) extraSections.push(conversationSummary);
370
381
  await writeContinuityCheckpoint({
371
382
  agentId: agent.agentId,
372
383
  agentRole: agent.agentRole,
373
384
  sessionId: data.session_id,
374
385
  projectName,
375
- reason: "session-end",
386
+ // Cadence runs are mid-session snapshots, not the final commit.
387
+ reason: CONSOLIDATION_ONLY ? "periodic" : "session-end",
376
388
  memories: recent.rows,
377
389
  tasks: taskRows.rows,
378
390
  maxSamples: 12,
@@ -385,7 +397,7 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
385
397
  raw_text: conversationSummary.slice(0, 8e3),
386
398
  agent_id: agent.agentId,
387
399
  agent_role: agent.agentRole,
388
- tool_name: "SessionEnd",
400
+ tool_name: CONSOLIDATION_ONLY ? "SessionConsolidate" : "SessionEnd",
389
401
  project_name: projectName,
390
402
  session_id: data.session_id,
391
403
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
@@ -396,12 +408,12 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
396
408
  }
397
409
  }
398
410
  try {
399
- const { clearSessionFileReads } = await import("../git-staleness-S4NDR7NX.js");
411
+ const { clearSessionFileReads } = await import("../git-staleness-NN6RWNLW.js");
400
412
  await clearSessionFileReads(data.session_id);
401
413
  } catch {
402
414
  }
403
415
  try {
404
- const { DreamingEngine } = await import("../dreaming-JMUXBAPU.js");
416
+ const { DreamingEngine } = await import("../dreaming-FVXSIIWV.js");
405
417
  const engine = new DreamingEngine();
406
418
  const dreamResult = await engine.runDreamCycle(agent.agentId);
407
419
  let promoted = 0;
@@ -434,7 +446,7 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
434
446
  }
435
447
  const driftLabel = dreamResult.drift.score > 0.8 ? "critical" : dreamResult.drift.score > 0.5 ? "warning" : "healthy";
436
448
  process.stderr.write(
437
- `[session-end] Dream cycle: ${dreamResult.patterns.length} patterns, ${promoted} behaviors promoted, drift=${dreamResult.drift.score.toFixed(2)} (${driftLabel})
449
+ `${LOG_TAG} Dream cycle: ${dreamResult.patterns.length} patterns, ${promoted} behaviors promoted, drift=${dreamResult.drift.score.toFixed(2)} (${driftLabel})
438
450
  `
439
451
  );
440
452
  } catch {
@@ -446,13 +458,13 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
446
458
  const avgAttempts = summaries.reduce((a, s) => a + s.totalAttempts, 0) / summaries.length;
447
459
  const totalWastedMs = summaries.reduce((a, s) => a + s.wastedDurationMs, 0);
448
460
  process.stderr.write(
449
- `[session-end] Investigations: ${summaries.length} bugs tracked, avg ${avgAttempts.toFixed(1)} attempts per bug, ${Math.round(totalWastedMs / 1e3)}s wasted on failed attempts
461
+ `${LOG_TAG} Investigations: ${summaries.length} bugs tracked, avg ${avgAttempts.toFixed(1)} attempts per bug, ${Math.round(totalWastedMs / 1e3)}s wasted on failed attempts
450
462
  `
451
463
  );
452
464
  }
453
465
  } catch {
454
466
  }
455
- if (!canCoordinate(agent.agentId, agent.agentRole)) {
467
+ if (!CONSOLIDATION_ONLY && !canCoordinate(agent.agentId, agent.agentRole)) {
456
468
  const inProgress = orphanResult.rows.filter((r) => String(r.status) === "in_progress");
457
469
  if (inProgress.length > 0) {
458
470
  const titles = inProgress.map((r) => `"${String(r.title)}"`).join(", ");
@@ -477,7 +489,7 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
477
489
  parts.push(`Left in_progress (no matching commits, needs triage): ${leftInProgress.join(", ")}`);
478
490
  }
479
491
  try {
480
- const { writeNotification } = await import("../notifications-UXJUAP3C.js");
492
+ const { writeNotification } = await import("../notifications-S4GU22GF.js");
481
493
  await writeNotification({
482
494
  agentId: agent.agentId,
483
495
  agentRole: agent.agentRole,
@@ -514,7 +526,7 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
514
526
  } catch {
515
527
  }
516
528
  }
517
- if (agent.agentId !== "default") {
529
+ if (!CONSOLIDATION_ONLY && agent.agentId !== "default") {
518
530
  try {
519
531
  const { clearCanaryToken } = await import("../browser-sanitizer-Q3GWRYKI.js");
520
532
  clearCanaryToken(agent.agentId);
@@ -528,8 +540,10 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
528
540
  } catch {
529
541
  }
530
542
  }
531
- clearActiveAgent();
532
- clearCacheState(getSessionKey());
543
+ if (!CONSOLIDATION_ONLY) {
544
+ clearActiveAgent();
545
+ clearCacheState(getSessionKey());
546
+ }
533
547
  } catch (err) {
534
548
  console.error(
535
549
  "[exe-os:hook:session-end] main:",
@@ -20,7 +20,7 @@ process.on("unhandledRejection", (err) => {
20
20
  process.exit(1);
21
21
  });
22
22
  try {
23
- const { verifyOrBlock } = await import("../hook-integrity-SGTKBL6W.js");
23
+ const { verifyOrBlock } = await import("../hook-integrity-X3YAVGUW.js");
24
24
  if (!await verifyOrBlock(new URL(import.meta.url).pathname)) process.exit(2);
25
25
  } catch (err) {
26
26
  const code = err?.code;
@@ -56,9 +56,9 @@ process.stdin.on("data", (chunk) => {
56
56
  process.stdin.on("end", async () => {
57
57
  let failed = false;
58
58
  try {
59
- const { getActiveAgent } = await import("../active-agent-MGF7J3HB.js");
59
+ const { getActiveAgent } = await import("../active-agent-V3CUDNED.js");
60
60
  const { getProjectName } = await import("../project-name-ILJTETUE.js");
61
- const { getCurrentSessionScope } = await import("../task-scope-GDLFE26E.js");
61
+ const { getCurrentSessionScope } = await import("../task-scope-74JBTKJN.js");
62
62
  const { canCoordinate } = await import("../lib/employees.js");
63
63
  const data = JSON.parse(input);
64
64
  const projectName = getProjectName(data.cwd || void 0);
@@ -90,7 +90,7 @@ process.stdin.on("end", async () => {
90
90
  if (daemonDegraded) {
91
91
  process.stderr.write("[session-start] WARNING: daemon/DB unavailable after retries \u2014 booting in degraded mode (no memory context)\n");
92
92
  try {
93
- const { recordOrchestrationEvent } = await import("../orchestration-events-GMRGGBMN.js");
93
+ const { recordOrchestrationEvent } = await import("../orchestration-events-HVG56HJ5.js");
94
94
  void recordOrchestrationEvent({
95
95
  eventType: "mcp.unreachable",
96
96
  source: "session-start.hook",
@@ -114,12 +114,12 @@ process.stdin.on("end", async () => {
114
114
  }
115
115
  if (!daemonDegraded) {
116
116
  try {
117
- const { fastDbInit } = await import("../fast-db-init-SCXJXOYX.js");
117
+ const { fastDbInit } = await import("../fast-db-init-GDFJY5UH.js");
118
118
  await fastDbInit({ caller: "hook" });
119
119
  } catch {
120
120
  try {
121
121
  await new Promise((resolve) => setTimeout(resolve, 750));
122
- const { fastDbInit } = await import("../fast-db-init-SCXJXOYX.js");
122
+ const { fastDbInit } = await import("../fast-db-init-GDFJY5UH.js");
123
123
  await fastDbInit({ caller: "hook" });
124
124
  } catch {
125
125
  daemonDegraded = true;
@@ -177,7 +177,7 @@ process.stdin.on("end", async () => {
177
177
  `
178
178
  );
179
179
  try {
180
- const { recordOrchestrationEvent } = await import("../orchestration-events-GMRGGBMN.js");
180
+ const { recordOrchestrationEvent } = await import("../orchestration-events-HVG56HJ5.js");
181
181
  void recordOrchestrationEvent({
182
182
  eventType: "session.identity_rebind_refused",
183
183
  source: "session-start.hook",
@@ -207,7 +207,7 @@ process.stdin.on("end", async () => {
207
207
  });
208
208
  }
209
209
  try {
210
- const { recordOrchestrationEvent } = await import("../orchestration-events-GMRGGBMN.js");
210
+ const { recordOrchestrationEvent } = await import("../orchestration-events-HVG56HJ5.js");
211
211
  void recordOrchestrationEvent({
212
212
  eventType: "session.born",
213
213
  source: "session-start.hook",
@@ -224,7 +224,7 @@ process.stdin.on("end", async () => {
224
224
  if (daemonDegraded) {
225
225
  let degradedContext = "## \u26A0\uFE0F Degraded Boot\nThe daemon/MCP was unreachable **at boot time** (checked at " + (/* @__PURE__ */ new Date()).toISOString() + "). This is a point-in-time snapshot \u2014 the MCP server typically finishes connecting a few seconds later, so by the time you read this it is probably already live.\n\n**Before telling the user MCP is down or asking them to run `/mcp`, ALWAYS verify the current state by calling `mcp_ping` (or any exe-os MCP tool) first.** Only advise reconnecting if that call actually fails. This session simply started without memory context; if MCP tools fail later, retry once before reporting an issue.\n";
226
226
  try {
227
- const { getActiveAgent: getAgent } = await import("../active-agent-MGF7J3HB.js");
227
+ const { getActiveAgent: getAgent } = await import("../active-agent-V3CUDNED.js");
228
228
  const ag = getAgent();
229
229
  if (ag.agentId !== "default") {
230
230
  degradedContext = `## Your Identity
@@ -246,7 +246,7 @@ You are **${ag.agentId}**. The daemon was degraded at boot \u2014 memory context
246
246
  if (source === "resume") {
247
247
  header = "## Resuming Session\nHere's where you left off:";
248
248
  try {
249
- const { buildCatchupBrief } = await import("../catchup-brief-PMXTCASA.js");
249
+ const { buildCatchupBrief } = await import("../catchup-brief-3BEOL7EV.js");
250
250
  const brief = await buildCatchupBrief(
251
251
  agentId,
252
252
  projectName,
@@ -261,14 +261,14 @@ You are **${ag.agentId}**. The daemon was degraded at boot \u2014 memory context
261
261
  header = "## Memory Brief\nRecent memories from this project:";
262
262
  }
263
263
  try {
264
- const { detectStaleFiles, formatStaleFileWarning } = await import("../git-staleness-S4NDR7NX.js");
264
+ const { detectStaleFiles, formatStaleFileWarning } = await import("../git-staleness-NN6RWNLW.js");
265
265
  const staleFiles = await detectStaleFiles(agentId, data.cwd || process.cwd());
266
266
  const warning = formatStaleFileWarning(staleFiles);
267
267
  if (warning) extraContext += `${extraContext.length > 0 ? "\n\n" : ""}${warning}`;
268
268
  } catch {
269
269
  }
270
- const { queryTaskRows } = await import("../tasks-crud-W7VGWRUV.js");
271
- const { buildReviewSections } = await import("../boot-review-sections-OBVRXXSF.js");
270
+ const { queryTaskRows } = await import("../tasks-crud-ZU6RZDEZ.js");
271
+ const { buildReviewSections } = await import("../boot-review-sections-7CNQTAYR.js");
272
272
  const [taskResult, reviewSections] = await Promise.all([
273
273
  sessionScope ? queryTaskRows({
274
274
  assignedTo: agentId,
@@ -315,7 +315,7 @@ flow, so bug fixes are fast.`;
315
315
  `;
316
316
  if (agentId !== "default" && !daemonDegraded) {
317
317
  try {
318
- const { buildEmployeeBootBrief } = await import("../employee-boot-brief-HN63D2BY.js");
318
+ const { buildEmployeeBootBrief } = await import("../employee-boot-brief-OYMSHFHA.js");
319
319
  const memoryBrief = await buildEmployeeBootBrief({
320
320
  agentId,
321
321
  cwd: data.cwd || process.cwd(),
@@ -338,7 +338,7 @@ flow, so bug fixes are fast.`;
338
338
  `;
339
339
  if (agentId !== "default" && !daemonDegraded) {
340
340
  try {
341
- const { readLatestCheckpoint } = await import("../tasks-crud-W7VGWRUV.js");
341
+ const { readLatestCheckpoint } = await import("../tasks-crud-ZU6RZDEZ.js");
342
342
  const checkpoint = await readLatestCheckpoint(agentId, {
343
343
  sessionScope: sessionScope ?? null,
344
344
  callerSession: process.env.EXE_SESSION_NAME ?? null,
@@ -425,7 +425,7 @@ ${phase.label}. Focus: ${phase.focus}. This is guidance, not a blocker; the user
425
425
  }
426
426
  if (source !== "resume" && agentId !== "default") {
427
427
  try {
428
- const { getPendingProspective, markSurfaced } = await import("../prospective-memory-QLHSAPSG.js");
428
+ const { getPendingProspective, markSurfaced } = await import("../prospective-memory-G5VK5GCD.js");
429
429
  const due = await getPendingProspective(agentId, { projectName, limit: 5 });
430
430
  if (due.length > 0) {
431
431
  const now = Date.now();