@askexenow/exe-os 0.9.382 → 0.9.384

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 (493) hide show
  1. package/delivery/catalog.json +1254 -0
  2. package/deploy/compose/.env.customer.example +5 -5
  3. package/deploy/compose/.env.example +3 -3
  4. package/deploy/compose/docker-compose.yml +1 -1
  5. package/deploy/compose/generate-env.ts +65 -9
  6. package/deploy/compose/setup.sh +205 -7
  7. package/deploy/compose/sso-edge/default.conf.template +45 -0
  8. package/deploy/compose/sso-edge/sso-redirect.conf +11 -2
  9. package/deploy/stack-manifests/v0.9.30-apps.json +1 -1
  10. package/deploy/stack-manifests/v0.9.json +254 -2
  11. package/dist/.dist-verified.json +3 -3
  12. package/dist/{active-agent-GFUUCFLD.js → active-agent-F5V4E4UL.js} +7 -7
  13. package/dist/{active-agent-LE6FE6SO.js → active-agent-YTBB4ZQM.js} +7 -7
  14. package/dist/{agent-defs-generator-EIUA3SH5.js → agent-defs-generator-7TFISIJQ.js} +6 -6
  15. package/dist/{agent-loop-7ZRH56EX.js → agent-loop-EZ7LDAGD.js} +1 -1
  16. package/dist/{agentic-ontology-67JGSP7G.js → agentic-ontology-XVTUVV7W.js} +1 -1
  17. package/dist/{artifact-backup-NYXAYASJ.js → artifact-backup-TF6YWQT2.js} +5 -5
  18. package/dist/{backfill-gate-KWJQ35YX.js → backfill-gate-FWYLCGNJ.js} +3 -3
  19. package/dist/{backfill-metadata-RQYG2WUJ.js → backfill-metadata-J6MXIDCW.js} +10 -10
  20. package/dist/{background-jobs-6VMD55PK.js → background-jobs-V3DZRFKU.js} +3 -3
  21. package/dist/{backup-verify-HC4YDSGN.js → backup-verify-6DVBQMDP.js} +67 -18
  22. package/dist/{behavior-injection-6HSXP43Q.js → behavior-injection-XDA7ZCYN.js} +21 -20
  23. package/dist/{behavior-promotion-SJDQ2Y3U.js → behavior-promotion-4VLQ7LXK.js} +20 -19
  24. package/dist/{behaviors-6ITLA2CK.js → behaviors-SCCZP7RZ.js} +19 -18
  25. package/dist/bin/age-ontology-load.js +3 -3
  26. package/dist/bin/agentic-ontology-backfill.js +12 -12
  27. package/dist/bin/agentic-reflection-backfill.js +13 -13
  28. package/dist/bin/agentic-semantic-label.js +12 -12
  29. package/dist/bin/backfill-conversations.js +17 -16
  30. package/dist/bin/backfill-responses.js +17 -16
  31. package/dist/bin/backfill-vectors.js +23 -22
  32. package/dist/bin/bulk-sync-postgres.js +28 -27
  33. package/dist/bin/cc-doctor.js +17 -16
  34. package/dist/bin/cleanup-stale-review-tasks.js +29 -28
  35. package/dist/bin/cli.js +35 -26
  36. package/dist/bin/deferred-daemon-restart.js +124 -123
  37. package/dist/bin/exe-actions.js +1 -1
  38. package/dist/bin/exe-agent-config.js +6 -6
  39. package/dist/bin/exe-agent.js +22 -22
  40. package/dist/bin/exe-assign.js +19 -18
  41. package/dist/bin/exe-boot.js +57 -56
  42. package/dist/bin/exe-call.js +7 -7
  43. package/dist/bin/exe-cicd.js +38 -8
  44. package/dist/bin/exe-cloud.js +30 -29
  45. package/dist/bin/exe-config-dump.js +6 -6
  46. package/dist/bin/exe-dispatch.js +30 -29
  47. package/dist/bin/exe-doctor.js +11 -11
  48. package/dist/bin/exe-export-behaviors.js +23 -22
  49. package/dist/bin/exe-forget.js +13 -13
  50. package/dist/bin/exe-gateway.js +47 -14
  51. package/dist/bin/exe-grant.js +6 -6
  52. package/dist/bin/exe-healthcheck.js +17 -16
  53. package/dist/bin/exe-heartbeat.js +41 -35
  54. package/dist/bin/exe-kill.js +35 -34
  55. package/dist/bin/exe-launch-agent.js +43 -42
  56. package/dist/bin/exe-mcp.js +9 -9
  57. package/dist/bin/exe-memory-reads.js +10 -10
  58. package/dist/bin/exe-new-employee.js +11 -11
  59. package/dist/bin/exe-os-mcp-proxy.js +9 -9
  60. package/dist/bin/exe-pending-messages.js +30 -29
  61. package/dist/bin/exe-pending-notifications.js +29 -28
  62. package/dist/bin/exe-pending-reviews.js +30 -29
  63. package/dist/bin/exe-preflight.js +1 -1
  64. package/dist/bin/exe-rename.js +9 -9
  65. package/dist/bin/exe-review.js +34 -33
  66. package/dist/bin/exe-search.js +12 -12
  67. package/dist/bin/exe-session-cleanup.js +35 -34
  68. package/dist/bin/exe-settings.js +29 -28
  69. package/dist/bin/exe-start-codex.js +30 -29
  70. package/dist/bin/exe-start-opencode.js +27 -26
  71. package/dist/bin/exe-status.js +31 -30
  72. package/dist/bin/exe-support.js +5 -5
  73. package/dist/bin/exe-team.js +7 -7
  74. package/dist/bin/exe-verify-running-images.js +1 -1
  75. package/dist/bin/exe-watchdog.js +8 -8
  76. package/dist/bin/generate-hook-manifest.js +7 -1
  77. package/dist/bin/git-sweep.js +30 -29
  78. package/dist/bin/graph-backfill.js +12 -12
  79. package/dist/bin/graph-export.js +11 -11
  80. package/dist/bin/hooks-cli.js +1 -1
  81. package/dist/bin/import-history.js +15 -15
  82. package/dist/bin/install.js +130 -129
  83. package/dist/bin/intercom-check.js +11 -7
  84. package/dist/bin/mcp-sessions.js +2 -2
  85. package/dist/bin/orchestration-metrics.js +7 -7
  86. package/dist/bin/postgres-agentic-reflection-backfill.js +5 -5
  87. package/dist/bin/postgres-agentic-semantic-backfill.js +4 -4
  88. package/dist/bin/reconcile-backlog.js +2 -2
  89. package/dist/bin/registry-proxy.js +1 -1
  90. package/dist/bin/repair-document-chunks.js +161 -0
  91. package/dist/bin/scan-tasks.js +30 -29
  92. package/dist/bin/setup.js +5 -5
  93. package/dist/bin/shard-migrate.js +11 -11
  94. package/dist/bin/stack-update.js +625 -33
  95. package/dist/bin/update.js +96 -22
  96. package/dist/bin/verify-stack.js +2 -2
  97. package/dist/bin/vps-health-gate.js +1 -1
  98. package/dist/{boot-generation-L55QANCX.js → boot-generation-Q7LGQ3AO.js} +6 -6
  99. package/dist/{boot-review-sections-AON5ZCR2.js → boot-review-sections-G5774FR5.js} +28 -27
  100. package/dist/{branch-hygiene-QLD77IMJ.js → branch-hygiene-44WLSOZR.js} +2 -2
  101. package/dist/{branding-I6KIMB7F.js → branding-KMWCY5HZ.js} +3 -3
  102. package/dist/build-manifest.json +1259 -1219
  103. package/dist/{capability-cards-WTOXY7O6.js → capability-cards-I3RHCF4F.js} +5 -5
  104. package/dist/{capacity-monitor-ZLG7FSWM.js → capacity-monitor-7I7GDONU.js} +30 -29
  105. package/dist/{catchup-brief-QHY7D7N2.js → catchup-brief-3T5PARIR.js} +39 -36
  106. package/dist/check-image-pullability-2AIVB4BX.js +338 -0
  107. package/dist/{chunk-CTCCYKOV.js → chunk-2FKU4ZEO.js} +55 -29
  108. package/dist/{chunk-M7O7TGGU.js → chunk-2NW4LRDU.js} +1 -1
  109. package/dist/{chunk-XTFM4KMW.js → chunk-2PZTMSMG.js} +6 -6
  110. package/dist/{chunk-UWX6MMCX.js → chunk-3B6FLNLV.js} +1 -1
  111. package/dist/{chunk-GPJIBLP4.js → chunk-3DAEZILW.js} +1 -1
  112. package/dist/{chunk-NY6SBR4O.js → chunk-3FGBBJYM.js} +15 -3
  113. package/dist/{chunk-C4OZVVSG.js → chunk-3OX34OC3.js} +50 -18
  114. package/dist/{chunk-TXTXC3QG.js → chunk-3RGTLZNO.js} +12 -12
  115. package/dist/{chunk-PYRO25A5.js → chunk-3SUPEE6H.js} +10 -11
  116. package/dist/{chunk-PPMGQFLJ.js → chunk-3XY57PKT.js} +2 -2
  117. package/dist/{chunk-CRHI5QTZ.js → chunk-46VSBDUW.js} +2 -2
  118. package/dist/{chunk-VZT66WWP.js → chunk-4AAMFWJT.js} +2 -2
  119. package/dist/{chunk-4GZTBLJG.js → chunk-4AR5XKCH.js} +1 -1
  120. package/dist/{chunk-IHXW4VUI.js → chunk-5IADGFGR.js} +1 -1
  121. package/dist/{chunk-GLQEJOXE.js → chunk-5MVKTNZP.js} +57 -0
  122. package/dist/{chunk-AVMLC2MR.js → chunk-5U2IJBFV.js} +290 -41
  123. package/dist/{chunk-JUKDL5MF.js → chunk-6BJCDWSM.js} +1 -1
  124. package/dist/{chunk-6WWNK7UX.js → chunk-6FIC57PH.js} +1 -1
  125. package/dist/{chunk-ASUICGPX.js → chunk-6YDY6ZTD.js} +4 -4
  126. package/dist/{chunk-FU5O2REK.js → chunk-72V3S44T.js} +108 -29
  127. package/dist/{chunk-LTIIZHNA.js → chunk-7J2ZQ4XN.js} +1 -1
  128. package/dist/{chunk-7RI2CNXJ.js → chunk-7OTR2OET.js} +1 -1
  129. package/dist/{chunk-ZVBVPX4W.js → chunk-7UHZBVP3.js} +82 -51
  130. package/dist/{chunk-PTY2N23C.js → chunk-AGC2V7JS.js} +26 -13
  131. package/dist/{chunk-44VR3PFW.js → chunk-AHESD3KW.js} +1 -1
  132. package/dist/{chunk-NPGV4MZ3.js → chunk-ALRHGEAJ.js} +1 -1
  133. package/dist/{chunk-WJC6AAJN.js → chunk-ANVHWV2X.js} +2 -2
  134. package/dist/{chunk-AGZSGAEN.js → chunk-APL7HUE3.js} +105 -32
  135. package/dist/{chunk-7UH2JWBF.js → chunk-AZSTIAVL.js} +176 -11
  136. package/dist/chunk-AZXMR25O.js +545 -0
  137. package/dist/{chunk-WPWEBZ37.js → chunk-B7AMNZTC.js} +2 -2
  138. package/dist/{chunk-4CF5KUWH.js → chunk-BPVFZ6Q4.js} +3 -3
  139. package/dist/{chunk-XTQ7R2PA.js → chunk-BV2IET6B.js} +73 -17
  140. package/dist/{chunk-4F5CNI65.js → chunk-C5ISP5FO.js} +2 -2
  141. package/dist/{chunk-NPWNXJ3U.js → chunk-CH7BUBP3.js} +7 -7
  142. package/dist/{chunk-X5Q66EOG.js → chunk-CHIUS5QB.js} +16 -16
  143. package/dist/{chunk-ZG62LIK3.js → chunk-CIPDQRFO.js} +1 -1
  144. package/dist/{chunk-4PYIRIU6.js → chunk-CM7N5MBY.js} +5 -5
  145. package/dist/{chunk-L5YDAFUH.js → chunk-CYCIX7AW.js} +5 -5
  146. package/dist/{chunk-76YRJKKF.js → chunk-D3LXVAIQ.js} +28 -16
  147. package/dist/{chunk-2GNAHBRD.js → chunk-DMUOTCDN.js} +1 -1
  148. package/dist/{chunk-QMUFSRQX.js → chunk-DN3ZR3UE.js} +1 -1
  149. package/dist/{chunk-V3WLC5TJ.js → chunk-DRTJCG6B.js} +1 -1
  150. package/dist/{chunk-275WHBEN.js → chunk-DYVLEMKS.js} +1 -1
  151. package/dist/{chunk-O34F5EP5.js → chunk-DZN7SDY2.js} +1 -1
  152. package/dist/{chunk-ZDIXMHY7.js → chunk-E3ZM32LF.js} +8 -8
  153. package/dist/{chunk-N2HXR5MB.js → chunk-E7C2WNR5.js} +4 -4
  154. package/dist/{chunk-VVGXWVZU.js → chunk-EGOEB42T.js} +3 -3
  155. package/dist/{chunk-QV5CQLQH.js → chunk-EIOGV75A.js} +2 -2
  156. package/dist/{chunk-ZY4IGUOS.js → chunk-ELCRJGCH.js} +3 -3
  157. package/dist/{chunk-5QCIWWFA.js → chunk-ELEGH4DX.js} +130 -14
  158. package/dist/{chunk-S7CTCPSW.js → chunk-EOTZSAQL.js} +1 -1
  159. package/dist/{chunk-PPLQ4ECD.js → chunk-EUGEFBGV.js} +3 -3
  160. package/dist/{chunk-UFNCL6MS.js → chunk-EYMFVITZ.js} +1 -1
  161. package/dist/{chunk-F6H7GP2O.js → chunk-F4BBMIPG.js} +3 -3
  162. package/dist/{chunk-FNEZ4BWT.js → chunk-FEU6QEEL.js} +1 -1
  163. package/dist/{chunk-JKOC2L6P.js → chunk-FHIFTSPL.js} +1 -1
  164. package/dist/{chunk-4RTKETV3.js → chunk-FMIYFHLE.js} +3 -3
  165. package/dist/{chunk-TK544DEW.js → chunk-FVLNNNH6.js} +3 -3
  166. package/dist/{chunk-AY2U4NZ5.js → chunk-GL47M7NY.js} +85 -17
  167. package/dist/{chunk-DN24VTS5.js → chunk-GSLFH4AI.js} +25 -13
  168. package/dist/{chunk-CHO5SNWR.js → chunk-HA63SH5W.js} +1 -1
  169. package/dist/{chunk-4IK2K3B3.js → chunk-HME6ITKV.js} +1 -1
  170. package/dist/{chunk-H2T6TFJZ.js → chunk-HU3VD4MQ.js} +2 -2
  171. package/dist/{chunk-ZW32RI66.js → chunk-I5XIW2BP.js} +49 -11
  172. package/dist/{chunk-3CL2I3RG.js → chunk-IGJMS7C5.js} +2 -2
  173. package/dist/{chunk-BRPO6GOH.js → chunk-JA3Y5TV6.js} +2 -2
  174. package/dist/{chunk-SFFXAPYK.js → chunk-JDDM6C57.js} +1 -1
  175. package/dist/{chunk-W4EGAQXW.js → chunk-JFJP6ATJ.js} +2 -2
  176. package/dist/{chunk-ENCUOZXX.js → chunk-JFTUAV4J.js} +1 -1
  177. package/dist/{chunk-3UOQH2DJ.js → chunk-JJTPPAZY.js} +2568 -345
  178. package/dist/{chunk-A6QBAUJH.js → chunk-KILR4FBR.js} +4 -4
  179. package/dist/{chunk-CGFGNHSP.js → chunk-KTKIFXIP.js} +1 -1
  180. package/dist/{chunk-NCJBPXGM.js → chunk-KXYKSLW4.js} +108 -24
  181. package/dist/{chunk-3MUARHPO.js → chunk-L3VUW5M4.js} +1 -1
  182. package/dist/{chunk-GZOG2MAX.js → chunk-L5EPGGDP.js} +1 -1
  183. package/dist/{chunk-T7VSKWES.js → chunk-L63V25HS.js} +6 -5
  184. package/dist/{chunk-R4VNGRKU.js → chunk-LFBLQE2P.js} +1 -1
  185. package/dist/{chunk-W5MCOZTW.js → chunk-LFUBEHFW.js} +12 -2
  186. package/dist/{chunk-AIBIEP4R.js → chunk-LKTN22L6.js} +61 -25
  187. package/dist/{chunk-3KFQCFQB.js → chunk-LR5O2XWZ.js} +5 -5
  188. package/dist/{chunk-VUOAPKPI.js → chunk-LSNBTGW4.js} +1 -1
  189. package/dist/{chunk-P5U3GAWU.js → chunk-MB47DRF5.js} +2 -2
  190. package/dist/{chunk-HZESME3B.js → chunk-MC4IM2CC.js} +16 -13
  191. package/dist/{chunk-ZKJ5S23O.js → chunk-MFAOAIUE.js} +12 -9
  192. package/dist/{chunk-62J64CHO.js → chunk-MKM6D7JM.js} +26 -7
  193. package/dist/{chunk-ZIG7VPJV.js → chunk-MMS2HBRT.js} +15 -3
  194. package/dist/{chunk-FHSV4BSW.js → chunk-MOANZQXF.js} +12 -4
  195. package/dist/{chunk-RTZZBWQC.js → chunk-MPZ2AVNS.js} +16 -5
  196. package/dist/{chunk-AZ6KLVDX.js → chunk-MROSARM5.js} +2 -2
  197. package/dist/{chunk-RV2FFCDS.js → chunk-MUAWCFW6.js} +6 -2
  198. package/dist/{chunk-K4ESASPL.js → chunk-MUCNYSJP.js} +1 -1
  199. package/dist/{chunk-5QGKMP6T.js → chunk-NF5FOSLD.js} +1 -1
  200. package/dist/{chunk-CKOJP7JI.js → chunk-NKEFYE4R.js} +2 -2
  201. package/dist/{chunk-3SXHEQ7X.js → chunk-NPXIS2RY.js} +1 -1
  202. package/dist/{chunk-A5USSF66.js → chunk-NVFNADTX.js} +12 -8
  203. package/dist/{chunk-VVUO3RJS.js → chunk-NYLJQ2M2.js} +4 -4
  204. package/dist/{chunk-HIVOLPLD.js → chunk-OAFENIHN.js} +1 -1
  205. package/dist/{chunk-PMZHZQ6K.js → chunk-OBBO6EJR.js} +1 -1
  206. package/dist/{chunk-SS6EMDLL.js → chunk-P2UY34XE.js} +6 -6
  207. package/dist/{chunk-Y4T5IUEP.js → chunk-P3QQ52QK.js} +2 -2
  208. package/dist/{chunk-GGEKMY6G.js → chunk-P3UX5EH4.js} +4 -4
  209. package/dist/{chunk-F7IRZU5G.js → chunk-P4PIZOL2.js} +3 -3
  210. package/dist/{chunk-GEPFKUUR.js → chunk-P4XLIPB7.js} +1 -1
  211. package/dist/{chunk-GPUOUUHA.js → chunk-PCV52RYM.js} +1 -1
  212. package/dist/{chunk-XR3773KZ.js → chunk-PL4CFSQ7.js} +1 -1
  213. package/dist/{chunk-LLZNPOGB.js → chunk-PLII76NJ.js} +58 -0
  214. package/dist/{chunk-FT5PPV2C.js → chunk-PRDDPQLC.js} +5 -5
  215. package/dist/{chunk-BZ546I4Q.js → chunk-PUBA5B4M.js} +24 -0
  216. package/dist/{chunk-2TGJ5XCV.js → chunk-PWC3C5ME.js} +4 -4
  217. package/dist/{chunk-A4YCLD3L.js → chunk-QFAFKEB5.js} +40 -4
  218. package/dist/{chunk-CL4J4757.js → chunk-QH5ZQ5SJ.js} +26 -0
  219. package/dist/{chunk-UJWZYK46.js → chunk-QNZ4562V.js} +1 -1
  220. package/dist/{chunk-IPHLUZ37.js → chunk-QPTSA4PP.js} +2 -2
  221. package/dist/{chunk-O3YJTHWI.js → chunk-R5E7WNAC.js} +3 -3
  222. package/dist/{chunk-V3M4LJRA.js → chunk-RB3J2WYQ.js} +1 -1
  223. package/dist/{chunk-IUCWOI4Y.js → chunk-RDWIKDMY.js} +237 -11
  224. package/dist/{chunk-ENN6DY4T.js → chunk-RVO5O5SR.js} +46 -21
  225. package/dist/{chunk-LY4AXCYJ.js → chunk-RZN2LEAK.js} +6 -6
  226. package/dist/{chunk-2YIB75UQ.js → chunk-S26CV7BE.js} +57 -13
  227. package/dist/{chunk-XC36HYP6.js → chunk-SDYWZRPN.js} +1 -1
  228. package/dist/{chunk-PHBU4LGO.js → chunk-SNHYZYGZ.js} +1 -1
  229. package/dist/{chunk-4KTTBKWQ.js → chunk-T5FEAQES.js} +1 -1
  230. package/dist/{chunk-XU57KFD6.js → chunk-T5SM4RXY.js} +5 -1
  231. package/dist/{chunk-KUV5VBAO.js → chunk-TKAU7IJ2.js} +1 -1
  232. package/dist/{chunk-KBR5LIWD.js → chunk-TKS5GMYA.js} +1 -1
  233. package/dist/{chunk-5DFE2NAF.js → chunk-TNS63ATU.js} +96 -22
  234. package/dist/{chunk-RFPMXR6B.js → chunk-U4GMOT4M.js} +1 -1
  235. package/dist/{chunk-CO5ZVE3D.js → chunk-UOPCVFVR.js} +17 -17
  236. package/dist/{chunk-22LNFCDF.js → chunk-UX2EO653.js} +1 -1
  237. package/dist/{chunk-LGC6TBA3.js → chunk-UXN4BICC.js} +2 -2
  238. package/dist/{chunk-7J5X4AK7.js → chunk-VF2KRROX.js} +1 -1
  239. package/dist/{chunk-7THUQU44.js → chunk-VF3BZOZK.js} +5 -2
  240. package/dist/{chunk-M2B35MUK.js → chunk-VHHX4UCP.js} +1 -1
  241. package/dist/{chunk-AZBJXATK.js → chunk-VJEJ7JNB.js} +1 -1
  242. package/dist/{chunk-4TRVALTR.js → chunk-VLBHZ6TF.js} +2 -2
  243. package/dist/{chunk-7BMSBACY.js → chunk-VOVFUKEB.js} +5 -5
  244. package/dist/{chunk-MDPGZS6C.js → chunk-VROK4X2L.js} +1 -1
  245. package/dist/{chunk-J6ABJDZ4.js → chunk-W3KPQE7H.js} +4 -4
  246. package/dist/{chunk-3Q7NEDHB.js → chunk-W6BZ4UGA.js} +48 -9
  247. package/dist/{chunk-IZ3IFLL2.js → chunk-XEBKIWI7.js} +14 -14
  248. package/dist/{chunk-UZDF6FLJ.js → chunk-XHU3KOKJ.js} +1 -1
  249. package/dist/{chunk-PA37MXV5.js → chunk-XSUALA32.js} +2 -2
  250. package/dist/{chunk-GR5WJPKF.js → chunk-XUZK23V7.js} +11 -6
  251. package/dist/{chunk-IDB3EZLW.js → chunk-YLB365YX.js} +148 -5
  252. package/dist/{chunk-JDQ7JU3A.js → chunk-YLFCH3VA.js} +24 -16
  253. package/dist/{chunk-ZJJL2Z23.js → chunk-YRQ26MNP.js} +4 -4
  254. package/dist/chunk-YRUZK2QA.js +35 -0
  255. package/dist/{chunk-7HLJ4BSF.js → chunk-ZAEUEDTN.js} +2 -2
  256. package/dist/{chunk-NY74W3S4.js → chunk-ZBPZDADW.js} +313 -43
  257. package/dist/{chunk-ZLPS3GR7.js → chunk-ZJQ56DZZ.js} +42 -1
  258. package/dist/{chunk-VMZZTFXT.js → chunk-ZOTTYCP5.js} +4 -4
  259. package/dist/{chunk-MP4ST7RO.js → chunk-ZPP63JSQ.js} +51 -11
  260. package/dist/{chunk-N4J5WHO2.js → chunk-ZT4LFTUJ.js} +1 -1
  261. package/dist/{cleanup-graph-garbage-GE2DYOTB.js → cleanup-graph-garbage-VQAJ2RBT.js} +11 -11
  262. package/dist/{cloud-sync-command-T6KF3ARK.js → cloud-sync-command-J7NEFUY7.js} +2 -2
  263. package/dist/{cloud-sync-db-init-RSHCCY74.js → cloud-sync-db-init-KWEMNMGA.js} +1 -1
  264. package/dist/{cloud-sync-shutdown-6IVCSLM5.js → cloud-sync-shutdown-P63AUTUI.js} +5 -5
  265. package/dist/{co-activation-AF7RCJPX.js → co-activation-7IHRPBZN.js} +5 -5
  266. package/dist/{co-occurrence-DMOOGBVV.js → co-occurrence-R5AG4OAU.js} +9 -9
  267. package/dist/{code-context-index-LIDOFKOR.js → code-context-index-WFLLZBVB.js} +10 -9
  268. package/dist/{code-context-watcher-4F7K2N3U.js → code-context-watcher-3QAPHO7N.js} +10 -9
  269. package/dist/{codex-consolidation-SH4UKFBQ.js → codex-consolidation-ONZ2AQFX.js} +2 -2
  270. package/dist/{consent-passphrase-WV7MZPMO.js → consent-passphrase-5ZBDJ5G7.js} +2 -2
  271. package/dist/{content-extractor-DJM5EUDA.js → content-extractor-ZLXC6GNR.js} +2 -2
  272. package/dist/{conversation-entity-extractor-4UG7BKWL.js → conversation-entity-extractor-7FRKLLBD.js} +4 -4
  273. package/dist/{conversation-wiki-populator-OS4C6W54.js → conversation-wiki-populator-YAOVCUGO.js} +1 -1
  274. package/dist/{crdt-sync-VL4KXZB7.js → crdt-sync-IFRZOEIS.js} +4 -4
  275. package/dist/{crm-webhook-IDBJ7X5Y.js → crm-webhook-L2S63ASV.js} +2 -2
  276. package/dist/{cto-delegation-gate-4FLSHSLO.js → cto-delegation-gate-3WU7OHX7.js} +29 -28
  277. package/dist/{daemon-auth-PNKHERLV.js → daemon-auth-OWLFYEFR.js} +3 -3
  278. package/dist/{daemon-orchestration-HFCB6OK4.js → daemon-orchestration-3VQYKLOR.js} +33 -32
  279. package/dist/{daemon-ready-BN6EZLTQ.js → daemon-ready-VZ6ZHA2C.js} +1 -1
  280. package/dist/{db-integrity-events-GYGANKZV.js → db-integrity-events-7NKWS5MT.js} +3 -3
  281. package/dist/{db-restore-events-G6NOQOVE.js → db-restore-events-XYL6CGPC.js} +2 -2
  282. package/dist/{destructive-data-guard-HHWUBIGS.js → destructive-data-guard-JDUJ2ULM.js} +58 -2
  283. package/dist/{dispatch-ack-X4DXUSKP.js → dispatch-ack-UYEAKON5.js} +2 -1
  284. package/dist/{doc-graph-extractor-E36PQUCS.js → doc-graph-extractor-YIR5E7OF.js} +9 -9
  285. package/dist/{documents-SCKKHDR7.js → documents-QEHPTYIY.js} +19 -18
  286. package/dist/{dreaming-Q26JBH56.js → dreaming-LNFE7DTN.js} +34 -33
  287. package/dist/{employee-boot-brief-XU6EI2EO.js → employee-boot-brief-ZTXDYNWM.js} +39 -38
  288. package/dist/{entity-boost-VNQLLR3Q.js → entity-boost-R5N6JWXD.js} +1 -1
  289. package/dist/{exe-drift-YZ6OIUAY.js → exe-drift-WYSJVZFO.js} +6 -6
  290. package/dist/{exe-export-HHRQMLSS.js → exe-export-GOLNAEAV.js} +20 -19
  291. package/dist/{exe-import-5XR4NQAB.js → exe-import-U4BSI6OH.js} +20 -19
  292. package/dist/{exe-key-5XOFVP3I.js → exe-key-V42G3NGO.js} +152 -130
  293. package/dist/{exe-org-TPAX4AAK.js → exe-org-U4GLQ6OP.js} +27 -27
  294. package/dist/{exe-snapshot-GIRP3XCJ.js → exe-snapshot-U7ONBYNY.js} +38 -37
  295. package/dist/{fast-db-init-MGY6VCLG.js → fast-db-init-W3NGKAEU.js} +1 -1
  296. package/dist/{founder-context-WD72OL2P.js → founder-context-ZSIBRVDM.js} +4 -4
  297. package/dist/{founder-monitor-envelope-XGYMHT4W.js → founder-monitor-envelope-L3IWZLFY.js} +7 -7
  298. package/dist/{fts-integrity-PLAL6NMG.js → fts-integrity-PHCKKOBC.js} +3 -3
  299. package/dist/gateway/index.js +23 -22
  300. package/dist/{gateway-client-VO3BRLV5.js → gateway-client-DJFCVIPT.js} +1 -1
  301. package/dist/{git-staleness-KGZABPP3.js → git-staleness-OF24QXFZ.js} +5 -5
  302. package/dist/{global-procedures-KOU6A5E5.js → global-procedures-WSIOWO43.js} +6 -6
  303. package/dist/{graph-auto-extract-OZNRDAHE.js → graph-auto-extract-IEVVN3L3.js} +9 -9
  304. package/dist/{graph-query-36K6VXFF.js → graph-query-JDZWAVCU.js} +1 -1
  305. package/dist/{graph-rag-TZLH3CTQ.js → graph-rag-BKAD2XQA.js} +4 -4
  306. package/dist/{hook-integrity-BWFFISJV.js → hook-integrity-TPWDGX2M.js} +3 -1
  307. package/dist/{hook-prefetch-MFUJRAIM.js → hook-prefetch-FD6VGJJA.js} +29 -28
  308. package/dist/hooks/bug-report-worker.js +34 -33
  309. package/dist/hooks/codex-stop-task-finalizer.js +36 -35
  310. package/dist/hooks/commit-complete.js +40 -36
  311. package/dist/hooks/error-recall.js +15 -15
  312. package/dist/hooks/exe-heartbeat-hook.js +8 -8
  313. package/dist/hooks/ingest-worker.js +21 -20
  314. package/dist/hooks/ingest.js +23 -23
  315. package/dist/hooks/instructions-loaded.js +10 -10
  316. package/dist/hooks/manifest.json +20 -20
  317. package/dist/hooks/notification.js +9 -9
  318. package/dist/hooks/post-compact.js +8 -8
  319. package/dist/hooks/post-tool-combined.js +15 -15
  320. package/dist/hooks/pre-compact.js +33 -32
  321. package/dist/hooks/pre-tool-use.js +2 -2
  322. package/dist/hooks/prompt-submit.js +52 -51
  323. package/dist/hooks/session-end.js +38 -37
  324. package/dist/hooks/session-start.js +25 -22
  325. package/dist/hooks/stop.js +40 -39
  326. package/dist/hooks/subagent-stop.js +36 -35
  327. package/dist/hooks/summary-worker.js +41 -40
  328. package/dist/index.js +43 -42
  329. package/dist/{inrun-inbox-DRKVDPLY.js → inrun-inbox-RGNFFGMU.js} +5 -0
  330. package/dist/{installer-RM4ASY7U.js → installer-NMOBSEZ2.js} +11 -11
  331. package/dist/{installer-IESPHXVH.js → installer-OTI5SA43.js} +11 -11
  332. package/dist/{installer-SQZRVD36.js → installer-SRJGE4GU.js} +11 -11
  333. package/dist/{intercom-queue-DGLAC224.js → intercom-queue-4FFXCBHO.js} +28 -27
  334. package/dist/{key-backup-status-LQPINQ3W.js → key-backup-status-6U7D5GOD.js} +2 -2
  335. package/dist/lib/agent-config.js +3 -3
  336. package/dist/lib/cloud-sync.js +28 -27
  337. package/dist/lib/config.js +4 -2
  338. package/dist/lib/consolidation.js +14 -12
  339. package/dist/lib/crypto.js +5 -3
  340. package/dist/lib/database.js +5 -5
  341. package/dist/lib/db-backup.js +11 -3
  342. package/dist/lib/db-daemon-client.js +11 -10
  343. package/dist/lib/db-write-worker.js +4 -4
  344. package/dist/lib/db.js +5 -5
  345. package/dist/lib/delivery-catalog.js +431 -0
  346. package/dist/lib/delivery-schemas.js +62 -0
  347. package/dist/lib/delivery-truth.js +1 -1
  348. package/dist/lib/device-registry.js +3 -3
  349. package/dist/lib/embed-worker.js +2 -2
  350. package/dist/lib/embedder.js +10 -9
  351. package/dist/lib/employee-templates.js +7 -7
  352. package/dist/lib/employees.js +5 -5
  353. package/dist/lib/exe-daemon-client.js +9 -8
  354. package/dist/lib/exe-daemon.js +186 -117
  355. package/dist/lib/hybrid-search.js +12 -12
  356. package/dist/lib/identity.js +5 -5
  357. package/dist/lib/keychain.js +13 -1
  358. package/dist/lib/license.js +8 -4
  359. package/dist/lib/messaging.js +39 -30
  360. package/dist/lib/post-tool-memory.js +9 -9
  361. package/dist/lib/registry-proxy.js +9 -1
  362. package/dist/lib/reminders.js +6 -6
  363. package/dist/lib/schedules.js +11 -11
  364. package/dist/lib/session-registry.js +7 -7
  365. package/dist/lib/skill-learning.js +20 -19
  366. package/dist/lib/status-brief.js +5 -4
  367. package/dist/lib/store.js +10 -10
  368. package/dist/lib/task-router.js +6 -6
  369. package/dist/lib/tasks.js +30 -29
  370. package/dist/lib/tmux-routing.js +28 -27
  371. package/dist/lib/tmux-status.js +3 -1
  372. package/dist/lib/token-spend.js +6 -6
  373. package/dist/lib/ws-client.js +1 -1
  374. package/dist/{license-gate-E6GTRYBA.js → license-gate-R4JWTWM4.js} +5 -5
  375. package/dist/{license-recheck-RBAO6Z2H.js → license-recheck-3MBJ4IJX.js} +1 -1
  376. package/dist/{license-sync-ZCZ2LIHK.js → license-sync-BVSG3WMW.js} +4 -4
  377. package/dist/local-secret-inventory-JWNBHZZ4.js +20 -0
  378. package/dist/mailbox-inbox-MTAT4MXX.js +13 -0
  379. package/dist/{mailbox-outbox-DNDDP2HW.js → mailbox-outbox-OY4IU6S4.js} +2 -1
  380. package/dist/mcp/register-tools.js +121 -120
  381. package/dist/mcp/server.js +123 -122
  382. package/dist/mcp/tools/complete-reminder.js +7 -7
  383. package/dist/mcp/tools/create-reminder.js +7 -7
  384. package/dist/mcp/tools/create-task.js +35 -32
  385. package/dist/mcp/tools/deactivate-behavior.js +22 -21
  386. package/dist/mcp/tools/list-reminders.js +7 -7
  387. package/dist/mcp/tools/list-tasks.js +33 -32
  388. package/dist/mcp/tools/send-message.js +32 -31
  389. package/dist/mcp/tools/update-task.js +31 -30
  390. package/dist/{mcp-child-registry-DVHYAHPW.js → mcp-child-registry-TIZERM7O.js} +5 -5
  391. package/dist/{mcp-health-B5EKRCZG.js → mcp-health-4ZHU67LM.js} +9 -3
  392. package/dist/{mcp-http-config-ME67QDOF.js → mcp-http-config-VUMSFWFH.js} +12 -12
  393. package/dist/{mcp-session-identity-DNG4ULAE.js → mcp-session-identity-DZHWEJRV.js} +28 -27
  394. package/dist/{memory-cards-WCISXY62.js → memory-cards-JVXTMSAT.js} +10 -10
  395. package/dist/{memory-graph-extractor-GXIK4QUF.js → memory-graph-extractor-PPBJMYFJ.js} +10 -10
  396. package/dist/{memory-poisoning-defense-25LZ5FJI.js → memory-poisoning-defense-K5Q74XQ4.js} +5 -5
  397. package/dist/{memory-pressure-watchdog-XGXI7WGE.js → memory-pressure-watchdog-YMJH5CSA.js} +29 -28
  398. package/dist/{memory-queue-YF7IDSFY.js → memory-queue-2MA67TAA.js} +3 -3
  399. package/dist/{memory-queue-client-QC2OTMJB.js → memory-queue-client-4G7HVRSX.js} +11 -10
  400. package/dist/{memory-reflection-GFGT44NT.js → memory-reflection-7BZWIHRE.js} +10 -10
  401. package/dist/{monitor-grants-Z2SEFE6E.js → monitor-grants-Q7X3MYQP.js} +6 -6
  402. package/dist/{monitor-identity-AEMHCVHV.js → monitor-identity-ZQB4IXEE.js} +2 -2
  403. package/dist/{notification-ledger-ETQBGRP7.js → notification-ledger-XRAXL5OI.js} +32 -29
  404. package/dist/{notifications-LPRCFJYY.js → notifications-JE3PX55X.js} +28 -27
  405. package/dist/{orchestration-events-T2GXV2NG.js → orchestration-events-JCQ5F5IJ.js} +6 -6
  406. package/dist/{orchestration-phase-T2WD45UA.js → orchestration-phase-QKTGQ2YT.js} +3 -3
  407. package/dist/{orchestrator-HY2IB3NA.js → orchestrator-X65INDTR.js} +30 -29
  408. package/dist/{org-brief-session-UWFCFEEB.js → org-brief-session-3PQ22UIX.js} +19 -18
  409. package/dist/{org-consent-policy-XXMST37J.js → org-consent-policy-VGELJ7K7.js} +7 -6
  410. package/dist/{org-join-72QKM7JR.js → org-join-6TO5ZYUZ.js} +12 -12
  411. package/dist/{org-key-admin-YCIAYP7V.js → org-key-admin-XHYVRRAZ.js} +12 -12
  412. package/dist/{org-key-pin-F7BQPI5P.js → org-key-pin-TTTYGTQL.js} +6 -6
  413. package/dist/{org-membership-JQSU4Z5P.js → org-membership-Y7T2BS57.js} +7 -7
  414. package/dist/{org-partner-config-PVJ45SLC.js → org-partner-config-OP4NEUNF.js} +10 -10
  415. package/dist/{org-partner-runtime-U4CTLWLC.js → org-partner-runtime-YNVUNT2R.js} +20 -19
  416. package/dist/{org-row-visibility-WUX4N3FX.js → org-row-visibility-JBBXNYXD.js} +1 -1
  417. package/dist/{pipeline-router-2RMBCBRM.js → pipeline-router-EIBB7QNG.js} +6 -6
  418. package/dist/{plan-limits-Z47XYEJR.js → plan-limits-MEWXYLEN.js} +8 -8
  419. package/dist/{postinstall-failure-O6TSSNJB.js → postinstall-failure-VETYYWEZ.js} +3 -3
  420. package/dist/{pre-tool-use-impl-JPE6XMRJ.js → pre-tool-use-impl-C6KJY22W.js} +60 -49
  421. package/dist/{project-boot-UFQDAFU5.js → project-boot-VEYFCCSL.js} +2 -2
  422. package/dist/{project-name-V4IREGHO.js → project-name-UYORSNGE.js} +6 -6
  423. package/dist/{projection-worker-HAD6H3VJ.js → projection-worker-WYFDWS57.js} +5 -5
  424. package/dist/{prospective-memory-KIF4JLFF.js → prospective-memory-E6XBQFJA.js} +5 -5
  425. package/dist/{push-notifications-GDKRTYXH.js → push-notifications-M7YU63FY.js} +29 -28
  426. package/dist/{reproject-worktree-memories-SG4BZJ3Z.js → reproject-worktree-memories-B5XMGJSD.js} +28 -27
  427. package/dist/{reranker-G2AZ67JP.js → reranker-SRA4BR7N.js} +3 -3
  428. package/dist/{retrieval-health-GBJRXTBZ.js → retrieval-health-P2JPZUPV.js} +4 -4
  429. package/dist/{review-polling-VUZPAAGT.js → review-polling-KQPN7IQE.js} +29 -28
  430. package/dist/runtime/index.js +37 -36
  431. package/dist/{session-events-BI6NIFIR.js → session-events-6LDDKKY3.js} +29 -28
  432. package/dist/{session-kill-telemetry-HPBDOPHT.js → session-kill-telemetry-5DSRGWCL.js} +29 -28
  433. package/dist/{session-mcp-config-WFZAH6R5.js → session-mcp-config-F7RCERUG.js} +3 -3
  434. package/dist/{session-scope-UB3HA5E7.js → session-scope-XG5R3P3D.js} +28 -27
  435. package/dist/{setup-wizard-6XULOT3L.js → setup-wizard-7QFLZIKT.js} +5 -5
  436. package/dist/{shard-manager-DYEJ6ETD.js → shard-manager-HHHHV2KZ.js} +3 -3
  437. package/dist/{skill-refinement-MKBQIWZ6.js → skill-refinement-I5RMAHSC.js} +6 -6
  438. package/dist/{stack-generate-manifest-7ODQ6W2O.js → stack-generate-manifest-AKMZ3AUX.js} +246 -13
  439. package/dist/stack-init-5VKL5PL5.js +136 -0
  440. package/dist/{stack-promote-3UKJBJSP.js → stack-promote-34CE2HHF.js} +7 -6
  441. package/dist/{stack-release-5CVXMJM5.js → stack-release-5PGWV5D4.js} +123 -12
  442. package/dist/{stack-update-Z53KG2P5.js → stack-update-ZQQ5YYPJ.js} +20 -5
  443. package/dist/{steward-gate-OKUYYIX6.js → steward-gate-AQJ6KT2C.js} +6 -6
  444. package/dist/{subagent-brief-injection-T2CVQLAS.js → subagent-brief-injection-3GU7YAWY.js} +50 -42
  445. package/dist/{subagent-spawn-ledger-E6U3OY6Z.js → subagent-spawn-ledger-52I66CLW.js} +3 -3
  446. package/dist/{supervisor-handoff-SGLEPOCY.js → supervisor-handoff-BWJW6CKZ.js} +4 -4
  447. package/dist/{support-inbox-WJIDCKJC.js → support-inbox-NY5TB3FN.js} +12 -12
  448. package/dist/{support-outbox-G2NG2U5K.js → support-outbox-KNI3FR3G.js} +3 -2
  449. package/dist/{task-enforcement-JL5ADPS6.js → task-enforcement-CAA6D2MH.js} +29 -28
  450. package/dist/{task-request-inbox-54BRRFHZ.js → task-request-inbox-QBZVU66E.js} +9 -6
  451. package/dist/{task-scope-OBPZBID5.js → task-scope-NHXB4ZRN.js} +32 -27
  452. package/dist/{tasks-crud-YBCPT7TY.js → tasks-crud-JHSWL5NM.js} +28 -27
  453. package/dist/{tasks-notify-CEEQSDJF.js → tasks-notify-7PBE4U7T.js} +29 -28
  454. package/dist/{tasks-review-JIEI656P.js → tasks-review-PPPVEE62.js} +28 -27
  455. package/dist/{telemetry-upload-ZZSEZR2U.js → telemetry-upload-YU2VRNHX.js} +10 -10
  456. package/dist/{token-budget-AUFMEMQ2.js → token-budget-QCMWKG3K.js} +6 -6
  457. package/dist/{tool-capability-index-6HLZU437.js → tool-capability-index-7AWQAJRP.js} +1 -1
  458. package/dist/{tool-gates-VXITVRFQ.js → tool-gates-5Q3RSQEG.js} +1 -1
  459. package/dist/{tool-gates-JWVSAYTW.js → tool-gates-QD26D2NE.js} +1 -1
  460. package/dist/{tool-telemetry-RHSEK2TO.js → tool-telemetry-LTOIC64I.js} +1 -1
  461. package/dist/tui/App.js +43 -42
  462. package/dist/{tui-data-PBZNN5YB.js → tui-data-NDBXD6U7.js} +32 -31
  463. package/dist/{update-support-V3ZCJR6L.js → update-support-BMJM4NG7.js} +27 -26
  464. package/dist/{whatsapp-NAM2CRVQ.js → whatsapp-QQLDAHUX.js} +2 -2
  465. package/dist/{wiki-acl-NUBAPLCD.js → wiki-acl-W6WDCVCP.js} +1 -1
  466. package/dist/{work-claims-Q2NU6JON.js → work-claims-6DM32MGO.js} +6 -6
  467. package/dist/{work-state-heartbeat-HAQRV3RK.js → work-state-heartbeat-HG7D4AWJ.js} +1 -1
  468. package/dist/{worker-gate-NUUSQMBT.js → worker-gate-FTMW7GBB.js} +3 -3
  469. package/dist/{workflow-engine-GEWPU5YR.js → workflow-engine-ZWC6CCXE.js} +2 -2
  470. package/dist/{worktree-C7LFMRKW.js → worktree-EMQCPGFE.js} +7 -7
  471. package/dist/{worktree-ownership-guard-4LKMW6PW.js → worktree-ownership-guard-O6JQF2CL.js} +2 -2
  472. package/dist/{worktree-sweep-SYF62ANH.js → worktree-sweep-XVUJZBXV.js} +8 -8
  473. package/package.json +23 -7
  474. package/release-notes.json +39 -12
  475. package/stack.release.json +4 -4
  476. package/dist/mailbox-inbox-XE72D3AX.js +0 -10
  477. /package/dist/{chunk-QIEYJ4KZ.js → chunk-2KY7WZZF.js} +0 -0
  478. /package/dist/{chunk-T3667X2B.js → chunk-2Q2CD6CD.js} +0 -0
  479. /package/dist/{chunk-JZJZYKMW.js → chunk-AJK2PVQW.js} +0 -0
  480. /package/dist/{chunk-ZEGEFBZV.js → chunk-AWWDKF22.js} +0 -0
  481. /package/dist/{chunk-QNTKRGJ6.js → chunk-GIRD7O5X.js} +0 -0
  482. /package/dist/{chunk-FWA4MYTA.js → chunk-JRIH6I7D.js} +0 -0
  483. /package/dist/{chunk-C7H2D7LX.js → chunk-M4XY4JRK.js} +0 -0
  484. /package/dist/{chunk-Q3DN5J6F.js → chunk-P2VVMGMI.js} +0 -0
  485. /package/dist/{chunk-BRAIWGMF.js → chunk-Q46NYJ77.js} +0 -0
  486. /package/dist/{chunk-3LQ2N4H7.js → chunk-U2D6PJ5T.js} +0 -0
  487. /package/dist/{chunk-3O6OGZL3.js → chunk-XDVOGDBC.js} +0 -0
  488. /package/dist/{core-memory-UNCAPGD4.js → core-memory-O6D5UC3T.js} +0 -0
  489. /package/dist/{hook-tamper-log-Z4PWC7N4.js → hook-tamper-log-ARGWCXKJ.js} +0 -0
  490. /package/dist/{memory-isolation-ALPJWLR5.js → memory-isolation-EBFFC6HF.js} +0 -0
  491. /package/dist/{oauth-server-AC2KB7NB.js → oauth-server-ZKBUHDFI.js} +0 -0
  492. /package/dist/{webhook-pipe-W2FVXY7M.js → webhook-pipe-PXH5MBRM.js} +0 -0
  493. /package/dist/{wiki-client-W65IOSWF.js → wiki-client-DD2NVWK2.js} +0 -0
@@ -6,12 +6,12 @@ import {
6
6
  restartBreakerAlertPath,
7
7
  writeDaemonExitBreadcrumb
8
8
  } from "../chunk-7INEFMVU.js";
9
- import {
10
- pushNotifyAsync
11
- } from "../chunk-W4EGAQXW.js";
12
9
  import {
13
10
  isDbVerifyStampFresh
14
11
  } from "../chunk-SVFNWBLF.js";
12
+ import {
13
+ pushNotifyAsync
14
+ } from "../chunk-JFJP6ATJ.js";
15
15
  import {
16
16
  disposeDbWriteWorker,
17
17
  isDbWriteWorkerReady,
@@ -29,17 +29,20 @@ import {
29
29
  decideBootBackoff,
30
30
  decideDaemonSelfHeal,
31
31
  decideOrchestrationTickSkip,
32
+ hostTickFractionFor,
32
33
  isHostCpuStarved,
34
+ isHostSuspendedWindow,
35
+ totalHostCpuMs,
33
36
  updateLoadWindow
34
- } from "../chunk-ZLPS3GR7.js";
37
+ } from "../chunk-ZJQ56DZZ.js";
38
+ import {
39
+ outsideParkPortionMs
40
+ } from "../chunk-3OX5S7KZ.js";
35
41
  import {
36
42
  getMcpToolFamily,
37
43
  inferMcpRuntime,
38
44
  recordMcpHttpEvent
39
- } from "../chunk-FNEZ4BWT.js";
40
- import {
41
- outsideParkPortionMs
42
- } from "../chunk-3OX5S7KZ.js";
45
+ } from "../chunk-FEU6QEEL.js";
43
46
  import {
44
47
  hasPendingCloudSyncSlice,
45
48
  readCloudSyncState,
@@ -56,16 +59,15 @@ import {
56
59
  findScopedDuplicate,
57
60
  governMemoryRecord,
58
61
  schedulePostWriteMemoryHygiene
59
- } from "../chunk-M2B35MUK.js";
62
+ } from "../chunk-VHHX4UCP.js";
60
63
  import "../chunk-5MOYSU5A.js";
61
- import "../chunk-5QCIWWFA.js";
64
+ import "../chunk-ELEGH4DX.js";
62
65
  import "../chunk-76CJBM36.js";
63
66
  import {
64
67
  BUSY_PATTERN
65
- } from "../chunk-ZVBVPX4W.js";
66
- import "../chunk-JUKDL5MF.js";
67
- import "../chunk-SFFXAPYK.js";
68
- import "../chunk-UJWZYK46.js";
68
+ } from "../chunk-7UHZBVP3.js";
69
+ import "../chunk-6BJCDWSM.js";
70
+ import "../chunk-JDDM6C57.js";
69
71
  import {
70
72
  currentPauseStartMs,
71
73
  isTimerPausedNow,
@@ -74,31 +76,32 @@ import {
74
76
  sweepPauseTotalMs,
75
77
  timerPauseIntervalsSince
76
78
  } from "../chunk-ZKGWHT56.js";
79
+ import "../chunk-QNZ4562V.js";
77
80
  import "../chunk-WT4RI36X.js";
78
81
  import "../chunk-E23LNUWJ.js";
79
82
  import "../chunk-TDF2XKLK.js";
80
83
  import "../chunk-EIKATSE4.js";
81
84
  import "../chunk-MJCSEIFI.js";
82
- import "../chunk-NPGV4MZ3.js";
85
+ import "../chunk-ALRHGEAJ.js";
86
+ import "../chunk-PUBA5B4M.js";
83
87
  import "../chunk-VI4ATC6I.js";
84
88
  import "../chunk-A27Q27CT.js";
85
- import "../chunk-BZ546I4Q.js";
86
- import "../chunk-VUOAPKPI.js";
87
- import "../chunk-XU57KFD6.js";
88
- import "../chunk-AZBJXATK.js";
89
- import "../chunk-GZOG2MAX.js";
89
+ import "../chunk-LSNBTGW4.js";
90
+ import "../chunk-T5SM4RXY.js";
91
+ import "../chunk-VJEJ7JNB.js";
92
+ import "../chunk-L5EPGGDP.js";
90
93
  import "../chunk-AM7S2TY6.js";
91
- import "../chunk-4CF5KUWH.js";
94
+ import "../chunk-BPVFZ6Q4.js";
92
95
  import "../chunk-CVYC6DUW.js";
93
- import "../chunk-WJC6AAJN.js";
94
- import "../chunk-4IK2K3B3.js";
96
+ import "../chunk-ANVHWV2X.js";
97
+ import "../chunk-HME6ITKV.js";
95
98
  import {
96
99
  attributeSignalSource,
97
100
  consumeRestartIntentDetail,
98
101
  isRestartCooldownActive,
99
102
  logRestartEvent,
100
103
  noteRestartAttempt
101
- } from "../chunk-ZKJ5S23O.js";
104
+ } from "../chunk-MFAOAIUE.js";
102
105
  import {
103
106
  AGENT_IDENTITY_TOKEN_HEADER,
104
107
  assessInitialBindIdentity,
@@ -108,12 +111,9 @@ import {
108
111
  reconcileSessionAgentIdentity,
109
112
  shouldEnforceAgentIdentity,
110
113
  shouldEnforceSessionIdentity
111
- } from "../chunk-GPUOUUHA.js";
114
+ } from "../chunk-PCV52RYM.js";
112
115
  import "../chunk-BTSWFMEH.js";
113
- import "../chunk-ZG62LIK3.js";
114
- import {
115
- sanitizeDaemonKeyCustodyEnv
116
- } from "../chunk-IMYGYIAI.js";
116
+ import "../chunk-CIPDQRFO.js";
117
117
  import {
118
118
  DAEMON_RSS_RESTART_DEBOUNCE,
119
119
  DAEMON_RSS_STARTUP_GRACE_MS,
@@ -130,20 +130,24 @@ import {
130
130
  resolveEmbedWorkerRssKillMb,
131
131
  shouldRestartForRss
132
132
  } from "../chunk-NLEW62VC.js";
133
+ import {
134
+ sanitizeDaemonKeyCustodyEnv
135
+ } from "../chunk-IMYGYIAI.js";
133
136
  import {
134
137
  killIfSameProcess,
135
138
  ownProcessStartedAt,
136
139
  processStartedAt
137
- } from "../chunk-GPJIBLP4.js";
140
+ } from "../chunk-3DAEZILW.js";
138
141
  import {
139
142
  killAttributionLogPath,
140
143
  recordKillIntent
141
- } from "../chunk-V3WLC5TJ.js";
142
- import "../chunk-22LNFCDF.js";
144
+ } from "../chunk-DRTJCG6B.js";
145
+ import "../chunk-UX2EO653.js";
143
146
  import "../chunk-HYZV25LY.js";
144
147
  import "../chunk-GJV3WDWM.js";
145
148
  import "../chunk-MP2AFCGL.js";
146
- import "../chunk-AY2U4NZ5.js";
149
+ import "../chunk-YRUZK2QA.js";
150
+ import "../chunk-GL47M7NY.js";
147
151
  import {
148
152
  logBoot,
149
153
  logCrash,
@@ -153,17 +157,20 @@ import {
153
157
  } from "../chunk-BBMTVAE3.js";
154
158
  import "../chunk-TKDITWDN.js";
155
159
  import "../chunk-5YEUPUV4.js";
156
- import "../chunk-FU5O2REK.js";
160
+ import "../chunk-72V3S44T.js";
157
161
  import {
158
162
  isPostgresBackendEnabled
159
163
  } from "../chunk-YYB5PMTK.js";
160
164
  import "../chunk-L5CGXEZC.js";
161
165
  import {
162
166
  getEventLoopLagMs,
167
+ getLastStall,
163
168
  isEventLoopDegraded,
164
169
  markAsDaemonProcess,
165
- setEventLoopLagMs
166
- } from "../chunk-CL4J4757.js";
170
+ setEventLoopLagMs,
171
+ setLastStallClass,
172
+ stallRemediation
173
+ } from "../chunk-QH5ZQ5SJ.js";
167
174
  import {
168
175
  clearDaemonReady,
169
176
  eventLoopBlockedMarkerPath,
@@ -175,9 +182,9 @@ import {
175
182
  EMBEDDING_DIM
176
183
  } from "../chunk-FXU7JOXK.js";
177
184
  import "../chunk-WNBZJSQT.js";
178
- import "../chunk-5DFE2NAF.js";
185
+ import "../chunk-TNS63ATU.js";
179
186
  import "../chunk-A7XLR3K7.js";
180
- import "../chunk-O34F5EP5.js";
187
+ import "../chunk-DZN7SDY2.js";
181
188
  import "../chunk-A7JYF4RG.js";
182
189
  import "../chunk-ARX6TAGN.js";
183
190
  import {
@@ -185,9 +192,9 @@ import {
185
192
  MODELS_DIR,
186
193
  loadConfigSync,
187
194
  resolveEmbedModelFile
188
- } from "../chunk-ZIG7VPJV.js";
189
- import "../chunk-HSGBZSCA.js";
195
+ } from "../chunk-MMS2HBRT.js";
190
196
  import "../chunk-RH4AH3YB.js";
197
+ import "../chunk-HSGBZSCA.js";
191
198
  import "../chunk-JKKZGDLP.js";
192
199
  import "../chunk-MLKGABMK.js";
193
200
 
@@ -296,7 +303,17 @@ var DAEMON_ALLOWED_SCHEMA_SQL_RE = [
296
303
  /^\s*CREATE\s+TABLE\s+IF\s+NOT\s+EXISTS\s+orchestration_events\s*\(/i,
297
304
  /^\s*CREATE\s+INDEX\s+IF\s+NOT\s+EXISTS\s+idx_orch_events_(?:ts|task|agent|type)\s+ON\s+orchestration_events\s*\(/i,
298
305
  // Cloud sync metadata table — created lazily by getCloudReuploadRequired().
299
- /^\s*CREATE\s+TABLE\s+IF\s+NOT\s+EXISTS\s+sync_meta\s*\(/i
306
+ /^\s*CREATE\s+TABLE\s+IF\s+NOT\s+EXISTS\s+sync_meta\s*\(/i,
307
+ // Bug fc47a4ba: the orphan-message holding table, ensured lazily by
308
+ // messaging.ts ensureMessagesQuarantineTable(). Without these two entries the
309
+ // guard fell through to DAEMON_FORBIDDEN_SQL_RE (which matches any CREATE) and
310
+ // BOTH `message` MCP actions that touch it — `orphans` and `quarantine_orphans`
311
+ // — threw before doing any work on every daemon-routed client, i.e. on exactly
312
+ // the installs they exist to help. Routing the DDL one statement at a time
313
+ // instead of via executeMultiple did not change this: the rejection is on the
314
+ // SQL, not on the transport.
315
+ /^\s*CREATE\s+TABLE\s+IF\s+NOT\s+EXISTS\s+messages_quarantine\s*\(/i,
316
+ /^\s*CREATE\s+INDEX\s+IF\s+NOT\s+EXISTS\s+idx_messages_quarantine_target\s+ON\s+messages_quarantine\s*\(/i
300
317
  ];
301
318
  var UPDATE_DELETE_RE = /^\s*(UPDATE|DELETE)\b/i;
302
319
  var TAUTOLOGICAL_WHERE_RE = /\bWHERE\s+(?:\(?\s*)?(?:1\s*=\s*1|TRUE\b|'[^']*'\s*=\s*'[^']*'|"[^"]*"\s*=\s*"[^"]*")/i;
@@ -2656,7 +2673,7 @@ async function loadModel() {
2656
2673
  void (async () => {
2657
2674
  try {
2658
2675
  if (_storeInitialized) {
2659
- const { writeNotification } = await import("../notifications-LPRCFJYY.js");
2676
+ const { writeNotification } = await import("../notifications-JE3PX55X.js");
2660
2677
  await writeNotification({
2661
2678
  agentId: "exe",
2662
2679
  agentRole: "system",
@@ -2793,7 +2810,7 @@ function disableEmbeddingsForInferenceTimeouts() {
2793
2810
  void (async () => {
2794
2811
  try {
2795
2812
  if (_storeInitialized) {
2796
- const { writeNotification } = await import("../notifications-LPRCFJYY.js");
2813
+ const { writeNotification } = await import("../notifications-JE3PX55X.js");
2797
2814
  await writeNotification({
2798
2815
  agentId: "exe",
2799
2816
  agentRole: "system",
@@ -2960,7 +2977,7 @@ async function shutdown(exitCode = 0, reason = null, restartKind) {
2960
2977
  _shuttingDown = true;
2961
2978
  _drainingWrites = true;
2962
2979
  try {
2963
- const { stopOrgPartnerRuntime } = await import("../org-partner-runtime-U4CTLWLC.js");
2980
+ const { stopOrgPartnerRuntime } = await import("../org-partner-runtime-YNVUNT2R.js");
2964
2981
  stopOrgPartnerRuntime();
2965
2982
  } catch {
2966
2983
  }
@@ -3043,7 +3060,7 @@ async function shutdown(exitCode = 0, reason = null, restartKind) {
3043
3060
  dbBytes = dbPath ? statSync4(dbPath).size : 0;
3044
3061
  } catch {
3045
3062
  }
3046
- const { getAvailableMemoryBytesSync } = await import("../memory-pressure-watchdog-XGXI7WGE.js");
3063
+ const { getAvailableMemoryBytesSync } = await import("../memory-pressure-watchdog-YMJH5CSA.js");
3047
3064
  const freeBytes = getAvailableMemoryBytesSync();
3048
3065
  if (shouldSkipBackupUnderMemoryPressure(freeBytes, dbBytes)) {
3049
3066
  memoryGateSkip = true;
@@ -3096,17 +3113,17 @@ async function shutdown(exitCode = 0, reason = null, restartKind) {
3096
3113
  `);
3097
3114
  }
3098
3115
  try {
3099
- const { stopProjectionWorker } = await import("../projection-worker-HAD6H3VJ.js");
3116
+ const { stopProjectionWorker } = await import("../projection-worker-WYFDWS57.js");
3100
3117
  stopProjectionWorker();
3101
3118
  } catch {
3102
3119
  }
3103
3120
  try {
3104
- const { disposeShards } = await import("../shard-manager-DYEJ6ETD.js");
3121
+ const { disposeShards } = await import("../shard-manager-HHHHV2KZ.js");
3105
3122
  disposeShards();
3106
3123
  } catch {
3107
3124
  }
3108
3125
  try {
3109
- const { disposeAllCodeContextWatchers } = await import("../code-context-watcher-4F7K2N3U.js");
3126
+ const { disposeAllCodeContextWatchers } = await import("../code-context-watcher-3QAPHO7N.js");
3110
3127
  disposeAllCodeContextWatchers();
3111
3128
  } catch {
3112
3129
  }
@@ -3164,7 +3181,7 @@ async function handleHealthCheck(socket, requestId) {
3164
3181
  let pipelineStatus = "unknown";
3165
3182
  if (dbConnected) {
3166
3183
  try {
3167
- await import("../pipeline-router-2RMBCBRM.js");
3184
+ await import("../pipeline-router-EIBB7QNG.js");
3168
3185
  pipelineStatus = "ok";
3169
3186
  } catch {
3170
3187
  pipelineStatus = "unavailable";
@@ -3630,7 +3647,7 @@ async function _writeMemoryRecordInner(entry, syncOnly = false) {
3630
3647
  const vRow = await client.execute({ sql: "SELECT version FROM memories WHERE id = ?", args: [id] });
3631
3648
  const version = Number(vRow.rows[0]?.version) || 0;
3632
3649
  try {
3633
- const { insertOntologyForMemory } = await import("../agentic-ontology-67JGSP7G.js");
3650
+ const { insertOntologyForMemory } = await import("../agentic-ontology-XVTUVV7W.js");
3634
3651
  await insertOntologyForMemory({
3635
3652
  id,
3636
3653
  agent_id: record.agent_id,
@@ -3660,7 +3677,7 @@ function startMemoryQueueDrain() {
3660
3677
  fired("memory_queue_drain");
3661
3678
  if (!await ensureStoreForPolling()) return;
3662
3679
  try {
3663
- const { ackQueue, claimQueue, retryQueueEntries, processQueueEntries } = await import("../memory-queue-YF7IDSFY.js");
3680
+ const { ackQueue, claimQueue, retryQueueEntries, processQueueEntries } = await import("../memory-queue-2MA67TAA.js");
3664
3681
  const lease = claimQueue();
3665
3682
  if (!lease || lease.entries.length === 0) return;
3666
3683
  acted("memory_queue_drain");
@@ -4325,7 +4342,7 @@ async function startMcpHttpServer() {
4325
4342
  `);
4326
4343
  }
4327
4344
  try {
4328
- void import("../mcp-child-registry-DVHYAHPW.js").then(({ reapOrphanedMcpChildren }) => reapOrphanedMcpChildren({
4345
+ void import("../mcp-child-registry-TIZERM7O.js").then(({ reapOrphanedMcpChildren }) => reapOrphanedMcpChildren({
4329
4346
  // A session the reaper cannot decide on must not vanish into a
4330
4347
  // silent `continue` — an orphan nobody can see is worse than one
4331
4348
  // that is reported. It is deliberately NOT terminated (unverified
@@ -4508,7 +4525,7 @@ async function startMcpHttpServer() {
4508
4525
  setBootPhase("db_ready");
4509
4526
  _storeInitialized = true;
4510
4527
  markDbInitCompleted();
4511
- const { initLicenseGate, getCachedLicenseGate } = await import("../license-gate-E6GTRYBA.js");
4528
+ const { initLicenseGate, getCachedLicenseGate } = await import("../license-gate-R4JWTWM4.js");
4512
4529
  const gateResult = await initLicenseGate();
4513
4530
  if (!gateResult.hasKey) {
4514
4531
  process.stderr.write(
@@ -4520,7 +4537,7 @@ async function startMcpHttpServer() {
4520
4537
  `
4521
4538
  );
4522
4539
  }
4523
- const { startLicenseRecheckTimer, LICENSE_RECHECK_INTERVAL_MS } = await import("../license-recheck-RBAO6Z2H.js");
4540
+ const { startLicenseRecheckTimer, LICENSE_RECHECK_INTERVAL_MS } = await import("../license-recheck-3MBJ4IJX.js");
4524
4541
  startLicenseRecheckTimer();
4525
4542
  process.stderr.write(
4526
4543
  `[exed] License re-check timer started (every ${LICENSE_RECHECK_INTERVAL_MS / 6e4}m, throttled by cache freshness)
@@ -4529,14 +4546,14 @@ async function startMcpHttpServer() {
4529
4546
  let _cachedWrapTelemetry = null;
4530
4547
  async function getWrapTelemetry() {
4531
4548
  if (!_cachedWrapTelemetry) {
4532
- const { wrapServerWithTelemetry } = await import("../tool-telemetry-RHSEK2TO.js");
4549
+ const { wrapServerWithTelemetry } = await import("../tool-telemetry-LTOIC64I.js");
4533
4550
  _cachedWrapTelemetry = wrapServerWithTelemetry;
4534
4551
  }
4535
4552
  return _cachedWrapTelemetry;
4536
4553
  }
4537
4554
  Promise.all([
4538
- import("../tool-capability-index-6HLZU437.js"),
4539
- import("../tool-gates-VXITVRFQ.js")
4555
+ import("../tool-capability-index-7AWQAJRP.js"),
4556
+ import("../tool-gates-5Q3RSQEG.js")
4540
4557
  ]).then(async ([{ getToolCapabilityIndex }, { TOOL_CATEGORIES }]) => {
4541
4558
  const gateState = getCachedLicenseGate();
4542
4559
  const index = getToolCapabilityIndex();
@@ -4601,7 +4618,7 @@ async function startMcpHttpServer() {
4601
4618
  const expectedBuf = Buffer.from(_daemonToken);
4602
4619
  if (tokenBuf.length === expectedBuf.length && timingSafeEqual(tokenBuf, expectedBuf)) return true;
4603
4620
  try {
4604
- const { verifyAccessToken } = await import("../oauth-server-AC2KB7NB.js");
4621
+ const { verifyAccessToken } = await import("../oauth-server-ZKBUHDFI.js");
4605
4622
  const result = verifyAccessToken(token);
4606
4623
  return result.valid;
4607
4624
  } catch {
@@ -4825,6 +4842,16 @@ async function startMcpHttpServer() {
4825
4842
  // process: traceDaemonTimer writes tick *starts* to stderr only, never
4826
4843
  // durably. When a tick blocks the loop this is the field that names it.
4827
4844
  timersInFlight: [..._timerInFlight],
4845
+ // Bug 5c7c2e7b: "listening" vs "serving" was already answerable from
4846
+ // eventLoopLagMs/eventLoopBlockedNow, but neither says WHY — and the
4847
+ // remedy for starvation (shed load) is the opposite of the remedy for
4848
+ // a genuine block. Report the classification and the advice with it.
4849
+ lastStall: getLastStall(),
4850
+ ...(() => {
4851
+ const st = getLastStall();
4852
+ const advice = stallRemediation(st.stallClass, st.lagMs);
4853
+ return advice ? { lastStallRemediation: advice } : {};
4854
+ })(),
4828
4855
  ...blockedNow && { warning: "A recent event-loop block was recorded; MCP requests remain enabled while the marker ages out (~10s)" },
4829
4856
  ...!blockedNow && degraded && { warning: `Event loop lag ${Math.round(elLag)}ms exceeds 5000ms threshold \u2014 daemon may be unresponsive` }
4830
4857
  }));
@@ -4854,7 +4881,7 @@ async function startMcpHttpServer() {
4854
4881
  return;
4855
4882
  }
4856
4883
  try {
4857
- const { handleOAuthRoute } = await import("../oauth-server-AC2KB7NB.js");
4884
+ const { handleOAuthRoute } = await import("../oauth-server-ZKBUHDFI.js");
4858
4885
  const handled = await handleOAuthRoute(req, res, url, MCP_HTTP_PORT, _daemonToken);
4859
4886
  if (handled) return;
4860
4887
  } catch (err) {
@@ -4886,7 +4913,7 @@ async function startMcpHttpServer() {
4886
4913
  for await (const chunk of req) chunks.push(typeof chunk === "string" ? Buffer.from(chunk) : chunk);
4887
4914
  const rawBody = Buffer.concat(chunks);
4888
4915
  try {
4889
- const { loadWebhookConfig, verifyHmac, processWebhook } = await import("../webhook-pipe-W2FVXY7M.js");
4916
+ const { loadWebhookConfig, verifyHmac, processWebhook } = await import("../webhook-pipe-PXH5MBRM.js");
4890
4917
  const webhookConfig = await loadWebhookConfig();
4891
4918
  const serviceConfig = webhookConfig[serviceName];
4892
4919
  if (!serviceConfig) {
@@ -4982,7 +5009,7 @@ async function startMcpHttpServer() {
4982
5009
  contextPct: body.context_pct
4983
5010
  });
4984
5011
  if (body.context_pct !== void 0 && body.context_pct > 70) {
4985
- void import("../orchestration-events-T2GXV2NG.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
5012
+ void import("../orchestration-events-JCQ5F5IJ.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
4986
5013
  recordOE({
4987
5014
  eventType: "context.pressure",
4988
5015
  source: "exe-daemon.heartbeat",
@@ -5078,7 +5105,7 @@ async function startMcpHttpServer() {
5078
5105
  let sessionHint = req.headers["x-exe-session-name"] || req.headers["x-exe-session"] || "";
5079
5106
  if (sessionHint) {
5080
5107
  try {
5081
- const { sanitizeSessionHintHeader, rejectForgedSessionHint } = await import("../mcp-session-identity-DNG4ULAE.js");
5108
+ const { sanitizeSessionHintHeader, rejectForgedSessionHint } = await import("../mcp-session-identity-DZHWEJRV.js");
5082
5109
  const rawHint = sessionHint;
5083
5110
  sessionHint = sanitizeSessionHintHeader(sessionHint);
5084
5111
  if (!sessionHint) {
@@ -5117,7 +5144,7 @@ async function startMcpHttpServer() {
5117
5144
  try {
5118
5145
  const liveSessions = await getTmuxSessionsAsync();
5119
5146
  const paneCommands = await getPaneCommandsAsync();
5120
- const { resolveMcpSessionHint } = await import("../mcp-session-identity-DNG4ULAE.js");
5147
+ const { resolveMcpSessionHint } = await import("../mcp-session-identity-DZHWEJRV.js");
5121
5148
  let registrySessions = [];
5122
5149
  try {
5123
5150
  const { listSessions: listRegistrySessions } = await import("./session-registry.js");
@@ -5254,7 +5281,7 @@ async function startMcpHttpServer() {
5254
5281
  bindLive = await getTmuxSessionsAsync();
5255
5282
  } catch {
5256
5283
  }
5257
- const { isLauncherCorroboratedIdentity } = await import("../mcp-session-identity-DNG4ULAE.js");
5284
+ const { isLauncherCorroboratedIdentity } = await import("../mcp-session-identity-DZHWEJRV.js");
5258
5285
  const corroborated = isLauncherCorroboratedIdentity({
5259
5286
  agentId,
5260
5287
  registrySessions: bindRegistry,
@@ -5462,7 +5489,7 @@ async function startMcpHttpServer() {
5462
5489
  const toolName = parsedRequest?.method === "tools/call" ? parsedRequest.params?.name : void 0;
5463
5490
  if (toolName && agentRole) {
5464
5491
  try {
5465
- const { TOOL_CATEGORIES, TOOL_GATES } = await import("../tool-gates-VXITVRFQ.js");
5492
+ const { TOOL_CATEGORIES, TOOL_GATES } = await import("../tool-gates-5Q3RSQEG.js");
5466
5493
  const registerName = `register${toolName.charAt(0).toUpperCase()}${toolName.slice(1)}`;
5467
5494
  const category = TOOL_CATEGORIES[registerName] || TOOL_CATEGORIES[toolName];
5468
5495
  if (category) {
@@ -5497,7 +5524,7 @@ async function startMcpHttpServer() {
5497
5524
  }
5498
5525
  }
5499
5526
  try {
5500
- const { reconcileHintWithRegistryIdentity } = await import("../mcp-session-identity-DNG4ULAE.js");
5527
+ const { reconcileHintWithRegistryIdentity } = await import("../mcp-session-identity-DZHWEJRV.js");
5501
5528
  const { listSessions: listRegistrySessions } = await import("./session-registry.js");
5502
5529
  const recon = reconcileHintWithRegistryIdentity({
5503
5530
  agentId,
@@ -5757,9 +5784,9 @@ async function ensureStoreForPolling() {
5757
5784
  await initDatabase({ dbPath: config.dbPath, encryptionKey: masterKey.toString("hex") });
5758
5785
  await ensureSchema();
5759
5786
  try {
5760
- const { isLedgerEnabled } = await import("../notification-ledger-ETQBGRP7.js");
5787
+ const { isLedgerEnabled } = await import("../notification-ledger-XRAXL5OI.js");
5761
5788
  if (isLedgerEnabled()) {
5762
- const { bumpBootGeneration } = await import("../boot-generation-L55QANCX.js");
5789
+ const { bumpBootGeneration } = await import("../boot-generation-Q7LGQ3AO.js");
5763
5790
  const { setDaemonReadyGeneration } = await import("../daemon-ready-signal-PNDMVKPJ.js");
5764
5791
  const generation = await bumpBootGeneration();
5765
5792
  setDaemonReadyGeneration(generation);
@@ -5800,13 +5827,13 @@ async function ensureStoreForPolling() {
5800
5827
  }
5801
5828
  }
5802
5829
  async function startReviewPolling() {
5803
- const polling = await import("../review-polling-VUZPAAGT.js");
5830
+ const polling = await import("../review-polling-KQPN7IQE.js");
5804
5831
  const state = {
5805
5832
  lastIntercomSent: /* @__PURE__ */ new Map(),
5806
5833
  lastNudgeSent: /* @__PURE__ */ new Map(),
5807
5834
  intervalMs: REVIEW_POLL_INTERVAL_MS
5808
5835
  };
5809
- const { pollReviewNudge, createReviewNudgeRealDeps, loadNudgeState } = await import("../daemon-orchestration-HFCB6OK4.js");
5836
+ const { pollReviewNudge, createReviewNudgeRealDeps, loadNudgeState } = await import("../daemon-orchestration-3VQYKLOR.js");
5810
5837
  const nudgeState = loadNudgeState();
5811
5838
  const tick = async () => traceDaemonTimer("review_polling", async () => {
5812
5839
  fired("review_polling");
@@ -5814,7 +5841,7 @@ async function startReviewPolling() {
5814
5841
  try {
5815
5842
  const { getClient } = await import("./database.js");
5816
5843
  const deps = polling.createRealDeps(getClient);
5817
- const { strictSessionScopeFilter } = await import("../task-scope-OBPZBID5.js");
5844
+ const { strictSessionScopeFilter } = await import("../task-scope-NHXB4ZRN.js");
5818
5845
  const { getCoordinatorName, DEFAULT_COORDINATOR_TEMPLATE_NAME } = await import("./employees.js");
5819
5846
  deps.findOrphanedDoneTasks = async (sessionScope) => {
5820
5847
  const coordinatorName = getCoordinatorName();
@@ -5834,7 +5861,7 @@ async function startReviewPolling() {
5834
5861
  deps.findTieredReviewCandidates = async (sessionScope) => {
5835
5862
  let project = null;
5836
5863
  try {
5837
- const { getProjectName } = await import("../project-name-V4IREGHO.js");
5864
+ const { getProjectName } = await import("../project-name-UYORSNGE.js");
5838
5865
  project = getProjectName() || null;
5839
5866
  } catch {
5840
5867
  project = null;
@@ -5893,7 +5920,7 @@ function startSessionTTL() {
5893
5920
  if (!await ensureStoreForPolling()) return;
5894
5921
  if (inPostRestartDestructiveGrace("session_ttl")) return;
5895
5922
  const { getClient } = await import("./database.js");
5896
- const { checkSessionTTL, createSessionTTLRealDeps } = await import("../daemon-orchestration-HFCB6OK4.js");
5923
+ const { checkSessionTTL, createSessionTTLRealDeps } = await import("../daemon-orchestration-3VQYKLOR.js");
5897
5924
  const deps = createSessionTTLRealDeps(getClient);
5898
5925
  const killed = await checkSessionTTL(deps, _wedgeObservations);
5899
5926
  if (killed.length > 0) acted("session_ttl");
@@ -5953,7 +5980,7 @@ function startIdleKill() {
5953
5980
  const cfg = await getCachedConfig();
5954
5981
  if (!cfg) return;
5955
5982
  const { getClient } = await import("./database.js");
5956
- const { pollIdleKill, createIdleKillRealDeps } = await import("../daemon-orchestration-HFCB6OK4.js");
5983
+ const { pollIdleKill, createIdleKillRealDeps } = await import("../daemon-orchestration-3VQYKLOR.js");
5957
5984
  const { sessions: liveSessions, paneCache, aliveSessions } = await getSharedOrchestrationCaches();
5958
5985
  const realDeps = createIdleKillRealDeps(
5959
5986
  getClient,
@@ -6342,7 +6369,7 @@ function startSkillRefinement() {
6342
6369
  if (!shouldRunHeavyJob("skill_refinement")) return;
6343
6370
  try {
6344
6371
  if (!await ensureStoreForPolling()) return;
6345
- const { runSkillRefinement } = await import("../skill-refinement-MKBQIWZ6.js");
6372
+ const { runSkillRefinement } = await import("../skill-refinement-I5RMAHSC.js");
6346
6373
  const result = await runSkillRefinement();
6347
6374
  if (result.reviewed > 0) {
6348
6375
  acted("skill_refinement");
@@ -6407,7 +6434,7 @@ function startStalledDispatchSweep() {
6407
6434
  });
6408
6435
  const { notifications, nextState } = decideStalledDispatchEscalations(intents, previousState);
6409
6436
  if (notifications.length > 0 && _storeInitialized) {
6410
- const { writeNotification } = await import("../notifications-LPRCFJYY.js");
6437
+ const { writeNotification } = await import("../notifications-JE3PX55X.js");
6411
6438
  for (const note of notifications) {
6412
6439
  try {
6413
6440
  await writeNotification({
@@ -6457,8 +6484,8 @@ function startStaleBranchSweep() {
6457
6484
  fired("stale_branch_sweep");
6458
6485
  if (sweepStarved("stale_branch_sweep")) return;
6459
6486
  try {
6460
- const { discoverRepoPathsAsync } = await import("../worktree-sweep-SYF62ANH.js");
6461
- const { scanUnmergedBranchesCached } = await import("../branch-hygiene-QLD77IMJ.js");
6487
+ const { discoverRepoPathsAsync } = await import("../worktree-sweep-XVUJZBXV.js");
6488
+ const { scanUnmergedBranchesCached } = await import("../branch-hygiene-44WLSOZR.js");
6462
6489
  const { runBudgetedSweep } = await import("../sweep-budget-YGLCNXZZ.js");
6463
6490
  const today = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
6464
6491
  for (const k of _staleBranchAlertedToday) {
@@ -6490,7 +6517,7 @@ function startStaleBranchSweep() {
6490
6517
  if (!_storeInitialized) return;
6491
6518
  const stale = scan.branches.filter((b) => b.ageHours >= STALE_BRANCH_HOURS).slice(0, 5).map((b) => `${b.name} (${b.aheadUnknown ? "+? commits" : `+${b.ahead} commits`}, ${(b.ageHours / 24).toFixed(1)}d)`).join("; ");
6492
6519
  try {
6493
- const { writeNotification } = await import("../notifications-LPRCFJYY.js");
6520
+ const { writeNotification } = await import("../notifications-JE3PX55X.js");
6494
6521
  await writeNotification({
6495
6522
  agentId: "exe",
6496
6523
  agentRole: "system",
@@ -6553,7 +6580,7 @@ function startWorkStateHeartbeat() {
6553
6580
  const { getClient } = await import("./database.js");
6554
6581
  const { listSessions } = await import("./session-registry.js");
6555
6582
  const { isCoordinatorName } = await import("./employees.js");
6556
- const { runWorkStateTick } = await import("../work-state-heartbeat-HAQRV3RK.js");
6583
+ const { runWorkStateTick } = await import("../work-state-heartbeat-HG7D4AWJ.js");
6557
6584
  let liveTmux = null;
6558
6585
  const loadLiveTmux = async () => {
6559
6586
  if (!liveTmux) liveTmux = await listTmuxSessionNamesAsync();
@@ -6619,7 +6646,7 @@ function startGraphExtraction() {
6619
6646
  if (!await ensureStoreForPolling()) return;
6620
6647
  const { getClient } = await import("./database.js");
6621
6648
  const client = getClient();
6622
- const { extractBatch } = await import("../graph-rag-TZLH3CTQ.js");
6649
+ const { extractBatch } = await import("../graph-rag-BKAD2XQA.js");
6623
6650
  const result = await extractBatch(client, 50, config.selfQueryModel);
6624
6651
  if (result.processed > 0) {
6625
6652
  acted("graph_extraction");
@@ -6940,7 +6967,7 @@ async function refreshAgentData() {
6940
6967
  const decision = evaluateSpendCapAlert(_lastSpendCapLevel, capStatus);
6941
6968
  _lastSpendCapLevel = decision.level;
6942
6969
  if (decision.shouldAlert && decision.summary) {
6943
- const { writeNotification } = await import("../notifications-LPRCFJYY.js");
6970
+ const { writeNotification } = await import("../notifications-JE3PX55X.js");
6944
6971
  await writeNotification({
6945
6972
  agentId: "system",
6946
6973
  agentRole: "system",
@@ -7062,7 +7089,7 @@ function startReflectionSweep() {
7062
7089
  );
7063
7090
  let runReflection;
7064
7091
  try {
7065
- ({ runReflection } = await import("../memory-reflection-GFGT44NT.js"));
7092
+ ({ runReflection } = await import("../memory-reflection-7BZWIHRE.js"));
7066
7093
  } catch (importErr) {
7067
7094
  _reflectionImportFailed = true;
7068
7095
  process.stderr.write(`[exed] Reflection module unavailable (stale chunk hash?) \u2014 disabled until daemon restart: ${importErr instanceof Error ? importErr.message : String(importErr)}
@@ -7103,7 +7130,7 @@ function startReflectionSweep() {
7103
7130
  if (memories > 100 && cards < memories * 0.1) {
7104
7131
  process.stderr.write(`[exed] Memory cards sparse (${cards} cards / ${memories} memories) \u2014 running backfill...
7105
7132
  `);
7106
- const { insertMemoryCardsForBatch } = await import("../memory-cards-WCISXY62.js");
7133
+ const { insertMemoryCardsForBatch } = await import("../memory-cards-JVXTMSAT.js");
7107
7134
  const batchSize = 500;
7108
7135
  let offset = 0;
7109
7136
  let totalCards = 0;
@@ -7184,7 +7211,7 @@ function startDatabaseBackup() {
7184
7211
  `
7185
7212
  );
7186
7213
  try {
7187
- const { maybeVerifyDailyBackup } = await import("../backup-verify-HC4YDSGN.js");
7214
+ const { maybeVerifyDailyBackup } = await import("../backup-verify-6DVBQMDP.js");
7188
7215
  const verdict = await maybeVerifyDailyBackup(backupPath);
7189
7216
  if (verdict && !verdict.ok) {
7190
7217
  process.stderr.write(
@@ -7260,7 +7287,7 @@ function startSessionEventsRetention() {
7260
7287
  fired("session_events_retention");
7261
7288
  if (!await ensureStoreForPolling()) return;
7262
7289
  try {
7263
- const { DEFAULT_SESSION_EVENTS_RETENTION_DAYS, sessionEventsRetentionMode } = await import("../session-events-BI6NIFIR.js");
7290
+ const { DEFAULT_SESSION_EVENTS_RETENTION_DAYS, sessionEventsRetentionMode } = await import("../session-events-6LDDKKY3.js");
7264
7291
  const days = SESSION_EVENTS_RETENTION_DAYS ?? DEFAULT_SESSION_EVENTS_RETENTION_DAYS;
7265
7292
  const decision = sessionEventsRetentionMode(isWriteWorkerEnabled(), isDbWriteWorkerReady());
7266
7293
  if (decision.mode === "skip") {
@@ -7311,7 +7338,7 @@ function startConversationsRetention() {
7311
7338
  if (!await ensureStoreForPolling()) return;
7312
7339
  try {
7313
7340
  const { DEFAULT_CONVERSATIONS_RETENTION_DAYS } = await import("../conversations-retention-C4BLKFEL.js");
7314
- const { sessionEventsRetentionMode } = await import("../session-events-BI6NIFIR.js");
7341
+ const { sessionEventsRetentionMode } = await import("../session-events-6LDDKKY3.js");
7315
7342
  const days = CONVERSATIONS_RETENTION_DAYS ?? DEFAULT_CONVERSATIONS_RETENTION_DAYS;
7316
7343
  const decision = sessionEventsRetentionMode(isWriteWorkerEnabled(), isDbWriteWorkerReady());
7317
7344
  if (decision.mode === "skip") {
@@ -7359,7 +7386,7 @@ function startIntercomQueueDrain() {
7359
7386
  const tick = async () => traceDaemonTimer("intercom_queue_drain", async () => {
7360
7387
  fired("intercom_queue_drain");
7361
7388
  try {
7362
- const { drainQueueAsync, readQueue } = await import("../intercom-queue-DGLAC224.js");
7389
+ const { drainQueueAsync, readQueue } = await import("../intercom-queue-4FFXCBHO.js");
7363
7390
  const {
7364
7391
  sendIntercomAsync: centralSendIntercomAsync,
7365
7392
  countScopedPendingReviews,
@@ -7491,7 +7518,7 @@ function startLedgerDrain() {
7491
7518
  const tick = async () => traceDaemonTimer("ledger_drain", async () => {
7492
7519
  fired("ledger_drain");
7493
7520
  try {
7494
- const { isLedgerEnabled, drainLedger } = await import("../notification-ledger-ETQBGRP7.js");
7521
+ const { isLedgerEnabled, drainLedger } = await import("../notification-ledger-XRAXL5OI.js");
7495
7522
  if (!isLedgerEnabled()) return;
7496
7523
  const result = await drainLedger({
7497
7524
  // Shadow "would-deliver": idle target = would-deliver, busy = retry.
@@ -7531,7 +7558,7 @@ function startOrphanReaper() {
7531
7558
  fired("orphan_reaper");
7532
7559
  if (sweepStarved("orphan_reaper")) return;
7533
7560
  try {
7534
- const { reapOrphanedMcpProcesses, createOrphanReaperRealDepsAsync } = await import("../daemon-orchestration-HFCB6OK4.js");
7561
+ const { reapOrphanedMcpProcesses, createOrphanReaperRealDepsAsync } = await import("../daemon-orchestration-3VQYKLOR.js");
7535
7562
  const deps = await createOrphanReaperRealDepsAsync();
7536
7563
  const reaped = await reapOrphanedMcpProcesses(deps);
7537
7564
  if (reaped.length > 0) acted("orphan_reaper");
@@ -7557,7 +7584,7 @@ function startZombieAgentReaper() {
7557
7584
  fired("zombie_agent_reaper");
7558
7585
  if (sweepStarved("zombie_agent_reaper")) return;
7559
7586
  try {
7560
- const { reapZombieAgentProcesses, createZombieAgentReaperRealDepsAsync } = await import("../daemon-orchestration-HFCB6OK4.js");
7587
+ const { reapZombieAgentProcesses, createZombieAgentReaperRealDepsAsync } = await import("../daemon-orchestration-3VQYKLOR.js");
7561
7588
  const deps = await createZombieAgentReaperRealDepsAsync();
7562
7589
  const reaped = reapZombieAgentProcesses(deps);
7563
7590
  if (reaped.length > 0) acted("zombie_agent_reaper");
@@ -7581,7 +7608,7 @@ async function startDaemonMemoryPressureWatchdog() {
7581
7608
  try {
7582
7609
  const cfg = await getCachedConfig();
7583
7610
  if (!cfg) return;
7584
- const { startMemoryPressureWatchdog: startWatchdog, MEMORY_PRESSURE_WATCHDOG_DEFAULTS } = await import("../memory-pressure-watchdog-XGXI7WGE.js");
7611
+ const { startMemoryPressureWatchdog: startWatchdog, MEMORY_PRESSURE_WATCHDOG_DEFAULTS } = await import("../memory-pressure-watchdog-YMJH5CSA.js");
7585
7612
  const watchdogCfg = {
7586
7613
  ...MEMORY_PRESSURE_WATCHDOG_DEFAULTS,
7587
7614
  ...cfg.memoryPressureWatchdog ?? {}
@@ -7613,7 +7640,7 @@ function startWorktreeReaper() {
7613
7640
  fired("worktree_reaper");
7614
7641
  if (sweepStarved("worktree_reaper")) return;
7615
7642
  try {
7616
- const { reapOrphanedWorktrees, createWorktreeReaperRealDeps } = await import("../daemon-orchestration-HFCB6OK4.js");
7643
+ const { reapOrphanedWorktrees, createWorktreeReaperRealDeps } = await import("../daemon-orchestration-3VQYKLOR.js");
7617
7644
  const deps = await createWorktreeReaperRealDeps();
7618
7645
  const result = await reapOrphanedWorktrees(deps);
7619
7646
  if (result.pruned.length > 0) {
@@ -7657,8 +7684,8 @@ function startWorktreeReaper() {
7657
7684
  }
7658
7685
  return;
7659
7686
  }
7660
- const { cleanupAgentWorktree } = await import("../worktree-sweep-SYF62ANH.js");
7661
- const { getMainRepoRootAsync } = await import("../worktree-C7LFMRKW.js");
7687
+ const { cleanupAgentWorktree } = await import("../worktree-sweep-XVUJZBXV.js");
7688
+ const { getMainRepoRootAsync } = await import("../worktree-EMQCPGFE.js");
7662
7689
  const repoRoot = await getMainRepoRootAsync(signal.worktreePath);
7663
7690
  if (repoRoot && signal.agentId) {
7664
7691
  const notes = await cleanupAgentWorktree(repoRoot, signal.agentId);
@@ -7695,7 +7722,7 @@ function startAutoWake() {
7695
7722
  if (!await ensureStoreForPolling()) return;
7696
7723
  try {
7697
7724
  const { getClient } = await import("./database.js");
7698
- const { pollOrphanedTasks, createAutoWakeRealDeps } = await import("../daemon-orchestration-HFCB6OK4.js");
7725
+ const { pollOrphanedTasks, createAutoWakeRealDeps } = await import("../daemon-orchestration-3VQYKLOR.js");
7699
7726
  const deps = createAutoWakeRealDeps(getClient, process.cwd(), getTmuxSessionsAsync);
7700
7727
  const woken = await pollOrphanedTasks(deps);
7701
7728
  if (woken.length > 0) acted("auto_wake");
@@ -7770,7 +7797,7 @@ function startAutoWake() {
7770
7797
  if (age > 60 * 60 * 1e3) {
7771
7798
  try {
7772
7799
  await unlink(signalPath);
7773
- void import("../orchestration-events-T2GXV2NG.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
7800
+ void import("../orchestration-events-JCQ5F5IJ.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
7774
7801
  recordOE({ eventType: "signal.stale", source: "exe-daemon.autoWake", severity: "warn", payload: { file, ageMinutes: Math.round(age / 6e4) } });
7775
7802
  }).catch(() => {
7776
7803
  });
@@ -7919,7 +7946,7 @@ function startStuckTaskRelease() {
7919
7946
  createStaleClaimRealDeps,
7920
7947
  escalateStuckBlockedTasks,
7921
7948
  createStuckBlockedRealDeps
7922
- } = await import("../daemon-orchestration-HFCB6OK4.js");
7949
+ } = await import("../daemon-orchestration-3VQYKLOR.js");
7923
7950
  const { runBudgetedSweep } = await import("../sweep-budget-YGLCNXZZ.js");
7924
7951
  const steps = [
7925
7952
  async () => {
@@ -8184,12 +8211,12 @@ function startTaskEnforcementScanner() {
8184
8211
  const tick = async () => traceDaemonTimer("task_enforcement", async () => {
8185
8212
  fired("task_enforcement");
8186
8213
  try {
8187
- const { runTaskEnforcementTick } = await import("../task-enforcement-JL5ADPS6.js");
8214
+ const { runTaskEnforcementTick } = await import("../task-enforcement-CAA6D2MH.js");
8188
8215
  const { getTransport } = await import("./transport.js");
8189
8216
  const { loadAgentConfig } = await import("./agent-config.js");
8190
8217
  const { getClient } = await import("./database.js");
8191
8218
  const { loadEmployeesSync } = await import("./employees.js");
8192
- const { sessionScopeFilter } = await import("../task-scope-OBPZBID5.js");
8219
+ const { sessionScopeFilter } = await import("../task-scope-NHXB4ZRN.js");
8193
8220
  const transport = getTransport();
8194
8221
  const { sessions: allSessions, paneCache, aliveSessions } = await getSharedOrchestrationCaches();
8195
8222
  await yieldToEventLoop();
@@ -8200,10 +8227,10 @@ function startTaskEnforcementScanner() {
8200
8227
  sendKeysLiteral: transport.sendKeysLiteral?.bind(transport),
8201
8228
  isAlive: (session) => aliveSessions.has(session)
8202
8229
  };
8203
- const { checkAutoWakeGates } = await import("../daemon-orchestration-HFCB6OK4.js");
8230
+ const { checkAutoWakeGates } = await import("../daemon-orchestration-3VQYKLOR.js");
8204
8231
  const { ensureEmployeeAsync, employeeSessionName, sendIntercomAsync } = await import("./tmux-routing.js");
8205
8232
  const { shouldAutoInstance } = await import("./employees.js");
8206
- const { recordOrchestrationEventBestEffort } = await import("../orchestration-events-T2GXV2NG.js");
8233
+ const { recordOrchestrationEventBestEffort } = await import("../orchestration-events-JCQ5F5IJ.js");
8207
8234
  const projectDir = process.cwd();
8208
8235
  await runTaskEnforcementTick({
8209
8236
  transport: enforcementTransport,
@@ -8215,6 +8242,10 @@ function startTaskEnforcementScanner() {
8215
8242
  paneCache,
8216
8243
  // Reviewer auto-spawn: spawn dead reviewer sessions that have needs_review tasks.
8217
8244
  // Uses the same gates as auto-wake (CPU pressure, crash loop, worker_gate limits).
8245
+ // Bug 05033d35: the autonomous-spawn kill switch for BOTH this and
8246
+ // zombieWorkerRecover is enforced at their call sites inside
8247
+ // runTaskEnforcementTick, so neither callback can be reached when
8248
+ // spawning is disabled.
8218
8249
  reviewerSpawn: (reviewerName, sessionScope) => {
8219
8250
  const gateReason = checkAutoWakeGates(`reviewer::${reviewerName}::${sessionScope}`, Date.now());
8220
8251
  if (gateReason) {
@@ -8494,7 +8525,7 @@ function startBackgroundJobGuardrails() {
8494
8525
  const tick = async () => traceDaemonTimer("background_job_guardrails", async () => {
8495
8526
  fired("background_job_guardrails");
8496
8527
  try {
8497
- const { enforceBackgroundJobGuardrailsAsync } = await import("../background-jobs-6VMD55PK.js");
8528
+ const { enforceBackgroundJobGuardrailsAsync } = await import("../background-jobs-V3DZRFKU.js");
8498
8529
  const actions = await enforceBackgroundJobGuardrailsAsync();
8499
8530
  if (actions.length > 0) {
8500
8531
  acted("background_job_guardrails");
@@ -8529,7 +8560,7 @@ async function sweepExpiredTracesFromDaemonTimer() {
8529
8560
  const memoryIds = idsResult.rows.map((r) => String(r.id)).filter(Boolean);
8530
8561
  if (memoryIds.length === 0) return 0;
8531
8562
  const { getClient } = await import("./database.js");
8532
- const { cleanupGraphLinksForMemories, cleanupCardsForMemories } = await import("../graph-rag-TZLH3CTQ.js");
8563
+ const { cleanupGraphLinksForMemories, cleanupCardsForMemories } = await import("../graph-rag-BKAD2XQA.js");
8533
8564
  const client = getClient();
8534
8565
  await cleanupGraphLinksForMemories(client, memoryIds);
8535
8566
  await cleanupCardsForMemories(client, memoryIds);
@@ -9006,7 +9037,7 @@ function startAutoUpdateCheck() {
9006
9037
  });
9007
9038
  }
9008
9039
  {
9009
- const { reclaimSupervisionOnStart } = await import("../supervisor-handoff-SGLEPOCY.js");
9040
+ const { reclaimSupervisionOnStart } = await import("../supervisor-handoff-BWJW6CKZ.js");
9010
9041
  if (await reclaimSupervisionOnStart()) {
9011
9042
  logDaemonHealth({
9012
9043
  event: "supervisor_handoff",
@@ -9213,6 +9244,8 @@ function startEventLoopLagDetector() {
9213
9244
  let lastTick = monotonicNowMs();
9214
9245
  let clockProbe = captureClockProbe();
9215
9246
  let lastCpu = process.cpuUsage();
9247
+ const sumHostCpuMs = () => totalHostCpuMs(os4.cpus());
9248
+ let lastHostCpuMs = sumHostCpuMs();
9216
9249
  const SELF_CPU_BUSY_RATIO = parseFloat(process.env.EXE_SELF_CPU_BUSY_RATIO ?? "") || 0.5;
9217
9250
  const SELF_INFLICTED_LIMIT = parseInt(process.env.EXE_SELF_INFLICTED_LIMIT ?? "") || 5;
9218
9251
  const SELF_INFLICTED_SUPPRESS_CAP_MS = parseFloat(process.env.EXE_SELF_INFLICTED_SUPPRESS_CAP_MS ?? "") || 15e4;
@@ -9234,11 +9267,18 @@ function startEventLoopLagDetector() {
9234
9267
  loadSamples = loadWindow.samples;
9235
9268
  const cpuDelta = process.cpuUsage(lastCpu);
9236
9269
  lastCpu = process.cpuUsage();
9270
+ const hostCpuNowMs = sumHostCpuMs();
9271
+ const previousHostCpuMs = lastHostCpuMs;
9272
+ lastHostCpuMs = hostCpuNowMs;
9273
+ const hostCoreCountRaw = os4.cpus().length;
9274
+ const hostCoreCount = hostCoreCountRaw > 0 ? hostCoreCountRaw : void 0;
9275
+ const hostTickFraction = hostTickFractionFor(previousHostCpuMs, hostCpuNowMs, hostCoreCount, wallElapsedMs);
9237
9276
  const selfCpuBusyFraction = wallElapsedMs > 0 ? (cpuDelta.user + cpuDelta.system) / 1e3 / wallElapsedMs : 0;
9238
9277
  const clockJump = looksLikeClockJump(clockProbe);
9278
+ const hostSuspended = isHostSuspendedWindow(lag, SELF_HEAL_THRESHOLD_MS, selfCpuBusyFraction, hostTickFraction);
9239
9279
  lastTick = monotonicNowMs();
9240
9280
  clockProbe = captureClockProbe();
9241
- setEventLoopLagMs(clockJump ? 0 : Math.max(0, lag));
9281
+ setEventLoopLagMs(clockJump || hostSuspended ? 0 : Math.max(0, lag));
9242
9282
  if (clockJump) {
9243
9283
  consecutiveSevereBlocks = 0;
9244
9284
  try {
@@ -9249,10 +9289,35 @@ function startEventLoopLagDetector() {
9249
9289
  return;
9250
9290
  }
9251
9291
  if (lag > LAG_CRITICAL_MS) {
9292
+ if (hostSuspended) {
9293
+ setLastStallClass("host_suspended", lag);
9294
+ const nsMsg = `[exed] HOST SUSPENDED ${(lag / 1e3).toFixed(1)}s \u2014 host CPUs accrued ${((hostTickFraction ?? 0) * 100).toFixed(1)}% of a window's ticks and the daemon used ${(selfCpuBusyFraction * 100).toFixed(1)}% CPU: the machine was asleep. NOT an event-loop block; no restart.`;
9295
+ process.stderr.write(nsMsg + "\n");
9296
+ logDaemonHealth({
9297
+ event: "event_loop_host_suspended",
9298
+ pid: process.pid,
9299
+ message: nsMsg,
9300
+ data: { lagMs: lag, selfCpuBusyFraction, hostTickFraction, load1m: sampledLoad1m, cpuCount: hostCoreCount }
9301
+ });
9302
+ consecutiveSevereBlocks = 0;
9303
+ try {
9304
+ unlinkSync4(eventLoopBlockedMarkerPath());
9305
+ } catch {
9306
+ }
9307
+ try {
9308
+ const markerPath = starvationSuppressedMarkerPath();
9309
+ mkdirSync5(path4.dirname(markerPath), { recursive: true });
9310
+ writeFileSync5(markerPath, `host_suspended lag=${Math.round(lag)}ms selfCpu=${selfCpuBusyFraction.toFixed(4)} hostTicks=${(hostTickFraction ?? 0).toFixed(4)} at ${(/* @__PURE__ */ new Date()).toISOString()}
9311
+ `);
9312
+ } catch {
9313
+ }
9314
+ return;
9315
+ }
9252
9316
  const msg = `[exed] EVENT LOOP BLOCKED ${(lag / 1e3).toFixed(1)}s \u2014 MCP UNRESPONSIVE. Sessions will die.`;
9317
+ setLastStallClass("blocked", lag);
9253
9318
  process.stderr.write(msg + "\n");
9254
9319
  logDaemonHealth({ event: "event_loop_blocked", pid: process.pid, message: msg, data: { lagMs: lag } });
9255
- void import("../orchestration-events-T2GXV2NG.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
9320
+ void import("../orchestration-events-JCQ5F5IJ.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
9256
9321
  recordOE({ eventType: "daemon.event_loop_blocked", source: "exe-daemon.lagDetector", severity: "error", durationMs: lag });
9257
9322
  }).catch(() => {
9258
9323
  });
@@ -9295,6 +9360,9 @@ function startEventLoopLagDetector() {
9295
9360
  // self-inflicted single-core block (let it drain) from a genuine wedge.
9296
9361
  selfCpuBusyFraction,
9297
9362
  selfCpuBusyRatio: SELF_CPU_BUSY_RATIO,
9363
+ // Bug 5c7c2e7b: host-suspend evidence, so the pure decision reaches the
9364
+ // same verdict as the reporting branch above rather than diverging.
9365
+ hostTickFraction,
9298
9366
  catchUpActive,
9299
9367
  // Fast-follow #341: thread the ROLLING-WINDOW self-inflicted ceiling.
9300
9368
  nowMs: Date.now(),
@@ -9306,6 +9374,7 @@ function startEventLoopLagDetector() {
9306
9374
  consecutiveSevereBlocks = decision.consecutiveSevereAfter;
9307
9375
  selfInflictedWindow = decision.selfInflictedWindowAfter;
9308
9376
  if (decision.reason === "starved_backoff") {
9377
+ setLastStallClass("starved", lag);
9309
9378
  process.stderr.write(
9310
9379
  `[exed] SELF-HEAL SUPPRESSED: load=${load1m.toFixed(2)} maxOverWindow=${maxLoad1mOverWindow.toFixed(2)} cpus=${cpuCount} \u2014 lag is CPU starvation, not internal hang. Skipping restart.
9311
9380
  `
@@ -9453,7 +9522,7 @@ function startTaskFileResync() {
9453
9522
  });
9454
9523
  if (Number(res.rowsAffected ?? 0) > 0) {
9455
9524
  synced++;
9456
- void import("../orchestration-events-T2GXV2NG.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
9525
+ void import("../orchestration-events-JCQ5F5IJ.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
9457
9526
  recordOE({
9458
9527
  eventType: "task_file.resynced",
9459
9528
  source: "exe-daemon.taskFileResync",
@@ -9487,7 +9556,7 @@ function startTaskGroupBarriers() {
9487
9556
  fired("task_group_barriers");
9488
9557
  if (!await ensureStoreForPolling()) return;
9489
9558
  try {
9490
- const { pollTaskGroupBarriers } = await import("../daemon-orchestration-HFCB6OK4.js");
9559
+ const { pollTaskGroupBarriers } = await import("../daemon-orchestration-3VQYKLOR.js");
9491
9560
  const firedCount = await pollTaskGroupBarriers();
9492
9561
  if (firedCount > 0) {
9493
9562
  acted("task_group_barriers");
@@ -9509,7 +9578,7 @@ function startCheckpointGc() {
9509
9578
  fired("checkpoint_gc");
9510
9579
  if (!await ensureStoreForPolling()) return;
9511
9580
  try {
9512
- const { gcStaleCheckpoints } = await import("../daemon-orchestration-HFCB6OK4.js");
9581
+ const { gcStaleCheckpoints } = await import("../daemon-orchestration-3VQYKLOR.js");
9513
9582
  const cleared = await gcStaleCheckpoints();
9514
9583
  if (cleared > 0) {
9515
9584
  acted("checkpoint_gc");
@@ -9540,7 +9609,7 @@ function startDaemonHeartbeat() {
9540
9609
  function startDispatchAckCleanup() {
9541
9610
  setInterval(async () => {
9542
9611
  try {
9543
- const { cleanStaleDispatchAcks } = await import("../dispatch-ack-X4DXUSKP.js");
9612
+ const { cleanStaleDispatchAcks } = await import("../dispatch-ack-UYEAKON5.js");
9544
9613
  cleanStaleDispatchAcks();
9545
9614
  } catch {
9546
9615
  }
@@ -9549,14 +9618,14 @@ function startDispatchAckCleanup() {
9549
9618
  function startProjectionWorkerDeferred() {
9550
9619
  setTimeout(async () => {
9551
9620
  try {
9552
- const { startProjectionWorker } = await import("../projection-worker-HAD6H3VJ.js");
9621
+ const { startProjectionWorker } = await import("../projection-worker-WYFDWS57.js");
9553
9622
  startProjectionWorker();
9554
9623
  } catch {
9555
9624
  }
9556
9625
  }, 2e4);
9557
9626
  }
9558
9627
  async function startToolTelemetry() {
9559
- const { startToolTelemetryFlush } = await import("../tool-telemetry-RHSEK2TO.js");
9628
+ const { startToolTelemetryFlush } = await import("../tool-telemetry-LTOIC64I.js");
9560
9629
  startToolTelemetryFlush();
9561
9630
  process.stderr.write("[exed] Tool telemetry started (flush every 5m)\n");
9562
9631
  }
@@ -9726,7 +9795,7 @@ function startLocalFirstTimers() {
9726
9795
  fired("orphan_task_cleanup");
9727
9796
  try {
9728
9797
  if (!await ensureStoreForPolling()) return;
9729
- const { cleanOrphanedTaskFiles } = await import("../tasks-crud-YBCPT7TY.js");
9798
+ const { cleanOrphanedTaskFiles } = await import("../tasks-crud-JHSWL5NM.js");
9730
9799
  const count = await cleanOrphanedTaskFiles();
9731
9800
  if (count > 0) {
9732
9801
  acted("orphan_task_cleanup");
@@ -9742,7 +9811,7 @@ function startLocalFirstTimers() {
9742
9811
  fired("task_file_consistency");
9743
9812
  try {
9744
9813
  if (!await ensureStoreForPolling()) return;
9745
- const { checkTaskFileConsistency } = await import("../tasks-crud-YBCPT7TY.js");
9814
+ const { checkTaskFileConsistency } = await import("../tasks-crud-JHSWL5NM.js");
9746
9815
  const mismatches = await checkTaskFileConsistency();
9747
9816
  if (mismatches > 0) {
9748
9817
  acted("task_file_consistency");
@@ -9761,7 +9830,7 @@ function startLocalFirstTimers() {
9761
9830
  const TELEMETRY_DAILY_MS = 24 * 60 * 60 * 1e3;
9762
9831
  const telemetryDaily = async () => {
9763
9832
  try {
9764
- const { sendTelemetry, isTelemetryEnabled } = await import("../telemetry-upload-ZZSEZR2U.js");
9833
+ const { sendTelemetry, isTelemetryEnabled } = await import("../telemetry-upload-YU2VRNHX.js");
9765
9834
  if (!isTelemetryEnabled()) return;
9766
9835
  const { upstream } = await sendTelemetry(24);
9767
9836
  if (upstream.startsWith("sent")) {
@@ -10004,7 +10073,7 @@ try {
10004
10073
  });
10005
10074
  }
10006
10075
  try {
10007
- const { initOrgPartnerRuntime } = await import("../org-partner-runtime-U4CTLWLC.js");
10076
+ const { initOrgPartnerRuntime } = await import("../org-partner-runtime-YNVUNT2R.js");
10008
10077
  await initOrgPartnerRuntime();
10009
10078
  } catch (err) {
10010
10079
  process.stderr.write(