@askexenow/exe-os 0.9.364 → 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 (433) hide show
  1. package/deploy/compose/.env.customer.example +36 -1
  2. package/deploy/compose/.env.example +39 -1
  3. package/deploy/compose/docker-compose.yml +131 -19
  4. package/deploy/compose/generate-env.ts +65 -1
  5. package/deploy/stack-manifests/v0.9.json +117 -2
  6. package/dist/.dist-verified.json +3 -3
  7. package/dist/{active-agent-WL3VEPS3.js → active-agent-R6Q7UEUD.js} +6 -6
  8. package/dist/{active-agent-MVEEEKUD.js → active-agent-V3CUDNED.js} +6 -6
  9. package/dist/{agent-defs-generator-MLQ4ULA2.js → agent-defs-generator-MLPRGY75.js} +5 -5
  10. package/dist/agent-heartbeat-CQPGJIFF.js +13 -0
  11. package/dist/{agent-loop-E7RZCFDB.js → agent-loop-FOK2IRZQ.js} +1 -1
  12. package/dist/{agentic-ontology-X3JMWNAM.js → agentic-ontology-5FMQWGDZ.js} +1 -1
  13. package/dist/{artifact-backup-6VQ2332X.js → artifact-backup-767STHSW.js} +1 -1
  14. package/dist/{backfill-gate-BWFX6B55.js → backfill-gate-VX2RZTQV.js} +2 -2
  15. package/dist/{backfill-metadata-FFDTWSGA.js → backfill-metadata-YXUMCKRV.js} +7 -7
  16. package/dist/{background-jobs-EB4BPQMT.js → background-jobs-LTPWCMA3.js} +2 -2
  17. package/dist/{backup-verify-BZQ5RI5I.js → backup-verify-GYHKAX7K.js} +3 -3
  18. package/dist/{behavior-injection-U7FGR6VM.js → behavior-injection-7VGYY2KO.js} +13 -12
  19. package/dist/{behaviors-NLOMQW34.js → behaviors-O6HKTSOF.js} +12 -11
  20. package/dist/bin/age-ontology-load.js +2 -2
  21. package/dist/bin/agentic-ontology-backfill.js +9 -9
  22. package/dist/bin/agentic-reflection-backfill.js +10 -10
  23. package/dist/bin/agentic-semantic-label.js +9 -9
  24. package/dist/bin/backfill-conversations.js +10 -9
  25. package/dist/bin/backfill-responses.js +10 -9
  26. package/dist/bin/backfill-vectors.js +14 -13
  27. package/dist/bin/bulk-sync-postgres.js +19 -18
  28. package/dist/bin/cc-doctor.js +11 -9
  29. package/dist/bin/cleanup-stale-review-tasks.js +23 -21
  30. package/dist/bin/cli.js +25 -25
  31. package/dist/bin/deferred-daemon-restart.js +105 -100
  32. package/dist/bin/exe-agent-config.js +5 -5
  33. package/dist/bin/exe-agent.js +258 -20
  34. package/dist/bin/exe-assign.js +12 -11
  35. package/dist/bin/exe-boot.js +49 -46
  36. package/dist/bin/exe-call.js +7 -7
  37. package/dist/bin/exe-cloud.js +21 -20
  38. package/dist/bin/exe-config-dump.js +5 -5
  39. package/dist/bin/exe-dispatch.js +24 -22
  40. package/dist/bin/exe-doctor.js +10 -9
  41. package/dist/bin/exe-export-behaviors.js +14 -13
  42. package/dist/bin/exe-forget.js +9 -9
  43. package/dist/bin/exe-gateway.js +9 -9
  44. package/dist/bin/exe-grant.js +5 -5
  45. package/dist/bin/exe-healthcheck.js +11 -9
  46. package/dist/bin/exe-heartbeat.js +29 -27
  47. package/dist/bin/exe-kill.js +27 -25
  48. package/dist/bin/exe-launch-agent.js +35 -33
  49. package/dist/bin/exe-mcp.js +5 -5
  50. package/dist/bin/exe-memory-reads.js +7 -7
  51. package/dist/bin/exe-new-employee.js +11 -11
  52. package/dist/bin/exe-os-mcp-proxy.js +5 -5
  53. package/dist/bin/exe-pending-messages.js +24 -22
  54. package/dist/bin/exe-pending-notifications.js +23 -21
  55. package/dist/bin/exe-pending-reviews.js +24 -22
  56. package/dist/bin/exe-rename.js +7 -7
  57. package/dist/bin/exe-review.js +26 -24
  58. package/dist/bin/exe-search.js +8 -8
  59. package/dist/bin/exe-session-cleanup.js +28 -26
  60. package/dist/bin/exe-settings.js +20 -19
  61. package/dist/bin/exe-start-codex.js +28 -19
  62. package/dist/bin/exe-start-opencode.js +15 -14
  63. package/dist/bin/exe-status.js +25 -23
  64. package/dist/bin/exe-support.js +4 -4
  65. package/dist/bin/exe-team.js +6 -6
  66. package/dist/bin/exe-watchdog.js +16 -6
  67. package/dist/bin/git-sweep.js +32 -22
  68. package/dist/bin/graph-backfill.js +9 -9
  69. package/dist/bin/graph-export.js +8 -8
  70. package/dist/bin/import-history.js +12 -12
  71. package/dist/bin/install.js +107 -102
  72. package/dist/bin/intercom-check.js +5 -5
  73. package/dist/bin/mcp-sessions.js +2 -2
  74. package/dist/bin/orchestration-metrics.js +6 -6
  75. package/dist/bin/postgres-agentic-reflection-backfill.js +4 -4
  76. package/dist/bin/postgres-agentic-semantic-backfill.js +3 -3
  77. package/dist/bin/pre-publish.js +1 -1
  78. package/dist/bin/reconcile-backlog.js +2 -2
  79. package/dist/bin/registry-proxy.js +1 -1
  80. package/dist/bin/scan-tasks.js +23 -21
  81. package/dist/bin/setup.js +3 -3
  82. package/dist/bin/shard-migrate.js +8 -8
  83. package/dist/bin/stack-update.js +115 -40
  84. package/dist/bin/verify-stack.js +6 -1
  85. package/dist/bin/vps-health-gate.js +1 -1
  86. package/dist/{boot-generation-LGWKWMCF.js → boot-generation-EZ2Y74IG.js} +5 -5
  87. package/dist/{boot-review-sections-IXBD7UGL.js → boot-review-sections-7CNQTAYR.js} +22 -20
  88. package/dist/{branch-hygiene-UYHJ5SC5.js → branch-hygiene-HFJ3HA62.js} +1 -1
  89. package/dist/{branding-J2MTHQUP.js → branding-GH43W3PU.js} +2 -2
  90. package/dist/build-manifest.json +1072 -1032
  91. package/dist/{capability-cards-3OGBIJRM.js → capability-cards-ZTFMK4VJ.js} +4 -4
  92. package/dist/{capacity-monitor-6VDEATYE.js → capacity-monitor-B2XU4YHP.js} +24 -22
  93. package/dist/{catchup-brief-XYX5SOC6.js → catchup-brief-3BEOL7EV.js} +27 -25
  94. package/dist/{chunk-H5G2VUIX.js → chunk-25EN7XXN.js} +6 -6
  95. package/dist/{chunk-SCGQOY5F.js → chunk-267QB6VB.js} +1 -1
  96. package/dist/{chunk-UXX2JSZO.js → chunk-2ADYTOHQ.js} +20 -1
  97. package/dist/{chunk-7ZBIZFC3.js → chunk-2CWS374F.js} +1 -1
  98. package/dist/{chunk-QY6B23U2.js → chunk-2IZH6W73.js} +3 -3
  99. package/dist/{chunk-OJ56HXDB.js → chunk-3CIMDFXG.js} +1 -1
  100. package/dist/{chunk-B5T43JSQ.js → chunk-4DJDC4Y2.js} +13 -13
  101. package/dist/{chunk-6BDSDDKT.js → chunk-4WOOCTON.js} +3 -3
  102. package/dist/{chunk-P7JLMFKX.js → chunk-52CFP2AV.js} +1 -1
  103. package/dist/{chunk-Y2DUIE6X.js → chunk-53LCVVX5.js} +2 -2
  104. package/dist/{chunk-CAV64C4J.js → chunk-5CH6XKVC.js} +2 -2
  105. package/dist/{chunk-6WBEFNO4.js → chunk-65ZSFW3O.js} +1 -1
  106. package/dist/{chunk-AU7AVWTM.js → chunk-66BFQOWR.js} +4 -4
  107. package/dist/{chunk-HJQILEBL.js → chunk-6MCUXRIP.js} +1 -1
  108. package/dist/{chunk-RKUGAHPO.js → chunk-6NJURKRG.js} +1 -1
  109. package/dist/{chunk-XE23TMKN.js → chunk-7W5LCREK.js} +82 -14
  110. package/dist/{chunk-U4KDN5B7.js → chunk-7W6FDHHY.js} +1 -1
  111. package/dist/{chunk-E6ORBQHP.js → chunk-AAMGHW5W.js} +1 -0
  112. package/dist/{chunk-ZT5PSVWW.js → chunk-AE3PYLLS.js} +11 -11
  113. package/dist/{chunk-G4XMAGTW.js → chunk-AEVE654G.js} +2 -2
  114. package/dist/{chunk-JCVDT3DG.js → chunk-ALKYXAMB.js} +5 -5
  115. package/dist/{chunk-74H5NWLY.js → chunk-ALYI3P5D.js} +2 -2
  116. package/dist/{chunk-FXPWMPU2.js → chunk-BNHAZ65R.js} +42 -50
  117. package/dist/{chunk-UCSD67VW.js → chunk-BQYQES2Z.js} +14 -14
  118. package/dist/{chunk-7WVR5UQF.js → chunk-BTMX2D4X.js} +12 -12
  119. package/dist/chunk-BTSWFMEH.js +14 -0
  120. package/dist/{chunk-W33NLSKN.js → chunk-BY3V5CLX.js} +6 -5
  121. package/dist/{chunk-Z75FBAP2.js → chunk-CDUB5Q6J.js} +1 -1
  122. package/dist/{chunk-W3Q53NBI.js → chunk-CKKLSY7B.js} +299 -26
  123. package/dist/{chunk-NQKZKOYF.js → chunk-CTPG4KYZ.js} +1 -1
  124. package/dist/{chunk-VFYF7EMB.js → chunk-CW2UCKHS.js} +2 -2
  125. package/dist/{chunk-RSDCOZVM.js → chunk-CWBFOAGM.js} +2 -2
  126. package/dist/{chunk-HJVXKDEK.js → chunk-CX4MVEM3.js} +1 -1
  127. package/dist/{chunk-X24VCGZA.js → chunk-CYNL3ZFD.js} +3 -3
  128. package/dist/{chunk-YNR3DSAF.js → chunk-DTTISDTI.js} +2 -2
  129. package/dist/{chunk-6NGFGT23.js → chunk-DXCTHNEF.js} +57 -25
  130. package/dist/{chunk-MM45YT2B.js → chunk-E5HAY3DQ.js} +1 -1
  131. package/dist/{chunk-KSVLBATT.js → chunk-E5QQZDQN.js} +53 -0
  132. package/dist/{chunk-TLBAZU3V.js → chunk-EDZ5URGR.js} +1 -1
  133. package/dist/{chunk-J2OTTJWG.js → chunk-F3PIHVVY.js} +2 -2
  134. package/dist/{chunk-4DJCHH5R.js → chunk-FSIAGX55.js} +1 -1
  135. package/dist/{chunk-HEFM2DBN.js → chunk-GTOMDMJL.js} +21 -27
  136. package/dist/{chunk-6G6JGJD3.js → chunk-GUOMZ3JM.js} +2 -2
  137. package/dist/{chunk-G6EUAI67.js → chunk-H37FSTF2.js} +1 -1
  138. package/dist/{chunk-IR2MLURD.js → chunk-H74466TM.js} +1 -1
  139. package/dist/{chunk-ZACPAM2C.js → chunk-HHGOCBVQ.js} +4 -4
  140. package/dist/{chunk-KAF66DIP.js → chunk-HSBKV5LB.js} +43 -12
  141. package/dist/{chunk-2HRAVECR.js → chunk-IIVFXD6P.js} +1 -1
  142. package/dist/{chunk-JLG3GAQS.js → chunk-J5EYOBFF.js} +1 -1
  143. package/dist/{chunk-M4REI3JS.js → chunk-J6VQ7HYV.js} +5 -5
  144. package/dist/{chunk-YWFFAM2S.js → chunk-JFOZHVNO.js} +1 -1
  145. package/dist/{chunk-P5OPYQZE.js → chunk-JJRZE2LD.js} +2 -2
  146. package/dist/{chunk-DSQCXCPS.js → chunk-JOKKIFRN.js} +3 -3
  147. package/dist/{chunk-X73CND7J.js → chunk-JTB5V6BV.js} +1 -1
  148. package/dist/{chunk-JWLZQSHW.js → chunk-K2OFS57E.js} +2 -2
  149. package/dist/{chunk-4LYIZD3H.js → chunk-KDD26FUY.js} +1 -1
  150. package/dist/{chunk-L3TB7CC3.js → chunk-KM6XSFHP.js} +12 -2
  151. package/dist/{chunk-OFQBR26Y.js → chunk-KOYGRP2L.js} +3 -3
  152. package/dist/{chunk-BIMCKCGZ.js → chunk-LIZ3QQGK.js} +1 -1
  153. package/dist/chunk-LNOS24GV.js +214 -0
  154. package/dist/{chunk-6LNT6NCB.js → chunk-LW5WRSDD.js} +2 -2
  155. package/dist/{chunk-4KFTA7U7.js → chunk-MLPPG2OG.js} +2 -2
  156. package/dist/{chunk-M2IZ3TQT.js → chunk-MQ3N4KZY.js} +1 -1
  157. package/dist/{chunk-34XAUB2R.js → chunk-N3JLNMPF.js} +3 -3
  158. package/dist/{chunk-BRZR76TS.js → chunk-NJFJWQNN.js} +49 -14
  159. package/dist/{chunk-Y4JCCHHJ.js → chunk-NPND34FS.js} +4 -4
  160. package/dist/{chunk-TPXBX2LD.js → chunk-O3F5P6Z5.js} +2 -2
  161. package/dist/{chunk-FLK5IS6R.js → chunk-OADOH45L.js} +3 -3
  162. package/dist/{chunk-6ML32VHG.js → chunk-OISZ2I4X.js} +5 -5
  163. package/dist/{chunk-XI2BLVH6.js → chunk-OPS7KUFV.js} +3 -3
  164. package/dist/{chunk-GVZI4MK2.js → chunk-OUIEDJFO.js} +1 -1
  165. package/dist/{chunk-CA7JP44I.js → chunk-P5XER5QY.js} +3 -3
  166. package/dist/{chunk-5M6LXPR4.js → chunk-P5XTVIEC.js} +3 -3
  167. package/dist/{chunk-6TF4ZOXP.js → chunk-P76VYS6V.js} +207 -60
  168. package/dist/{chunk-XOFIXD5U.js → chunk-PFOJX6CR.js} +5 -5
  169. package/dist/chunk-PFR6EOUY.js +356 -0
  170. package/dist/{agent-heartbeat-I5UPGXAU.js → chunk-PHUHIVD5.js} +4 -5
  171. package/dist/{chunk-VVXXMY6I.js → chunk-PQ6NRLKL.js} +1 -1
  172. package/dist/{chunk-J2W3XZHV.js → chunk-PR3AHVFW.js} +5 -5
  173. package/dist/{chunk-3NETEIM6.js → chunk-PS4NA7PM.js} +1458 -968
  174. package/dist/{chunk-E5TFF3M7.js → chunk-PS6VPW64.js} +1 -1
  175. package/dist/{chunk-OZIDGXKH.js → chunk-PVEM537A.js} +2 -2
  176. package/dist/{chunk-PX2OHZKN.js → chunk-PWCZFIQH.js} +4 -4
  177. package/dist/{chunk-EKOWJXHN.js → chunk-QMSEL5YS.js} +77 -23
  178. package/dist/{chunk-Z6VZ62MY.js → chunk-QS6HI4B6.js} +34 -11
  179. package/dist/{chunk-GETICKB4.js → chunk-QWDZNQXA.js} +3 -3
  180. package/dist/{chunk-ZVZEYHWY.js → chunk-QX33D4CH.js} +32 -38
  181. package/dist/{chunk-TOLJH6XP.js → chunk-R3H3WW7H.js} +2 -2
  182. package/dist/chunk-R4AROSYI.js +496 -0
  183. package/dist/{chunk-CE323JHD.js → chunk-RIECV7SR.js} +1 -1
  184. package/dist/{chunk-IANRPLHA.js → chunk-RLDMUSRM.js} +2 -2
  185. package/dist/{chunk-LYXICKAH.js → chunk-SBJV2PCU.js} +1 -1
  186. package/dist/{chunk-U6E3CLKI.js → chunk-SFKIZYKK.js} +3 -3
  187. package/dist/{chunk-7JR2IRBY.js → chunk-TCR7NBHD.js} +6 -6
  188. package/dist/{chunk-DVPBCGC2.js → chunk-TJSTWACD.js} +2 -2
  189. package/dist/chunk-TX3Q2GIL.js +97 -0
  190. package/dist/{chunk-V3K6FLAS.js → chunk-TZFOWWPM.js} +1 -1
  191. package/dist/{chunk-4FNUBXYO.js → chunk-UI3K73LD.js} +1 -1
  192. package/dist/{chunk-5WADTD5Y.js → chunk-URHJDUWO.js} +1 -1
  193. package/dist/{chunk-K2HYCBAG.js → chunk-V3ISR2QT.js} +17 -6
  194. package/dist/{chunk-UPCXDJ2S.js → chunk-VMJ2UH4S.js} +1 -1
  195. package/dist/{chunk-JQTM2UFN.js → chunk-VV5EZZNT.js} +1 -1
  196. package/dist/{chunk-AA6AD7OM.js → chunk-VY3QUSWS.js} +10 -10
  197. package/dist/{chunk-OPU3NYOO.js → chunk-W2IRQJ6R.js} +12 -0
  198. package/dist/{chunk-5G46JZTE.js → chunk-WBKIU6UJ.js} +3 -3
  199. package/dist/{chunk-EUEESRS6.js → chunk-WCDIDSLR.js} +3 -3
  200. package/dist/{chunk-43PHKRHR.js → chunk-WSLFGJBA.js} +2 -2
  201. package/dist/{chunk-DNRLIHUO.js → chunk-WYVBWDFY.js} +1 -1
  202. package/dist/{chunk-BU36IRW2.js → chunk-X2P43TB2.js} +1 -1
  203. package/dist/{chunk-UIUO3N5Y.js → chunk-XA4EU3CW.js} +2 -2
  204. package/dist/{chunk-AIVK4A5Y.js → chunk-XAMLDTRA.js} +4 -4
  205. package/dist/{chunk-ZSQNPN2W.js → chunk-XKFMNAJ7.js} +1 -1
  206. package/dist/{chunk-5KLQCGI5.js → chunk-XKZD5FGK.js} +55 -0
  207. package/dist/{chunk-AYMOVFBG.js → chunk-XM7HJ5SS.js} +1 -1
  208. package/dist/{chunk-HKQH4R5X.js → chunk-XSXZVKJ7.js} +6 -6
  209. package/dist/{chunk-J4VETNHT.js → chunk-XTEKGO44.js} +1 -1
  210. package/dist/{chunk-2ROXEOGE.js → chunk-XTWHNLGD.js} +1 -1
  211. package/dist/{chunk-MR56CIB5.js → chunk-XUGOVOID.js} +3 -3
  212. package/dist/{chunk-T26JNDO3.js → chunk-XVRQZCTS.js} +2 -2
  213. package/dist/{chunk-O3OGCHUZ.js → chunk-Y4JVM3SI.js} +1 -1
  214. package/dist/{chunk-AUIXAFYX.js → chunk-Y7OK5PJE.js} +5 -5
  215. package/dist/{chunk-PGJG5TCQ.js → chunk-YA4PM3MV.js} +3 -3
  216. package/dist/{chunk-J7EXACGN.js → chunk-YYA5LXCT.js} +1 -1
  217. package/dist/{chunk-JVLQJWUG.js → chunk-YYLVHUYZ.js} +1 -1
  218. package/dist/{chunk-TF5T2ASS.js → chunk-Z5Z3MYUW.js} +3 -3
  219. package/dist/chunk-ZNUJFX7L.js +135 -0
  220. package/dist/{chunk-K5RPFS6A.js → chunk-ZSHLY5BS.js} +1 -1
  221. package/dist/{chunk-ECVWCFY4.js → chunk-ZVTKWWLV.js} +2 -2
  222. package/dist/{chunk-ASBMFQAY.js → chunk-ZZ3JQM5I.js} +9 -9
  223. package/dist/{chunk-JN7IFPIQ.js → chunk-ZZXMB5F2.js} +1 -1
  224. package/dist/{cleanup-graph-garbage-MLRFYWDJ.js → cleanup-graph-garbage-XDIX3HLN.js} +9 -9
  225. package/dist/{cloud-sync-command-LU5KLLQY.js → cloud-sync-command-VPYE4FIH.js} +2 -2
  226. package/dist/{cloud-sync-db-init-G7LBCE7T.js → cloud-sync-db-init-NSDBTFGI.js} +1 -1
  227. package/dist/{cloud-sync-shutdown-4IZXMEKK.js → cloud-sync-shutdown-6OUYTG4T.js} +4 -4
  228. package/dist/{co-activation-FCEZYVGI.js → co-activation-EAAKGGZH.js} +4 -4
  229. package/dist/{co-occurrence-5WBK7HPH.js → co-occurrence-OFVF55RX.js} +7 -7
  230. package/dist/{code-context-index-4EQJW44K.js → code-context-index-XOP6TLPZ.js} +5 -4
  231. package/dist/codex-consolidation-PPXNBXCV.js +96 -0
  232. package/dist/{conversation-entity-extractor-JXAKVKF2.js → conversation-entity-extractor-ZR5GFKAI.js} +3 -3
  233. package/dist/{conversation-wiki-populator-6BCICVAB.js → conversation-wiki-populator-EBUZXYEU.js} +1 -1
  234. package/dist/{crdt-sync-RTAWVLV4.js → crdt-sync-FGH4SBFW.js} +1 -1
  235. package/dist/{crm-webhook-EWALI4C5.js → crm-webhook-PJATR2DC.js} +2 -2
  236. package/dist/{cto-delegation-gate-HU4YUH7C.js → cto-delegation-gate-PO4LSSQ4.js} +38 -21
  237. package/dist/{daemon-auth-LXP5I6BA.js → daemon-auth-SSPY5ODS.js} +2 -2
  238. package/dist/{daemon-orchestration-35RSNUNI.js → daemon-orchestration-IJFZFQUX.js} +27 -25
  239. package/dist/{daemon-ready-ZC2ANOR3.js → daemon-ready-MKBH4QWD.js} +1 -1
  240. package/dist/db-integrity-events-5DTASXJF.js +22 -0
  241. package/dist/{db-restore-events-NBARRGAC.js → db-restore-events-2FI4ZMKA.js} +1 -1
  242. package/dist/{doc-graph-extractor-PTNIPSDV.js → doc-graph-extractor-CAYUAM5A.js} +7 -7
  243. package/dist/{documents-BUFAJHVZ.js → documents-W2G477QE.js} +12 -11
  244. package/dist/{dreaming-ZPUWXFEJ.js → dreaming-FVXSIIWV.js} +26 -24
  245. package/dist/{employee-boot-brief-QD2SP4FM.js → employee-boot-brief-OYMSHFHA.js} +29 -27
  246. package/dist/{exe-drift-KCZFM2RP.js → exe-drift-67RGJOBX.js} +5 -5
  247. package/dist/{exe-export-W2SXNMYL.js → exe-export-SGYX6XZG.js} +14 -13
  248. package/dist/{exe-import-YCYNUMER.js → exe-import-UABVA5N3.js} +14 -13
  249. package/dist/{exe-key-7IIKQRR2.js → exe-key-XNYDCVFE.js} +107 -102
  250. package/dist/{exe-org-223EX7VP.js → exe-org-XJVSU5HN.js} +23 -23
  251. package/dist/{exe-snapshot-QX3RERAL.js → exe-snapshot-YXOGYZUX.js} +30 -37
  252. package/dist/{fast-db-init-PAC3C5O5.js → fast-db-init-GDFJY5UH.js} +1 -1
  253. package/dist/{founder-context-XM47756J.js → founder-context-KUXSNXKS.js} +3 -3
  254. package/dist/{founder-monitor-envelope-4WFWI26F.js → founder-monitor-envelope-5KTKNL5G.js} +4 -4
  255. package/dist/{fts-integrity-4M2MF2LQ.js → fts-integrity-LKAZEZJE.js} +2 -2
  256. package/dist/gateway/index.js +10 -10
  257. package/dist/{git-staleness-XT6GXOYG.js → git-staleness-NN6RWNLW.js} +4 -4
  258. package/dist/{global-procedures-QICIAC33.js → global-procedures-XDNA3TNA.js} +6 -6
  259. package/dist/{graph-auto-extract-RYX57CW5.js → graph-auto-extract-KTOR45V4.js} +7 -7
  260. package/dist/{graph-rag-MOBZTWOD.js → graph-rag-L5NV5YWD.js} +3 -3
  261. package/dist/{hook-integrity-LGUYWWQX.js → hook-integrity-X3YAVGUW.js} +1 -1
  262. package/dist/{hook-prefetch-VE2NXAFN.js → hook-prefetch-WE4MIXBM.js} +23 -21
  263. package/dist/hooks/bug-report-worker.js +27 -25
  264. package/dist/hooks/codex-stop-task-finalizer.js +29 -27
  265. package/dist/hooks/commit-complete.js +42 -27
  266. package/dist/hooks/error-recall.js +11 -11
  267. package/dist/hooks/exe-heartbeat-hook.js +7 -7
  268. package/dist/hooks/ingest-worker.js +10 -9
  269. package/dist/hooks/ingest.js +18 -17
  270. package/dist/hooks/instructions-loaded.js +12 -9
  271. package/dist/hooks/manifest.json +20 -20
  272. package/dist/hooks/notification.js +8 -8
  273. package/dist/hooks/post-compact.js +7 -7
  274. package/dist/hooks/post-tool-combined.js +16 -15
  275. package/dist/hooks/pre-compact.js +28 -26
  276. package/dist/hooks/pre-tool-use.js +79 -33
  277. package/dist/hooks/prompt-submit.js +42 -40
  278. package/dist/hooks/session-end.js +128 -111
  279. package/dist/hooks/session-start.js +20 -20
  280. package/dist/hooks/stop.js +101 -34
  281. package/dist/hooks/subagent-stop.js +29 -27
  282. package/dist/hooks/summary-worker.js +32 -30
  283. package/dist/index.js +34 -32
  284. package/dist/{installer-4VXHJEVU.js → installer-EAAYEEEF.js} +8 -8
  285. package/dist/{installer-CH7GIFHI.js → installer-EPQAOI6M.js} +154 -10
  286. package/dist/{installer-IK4HFXD4.js → installer-UDRMFY75.js} +8 -8
  287. package/dist/{intercom-queue-PI5APF65.js → intercom-queue-IBOAVT2I.js} +22 -20
  288. package/dist/{key-backup-status-G7CHESRL.js → key-backup-status-6L2ARCXW.js} +1 -1
  289. package/dist/lib/agent-config.js +2 -2
  290. package/dist/lib/cloud-sync.js +19 -18
  291. package/dist/lib/config.js +1 -1
  292. package/dist/lib/consolidation.js +9 -9
  293. package/dist/lib/database.js +4 -4
  294. package/dist/lib/db-backup.js +2 -2
  295. package/dist/lib/db-daemon-client.js +5 -4
  296. package/dist/lib/db-write-worker.js +3 -3
  297. package/dist/lib/db.js +4 -4
  298. package/dist/lib/device-registry.js +2 -2
  299. package/dist/lib/embed-worker.js +1 -1
  300. package/dist/lib/embedder.js +5 -4
  301. package/dist/lib/employee-templates.js +7 -7
  302. package/dist/lib/employees.js +4 -4
  303. package/dist/lib/exe-daemon-client.js +4 -3
  304. package/dist/lib/exe-daemon.js +219 -112
  305. package/dist/lib/hybrid-search.js +8 -8
  306. package/dist/lib/identity-templates.js +1 -1
  307. package/dist/lib/identity.js +4 -4
  308. package/dist/lib/license.js +3 -3
  309. package/dist/lib/messaging.js +23 -21
  310. package/dist/lib/post-tool-memory.js +2 -2
  311. package/dist/lib/registry-proxy.js +1 -1
  312. package/dist/lib/reminders.js +5 -5
  313. package/dist/lib/schedules.js +8 -8
  314. package/dist/lib/session-registry.js +6 -6
  315. package/dist/lib/skill-learning.js +13 -12
  316. package/dist/lib/status-brief.js +4 -3
  317. package/dist/lib/store.js +7 -7
  318. package/dist/lib/task-router.js +5 -5
  319. package/dist/lib/tasks.js +24 -22
  320. package/dist/lib/tmux-routing.js +22 -20
  321. package/dist/lib/token-spend.js +5 -5
  322. package/dist/{license-gate-Z5YXTWMH.js → license-gate-3TTWJABL.js} +4 -4
  323. package/dist/{license-sync-LLX3FTHY.js → license-sync-ZC6TPKVV.js} +3 -3
  324. package/dist/mcp/register-tools.js +104 -99
  325. package/dist/mcp/server.js +106 -101
  326. package/dist/mcp/tools/complete-reminder.js +6 -6
  327. package/dist/mcp/tools/create-reminder.js +6 -6
  328. package/dist/mcp/tools/create-task.js +27 -25
  329. package/dist/mcp/tools/deactivate-behavior.js +15 -14
  330. package/dist/mcp/tools/list-reminders.js +6 -6
  331. package/dist/mcp/tools/list-tasks.js +27 -25
  332. package/dist/mcp/tools/send-message.js +26 -24
  333. package/dist/mcp/tools/update-task.js +25 -23
  334. package/dist/{mcp-http-config-PTGZH6RV.js → mcp-http-config-ROF5EPEF.js} +5 -5
  335. package/dist/{mcp-session-identity-JRR4ZW2F.js → mcp-session-identity-ERU6FEUB.js} +22 -20
  336. package/dist/{memory-cards-ENOF74LR.js → memory-cards-3QTXI2SG.js} +7 -7
  337. package/dist/{memory-graph-extractor-V4ZUDCUN.js → memory-graph-extractor-7GAILMYG.js} +8 -8
  338. package/dist/{memory-poisoning-defense-VNCV5BFL.js → memory-poisoning-defense-TPXSRJTQ.js} +4 -4
  339. package/dist/{memory-pressure-watchdog-5WKDX7KP.js → memory-pressure-watchdog-ZSOP6T2F.js} +23 -21
  340. package/dist/{memory-queue-RD5CSMSC.js → memory-queue-QJNWKWKG.js} +2 -2
  341. package/dist/{memory-queue-client-2NHZQRSD.js → memory-queue-client-HIHCA3W4.js} +6 -5
  342. package/dist/{memory-reflection-H7AGGSO5.js → memory-reflection-3AI4JBV2.js} +4 -4
  343. package/dist/{monitor-grants-5KVETEJB.js → monitor-grants-BW2WL4IU.js} +3 -3
  344. package/dist/{notification-ledger-4DRPS7GP.js → notification-ledger-ZU7ZFJJX.js} +26 -23
  345. package/dist/{notifications-ZNIPKB3G.js → notifications-S4GU22GF.js} +22 -20
  346. package/dist/{orchestration-events-FWR64GIC.js → orchestration-events-HVG56HJ5.js} +5 -5
  347. package/dist/{orchestration-phase-ZED4QYF3.js → orchestration-phase-UDS24CVQ.js} +2 -2
  348. package/dist/{orchestrator-AVQRCIMG.js → orchestrator-UW3Q3WYG.js} +24 -22
  349. package/dist/{org-brief-session-XK2BTYHE.js → org-brief-session-G36TJBN4.js} +12 -12
  350. package/dist/{org-consent-policy-ULCYJC4W.js → org-consent-policy-RMYVMM3X.js} +1 -1
  351. package/dist/{org-join-P6PHLFFK.js → org-join-BMBQDMVF.js} +7 -7
  352. package/dist/{org-key-admin-BXGBQ3XY.js → org-key-admin-SCCVVE2H.js} +8 -8
  353. package/dist/{org-key-pin-CVVHZIMZ.js → org-key-pin-5WUSPGVN.js} +3 -3
  354. package/dist/{org-membership-VC54DLZ7.js → org-membership-ESALTLLN.js} +4 -4
  355. package/dist/{org-partner-config-VQVT62IZ.js → org-partner-config-YKHPDPZR.js} +6 -6
  356. package/dist/{org-partner-runtime-CCXM2LEA.js → org-partner-runtime-KXMGEYFW.js} +12 -12
  357. package/dist/{org-row-visibility-OSDGUOYT.js → org-row-visibility-UI5PGN76.js} +1 -1
  358. package/dist/{pipeline-router-YA6JZ7SA.js → pipeline-router-IODWXDDI.js} +5 -5
  359. package/dist/{plan-limits-YC6TLA4S.js → plan-limits-XMAQVEJZ.js} +7 -7
  360. package/dist/{platform-procedures-QNOMEXJF.js → platform-procedures-44NDFTB6.js} +1 -1
  361. package/dist/{postinstall-failure-M6PCKX4P.js → postinstall-failure-B2JHNFPM.js} +2 -2
  362. package/dist/{project-boot-INRUUEND.js → project-boot-LCFBQ6NB.js} +9 -1
  363. package/dist/project-name-ILJTETUE.js +14 -0
  364. package/dist/{projection-worker-G3AO6ASG.js → projection-worker-6LZUCI3B.js} +4 -4
  365. package/dist/{prospective-memory-GXCBC5WL.js → prospective-memory-G5VK5GCD.js} +4 -4
  366. package/dist/{push-notifications-BZZJTMN6.js → push-notifications-S2RYRXLF.js} +23 -21
  367. package/dist/reproject-worktree-memories-IXYGHTGA.js +224 -0
  368. package/dist/{reranker-O3NLXWT3.js → reranker-EHQTAA3L.js} +2 -2
  369. package/dist/{retrieval-health-5OSAJIQF.js → retrieval-health-WZ4ICGNF.js} +5 -1
  370. package/dist/{review-polling-3D2KID2T.js → review-polling-MAWLRDSP.js} +23 -21
  371. package/dist/runtime/index.js +31 -29
  372. package/dist/{session-events-KJKEKAXC.js → session-events-BRUIZ5E4.js} +23 -21
  373. package/dist/{session-kill-telemetry-RRAZEXLS.js → session-kill-telemetry-PTZLHT33.js} +23 -21
  374. package/dist/{session-mcp-config-JTPM2XBN.js → session-mcp-config-F7KATWOF.js} +2 -2
  375. package/dist/{session-scope-IPEVYKRA.js → session-scope-G4RVJJGR.js} +23 -21
  376. package/dist/{setup-wizard-7XF4NFQK.js → setup-wizard-WFEUB63Z.js} +3 -3
  377. package/dist/{shard-manager-FW4KRSE4.js → shard-manager-UROHZE46.js} +2 -2
  378. package/dist/{skill-refinement-5444QK44.js → skill-refinement-2OYPH7WD.js} +5 -5
  379. package/dist/{stack-promote-FZAXOG5N.js → stack-promote-DLYYQXQI.js} +6 -5
  380. package/dist/{stack-release-AF4KZWQA.js → stack-release-OPWARLXI.js} +6 -5
  381. package/dist/{stack-update-RIL3XYZG.js → stack-update-SJ43IEQE.js} +39 -6
  382. package/dist/{steward-gate-V3CDSK35.js → steward-gate-V7PBGVFK.js} +5 -5
  383. package/dist/{subagent-brief-injection-WZJRP6VC.js → subagent-brief-injection-BLCRI2AJ.js} +31 -29
  384. package/dist/{subagent-spawn-ledger-P6Q6JX3E.js → subagent-spawn-ledger-USYZXU3M.js} +4 -2
  385. package/dist/{support-inbox-45CEKHAK.js → support-inbox-6HOQYFD2.js} +4 -4
  386. package/dist/{task-enforcement-HG6LBTYU.js → task-enforcement-EF6O2V26.js} +23 -21
  387. package/dist/{task-request-inbox-ZIQW2TPL.js → task-request-inbox-OB2KIJWO.js} +1 -1
  388. package/dist/{task-scope-ZWRHD2PQ.js → task-scope-74JBTKJN.js} +26 -23
  389. package/dist/{tasks-crud-QN33WNXT.js → tasks-crud-ZU6RZDEZ.js} +22 -20
  390. package/dist/{tasks-notify-DQKP253B.js → tasks-notify-767DRYAA.js} +23 -21
  391. package/dist/{tasks-review-P7JTBLWK.js → tasks-review-4F6PZZ3B.js} +22 -20
  392. package/dist/{telemetry-upload-55GD4D27.js → telemetry-upload-2JM6KIAB.js} +9 -9
  393. package/dist/{token-budget-PPDT7CLD.js → token-budget-NH2RD4YX.js} +5 -5
  394. package/dist/{tool-capability-index-MOZ5EOIO.js → tool-capability-index-BT2GGLLI.js} +1 -1
  395. package/dist/{tool-gates-3IC7DK4R.js → tool-gates-2OZY3GZM.js} +1 -1
  396. package/dist/{tool-gates-GXSYBVK4.js → tool-gates-7PLIOLAL.js} +1 -1
  397. package/dist/{tool-telemetry-R27EMAEB.js → tool-telemetry-CHCBD4OQ.js} +1 -1
  398. package/dist/tui/App.js +37 -35
  399. package/dist/{tui-data-KJNJBAAT.js → tui-data-244GF3BI.js} +22 -20
  400. package/dist/{update-support-VDS4ME3L.js → update-support-P2LO3DAB.js} +16 -15
  401. package/dist/work-claims-4QOE7DT2.js +53 -0
  402. package/dist/{work-state-heartbeat-RUE6ETPX.js → work-state-heartbeat-GX3VWWWK.js} +1 -1
  403. package/dist/{worker-gate-LAXZSHSZ.js → worker-gate-62PZATOV.js} +2 -2
  404. package/dist/{workflow-engine-RPKV7XM3.js → workflow-engine-7YIRU62F.js} +2 -2
  405. package/dist/{worktree-6LRKLO2U.js → worktree-3TUKIZWY.js} +6 -6
  406. package/dist/{worktree-sweep-NAPVXZHQ.js → worktree-sweep-MYQHUXDE.js} +7 -7
  407. package/package.json +8 -2
  408. package/release-notes.json +90 -89
  409. package/src/commands/exe/call.md +6 -4
  410. package/src/commands/exe-reference.md +11 -7
  411. package/src/commands/exe.md +16 -20
  412. package/dist/chunk-6MQWZZS5.js +0 -275
  413. package/dist/chunk-CTXNEZFW.js +0 -78
  414. package/dist/db-integrity-events-RBX7FN5E.js +0 -16
  415. package/dist/project-name-EWG5KAZP.js +0 -10
  416. /package/dist/{chunk-GSWAKK5Q.js → chunk-62U63R3E.js} +0 -0
  417. /package/dist/{chunk-HVMZBCP4.js → chunk-6CAX7YH4.js} +0 -0
  418. /package/dist/{chunk-CLCNYC3F.js → chunk-BTFDA3UJ.js} +0 -0
  419. /package/dist/{chunk-VNVDUM5X.js → chunk-DAXFAXLN.js} +0 -0
  420. /package/dist/{chunk-3DWNESVC.js → chunk-FLP2BQOA.js} +0 -0
  421. /package/dist/{chunk-ESOETGYC.js → chunk-JLYHJJHU.js} +0 -0
  422. /package/dist/{chunk-W352QOGG.js → chunk-JZBZI36P.js} +0 -0
  423. /package/dist/{chunk-QKOLA6FI.js → chunk-WM7Y5ZV2.js} +0 -0
  424. /package/dist/{chunk-IY7LTYEP.js → chunk-YNPOELAN.js} +0 -0
  425. /package/dist/{chunk-7VBIK4HP.js → chunk-YSDIJ3VI.js} +0 -0
  426. /package/dist/{core-memory-RZHRZPKR.js → core-memory-EARETDZ6.js} +0 -0
  427. /package/dist/{entity-boost-ZLQIQ4JU.js → entity-boost-CDFAXVYL.js} +0 -0
  428. /package/dist/{memory-isolation-OSZBBUHB.js → memory-isolation-XASOGA7G.js} +0 -0
  429. /package/dist/{message-queue-client-UKGJ6QKQ.js → message-queue-client-PL2POQOV.js} +0 -0
  430. /package/dist/{oauth-server-MHOTAUOI.js → oauth-server-C3BXAKAW.js} +0 -0
  431. /package/dist/{webhook-pipe-BVLWBMIC.js → webhook-pipe-UQSEHFPO.js} +0 -0
  432. /package/dist/{wiki-acl-E24PM3YR.js → wiki-acl-XQH4UBP2.js} +0 -0
  433. /package/dist/{wiki-client-ZDPDQDX2.js → wiki-client-AXNM5FWY.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  writeContinuityCheckpoint
3
- } from "../chunk-GVZI4MK2.js";
3
+ } from "../chunk-OUIEDJFO.js";
4
4
  import {
5
5
  clearCacheState
6
6
  } from "../chunk-6A7P74QV.js";
@@ -9,60 +9,64 @@ import "../chunk-SH45SJQW.js";
9
9
  import {
10
10
  clearActiveAgent,
11
11
  getActiveAgent
12
- } from "../chunk-GETICKB4.js";
13
- import "../chunk-UXX2JSZO.js";
12
+ } from "../chunk-QWDZNQXA.js";
13
+ import "../chunk-2ADYTOHQ.js";
14
14
  import {
15
15
  strictSessionScopeFilter
16
- } from "../chunk-ZVZEYHWY.js";
17
- import "../chunk-HJQILEBL.js";
18
- import "../chunk-U4KDN5B7.js";
19
- import "../chunk-2HRAVECR.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-HJVXKDEK.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-ZSQNPN2W.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-4FNUBXYO.js";
31
+ import "../chunk-UI3K73LD.js";
31
32
  import "../chunk-AJIXH5JF.js";
32
- import "../chunk-2ROXEOGE.js";
33
+ import "../chunk-XTWHNLGD.js";
33
34
  import "../chunk-AM7S2TY6.js";
34
- import "../chunk-34XAUB2R.js";
35
+ import "../chunk-N3JLNMPF.js";
35
36
  import {
36
37
  getSessionKey
37
38
  } from "../chunk-CVYC6DUW.js";
38
- import "../chunk-ECVWCFY4.js";
39
- import "../chunk-Z75FBAP2.js";
40
- import "../chunk-OPU3NYOO.js";
41
- import "../chunk-FXPWMPU2.js";
42
- import "../chunk-CE323JHD.js";
39
+ import "../chunk-ZVTKWWLV.js";
40
+ import "../chunk-CDUB5Q6J.js";
41
+ import "../chunk-BNHAZ65R.js";
42
+ import "../chunk-RIECV7SR.js";
43
+ import "../chunk-LNOS24GV.js";
43
44
  import "../chunk-NLEW62VC.js";
45
+ import {
46
+ resolveProjectName
47
+ } from "../chunk-W2IRQJ6R.js";
44
48
  import "../chunk-HYZV25LY.js";
45
49
  import "../chunk-GJV3WDWM.js";
46
50
  import "../chunk-MP2AFCGL.js";
47
51
  import {
48
52
  canCoordinate
49
- } from "../chunk-KAF66DIP.js";
53
+ } from "../chunk-HSBKV5LB.js";
50
54
  import "../chunk-TKDITWDN.js";
51
55
  import "../chunk-BBMTVAE3.js";
52
56
  import "../chunk-5YEUPUV4.js";
53
- import "../chunk-AUIXAFYX.js";
57
+ import "../chunk-Y7OK5PJE.js";
54
58
  import "../chunk-YYB5PMTK.js";
55
- import "../chunk-BRZR76TS.js";
59
+ import "../chunk-NJFJWQNN.js";
56
60
  import "../chunk-V3W3SATA.js";
57
61
  import "../chunk-JY5GAZYC.js";
58
62
  import "../chunk-FXU7JOXK.js";
59
63
  import "../chunk-WNBZJSQT.js";
60
- import "../chunk-J2OTTJWG.js";
64
+ import "../chunk-F3PIHVVY.js";
61
65
  import "../chunk-A7XLR3K7.js";
62
- import "../chunk-6WBEFNO4.js";
66
+ import "../chunk-65ZSFW3O.js";
63
67
  import "../chunk-QILQ5FCG.js";
64
68
  import "../chunk-ARX6TAGN.js";
65
- import "../chunk-EKOWJXHN.js";
69
+ import "../chunk-QMSEL5YS.js";
66
70
  import "../chunk-HSGBZSCA.js";
67
71
  import "../chunk-JKKZGDLP.js";
68
72
  import "../chunk-MLKGABMK.js";
@@ -78,7 +82,7 @@ process.on("unhandledRejection", (err) => {
78
82
  process.exit(1);
79
83
  });
80
84
  try {
81
- const { verifyOrBlock } = await import("../hook-integrity-LGUYWWQX.js");
85
+ const { verifyOrBlock } = await import("../hook-integrity-X3YAVGUW.js");
82
86
  if (!await verifyOrBlock(new URL(import.meta.url).pathname)) process.exit(2);
83
87
  } catch (err) {
84
88
  const code = err?.code;
@@ -96,6 +100,8 @@ if (!process.env.AGENT_ID) {
96
100
  process.env.AGENT_ID = "default";
97
101
  process.env.AGENT_ROLE = "employee";
98
102
  }
103
+ var CONSOLIDATION_ONLY = process.env.EXE_CONSOLIDATION_MODE === "cadence";
104
+ var LOG_TAG = CONSOLIDATION_ONLY ? "[session-consolidate]" : "[session-end]";
99
105
  var timeout = setTimeout(() => {
100
106
  process.exit(0);
101
107
  }, 15e3);
@@ -223,92 +229,96 @@ process.stdin.on("end", async () => {
223
229
  }
224
230
  const data = JSON.parse(input);
225
231
  const agent = getActiveAgent();
226
- try {
227
- const { appendFileSync, mkdirSync } = await import("fs");
228
- const { join, dirname } = await import("path");
229
- const { homedir } = await import("os");
230
- const deathLog = join(homedir(), ".exe-os", "logs", "session-deaths.jsonl");
231
- mkdirSync(dirname(deathLog), { recursive: true });
232
- let daemonAlive = false;
233
- const requestedPort = process.env.EXE_MCP_PORT ?? "";
234
- const requestedPortNumber = Number(requestedPort);
235
- const daemonPort = /^\d{1,5}$/.test(requestedPort) && requestedPortNumber > 0 && requestedPortNumber <= 65535 ? String(requestedPortNumber) : "48739";
236
- const pingController = new AbortController();
237
- const pingTimeout = setTimeout(() => pingController.abort(), 2e3);
238
- pingTimeout.unref();
239
- try {
240
- const response = await fetch(`http://127.0.0.1:${daemonPort}/v1/ping`, {
241
- method: "GET",
242
- signal: pingController.signal
243
- });
244
- daemonAlive = response.ok;
245
- } catch {
246
- } finally {
247
- clearTimeout(pingTimeout);
248
- }
249
- const hookUptimeMs = Math.round(process.uptime() * 1e3);
250
- const transcript = readTranscriptExitForensics(data.transcript_path);
251
- const exitReason = inferExitReason(daemonAlive, data, transcript);
252
- const durationMs = transcript.sessionDurationMs ?? hookUptimeMs;
253
- const entry = JSON.stringify({
254
- timestamp: (/* @__PURE__ */ new Date()).toISOString(),
255
- event: "session_exit",
256
- agent: agent.agentId,
257
- role: agent.agentRole,
258
- session: data.session_id,
259
- project: process.env.EXE_PROJECT_NAME ?? process.cwd().split("/").pop() ?? "unknown",
260
- tmuxSession: process.env.EXE_SESSION ?? process.env.TMUX_PANE ?? "unknown",
261
- tty: process.env.TTY ?? process.env.GPG_TTY ?? "unknown",
262
- hookPid: process.pid,
263
- hookPpid: process.ppid,
264
- // Legacy keys retained for downstream readers; these are hook process IDs.
265
- pid: process.pid,
266
- ppid: process.ppid,
267
- hookUptimeMs,
268
- sessionDurationMs: transcript.sessionDurationMs,
269
- exitReason,
270
- daemonAlive,
271
- memoryRssMB: Math.round(process.memoryUsage.rss() / 1024 / 1024),
272
- transcript
273
- });
274
- appendFileSync(deathLog, entry + "\n");
275
- 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"}
276
- `);
232
+ if (!CONSOLIDATION_ONLY) {
277
233
  try {
278
- const { recordOrchestrationEvent } = await import("../orchestration-events-FWR64GIC.js");
279
- await recordOrchestrationEvent({
280
- eventType: "session.exit",
281
- source: "hooks.session-end",
282
- 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(),
283
267
  tmuxSession: process.env.EXE_SESSION ?? process.env.TMUX_PANE ?? "unknown",
284
- sessionScope: process.env.EXE_SESSION_NAME?.includes("-") ? process.env.EXE_SESSION_NAME.split("-").pop() : process.env.EXE_SESSION_NAME,
285
- result: exitReason,
286
- durationMs,
287
- payload: {
288
- daemonAlive,
289
- hookUptimeMs,
290
- sessionDurationMs: transcript.sessionDurationMs,
291
- memoryRssMB: Math.round(process.memoryUsage.rss() / 1024 / 1024),
292
- lastAssistantStopReason: transcript.lastAssistantStopReason,
293
- lastSystemSubtype: transcript.lastSystemSubtype,
294
- queuedPrompt: transcript.queuedPrompt
295
- }
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
296
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
+ }
297
306
  } catch {
298
307
  }
299
- } catch {
300
308
  }
301
309
  if (agent.agentId) {
302
310
  try {
303
- const { fastDbInit } = await import("../fast-db-init-PAC3C5O5.js");
311
+ const { fastDbInit } = await import("../fast-db-init-GDFJY5UH.js");
304
312
  const client = await fastDbInit({ caller: "hook" });
305
313
  const seScope = strictSessionScopeFilter();
306
314
  const orphanResult = await client.execute({
307
315
  sql: `SELECT title, status FROM tasks WHERE assigned_to = ? AND status IN ('open', 'in_progress')${seScope.sql}`,
308
316
  args: [agent.agentId, ...seScope.args]
309
317
  });
310
- const orphanInfo = orphanResult.rows.length > 0 ? `
311
- 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}` : "";
312
322
  let conversationSummary = "";
313
323
  try {
314
324
  if (data.transcript_path) {
@@ -344,7 +354,7 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
344
354
  }
345
355
  } catch {
346
356
  }
347
- const projectName = process.env.EXE_PROJECT_NAME ?? process.cwd().split("/").pop() ?? "unknown";
357
+ const projectName = resolveProjectName();
348
358
  const { buildSystemStateMemoryTypeExclusion } = await import("../lib/store.js");
349
359
  const recent = await client.execute({
350
360
  sql: `SELECT tool_name, project_name, raw_text, has_error, timestamp
@@ -362,14 +372,19 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
362
372
  args: [agent.agentId, ...seScope.args]
363
373
  });
364
374
  const extraSections = [];
365
- 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
+ }
366
380
  if (conversationSummary) extraSections.push(conversationSummary);
367
381
  await writeContinuityCheckpoint({
368
382
  agentId: agent.agentId,
369
383
  agentRole: agent.agentRole,
370
384
  sessionId: data.session_id,
371
385
  projectName,
372
- reason: "session-end",
386
+ // Cadence runs are mid-session snapshots, not the final commit.
387
+ reason: CONSOLIDATION_ONLY ? "periodic" : "session-end",
373
388
  memories: recent.rows,
374
389
  tasks: taskRows.rows,
375
390
  maxSamples: 12,
@@ -377,12 +392,12 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
377
392
  });
378
393
  if (conversationSummary.length > 100) {
379
394
  try {
380
- const { writeMemoryViaDaemon } = await import("../memory-queue-client-2NHZQRSD.js");
395
+ const { writeMemoryViaDaemon } = await import("../memory-queue-client-HIHCA3W4.js");
381
396
  await writeMemoryViaDaemon({
382
397
  raw_text: conversationSummary.slice(0, 8e3),
383
398
  agent_id: agent.agentId,
384
399
  agent_role: agent.agentRole,
385
- tool_name: "SessionEnd",
400
+ tool_name: CONSOLIDATION_ONLY ? "SessionConsolidate" : "SessionEnd",
386
401
  project_name: projectName,
387
402
  session_id: data.session_id,
388
403
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
@@ -393,12 +408,12 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
393
408
  }
394
409
  }
395
410
  try {
396
- const { clearSessionFileReads } = await import("../git-staleness-XT6GXOYG.js");
411
+ const { clearSessionFileReads } = await import("../git-staleness-NN6RWNLW.js");
397
412
  await clearSessionFileReads(data.session_id);
398
413
  } catch {
399
414
  }
400
415
  try {
401
- const { DreamingEngine } = await import("../dreaming-ZPUWXFEJ.js");
416
+ const { DreamingEngine } = await import("../dreaming-FVXSIIWV.js");
402
417
  const engine = new DreamingEngine();
403
418
  const dreamResult = await engine.runDreamCycle(agent.agentId);
404
419
  let promoted = 0;
@@ -431,7 +446,7 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
431
446
  }
432
447
  const driftLabel = dreamResult.drift.score > 0.8 ? "critical" : dreamResult.drift.score > 0.5 ? "warning" : "healthy";
433
448
  process.stderr.write(
434
- `[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})
435
450
  `
436
451
  );
437
452
  } catch {
@@ -443,13 +458,13 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
443
458
  const avgAttempts = summaries.reduce((a, s) => a + s.totalAttempts, 0) / summaries.length;
444
459
  const totalWastedMs = summaries.reduce((a, s) => a + s.wastedDurationMs, 0);
445
460
  process.stderr.write(
446
- `[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
447
462
  `
448
463
  );
449
464
  }
450
465
  } catch {
451
466
  }
452
- if (!canCoordinate(agent.agentId, agent.agentRole)) {
467
+ if (!CONSOLIDATION_ONLY && !canCoordinate(agent.agentId, agent.agentRole)) {
453
468
  const inProgress = orphanResult.rows.filter((r) => String(r.status) === "in_progress");
454
469
  if (inProgress.length > 0) {
455
470
  const titles = inProgress.map((r) => `"${String(r.title)}"`).join(", ");
@@ -474,12 +489,12 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
474
489
  parts.push(`Left in_progress (no matching commits, needs triage): ${leftInProgress.join(", ")}`);
475
490
  }
476
491
  try {
477
- const { writeNotification } = await import("../notifications-ZNIPKB3G.js");
492
+ const { writeNotification } = await import("../notifications-S4GU22GF.js");
478
493
  await writeNotification({
479
494
  agentId: agent.agentId,
480
495
  agentRole: agent.agentRole,
481
496
  event: "orphan_task",
482
- project: process.env.EXE_PROJECT_NAME ?? "unknown",
497
+ project: resolveProjectName(),
483
498
  summary: `${agent.agentId} session ended with ${inProgress.length} in_progress task(s). ${parts.join(". ")}`
484
499
  });
485
500
  } catch {
@@ -511,7 +526,7 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
511
526
  } catch {
512
527
  }
513
528
  }
514
- if (agent.agentId !== "default") {
529
+ if (!CONSOLIDATION_ONLY && agent.agentId !== "default") {
515
530
  try {
516
531
  const { clearCanaryToken } = await import("../browser-sanitizer-Q3GWRYKI.js");
517
532
  clearCanaryToken(agent.agentId);
@@ -525,8 +540,10 @@ Orphaned tasks at session end: ${orphanResult.rows.map((r) => `"${String(r.title
525
540
  } catch {
526
541
  }
527
542
  }
528
- clearActiveAgent();
529
- clearCacheState(getSessionKey());
543
+ if (!CONSOLIDATION_ONLY) {
544
+ clearActiveAgent();
545
+ clearCacheState(getSessionKey());
546
+ }
530
547
  } catch (err) {
531
548
  console.error(
532
549
  "[exe-os:hook:session-end] main:",
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  waitForDaemonReady
3
- } from "../chunk-7VBIK4HP.js";
3
+ } from "../chunk-YSDIJ3VI.js";
4
4
  import {
5
5
  loadConfigSync
6
- } from "../chunk-EKOWJXHN.js";
6
+ } from "../chunk-QMSEL5YS.js";
7
7
  import "../chunk-HSGBZSCA.js";
8
8
  import "../chunk-JKKZGDLP.js";
9
9
  import "../chunk-MLKGABMK.js";
@@ -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-LGUYWWQX.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-MVEEEKUD.js");
60
- const { getProjectName } = await import("../project-name-EWG5KAZP.js");
61
- const { getCurrentSessionScope } = await import("../task-scope-ZWRHD2PQ.js");
59
+ const { getActiveAgent } = await import("../active-agent-V3CUDNED.js");
60
+ const { getProjectName } = await import("../project-name-ILJTETUE.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-FWR64GIC.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-PAC3C5O5.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-PAC3C5O5.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-FWR64GIC.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-FWR64GIC.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-MVEEEKUD.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-XYX5SOC6.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-XT6GXOYG.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-QN33WNXT.js");
271
- const { buildReviewSections } = await import("../boot-review-sections-IXBD7UGL.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-QD2SP4FM.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-QN33WNXT.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,
@@ -415,7 +415,7 @@ You are **${title}**. ${firstLine}
415
415
  }
416
416
  }
417
417
  try {
418
- const { loadOrchestrationPhase } = await import("../orchestration-phase-ZED4QYF3.js");
418
+ const { loadOrchestrationPhase } = await import("../orchestration-phase-UDS24CVQ.js");
419
419
  const phase = await loadOrchestrationPhase();
420
420
  additionalContext += `## Orchestration Phase
421
421
  ${phase.label}. Focus: ${phase.focus}. This is guidance, not a blocker; the user can switch phases anytime. ${phase.nextSuggestion}
@@ -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-GXCBC5WL.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();