@askexenow/exe-os 0.9.414 → 0.9.415

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 (422) hide show
  1. package/deploy/compose/.env.customer.example +1 -1
  2. package/deploy/compose/.env.default +1 -1
  3. package/deploy/compose/.env.example +1 -1
  4. package/deploy/compose/docker-compose.yml +1 -1
  5. package/deploy/stack-manifests/v0.9.json +399 -2
  6. package/dist/.dist-verified.json +3 -3
  7. package/dist/{active-agent-MHWQDMML.js → active-agent-LB7T3TLZ.js} +7 -6
  8. package/dist/{active-agent-3YCLS7GB.js → active-agent-NUV4ZSZV.js} +7 -6
  9. package/dist/{agent-defs-generator-DNXMO34I.js → agent-defs-generator-GMN7JLNZ.js} +6 -5
  10. package/dist/{agentic-ontology-RA6CMND6.js → agentic-ontology-ARQVAAYP.js} +1 -1
  11. package/dist/{artifact-backup-EETHNFFP.js → artifact-backup-C6CYTX4E.js} +3 -3
  12. package/dist/{backfill-metadata-WYT257VG.js → backfill-metadata-OLMSQBJF.js} +9 -8
  13. package/dist/{backup-verify-AG54CYGR.js → backup-verify-TPKH64MK.js} +3 -2
  14. package/dist/{behavior-injection-G7GAUHGO.js → behavior-injection-UJ6CW5K7.js} +12 -11
  15. package/dist/{behavior-promotion-I2DIUFUR.js → behavior-promotion-QSVT4WGD.js} +11 -10
  16. package/dist/{behaviors-SKVKPCRW.js → behaviors-6HWTCOTR.js} +10 -9
  17. package/dist/bin/agentic-ontology-backfill.js +10 -9
  18. package/dist/bin/agentic-reflection-backfill.js +11 -10
  19. package/dist/bin/agentic-semantic-label.js +10 -9
  20. package/dist/bin/backfill-conversations.js +9 -8
  21. package/dist/bin/backfill-responses.js +9 -8
  22. package/dist/bin/backfill-vectors.js +9 -8
  23. package/dist/bin/bulk-sync-postgres.js +18 -17
  24. package/dist/bin/cc-doctor.js +11 -10
  25. package/dist/bin/cleanup-stale-review-tasks.js +18 -17
  26. package/dist/bin/cli.js +60 -36
  27. package/dist/bin/deferred-daemon-restart.js +106 -105
  28. package/dist/bin/exe-agent-config.js +5 -4
  29. package/dist/bin/exe-agent.js +17 -16
  30. package/dist/bin/exe-assign.js +10 -9
  31. package/dist/bin/exe-boot.js +39 -38
  32. package/dist/bin/exe-call.js +10 -9
  33. package/dist/bin/exe-cloud.js +19 -18
  34. package/dist/bin/exe-config-dump.js +5 -4
  35. package/dist/bin/exe-dispatch.js +19 -18
  36. package/dist/bin/exe-doctor.js +9 -8
  37. package/dist/bin/exe-export-behaviors.js +14 -13
  38. package/dist/bin/exe-forget.js +12 -11
  39. package/dist/bin/exe-gateway.js +11 -10
  40. package/dist/bin/exe-grant.js +6 -6
  41. package/dist/bin/exe-healthcheck.js +11 -10
  42. package/dist/bin/exe-heartbeat.js +24 -23
  43. package/dist/bin/exe-kill.js +23 -22
  44. package/dist/bin/exe-launch-agent.js +66 -33
  45. package/dist/bin/exe-mcp.js +8 -7
  46. package/dist/bin/exe-memory-reads.js +9 -8
  47. package/dist/bin/exe-new-employee.js +14 -13
  48. package/dist/bin/exe-os-mcp-proxy.js +8 -7
  49. package/dist/bin/exe-pending-messages.js +19 -18
  50. package/dist/bin/exe-pending-notifications.js +18 -17
  51. package/dist/bin/exe-pending-reviews.js +19 -18
  52. package/dist/bin/exe-rename.js +9 -8
  53. package/dist/bin/exe-review.js +22 -21
  54. package/dist/bin/exe-search.js +11 -10
  55. package/dist/bin/exe-session-cleanup.js +23 -22
  56. package/dist/bin/exe-settings.js +18 -17
  57. package/dist/bin/exe-start-codex.js +21 -20
  58. package/dist/bin/exe-start-opencode.js +19 -18
  59. package/dist/bin/exe-start.sh +10 -1
  60. package/dist/bin/exe-status.js +20 -19
  61. package/dist/bin/exe-support.js +3 -3
  62. package/dist/bin/exe-team.js +7 -6
  63. package/dist/bin/exe-telemetry.js +88 -0
  64. package/dist/bin/git-sweep.js +20 -19
  65. package/dist/bin/graph-backfill.js +10 -9
  66. package/dist/bin/graph-export.js +10 -9
  67. package/dist/bin/hooks-cli.js +1 -1
  68. package/dist/bin/import-history.js +14 -13
  69. package/dist/bin/install.js +109 -108
  70. package/dist/bin/intercom-check.js +5 -5
  71. package/dist/bin/mcp-sessions.js +2 -2
  72. package/dist/bin/orchestration-metrics.js +7 -6
  73. package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
  74. package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
  75. package/dist/bin/reconcile-backlog.js +2 -2
  76. package/dist/bin/registry-proxy.js +1 -1
  77. package/dist/bin/repair-document-chunks.js +9 -8
  78. package/dist/bin/scan-tasks.js +19 -18
  79. package/dist/bin/setup.js +4 -3
  80. package/dist/bin/shard-migrate.js +10 -9
  81. package/dist/bin/stack-update.js +4 -4
  82. package/dist/bin/vps-health-gate.js +1 -1
  83. package/dist/{boot-generation-RPJVFAQJ.js → boot-generation-UGKTVJQW.js} +6 -5
  84. package/dist/{boot-review-sections-FOPPZTJI.js → boot-review-sections-EW5FJU3N.js} +17 -16
  85. package/dist/{bug-landed-reconciler-FN5KPBRK.js → bug-landed-reconciler-7DLU65MM.js} +8 -7
  86. package/dist/build-info.json +3 -3
  87. package/dist/build-manifest.json +1158 -1133
  88. package/dist/{capability-cards-YQWBEG7A.js → capability-cards-EC7FLCFF.js} +5 -4
  89. package/dist/{capacity-monitor-7SMEJHYG.js → capacity-monitor-2TQMIGQV.js} +19 -18
  90. package/dist/{catchup-brief-IBQ26LEB.js → catchup-brief-Q2CEZ5LV.js} +24 -23
  91. package/dist/{chunk-M6SUJLNP.js → chunk-2PNEZSFH.js} +2 -2
  92. package/dist/{chunk-NCNT2C2P.js → chunk-2S3H4TRY.js} +2 -2
  93. package/dist/{chunk-27NG2NTG.js → chunk-2UAILEAO.js} +2 -2
  94. package/dist/{chunk-RHHEYC6H.js → chunk-3PMAZKLF.js} +3 -3
  95. package/dist/{chunk-W4H2MZAS.js → chunk-3W6D3XED.js} +1 -1
  96. package/dist/{chunk-JAIZCE6W.js → chunk-43BBN2ZV.js} +3 -3
  97. package/dist/{chunk-IPUDXR67.js → chunk-4FURM6R5.js} +12 -3
  98. package/dist/{chunk-JW5NUXPN.js → chunk-5GUSZMFP.js} +14 -14
  99. package/dist/{chunk-RHJOTGEU.js → chunk-5HCHK52F.js} +1 -1
  100. package/dist/{chunk-7HLAYQRG.js → chunk-5PNYCWYF.js} +5 -5
  101. package/dist/{chunk-HUHR5CKJ.js → chunk-5X5BOCLS.js} +4 -4
  102. package/dist/{chunk-2EYVXUGA.js → chunk-6DFP2ZMF.js} +4 -4
  103. package/dist/{chunk-6HJF7IA3.js → chunk-6QVWL7ZX.js} +227 -198
  104. package/dist/{chunk-TS4LSNRI.js → chunk-745M4HPM.js} +1 -1
  105. package/dist/{chunk-HDV2V25K.js → chunk-7BMIJMFY.js} +1 -1
  106. package/dist/{chunk-Z3LGAFMG.js → chunk-7D6432GR.js} +1 -1
  107. package/dist/{chunk-6L4VIYLZ.js → chunk-7MCEYNWK.js} +15 -1
  108. package/dist/{chunk-XDOCXKHW.js → chunk-7ZEIFHRE.js} +1 -1
  109. package/dist/{chunk-ZZR2WRNW.js → chunk-AAVLHB5A.js} +4 -4
  110. package/dist/{chunk-7YX73K2R.js → chunk-ALA7WYZZ.js} +6 -1
  111. package/dist/{chunk-CJ6CS2IH.js → chunk-BHIMHRRI.js} +5 -5
  112. package/dist/{chunk-CRW63CDI.js → chunk-BSSVSBHE.js} +1 -1
  113. package/dist/chunk-CCFWKW2D.js +92 -0
  114. package/dist/{chunk-FYV2CTKP.js → chunk-CL7P4RW3.js} +1 -1
  115. package/dist/{chunk-SXUABANK.js → chunk-CRO66YJ2.js} +3 -3
  116. package/dist/{chunk-GL5ZG72X.js → chunk-CTZTOAHJ.js} +2 -2
  117. package/dist/{chunk-LSHUX7P4.js → chunk-D4RU4Y57.js} +16 -16
  118. package/dist/{chunk-JGBYZTWH.js → chunk-D6D7LCMR.js} +1 -1
  119. package/dist/{chunk-HDQAVAV6.js → chunk-D6ORFO5E.js} +2 -2
  120. package/dist/{chunk-RIKFXHLE.js → chunk-DJZ4EAZ7.js} +1 -1
  121. package/dist/{chunk-3DXAJVXE.js → chunk-DNWWDHJM.js} +6 -6
  122. package/dist/{chunk-MZNLQC6W.js → chunk-E3TNFXWQ.js} +1 -1
  123. package/dist/{chunk-6PXFF6IV.js → chunk-EVSJUMO3.js} +1 -1
  124. package/dist/{chunk-CWHTUNJX.js → chunk-EXKT3GID.js} +2 -2
  125. package/dist/{chunk-J6U4ZR77.js → chunk-FDMZOLB3.js} +2 -2
  126. package/dist/{chunk-DHLJZDWI.js → chunk-FIAMVZ5I.js} +6 -6
  127. package/dist/{chunk-O3BLL6MY.js → chunk-FNRVCDFM.js} +1 -1
  128. package/dist/{chunk-BLTXAUP6.js → chunk-G32NPOUR.js} +2 -2
  129. package/dist/{chunk-QSW5DHMZ.js → chunk-GCMKH2PM.js} +1 -1
  130. package/dist/{chunk-BIPTWAEO.js → chunk-GDUQ3UQR.js} +1 -1
  131. package/dist/{chunk-L5JFVK5T.js → chunk-GDZJL5GQ.js} +15 -10
  132. package/dist/{chunk-RYMXD2NT.js → chunk-GELNQI77.js} +1 -1
  133. package/dist/{chunk-5ZMNFSHV.js → chunk-H3MFCDKR.js} +1 -1
  134. package/dist/{chunk-657I6PUF.js → chunk-H3ORS4N7.js} +3 -3
  135. package/dist/{chunk-W3ABSZ6G.js → chunk-H7ZVQUU2.js} +2 -2
  136. package/dist/{chunk-2YGBJHC2.js → chunk-HMEXSII5.js} +3 -3
  137. package/dist/{chunk-EWDBWOCX.js → chunk-HPCISMTN.js} +1 -1
  138. package/dist/{chunk-HA6BIZ6L.js → chunk-I2IG5GKQ.js} +8 -8
  139. package/dist/{chunk-SINIRUYZ.js → chunk-I4N7F54M.js} +117 -39
  140. package/dist/{chunk-XEAZJXMZ.js → chunk-IM2KTXBB.js} +2 -2
  141. package/dist/{chunk-XC5OASHV.js → chunk-IVPVCTXX.js} +1 -1
  142. package/dist/{chunk-CFFSHBQF.js → chunk-J56UXB2X.js} +1 -1
  143. package/dist/{chunk-6J2J3VJS.js → chunk-JHVRXXEB.js} +10 -10
  144. package/dist/{chunk-SO7KTH3Q.js → chunk-JJYL2K7E.js} +1 -1
  145. package/dist/{chunk-2BOLFLAU.js → chunk-JKDYZZGD.js} +2 -2
  146. package/dist/{chunk-VS7V5HNO.js → chunk-JOOWL33C.js} +1 -1
  147. package/dist/{chunk-7KPZQ65I.js → chunk-KAJC6L7D.js} +3 -3
  148. package/dist/{chunk-KN5GAVCG.js → chunk-KBJHOC6E.js} +2 -2
  149. package/dist/{chunk-KEDZRQI3.js → chunk-KKJ3BLYL.js} +2 -2
  150. package/dist/{chunk-QJWLQXR7.js → chunk-KYQ623IB.js} +1 -1
  151. package/dist/{chunk-W7VKGB42.js → chunk-L2IJM337.js} +1 -1
  152. package/dist/{chunk-IHAXXDBH.js → chunk-LCGQGYY6.js} +3 -3
  153. package/dist/{chunk-HTFM7ZDD.js → chunk-LFIDYVYE.js} +2 -2
  154. package/dist/chunk-LP5USONU.js +125 -0
  155. package/dist/{chunk-JJZZXEAN.js → chunk-LUB5P63H.js} +2 -2
  156. package/dist/{chunk-GATAYYAF.js → chunk-MLVDB65S.js} +3 -3
  157. package/dist/{chunk-2YFMBXUU.js → chunk-MSOPRLKE.js} +4 -4
  158. package/dist/{chunk-Q6KUBP6R.js → chunk-MXY47DBC.js} +5 -5
  159. package/dist/{chunk-PDQGR5LZ.js → chunk-N7PW2MXQ.js} +1 -1
  160. package/dist/{chunk-6DMURUBY.js → chunk-NLFYDDFL.js} +4 -4
  161. package/dist/{chunk-JNULO6I5.js → chunk-NPA3GSDP.js} +3 -3
  162. package/dist/{chunk-ZJ6AMC4Y.js → chunk-NXVVJE6C.js} +7 -7
  163. package/dist/{chunk-TVWYMOZ4.js → chunk-O3HLDFKY.js} +15 -4
  164. package/dist/{chunk-PYXXL7N7.js → chunk-OEH4DGFQ.js} +1 -1
  165. package/dist/{chunk-VBYSAQJD.js → chunk-OEJZFRT4.js} +1 -1
  166. package/dist/{chunk-VQQPYI4X.js → chunk-OJMM2CBY.js} +2 -2
  167. package/dist/{chunk-X2ZHCNNB.js → chunk-OL7KB6AV.js} +5 -5
  168. package/dist/{chunk-FSXMKIDO.js → chunk-OSAIUYF5.js} +1 -1
  169. package/dist/{chunk-GZVFHFO3.js → chunk-OVN35JFJ.js} +10 -10
  170. package/dist/{chunk-4J77TCTX.js → chunk-PMGEC42V.js} +1 -1
  171. package/dist/{chunk-LBSCOP25.js → chunk-PV5OGJYV.js} +1 -1
  172. package/dist/{chunk-M6AX64J2.js → chunk-QNFR7ZKH.js} +20 -8
  173. package/dist/{chunk-DWRULKB3.js → chunk-R32D6TBB.js} +2 -2
  174. package/dist/chunk-R3ZU4F7M.js +359 -0
  175. package/dist/{chunk-3N24FV22.js → chunk-REMAJEVA.js} +1 -1
  176. package/dist/{chunk-7SHU5MOD.js → chunk-RJ7RN5GE.js} +1 -1
  177. package/dist/{chunk-5BWDUUMH.js → chunk-RMXIDLAZ.js} +3 -3
  178. package/dist/{chunk-PTF5TB6O.js → chunk-RNFYJ7EQ.js} +9 -9
  179. package/dist/{chunk-RJIH7JXM.js → chunk-RV4DRCSF.js} +4 -4
  180. package/dist/{chunk-QOFQY7BJ.js → chunk-RYJTPWKV.js} +1 -1
  181. package/dist/{telemetry-upload-6DR6AL3V.js → chunk-SBHJ6YVB.js} +53 -28
  182. package/dist/{chunk-XQ7BIVLI.js → chunk-SOKGCUCF.js} +9 -9
  183. package/dist/{chunk-K2HIXAIF.js → chunk-SWU43K5E.js} +14 -14
  184. package/dist/{chunk-BE3UETW6.js → chunk-T4X35SUY.js} +3 -3
  185. package/dist/{chunk-LLZUL7M2.js → chunk-TDPDKE4M.js} +4 -2
  186. package/dist/{chunk-TCBWHLKH.js → chunk-TH3P7D7J.js} +9 -9
  187. package/dist/{chunk-47YGEM4N.js → chunk-TRH4DPXR.js} +1 -1
  188. package/dist/{chunk-EOWJXCYC.js → chunk-TSZ3JCQB.js} +1 -1
  189. package/dist/{chunk-FPF2PJFK.js → chunk-U34HVNLK.js} +3 -3
  190. package/dist/{chunk-OHHZNNUD.js → chunk-UC45TUAV.js} +1 -1
  191. package/dist/{chunk-IC2AONBH.js → chunk-UCXX7XZS.js} +9 -9
  192. package/dist/{chunk-N7POJZJT.js → chunk-UJRBX44K.js} +13 -13
  193. package/dist/{chunk-RYYFFCJG.js → chunk-UMBKEPUP.js} +1 -1
  194. package/dist/{chunk-GHYHNHDL.js → chunk-UOLIA6N6.js} +1 -1
  195. package/dist/{chunk-VAHQOIQY.js → chunk-UOPCGIEE.js} +1 -1
  196. package/dist/{chunk-5DLZJ3MY.js → chunk-UWIL3LFL.js} +1 -1
  197. package/dist/{chunk-BG6RAOCJ.js → chunk-UYK7NOJD.js} +3 -3
  198. package/dist/{chunk-LQGLGSBY.js → chunk-UYOWEAZB.js} +2 -2
  199. package/dist/{chunk-T3AM52YT.js → chunk-V4Q5FU7M.js} +4 -4
  200. package/dist/{chunk-A5I2GYVQ.js → chunk-VPXSW6MC.js} +3 -3
  201. package/dist/{chunk-7PDZBPGW.js → chunk-WECEOYOY.js} +1 -1
  202. package/dist/{chunk-GM4UEZDE.js → chunk-WEG7URND.js} +43 -30
  203. package/dist/{chunk-JTJP4JK7.js → chunk-X537FLO2.js} +3 -3
  204. package/dist/{chunk-RMC2A6EE.js → chunk-X6UH3DQE.js} +1 -1
  205. package/dist/{chunk-353XF4LU.js → chunk-XGQCOI3X.js} +2 -2
  206. package/dist/{chunk-FS7XF7SE.js → chunk-XHJO7XFR.js} +1 -1
  207. package/dist/{chunk-3GGMHSY2.js → chunk-XLUEY3SP.js} +3 -3
  208. package/dist/{chunk-D6NZNUVH.js → chunk-YAV55Y4U.js} +1 -1
  209. package/dist/{chunk-6777GNWI.js → chunk-YBVSVB6C.js} +19 -8
  210. package/dist/{chunk-6BD6JYR2.js → chunk-YV3AVQJW.js} +3 -3
  211. package/dist/{chunk-X4FHT6ST.js → chunk-YXGSP2MH.js} +9 -9
  212. package/dist/{chunk-O6KQAJCC.js → chunk-Z46GUZSY.js} +3 -3
  213. package/dist/{chunk-FUDXITKX.js → chunk-ZDD6IQGV.js} +1 -1
  214. package/dist/{chunk-QV26G2BF.js → chunk-ZO5S6T64.js} +1 -1
  215. package/dist/{cleanup-graph-garbage-SYGPMPUM.js → cleanup-graph-garbage-CNUIX5CD.js} +10 -9
  216. package/dist/{cli-shutdown-JI7CASE4.js → cli-shutdown-5PBVKPZJ.js} +1 -1
  217. package/dist/{cloud-sync-command-ZV3P5FP6.js → cloud-sync-command-3E4HKL3N.js} +2 -2
  218. package/dist/{cloud-sync-db-init-RQIHWKV4.js → cloud-sync-db-init-ASBDBYCS.js} +1 -1
  219. package/dist/{cloud-sync-shutdown-V2N7VLD3.js → cloud-sync-shutdown-P6ZT3O6P.js} +5 -4
  220. package/dist/{co-activation-SRE6DIRX.js → co-activation-7ZJFM3YK.js} +5 -4
  221. package/dist/{co-occurrence-F5TMSEQZ.js → co-occurrence-O7ON7AP3.js} +8 -7
  222. package/dist/{consent-passphrase-MWZRHJRC.js → consent-passphrase-ITU47UWT.js} +2 -2
  223. package/dist/{conversation-entity-extractor-XMOUHGMT.js → conversation-entity-extractor-JZNP4UGE.js} +3 -3
  224. package/dist/{conversations-retention-XTBFJBUM.js → conversations-retention-HFM2K6ND.js} +33 -12
  225. package/dist/{crdt-sync-FXEKABM7.js → crdt-sync-B2E3G5YE.js} +4 -4
  226. package/dist/{crm-webhook-D6IJOPRQ.js → crm-webhook-P543266X.js} +2 -2
  227. package/dist/{cto-delegation-gate-BU3JRCYN.js → cto-delegation-gate-ASFPC6L4.js} +18 -17
  228. package/dist/{daemon-orchestration-K4NKFYXO.js → daemon-orchestration-ZPUEHXRM.js} +24 -23
  229. package/dist/{doc-graph-extractor-TVK2NGAR.js → doc-graph-extractor-IADQDUXA.js} +8 -7
  230. package/dist/{documents-MDZ4VB5X.js → documents-MZ5N44EK.js} +10 -9
  231. package/dist/{dreaming-L24PSS35.js → dreaming-OXHEGMGQ.js} +22 -21
  232. package/dist/{employee-boot-brief-GQVL3FQC.js → employee-boot-brief-PMN4STQZ.js} +26 -25
  233. package/dist/{entity-boost-OMFA5QCG.js → entity-boost-5J6OOB4P.js} +1 -1
  234. package/dist/{exe-drift-JDDG3OPT.js → exe-drift-JPD3DP7R.js} +6 -5
  235. package/dist/{exe-export-EEGIE3JP.js → exe-export-TWJ2E235.js} +11 -10
  236. package/dist/{exe-import-UJNC5Q2L.js → exe-import-JTFPCMXG.js} +11 -10
  237. package/dist/{exe-key-TYEY4W4E.js → exe-key-47FOEEFU.js} +106 -105
  238. package/dist/{exe-org-B3ICTTEV.js → exe-org-SDLU427Y.js} +40 -40
  239. package/dist/{exe-snapshot-VBFBONYN.js → exe-snapshot-G6JSOA3W.js} +25 -24
  240. package/dist/{fast-db-init-TFRTK6EH.js → fast-db-init-BWZOVVBH.js} +1 -1
  241. package/dist/{founder-context-3X4QUWKD.js → founder-context-UMNCOSKR.js} +2 -2
  242. package/dist/{founder-monitor-envelope-54UNZNY4.js → founder-monitor-envelope-I4535R5I.js} +4 -4
  243. package/dist/gateway/index.js +19 -18
  244. package/dist/{gateway-client-OUDO5GGV.js → gateway-client-YD24RN7P.js} +1 -1
  245. package/dist/{git-staleness-73YZ5PGU.js → git-staleness-B4H3EE72.js} +5 -4
  246. package/dist/{global-procedures-PYNE2BQG.js → global-procedures-TTBNXTRS.js} +7 -6
  247. package/dist/{graph-auto-extract-PGUMEEQB.js → graph-auto-extract-E4RSCUEO.js} +8 -7
  248. package/dist/{graph-query-7YA3YNKL.js → graph-query-U4WIQNFV.js} +1 -1
  249. package/dist/{graph-rag-UWOTK4AQ.js → graph-rag-WPSWFLOX.js} +3 -3
  250. package/dist/{hook-integrity-6MNEPT6W.js → hook-integrity-G6L3XFGO.js} +1 -1
  251. package/dist/{hook-prefetch-JOF6YZSR.js → hook-prefetch-5AOLNRCY.js} +18 -17
  252. package/dist/{hook-tamper-log-HTWEP37U.js → hook-tamper-log-SWQVRDDV.js} +6 -1
  253. package/dist/hooks/bug-report-worker.js +22 -21
  254. package/dist/hooks/codex-stop-task-finalizer.js +24 -23
  255. package/dist/hooks/commit-complete.js +21 -20
  256. package/dist/hooks/error-recall.js +14 -13
  257. package/dist/hooks/exe-heartbeat-hook.js +8 -7
  258. package/dist/hooks/ingest-worker.js +20 -19
  259. package/dist/hooks/ingest.js +16 -15
  260. package/dist/hooks/instructions-loaded.js +10 -9
  261. package/dist/hooks/manifest.json +20 -20
  262. package/dist/hooks/notification.js +9 -8
  263. package/dist/hooks/post-compact.js +8 -7
  264. package/dist/hooks/post-tool-combined.js +13 -13
  265. package/dist/hooks/pre-compact.js +22 -21
  266. package/dist/hooks/pre-tool-use.js +2 -2
  267. package/dist/hooks/prompt-submit.js +40 -39
  268. package/dist/hooks/session-end.js +27 -26
  269. package/dist/hooks/session-start.js +18 -18
  270. package/dist/hooks/stop.js +25 -24
  271. package/dist/hooks/subagent-stop.js +25 -24
  272. package/dist/hooks/summary-worker.js +25 -24
  273. package/dist/index.js +32 -31
  274. package/dist/{installer-34XZ7JMW.js → installer-KQPRRYWJ.js} +9 -8
  275. package/dist/{installer-356RMQ2K.js → installer-NDH3XNBJ.js} +9 -8
  276. package/dist/{installer-7TN36Z7T.js → installer-SQXH44SB.js} +9 -8
  277. package/dist/{intercom-queue-ZJ3MNULM.js → intercom-queue-NKPPTIL4.js} +17 -16
  278. package/dist/lib/backup-verify-worker.js +3 -2
  279. package/dist/lib/cloud-sync.js +18 -17
  280. package/dist/lib/consolidation.js +11 -10
  281. package/dist/lib/crypto.js +3 -3
  282. package/dist/lib/database.js +5 -4
  283. package/dist/lib/db-backup.js +12 -1
  284. package/dist/lib/db-checkpoint-worker.js +25 -0
  285. package/dist/lib/db-read-worker-client.js +155 -26
  286. package/dist/lib/db-write-worker-client.js +5 -1
  287. package/dist/lib/db-write-worker.js +9 -8
  288. package/dist/lib/db.js +5 -4
  289. package/dist/lib/device-registry.js +1 -1
  290. package/dist/lib/employee-templates.js +8 -7
  291. package/dist/lib/employees.js +5 -4
  292. package/dist/lib/exe-daemon.js +127 -106
  293. package/dist/lib/file-grep.js +14 -1
  294. package/dist/lib/hybrid-search.js +11 -10
  295. package/dist/lib/identity.js +5 -4
  296. package/dist/lib/keychain.js +1 -1
  297. package/dist/lib/license.js +2 -2
  298. package/dist/lib/messaging.js +18 -17
  299. package/dist/lib/post-tool-memory.js +18 -17
  300. package/dist/lib/registry-proxy.js +1 -1
  301. package/dist/lib/reminders.js +6 -5
  302. package/dist/lib/schedules.js +10 -9
  303. package/dist/lib/session-registry.js +7 -6
  304. package/dist/lib/session-wrappers.js +1 -1
  305. package/dist/lib/skill-learning.js +11 -10
  306. package/dist/lib/store.js +9 -8
  307. package/dist/lib/task-router.js +6 -5
  308. package/dist/lib/tasks.js +19 -18
  309. package/dist/lib/telemetry-consent.js +29 -0
  310. package/dist/lib/tmux-routing.js +17 -16
  311. package/dist/lib/tmux-status.js +5 -1
  312. package/dist/lib/token-spend.js +6 -5
  313. package/dist/lib/ws-client.js +1 -1
  314. package/dist/{license-gate-4BXUTHLB.js → license-gate-Q37UDDE5.js} +3 -3
  315. package/dist/{license-recheck-QFPUKISQ.js → license-recheck-AJ7VHKXK.js} +1 -1
  316. package/dist/{license-sync-FDEDT4AC.js → license-sync-H7EMEVUL.js} +2 -2
  317. package/dist/{maintenance-worker-OY2E4BM5.js → maintenance-worker-3FNF2GA5.js} +1 -1
  318. package/dist/mcp/register-tools.js +105 -104
  319. package/dist/mcp/server.js +107 -106
  320. package/dist/mcp/tools/complete-reminder.js +7 -6
  321. package/dist/mcp/tools/create-reminder.js +7 -6
  322. package/dist/mcp/tools/create-task.js +22 -21
  323. package/dist/mcp/tools/deactivate-behavior.js +13 -12
  324. package/dist/mcp/tools/list-reminders.js +7 -6
  325. package/dist/mcp/tools/list-tasks.js +22 -21
  326. package/dist/mcp/tools/send-message.js +21 -20
  327. package/dist/mcp/tools/update-task.js +20 -19
  328. package/dist/{mcp-http-config-GKP5QGAO.js → mcp-http-config-4355SP7A.js} +8 -7
  329. package/dist/{mcp-session-identity-JHAGRB7B.js → mcp-session-identity-JKOJLE7C.js} +17 -16
  330. package/dist/{memory-cards-O377ETAM.js → memory-cards-WTRVBRVV.js} +9 -8
  331. package/dist/{memory-graph-extractor-4KJCCUOP.js → memory-graph-extractor-4T33LWJU.js} +9 -8
  332. package/dist/{memory-maintenance-RR5UPRW3.js → memory-maintenance-JGNZK33G.js} +1 -1
  333. package/dist/{memory-poisoning-defense-Y5TTKGOP.js → memory-poisoning-defense-AHMMXW44.js} +5 -4
  334. package/dist/{memory-pressure-watchdog-NGXTI4HR.js → memory-pressure-watchdog-L3Z4VEPV.js} +18 -17
  335. package/dist/{memory-reflection-EXNHRZL7.js → memory-reflection-4775DTOT.js} +9 -8
  336. package/dist/{memory-write-repository-S4TX7WQB.js → memory-write-repository-AQ7RXJVQ.js} +5 -3
  337. package/dist/{monitor-grants-57Q4NL25.js → monitor-grants-YCKRRH65.js} +3 -3
  338. package/dist/{monitor-identity-3FQ52SYU.js → monitor-identity-RC5HSDKY.js} +2 -2
  339. package/dist/{notification-ledger-O6KQYYGK.js → notification-ledger-EMZ676N7.js} +18 -17
  340. package/dist/{notifications-6FCQCJ4P.js → notifications-UITENQFG.js} +17 -16
  341. package/dist/{orchestration-events-2Z2BMMA5.js → orchestration-events-TXMCSNWZ.js} +6 -5
  342. package/dist/{orchestrator-AGOSKPHD.js → orchestrator-WJ55ZFL5.js} +19 -18
  343. package/dist/{org-brief-session-WJHZVXXJ.js → org-brief-session-YXCBRVSI.js} +17 -16
  344. package/dist/{org-consent-policy-X43UGTHI.js → org-consent-policy-ZVT2Y22K.js} +5 -5
  345. package/dist/{org-join-M3UTBMHC.js → org-join-PRWU2OBZ.js} +11 -11
  346. package/dist/{org-key-admin-AA2DRHB2.js → org-key-admin-FTGOH7RU.js} +13 -13
  347. package/dist/{org-key-epoch-Z5UIVUHT.js → org-key-epoch-IHN3UVUM.js} +5 -5
  348. package/dist/{org-key-pin-FE6YHEZ3.js → org-key-pin-TAL5ISYT.js} +3 -3
  349. package/dist/{org-membership-3J2MIGE4.js → org-membership-FZ7DUCZX.js} +4 -4
  350. package/dist/{org-partner-config-5HATZYG4.js → org-partner-config-Z45CGHE7.js} +8 -8
  351. package/dist/{org-partner-runtime-UI35IHUC.js → org-partner-runtime-J64U2Z7X.js} +17 -16
  352. package/dist/{org-row-visibility-TRJERVYP.js → org-row-visibility-JO2Z5XVO.js} +1 -1
  353. package/dist/{pipeline-router-EKQ6D7ZA.js → pipeline-router-ARYK3UAA.js} +6 -5
  354. package/dist/{plan-limits-3BGHIHX6.js → plan-limits-BA6ZSEQ2.js} +8 -7
  355. package/dist/{pre-tool-use-impl-7BT5TJVM.js → pre-tool-use-impl-NSPKU7SW.js} +34 -33
  356. package/dist/{project-name-PGJGUEJY.js → project-name-3WEMIXD6.js} +10 -5
  357. package/dist/{projection-worker-3GEVFPAI.js → projection-worker-OD7SCQVL.js} +2 -2
  358. package/dist/{prospective-memory-GEN7CN7H.js → prospective-memory-7M5EOED6.js} +5 -4
  359. package/dist/{push-notifications-QW4BWRC7.js → push-notifications-CT452G6K.js} +18 -17
  360. package/dist/{reproject-worktree-memories-DIULBEBD.js → reproject-worktree-memories-4X4FTVPN.js} +17 -16
  361. package/dist/{reranker-LQ6OPJOI.js → reranker-CZUA64BW.js} +1 -1
  362. package/dist/{retrieval-health-XDFYFEOP.js → retrieval-health-5K3EF7WW.js} +1 -1
  363. package/dist/{review-polling-ED33YLFT.js → review-polling-5W6HLGKH.js} +18 -17
  364. package/dist/runtime/index.js +25 -24
  365. package/dist/{seat-benefit-YEUQBNCS.js → seat-benefit-SBVGAMMY.js} +2 -2
  366. package/dist/{session-events-7IJGTBVH.js → session-events-OOYSDWTW.js} +26 -19
  367. package/dist/{session-kill-telemetry-RUTEARJ3.js → session-kill-telemetry-WTL757YS.js} +18 -17
  368. package/dist/{session-scope-SSYA64L3.js → session-scope-QNS6V4QZ.js} +17 -16
  369. package/dist/{setup-wizard-XD7FZVLJ.js → setup-wizard-2SPD7JW5.js} +4 -3
  370. package/dist/{shard-manager-FH5JZRSE.js → shard-manager-YZXA6L3J.js} +3 -3
  371. package/dist/{skill-refinement-UHD4E6GV.js → skill-refinement-XAL2VK7I.js} +6 -5
  372. package/dist/{skill-retrieval-F6PAJ3I5.js → skill-retrieval-H45FGACU.js} +13 -12
  373. package/dist/{skill-usage-2MBTF7Y4.js → skill-usage-Z4PY5DYL.js} +6 -5
  374. package/dist/{stack-generate-manifest-MVJDTU4F.js → stack-generate-manifest-ZWGGIXOW.js} +4 -4
  375. package/dist/{stack-promote-BMGEY6SQ.js → stack-promote-U34DKI2R.js} +4 -4
  376. package/dist/{stack-release-64UJ6Y4W.js → stack-release-IGZDQ2EA.js} +5 -5
  377. package/dist/{stack-update-EBATTQPP.js → stack-update-3MADKNUJ.js} +3 -3
  378. package/dist/{steward-gate-EWG2BHYQ.js → steward-gate-GXHJ3LLV.js} +6 -5
  379. package/dist/{subagent-brief-injection-YZGSWUEY.js → subagent-brief-injection-CONZI6JP.js} +29 -28
  380. package/dist/{subagent-spawn-ledger-PDICC43I.js → subagent-spawn-ledger-2XSOIL35.js} +3 -1
  381. package/dist/{support-bug-actions-RU6WZ3UV.js → support-bug-actions-GHMGOVQX.js} +3 -3
  382. package/dist/{support-inbox-A3S52SPS.js → support-inbox-3EDSKPUK.js} +15 -14
  383. package/dist/{task-enforcement-LVAS55AR.js → task-enforcement-DPOVUD2H.js} +18 -17
  384. package/dist/{task-request-inbox-2TN4ZUH2.js → task-request-inbox-6CCLPLZF.js} +5 -5
  385. package/dist/{task-scope-NLKUVCP5.js → task-scope-5OTHET2J.js} +17 -16
  386. package/dist/{tasks-crud-NQDPLHNZ.js → tasks-crud-ZPUVDX7W.js} +21 -16
  387. package/dist/{tasks-notify-BDM2NEHP.js → tasks-notify-3RODHYLI.js} +18 -17
  388. package/dist/{tasks-review-3G7CAW2O.js → tasks-review-H43CSMNK.js} +17 -16
  389. package/dist/telemetry-upload-4ZYZNO5R.js +42 -0
  390. package/dist/{token-budget-KNC2WGR7.js → token-budget-QGQRMS47.js} +6 -5
  391. package/dist/{tool-telemetry-I3SEU5M5.js → tool-telemetry-HPOHW2Y2.js} +1 -1
  392. package/dist/tui/App.js +27 -26
  393. package/dist/{tui-data-KJDWP4CB.js → tui-data-3E66SZPC.js} +21 -20
  394. package/dist/{update-support-UYDYMHVR.js → update-support-6PQDY3IQ.js} +14 -13
  395. package/dist/{whatsapp-5EMPZHF5.js → whatsapp-5YLHZDFB.js} +2 -2
  396. package/dist/{wiki-acl-M7BTQJBZ.js → wiki-acl-O4EOHWXE.js} +1 -1
  397. package/dist/{work-claims-5CFMZTML.js → work-claims-XGC47NTW.js} +6 -5
  398. package/dist/{work-state-heartbeat-7IA2DZ2E.js → work-state-heartbeat-WAVGL6QG.js} +1 -1
  399. package/dist/{workflow-engine-S5JOE2YR.js → workflow-engine-E7R4STX2.js} +2 -2
  400. package/dist/{worktree-7V4ZMF3D.js → worktree-GYH7OEVR.js} +7 -6
  401. package/dist/{worktree-sweep-34MXJ7S6.js → worktree-sweep-KMZ2KPSO.js} +8 -7
  402. package/package.json +2 -1
  403. package/release-notes.json +30 -21
  404. package/stack.release.json +3 -3
  405. package/dist/chunk-PEYQ6MWO.js +0 -175
  406. /package/dist/{chunk-EULAP6L6.js → chunk-2KBPXG43.js} +0 -0
  407. /package/dist/{chunk-J635FA7T.js → chunk-2WHPS3AR.js} +0 -0
  408. /package/dist/{chunk-QDSNEGJE.js → chunk-4ZWYHHUJ.js} +0 -0
  409. /package/dist/{chunk-J4B4M5PH.js → chunk-5LKFIUH3.js} +0 -0
  410. /package/dist/{chunk-542FBM5U.js → chunk-5TOYYGBC.js} +0 -0
  411. /package/dist/{chunk-CFO47VW4.js → chunk-BYNXKQG2.js} +0 -0
  412. /package/dist/{chunk-N45FAI6D.js → chunk-EORDC4BQ.js} +0 -0
  413. /package/dist/{chunk-6D2O5SAH.js → chunk-GTGXFYYI.js} +0 -0
  414. /package/dist/{chunk-YVWXI2HM.js → chunk-H6HWBMJ3.js} +0 -0
  415. /package/dist/{chunk-FYSKQPTE.js → chunk-QD3YZKZR.js} +0 -0
  416. /package/dist/{chunk-MOBZTIJQ.js → chunk-QTWQGGSP.js} +0 -0
  417. /package/dist/{chunk-SKSXROKP.js → chunk-TMJKP6WP.js} +0 -0
  418. /package/dist/{chunk-6NRZLVK3.js → chunk-YEUGS6CI.js} +0 -0
  419. /package/dist/{core-memory-PZEO3OWH.js → core-memory-RHW5ZX36.js} +0 -0
  420. /package/dist/{memory-isolation-MFNT2ITE.js → memory-isolation-J3KHDCE7.js} +0 -0
  421. /package/dist/{oauth-server-CBGEWD6H.js → oauth-server-WAR3PJOX.js} +0 -0
  422. /package/dist/{project-boot-VESAYDIH.js → project-boot-3BTM3FJ2.js} +0 -0
@@ -1,6 +1,10 @@
1
1
  import {
2
2
  CLOUD_SYNC_EXIT_PARTIAL
3
3
  } from "../chunk-5LQZABW5.js";
4
+ import {
5
+ decideSweepSkip,
6
+ readHostLoadSignal
7
+ } from "../chunk-CYUUNIEL.js";
4
8
  import {
5
9
  RESTART_BREAKER_THRESHOLD,
6
10
  readBreakerAlert,
@@ -9,16 +13,12 @@ import {
9
13
  restartBreakerAlertPath,
10
14
  writeDaemonExitBreadcrumb
11
15
  } from "../chunk-UNFHKOTF.js";
12
- import {
13
- decideSweepSkip,
14
- readHostLoadSignal
15
- } from "../chunk-CYUUNIEL.js";
16
16
  import {
17
17
  isDbVerifyStampFresh
18
18
  } from "../chunk-SVFNWBLF.js";
19
19
  import {
20
20
  pushNotifyAsync
21
- } from "../chunk-FYV2CTKP.js";
21
+ } from "../chunk-CL7P4RW3.js";
22
22
  import {
23
23
  disposeDbWriteWorker,
24
24
  isDbWriteWorkerReady,
@@ -27,7 +27,7 @@ import {
27
27
  sweepConversationsRetentionInWorker,
28
28
  sweepSessionEventsRetentionInWorker,
29
29
  writeMemoryInWorker
30
- } from "../chunk-PEYQ6MWO.js";
30
+ } from "../chunk-R3ZU4F7M.js";
31
31
  import {
32
32
  shouldScheduleDaemonRestartHandoff
33
33
  } from "../chunk-FXZ6VGFW.js";
@@ -64,14 +64,15 @@ import {
64
64
  } from "../chunk-KWOAM7TA.js";
65
65
  import {
66
66
  governMemoryRecord
67
- } from "../chunk-FYSKQPTE.js";
67
+ } from "../chunk-QD3YZKZR.js";
68
68
  import "../chunk-5MOYSU5A.js";
69
69
  import "../chunk-BYP3DOUU.js";
70
70
  import "../chunk-76CJBM36.js";
71
71
  import {
72
72
  BUSY_PATTERN
73
- } from "../chunk-GM4UEZDE.js";
74
- import "../chunk-PYXXL7N7.js";
73
+ } from "../chunk-WEG7URND.js";
74
+ import "../chunk-OEH4DGFQ.js";
75
+ import "../chunk-EIKATSE4.js";
75
76
  import {
76
77
  currentPauseStartMs,
77
78
  isTimerPausedNow,
@@ -81,22 +82,21 @@ import {
81
82
  timerPauseIntervalsSince
82
83
  } from "../chunk-ZKGWHT56.js";
83
84
  import "../chunk-WT4RI36X.js";
85
+ import "../chunk-MJCSEIFI.js";
84
86
  import "../chunk-E23LNUWJ.js";
85
87
  import "../chunk-TDF2XKLK.js";
86
- import "../chunk-EIKATSE4.js";
87
- import "../chunk-MJCSEIFI.js";
88
88
  import "../chunk-QDMZ5DX2.js";
89
89
  import "../chunk-HME6ITKV.js";
90
- import "../chunk-QSW5DHMZ.js";
90
+ import "../chunk-GCMKH2PM.js";
91
91
  import "../chunk-VI4ATC6I.js";
92
92
  import "../chunk-A27Q27CT.js";
93
- import "../chunk-6L4VIYLZ.js";
94
- import "../chunk-JGBYZTWH.js";
93
+ import "../chunk-7MCEYNWK.js";
95
94
  import "../chunk-T5SM4RXY.js";
96
- import "../chunk-CFFSHBQF.js";
95
+ import "../chunk-J56UXB2X.js";
97
96
  import "../chunk-IVXELUEQ.js";
98
97
  import "../chunk-AM7S2TY6.js";
99
- import "../chunk-2BOLFLAU.js";
98
+ import "../chunk-D6D7LCMR.js";
99
+ import "../chunk-JKDYZZGD.js";
100
100
  import {
101
101
  attributeSignalSource,
102
102
  consumeRestartIntentDetail,
@@ -144,12 +144,12 @@ import {
144
144
  killAttributionLogPath,
145
145
  recordKillIntent
146
146
  } from "../chunk-DRTJCG6B.js";
147
- import "../chunk-TVWYMOZ4.js";
147
+ import "../chunk-O3HLDFKY.js";
148
148
  import "../chunk-CVYC6DUW.js";
149
149
  import "../chunk-GJV3WDWM.js";
150
150
  import "../chunk-YRUZK2QA.js";
151
151
  import "../chunk-MP2AFCGL.js";
152
- import "../chunk-L5JFVK5T.js";
152
+ import "../chunk-GDZJL5GQ.js";
153
153
  import {
154
154
  logBoot,
155
155
  logCrash,
@@ -158,10 +158,11 @@ import {
158
158
  logShutdown
159
159
  } from "../chunk-BBMTVAE3.js";
160
160
  import "../chunk-TKDITWDN.js";
161
- import "../chunk-SINIRUYZ.js";
162
- import "../chunk-6777GNWI.js";
163
- import "../chunk-7FE43JRU.js";
164
161
  import "../chunk-5YEUPUV4.js";
162
+ import "../chunk-I4N7F54M.js";
163
+ import "../chunk-CCFWKW2D.js";
164
+ import "../chunk-YBVSVB6C.js";
165
+ import "../chunk-7FE43JRU.js";
165
166
  import {
166
167
  isPostgresBackendEnabled
167
168
  } from "../chunk-YYB5PMTK.js";
@@ -186,9 +187,9 @@ import {
186
187
  EMBEDDING_DIM
187
188
  } from "../chunk-C7GHNJPW.js";
188
189
  import "../chunk-UWGQNJIE.js";
189
- import "../chunk-EOWJXCYC.js";
190
+ import "../chunk-TSZ3JCQB.js";
190
191
  import "../chunk-3R7UDPVR.js";
191
- import "../chunk-6D2O5SAH.js";
192
+ import "../chunk-GTGXFYYI.js";
192
193
  import "../chunk-A7JYF4RG.js";
193
194
  import "../chunk-ARX6TAGN.js";
194
195
  import {
@@ -2683,7 +2684,7 @@ async function loadModel() {
2683
2684
  void (async () => {
2684
2685
  try {
2685
2686
  if (_storeInitialized) {
2686
- const { writeNotification } = await import("../notifications-6FCQCJ4P.js");
2687
+ const { writeNotification } = await import("../notifications-UITENQFG.js");
2687
2688
  await writeNotification({
2688
2689
  agentId: "exe",
2689
2690
  agentRole: "system",
@@ -2820,7 +2821,7 @@ function disableEmbeddingsForInferenceTimeouts() {
2820
2821
  void (async () => {
2821
2822
  try {
2822
2823
  if (_storeInitialized) {
2823
- const { writeNotification } = await import("../notifications-6FCQCJ4P.js");
2824
+ const { writeNotification } = await import("../notifications-UITENQFG.js");
2824
2825
  await writeNotification({
2825
2826
  agentId: "exe",
2826
2827
  agentRole: "system",
@@ -2987,7 +2988,7 @@ async function shutdown(exitCode = 0, reason = null, restartKind) {
2987
2988
  _shuttingDown = true;
2988
2989
  _drainingWrites = true;
2989
2990
  try {
2990
- const { stopOrgPartnerRuntime } = await import("../org-partner-runtime-UI35IHUC.js");
2991
+ const { stopOrgPartnerRuntime } = await import("../org-partner-runtime-J64U2Z7X.js");
2991
2992
  stopOrgPartnerRuntime();
2992
2993
  } catch {
2993
2994
  }
@@ -3007,7 +3008,7 @@ async function shutdown(exitCode = 0, reason = null, restartKind) {
3007
3008
  resetIdleTimer();
3008
3009
  flushToDisk();
3009
3010
  try {
3010
- const { stopMaintenanceLane } = await import("../maintenance-worker-OY2E4BM5.js");
3011
+ const { stopMaintenanceLane } = await import("../maintenance-worker-3FNF2GA5.js");
3011
3012
  await stopMaintenanceLane();
3012
3013
  } catch {
3013
3014
  }
@@ -3075,7 +3076,7 @@ async function shutdown(exitCode = 0, reason = null, restartKind) {
3075
3076
  dbBytes = dbPath ? statSync4(dbPath).size : 0;
3076
3077
  } catch {
3077
3078
  }
3078
- const { getAvailableMemoryBytesSync } = await import("../memory-pressure-watchdog-NGXTI4HR.js");
3079
+ const { getAvailableMemoryBytesSync } = await import("../memory-pressure-watchdog-L3Z4VEPV.js");
3079
3080
  const freeBytes = getAvailableMemoryBytesSync();
3080
3081
  if (shouldSkipBackupUnderMemoryPressure(freeBytes, dbBytes)) {
3081
3082
  memoryGateSkip = true;
@@ -3128,12 +3129,12 @@ async function shutdown(exitCode = 0, reason = null, restartKind) {
3128
3129
  `);
3129
3130
  }
3130
3131
  try {
3131
- const { stopProjectionWorker } = await import("../projection-worker-3GEVFPAI.js");
3132
+ const { stopProjectionWorker } = await import("../projection-worker-OD7SCQVL.js");
3132
3133
  stopProjectionWorker();
3133
3134
  } catch {
3134
3135
  }
3135
3136
  try {
3136
- const { disposeShards } = await import("../shard-manager-FH5JZRSE.js");
3137
+ const { disposeShards } = await import("../shard-manager-YZXA6L3J.js");
3137
3138
  disposeShards();
3138
3139
  } catch {
3139
3140
  }
@@ -3196,7 +3197,7 @@ async function handleHealthCheck(socket, requestId) {
3196
3197
  let pipelineStatus = "unknown";
3197
3198
  if (dbConnected) {
3198
3199
  try {
3199
- await import("../pipeline-router-EKQ6D7ZA.js");
3200
+ await import("../pipeline-router-ARYK3UAA.js");
3200
3201
  pipelineStatus = "ok";
3201
3202
  } catch {
3202
3203
  pipelineStatus = "unavailable";
@@ -3299,12 +3300,13 @@ async function handleHealthCheck(socket, requestId) {
3299
3300
  }
3300
3301
  var _dbRequestsServed = 0;
3301
3302
  async function runDaemonTimerRead(sql, args = []) {
3303
+ const { isDbReadWorkerReady, runReadQueryInWorker, isDbReadWorkerTimeout } = await import("./db-read-worker-client.js");
3302
3304
  try {
3303
- const { isDbReadWorkerReady, runReadQueryInWorker } = await import("./db-read-worker-client.js");
3304
3305
  if (isDbReadWorkerReady()) {
3305
3306
  return await runReadQueryInWorker(sql, args);
3306
3307
  }
3307
- } catch {
3308
+ } catch (err) {
3309
+ if (isDbReadWorkerTimeout(err)) throw err;
3308
3310
  }
3309
3311
  const { getClient } = await import("./database.js");
3310
3312
  return getClient().execute({ sql, args });
@@ -3344,7 +3346,9 @@ async function handleDbExecute(socket, requestId, sql, args) {
3344
3346
  sendResponse(socket, { id: requestId, db: serialized });
3345
3347
  return;
3346
3348
  }
3347
- } catch {
3349
+ } catch (err) {
3350
+ const { isDbReadWorkerTimeout } = await import("./db-read-worker-client.js");
3351
+ if (isDbReadWorkerTimeout(err)) throw err;
3348
3352
  }
3349
3353
  }
3350
3354
  const { getClient } = await import("./database.js");
@@ -3588,7 +3592,7 @@ async function _writeMemoryRecordInner(entry, syncOnly = false) {
3588
3592
  }
3589
3593
  }
3590
3594
  const { getClient } = await import("./database.js");
3591
- const { buildMemoryInsert, readMemoryWriteOutcome } = await import("../memory-write-repository-S4TX7WQB.js");
3595
+ const { buildMemoryInsert, readMemoryWriteOutcome } = await import("../memory-write-repository-AQ7RXJVQ.js");
3592
3596
  const client = getClient();
3593
3597
  const row = {
3594
3598
  ...record,
@@ -3609,7 +3613,7 @@ async function _writeMemoryRecordInner(entry, syncOnly = false) {
3609
3613
  if (Number(inserted.rowsAffected) === 0) return outcome.id;
3610
3614
  const version = outcome.version;
3611
3615
  try {
3612
- const { insertOntologyForMemory } = await import("../agentic-ontology-RA6CMND6.js");
3616
+ const { insertOntologyForMemory } = await import("../agentic-ontology-ARQVAAYP.js");
3613
3617
  await insertOntologyForMemory({
3614
3618
  id,
3615
3619
  agent_id: record.agent_id,
@@ -4486,7 +4490,7 @@ async function startMcpHttpServer() {
4486
4490
  setBootPhase("db_ready");
4487
4491
  _storeInitialized = true;
4488
4492
  markDbInitCompleted();
4489
- const { initLicenseGate, getCachedLicenseGate } = await import("../license-gate-4BXUTHLB.js");
4493
+ const { initLicenseGate, getCachedLicenseGate } = await import("../license-gate-Q37UDDE5.js");
4490
4494
  const gateResult = await initLicenseGate();
4491
4495
  if (!gateResult.hasKey) {
4492
4496
  process.stderr.write(
@@ -4498,7 +4502,7 @@ async function startMcpHttpServer() {
4498
4502
  `
4499
4503
  );
4500
4504
  }
4501
- const { startLicenseRecheckTimer, LICENSE_RECHECK_INTERVAL_MS } = await import("../license-recheck-QFPUKISQ.js");
4505
+ const { startLicenseRecheckTimer, LICENSE_RECHECK_INTERVAL_MS } = await import("../license-recheck-AJ7VHKXK.js");
4502
4506
  startLicenseRecheckTimer();
4503
4507
  process.stderr.write(
4504
4508
  `[exed] License re-check timer started (every ${LICENSE_RECHECK_INTERVAL_MS / 6e4}m, throttled by cache freshness)
@@ -4507,7 +4511,7 @@ async function startMcpHttpServer() {
4507
4511
  let _cachedWrapTelemetry = null;
4508
4512
  async function getWrapTelemetry() {
4509
4513
  if (!_cachedWrapTelemetry) {
4510
- const { wrapServerWithTelemetry } = await import("../tool-telemetry-I3SEU5M5.js");
4514
+ const { wrapServerWithTelemetry } = await import("../tool-telemetry-HPOHW2Y2.js");
4511
4515
  _cachedWrapTelemetry = wrapServerWithTelemetry;
4512
4516
  }
4513
4517
  return _cachedWrapTelemetry;
@@ -4579,7 +4583,7 @@ async function startMcpHttpServer() {
4579
4583
  const expectedBuf = Buffer.from(_daemonToken);
4580
4584
  if (tokenBuf.length === expectedBuf.length && timingSafeEqual(tokenBuf, expectedBuf)) return true;
4581
4585
  try {
4582
- const { verifyAccessToken } = await import("../oauth-server-CBGEWD6H.js");
4586
+ const { verifyAccessToken } = await import("../oauth-server-WAR3PJOX.js");
4583
4587
  const result = verifyAccessToken(token);
4584
4588
  return result.valid;
4585
4589
  } catch {
@@ -4842,7 +4846,7 @@ async function startMcpHttpServer() {
4842
4846
  return;
4843
4847
  }
4844
4848
  try {
4845
- const { handleOAuthRoute } = await import("../oauth-server-CBGEWD6H.js");
4849
+ const { handleOAuthRoute } = await import("../oauth-server-WAR3PJOX.js");
4846
4850
  const handled = await handleOAuthRoute(req, res, url, MCP_HTTP_PORT, _daemonToken);
4847
4851
  if (handled) return;
4848
4852
  } catch (err) {
@@ -4970,7 +4974,7 @@ async function startMcpHttpServer() {
4970
4974
  contextPct: body.context_pct
4971
4975
  });
4972
4976
  if (body.context_pct !== void 0 && body.context_pct > 70) {
4973
- void import("../orchestration-events-2Z2BMMA5.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
4977
+ void import("../orchestration-events-TXMCSNWZ.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
4974
4978
  recordOE({
4975
4979
  eventType: "context.pressure",
4976
4980
  source: "exe-daemon.heartbeat",
@@ -5066,7 +5070,7 @@ async function startMcpHttpServer() {
5066
5070
  let sessionHint = req.headers["x-exe-session-name"] || req.headers["x-exe-session"] || "";
5067
5071
  if (sessionHint) {
5068
5072
  try {
5069
- const { sanitizeSessionHintHeader, rejectForgedSessionHint } = await import("../mcp-session-identity-JHAGRB7B.js");
5073
+ const { sanitizeSessionHintHeader, rejectForgedSessionHint } = await import("../mcp-session-identity-JKOJLE7C.js");
5070
5074
  const rawHint = sessionHint;
5071
5075
  sessionHint = sanitizeSessionHintHeader(sessionHint);
5072
5076
  if (!sessionHint) {
@@ -5105,7 +5109,7 @@ async function startMcpHttpServer() {
5105
5109
  try {
5106
5110
  const liveSessions = await getTmuxSessionsAsync();
5107
5111
  const paneCommands = await getPaneCommandsAsync();
5108
- const { resolveMcpSessionHint } = await import("../mcp-session-identity-JHAGRB7B.js");
5112
+ const { resolveMcpSessionHint } = await import("../mcp-session-identity-JKOJLE7C.js");
5109
5113
  let registrySessions = [];
5110
5114
  try {
5111
5115
  const { listSessions: listRegistrySessions } = await import("./session-registry.js");
@@ -5242,7 +5246,7 @@ async function startMcpHttpServer() {
5242
5246
  bindLive = await getTmuxSessionsAsync();
5243
5247
  } catch {
5244
5248
  }
5245
- const { isLauncherCorroboratedIdentity } = await import("../mcp-session-identity-JHAGRB7B.js");
5249
+ const { isLauncherCorroboratedIdentity } = await import("../mcp-session-identity-JKOJLE7C.js");
5246
5250
  const corroborated = isLauncherCorroboratedIdentity({
5247
5251
  agentId,
5248
5252
  registrySessions: bindRegistry,
@@ -5484,7 +5488,7 @@ async function startMcpHttpServer() {
5484
5488
  }
5485
5489
  }
5486
5490
  try {
5487
- const { reconcileHintWithRegistryIdentity } = await import("../mcp-session-identity-JHAGRB7B.js");
5491
+ const { reconcileHintWithRegistryIdentity } = await import("../mcp-session-identity-JKOJLE7C.js");
5488
5492
  const { listSessions: listRegistrySessions } = await import("./session-registry.js");
5489
5493
  const recon = reconcileHintWithRegistryIdentity({
5490
5494
  agentId,
@@ -5744,9 +5748,9 @@ async function ensureStoreForPolling() {
5744
5748
  await initDatabase({ dbPath: config.dbPath, encryptionKey: masterKey.toString("hex") });
5745
5749
  await ensureSchema();
5746
5750
  try {
5747
- const { isLedgerEnabled } = await import("../notification-ledger-O6KQYYGK.js");
5751
+ const { isLedgerEnabled } = await import("../notification-ledger-EMZ676N7.js");
5748
5752
  if (isLedgerEnabled()) {
5749
- const { bumpBootGeneration } = await import("../boot-generation-RPJVFAQJ.js");
5753
+ const { bumpBootGeneration } = await import("../boot-generation-UGKTVJQW.js");
5750
5754
  const { setDaemonReadyGeneration } = await import("../daemon-ready-signal-PNDMVKPJ.js");
5751
5755
  const generation = await bumpBootGeneration();
5752
5756
  setDaemonReadyGeneration(generation);
@@ -5792,13 +5796,13 @@ async function ensureStoreForPolling() {
5792
5796
  }
5793
5797
  }
5794
5798
  async function startReviewPolling() {
5795
- const polling = await import("../review-polling-ED33YLFT.js");
5799
+ const polling = await import("../review-polling-5W6HLGKH.js");
5796
5800
  const state = {
5797
5801
  lastIntercomSent: /* @__PURE__ */ new Map(),
5798
5802
  lastNudgeSent: /* @__PURE__ */ new Map(),
5799
5803
  intervalMs: REVIEW_POLL_INTERVAL_MS
5800
5804
  };
5801
- const { pollReviewNudge, createReviewNudgeRealDeps, loadNudgeState } = await import("../daemon-orchestration-K4NKFYXO.js");
5805
+ const { pollReviewNudge, createReviewNudgeRealDeps, loadNudgeState } = await import("../daemon-orchestration-ZPUEHXRM.js");
5802
5806
  const nudgeState = loadNudgeState();
5803
5807
  const tick = async () => traceDaemonTimer("review_polling", async () => {
5804
5808
  fired("review_polling");
@@ -5806,7 +5810,7 @@ async function startReviewPolling() {
5806
5810
  try {
5807
5811
  const { getClient } = await import("./database.js");
5808
5812
  const deps = polling.createRealDeps(getClient);
5809
- const { strictSessionScopeFilter } = await import("../task-scope-NLKUVCP5.js");
5813
+ const { strictSessionScopeFilter } = await import("../task-scope-5OTHET2J.js");
5810
5814
  const { getCoordinatorName, DEFAULT_COORDINATOR_TEMPLATE_NAME } = await import("./employees.js");
5811
5815
  deps.findOrphanedDoneTasks = async (sessionScope) => {
5812
5816
  const coordinatorName = getCoordinatorName();
@@ -5826,7 +5830,7 @@ async function startReviewPolling() {
5826
5830
  deps.findTieredReviewCandidates = async (sessionScope) => {
5827
5831
  let project = null;
5828
5832
  try {
5829
- const { getProjectName } = await import("../project-name-PGJGUEJY.js");
5833
+ const { getProjectName } = await import("../project-name-3WEMIXD6.js");
5830
5834
  project = getProjectName() || null;
5831
5835
  } catch {
5832
5836
  project = null;
@@ -5885,7 +5889,7 @@ function startSessionTTL() {
5885
5889
  if (!await ensureStoreForPolling()) return;
5886
5890
  if (inPostRestartDestructiveGrace("session_ttl")) return;
5887
5891
  const { getClient } = await import("./database.js");
5888
- const { checkSessionTTL, createSessionTTLRealDeps } = await import("../daemon-orchestration-K4NKFYXO.js");
5892
+ const { checkSessionTTL, createSessionTTLRealDeps } = await import("../daemon-orchestration-ZPUEHXRM.js");
5889
5893
  const deps = createSessionTTLRealDeps(getClient);
5890
5894
  const killed = await checkSessionTTL(deps, _wedgeObservations);
5891
5895
  if (killed.length > 0) acted("session_ttl");
@@ -5945,7 +5949,7 @@ function startIdleKill() {
5945
5949
  const cfg = await getCachedConfig();
5946
5950
  if (!cfg) return;
5947
5951
  const { getClient } = await import("./database.js");
5948
- const { pollIdleKill, createIdleKillRealDeps } = await import("../daemon-orchestration-K4NKFYXO.js");
5952
+ const { pollIdleKill, createIdleKillRealDeps } = await import("../daemon-orchestration-ZPUEHXRM.js");
5949
5953
  const { sessions: liveSessions, paneCache, aliveSessions } = await getSharedOrchestrationCaches();
5950
5954
  const realDeps = createIdleKillRealDeps(
5951
5955
  getClient,
@@ -6381,7 +6385,7 @@ function startSkillRefinement() {
6381
6385
  if (!shouldRunHeavyJob("skill_refinement")) return;
6382
6386
  try {
6383
6387
  if (!await ensureStoreForPolling()) return;
6384
- const { runSkillRefinement } = await import("../skill-refinement-UHD4E6GV.js");
6388
+ const { runSkillRefinement } = await import("../skill-refinement-XAL2VK7I.js");
6385
6389
  const result = await runSkillRefinement();
6386
6390
  if (result.reviewed > 0) {
6387
6391
  acted("skill_refinement");
@@ -6446,7 +6450,7 @@ function startStalledDispatchSweep() {
6446
6450
  });
6447
6451
  const { notifications, nextState } = decideStalledDispatchEscalations(intents, previousState);
6448
6452
  if (notifications.length > 0 && _storeInitialized) {
6449
- const { writeNotification } = await import("../notifications-6FCQCJ4P.js");
6453
+ const { writeNotification } = await import("../notifications-UITENQFG.js");
6450
6454
  for (const note of notifications) {
6451
6455
  try {
6452
6456
  await writeNotification({
@@ -6496,7 +6500,7 @@ function startStaleBranchSweep() {
6496
6500
  fired("stale_branch_sweep");
6497
6501
  if (sweepStarved("stale_branch_sweep")) return;
6498
6502
  try {
6499
- const { discoverRepoPathsAsync } = await import("../worktree-sweep-34MXJ7S6.js");
6503
+ const { discoverRepoPathsAsync } = await import("../worktree-sweep-KMZ2KPSO.js");
6500
6504
  const { scanUnmergedBranchesCached } = await import("../branch-hygiene-DDXXI6ZA.js");
6501
6505
  const { runBudgetedSweep } = await import("../sweep-budget-YGLCNXZZ.js");
6502
6506
  const today = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
@@ -6529,7 +6533,7 @@ function startStaleBranchSweep() {
6529
6533
  if (!_storeInitialized) return;
6530
6534
  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("; ");
6531
6535
  try {
6532
- const { writeNotification } = await import("../notifications-6FCQCJ4P.js");
6536
+ const { writeNotification } = await import("../notifications-UITENQFG.js");
6533
6537
  await writeNotification({
6534
6538
  agentId: "exe",
6535
6539
  agentRole: "system",
@@ -6570,7 +6574,7 @@ function startBugLandedReconcile() {
6570
6574
  fired("bug_landed_reconcile");
6571
6575
  if (sweepStarved("bug_landed_reconcile")) return;
6572
6576
  try {
6573
- const { reconcileLandedBugs } = await import("../bug-landed-reconciler-FN5KPBRK.js");
6577
+ const { reconcileLandedBugs } = await import("../bug-landed-reconciler-7DLU65MM.js");
6574
6578
  const result = await reconcileLandedBugs();
6575
6579
  const { reposScanned, reposErrored, prsScanned, matched, reconciled, skipped, errored } = result.summary;
6576
6580
  process.stderr.write(
@@ -6592,12 +6596,12 @@ function startBugLandedReconcile() {
6592
6596
  }
6593
6597
  async function maybeScheduleBugLandedReconcile() {
6594
6598
  try {
6595
- const { hasSupportAdminAccess } = await import("../support-bug-actions-RU6WZ3UV.js");
6599
+ const { hasSupportAdminAccess } = await import("../support-bug-actions-GHMGOVQX.js");
6596
6600
  if (!await hasSupportAdminAccess()) {
6597
6601
  process.stderr.write("[exed] Bug-landed reconcile: no AskExe support admin token configured \u2014 skipping (customer install)\n");
6598
6602
  return;
6599
6603
  }
6600
- const { isGhAvailableAndAuthenticated } = await import("../bug-landed-reconciler-FN5KPBRK.js");
6604
+ const { isGhAvailableAndAuthenticated } = await import("../bug-landed-reconciler-7DLU65MM.js");
6601
6605
  if (!await isGhAvailableAndAuthenticated()) {
6602
6606
  process.stderr.write("[exed] Bug-landed reconcile: gh CLI not available/authenticated \u2014 skipping\n");
6603
6607
  return;
@@ -6636,7 +6640,7 @@ function startWorkStateHeartbeat() {
6636
6640
  const { getClient } = await import("./database.js");
6637
6641
  const { listSessions } = await import("./session-registry.js");
6638
6642
  const { isCoordinatorName } = await import("./employees.js");
6639
- const { runWorkStateTick } = await import("../work-state-heartbeat-7IA2DZ2E.js");
6643
+ const { runWorkStateTick } = await import("../work-state-heartbeat-WAVGL6QG.js");
6640
6644
  let liveTmux = null;
6641
6645
  const loadLiveTmux = async () => {
6642
6646
  if (!liveTmux) liveTmux = await listTmuxSessionNamesAsync();
@@ -6702,7 +6706,7 @@ function startGraphExtraction() {
6702
6706
  if (!await ensureStoreForPolling()) return;
6703
6707
  const { getClient } = await import("./database.js");
6704
6708
  const client = getClient();
6705
- const { extractBatch } = await import("../graph-rag-UWOTK4AQ.js");
6709
+ const { extractBatch } = await import("../graph-rag-WPSWFLOX.js");
6706
6710
  const result = await extractBatch(client, 50, config.selfQueryModel);
6707
6711
  if (result.processed > 0) {
6708
6712
  acted("graph_extraction");
@@ -7023,7 +7027,7 @@ async function refreshAgentData() {
7023
7027
  const decision = evaluateSpendCapAlert(_lastSpendCapLevel, capStatus);
7024
7028
  _lastSpendCapLevel = decision.level;
7025
7029
  if (decision.shouldAlert && decision.summary) {
7026
- const { writeNotification } = await import("../notifications-6FCQCJ4P.js");
7030
+ const { writeNotification } = await import("../notifications-UITENQFG.js");
7027
7031
  await writeNotification({
7028
7032
  agentId: "system",
7029
7033
  agentRole: "system",
@@ -7145,7 +7149,7 @@ function startReflectionSweep() {
7145
7149
  );
7146
7150
  let runReflection;
7147
7151
  try {
7148
- ({ runReflection } = await import("../memory-reflection-EXNHRZL7.js"));
7152
+ ({ runReflection } = await import("../memory-reflection-4775DTOT.js"));
7149
7153
  } catch (importErr) {
7150
7154
  _reflectionImportFailed = true;
7151
7155
  process.stderr.write(`[exed] Reflection module unavailable (stale chunk hash?) \u2014 disabled until daemon restart: ${importErr instanceof Error ? importErr.message : String(importErr)}
@@ -7186,7 +7190,7 @@ function startReflectionSweep() {
7186
7190
  if (memories > 100 && cards < memories * 0.1) {
7187
7191
  process.stderr.write(`[exed] Memory cards sparse (${cards} cards / ${memories} memories) \u2014 running backfill...
7188
7192
  `);
7189
- const { insertMemoryCardsForBatch } = await import("../memory-cards-O377ETAM.js");
7193
+ const { insertMemoryCardsForBatch } = await import("../memory-cards-WTRVBRVV.js");
7190
7194
  const batchSize = 500;
7191
7195
  let offset = 0;
7192
7196
  let totalCards = 0;
@@ -7244,8 +7248,16 @@ function startDatabaseBackup() {
7244
7248
  const tick = async () => {
7245
7249
  fired("db_backup");
7246
7250
  try {
7247
- const { createBackupAsync, enforceRetention, hasBackupToday, hasRecentBackup } = await import("./db-backup.js");
7248
- if (!hasRecentBackup("guaranteed", DB_BACKUP_TARGET_WINDOW_MS)) {
7251
+ const { createBackupAsync, enforceRetention, hasBackupToday, hasRecentBackup, hasRecentFailedBackupAttempt } = await import("./db-backup.js");
7252
+ const backingOff = (reason) => {
7253
+ if (!hasRecentFailedBackupAttempt(reason, DB_BACKUP_TARGET_WINDOW_MS)) return false;
7254
+ process.stderr.write(
7255
+ `[exed] DB backup (${reason}) backing off: last attempt was quarantined within the ${Math.round(DB_BACKUP_TARGET_WINDOW_MS / 36e5)}h window; next attempt after it elapses.
7256
+ `
7257
+ );
7258
+ return true;
7259
+ };
7260
+ if (!hasRecentBackup("guaranteed", DB_BACKUP_TARGET_WINDOW_MS) && !backingOff("guaranteed")) {
7249
7261
  const guaranteedPath = await createBackupAsync("guaranteed");
7250
7262
  if (guaranteedPath) {
7251
7263
  acted("db_backup");
@@ -7258,6 +7270,7 @@ function startDatabaseBackup() {
7258
7270
  }
7259
7271
  if (!shouldRunHeavyJob("db_backup_daily")) return;
7260
7272
  if (hasBackupToday("daily")) return;
7273
+ if (backingOff("daily")) return;
7261
7274
  const backupPath = await createBackupAsync("daily");
7262
7275
  if (backupPath) {
7263
7276
  acted("db_backup");
@@ -7267,7 +7280,7 @@ function startDatabaseBackup() {
7267
7280
  `
7268
7281
  );
7269
7282
  try {
7270
- const { maybeVerifyDailyBackup } = await import("../backup-verify-AG54CYGR.js");
7283
+ const { maybeVerifyDailyBackup } = await import("../backup-verify-TPKH64MK.js");
7271
7284
  const verdict = await maybeVerifyDailyBackup(backupPath);
7272
7285
  if (verdict && !verdict.ok) {
7273
7286
  process.stderr.write(
@@ -7343,7 +7356,7 @@ function startSessionEventsRetention() {
7343
7356
  fired("session_events_retention");
7344
7357
  if (!await ensureStoreForPolling()) return;
7345
7358
  try {
7346
- const { DEFAULT_SESSION_EVENTS_RETENTION_DAYS, sessionEventsRetentionMode } = await import("../session-events-7IJGTBVH.js");
7359
+ const { DEFAULT_SESSION_EVENTS_RETENTION_DAYS, sessionEventsRetentionMode } = await import("../session-events-OOYSDWTW.js");
7347
7360
  const days = SESSION_EVENTS_RETENTION_DAYS ?? DEFAULT_SESSION_EVENTS_RETENTION_DAYS;
7348
7361
  const decision = sessionEventsRetentionMode(isWriteWorkerEnabled(), isDbWriteWorkerReady());
7349
7362
  if (decision.mode === "skip") {
@@ -7353,9 +7366,9 @@ function startSessionEventsRetention() {
7353
7366
  );
7354
7367
  return;
7355
7368
  }
7356
- let count;
7369
+ let swept;
7357
7370
  try {
7358
- count = (await sweepSessionEventsRetentionInWorker(days)).deleted;
7371
+ swept = await sweepSessionEventsRetentionInWorker(days);
7359
7372
  } catch (err) {
7360
7373
  process.stderr.write(
7361
7374
  `[exed] Session-events retention worker failed (${err instanceof Error ? err.message : String(err)}) - skipping this tick
@@ -7363,10 +7376,10 @@ function startSessionEventsRetention() {
7363
7376
  );
7364
7377
  return;
7365
7378
  }
7366
- if (count > 0) {
7379
+ if (swept.deleted > 0) {
7367
7380
  acted("session_events_retention");
7368
7381
  process.stderr.write(
7369
- `[exed] Session-events retention: deleted ${count} events older than ${days}d
7382
+ `[exed] Session-events retention: deleted ${swept.deleted} events older than ${days}d in ${swept.batches} batch(es)${swept.drained ? "" : " \u2014 backlog remains, continuing next tick"}${swept.error ? ` (stopped: ${swept.error})` : ""}
7370
7383
  `
7371
7384
  );
7372
7385
  }
@@ -7394,8 +7407,8 @@ function startConversationsRetention() {
7394
7407
  fired("conversations_retention");
7395
7408
  if (!await ensureStoreForPolling()) return;
7396
7409
  try {
7397
- const { DEFAULT_CONVERSATIONS_RETENTION_DAYS } = await import("../conversations-retention-XTBFJBUM.js");
7398
- const { sessionEventsRetentionMode } = await import("../session-events-7IJGTBVH.js");
7410
+ const { DEFAULT_CONVERSATIONS_RETENTION_DAYS } = await import("../conversations-retention-HFM2K6ND.js");
7411
+ const { sessionEventsRetentionMode } = await import("../session-events-OOYSDWTW.js");
7399
7412
  const days = CONVERSATIONS_RETENTION_DAYS ?? DEFAULT_CONVERSATIONS_RETENTION_DAYS;
7400
7413
  const decision = sessionEventsRetentionMode(isWriteWorkerEnabled(), isDbWriteWorkerReady());
7401
7414
  if (decision.mode === "skip") {
@@ -7415,11 +7428,11 @@ function startConversationsRetention() {
7415
7428
  );
7416
7429
  return;
7417
7430
  }
7418
- if (swept.deleted > 0) {
7431
+ if (swept.deleted > 0 || swept.purged > 0) {
7419
7432
  acted("conversations_retention");
7420
7433
  const what = swept.mode === "purge" ? `PERMANENTLY DELETED ${swept.purged}` : `archived ${swept.archived}`;
7421
7434
  process.stderr.write(
7422
- `[exed] Conversations retention: ${what} messages older than ${days}d
7435
+ `[exed] Conversations retention: ${what} messages older than ${days}d in ${swept.batches} batch(es)${swept.drained ? "" : " \u2014 backlog remains, continuing next tick"}${swept.error ? ` (stopped: ${swept.error})` : ""}
7423
7436
  `
7424
7437
  );
7425
7438
  }
@@ -7444,7 +7457,7 @@ function startIntercomQueueDrain() {
7444
7457
  const tick = async () => traceDaemonTimer("intercom_queue_drain", async () => {
7445
7458
  fired("intercom_queue_drain");
7446
7459
  try {
7447
- const { drainQueueAsync, readQueue } = await import("../intercom-queue-ZJ3MNULM.js");
7460
+ const { drainQueueAsync, readQueue } = await import("../intercom-queue-NKPPTIL4.js");
7448
7461
  const {
7449
7462
  sendIntercomAsync: centralSendIntercomAsync,
7450
7463
  countScopedPendingReviews,
@@ -7576,7 +7589,7 @@ function startLedgerDrain() {
7576
7589
  const tick = async () => traceDaemonTimer("ledger_drain", async () => {
7577
7590
  fired("ledger_drain");
7578
7591
  try {
7579
- const { isLedgerEnabled, drainLedger } = await import("../notification-ledger-O6KQYYGK.js");
7592
+ const { isLedgerEnabled, drainLedger } = await import("../notification-ledger-EMZ676N7.js");
7580
7593
  if (!isLedgerEnabled()) return;
7581
7594
  const result = await drainLedger({
7582
7595
  // Shadow "would-deliver": idle target = would-deliver, busy = retry.
@@ -7616,7 +7629,7 @@ function startOrphanReaper() {
7616
7629
  fired("orphan_reaper");
7617
7630
  if (sweepStarved("orphan_reaper")) return;
7618
7631
  try {
7619
- const { reapOrphanedMcpProcesses, createOrphanReaperRealDepsAsync } = await import("../daemon-orchestration-K4NKFYXO.js");
7632
+ const { reapOrphanedMcpProcesses, createOrphanReaperRealDepsAsync } = await import("../daemon-orchestration-ZPUEHXRM.js");
7620
7633
  const deps = await createOrphanReaperRealDepsAsync();
7621
7634
  const reaped = await reapOrphanedMcpProcesses(deps);
7622
7635
  if (reaped.length > 0) acted("orphan_reaper");
@@ -7642,7 +7655,7 @@ function startZombieAgentReaper() {
7642
7655
  fired("zombie_agent_reaper");
7643
7656
  if (sweepStarved("zombie_agent_reaper")) return;
7644
7657
  try {
7645
- const { reapZombieAgentProcesses, createZombieAgentReaperRealDepsAsync } = await import("../daemon-orchestration-K4NKFYXO.js");
7658
+ const { reapZombieAgentProcesses, createZombieAgentReaperRealDepsAsync } = await import("../daemon-orchestration-ZPUEHXRM.js");
7646
7659
  const deps = await createZombieAgentReaperRealDepsAsync();
7647
7660
  const reaped = reapZombieAgentProcesses(deps);
7648
7661
  if (reaped.length > 0) acted("zombie_agent_reaper");
@@ -7666,7 +7679,7 @@ async function startDaemonMemoryPressureWatchdog() {
7666
7679
  try {
7667
7680
  const cfg = await getCachedConfig();
7668
7681
  if (!cfg) return;
7669
- const { startMemoryPressureWatchdog: startWatchdog, MEMORY_PRESSURE_WATCHDOG_DEFAULTS } = await import("../memory-pressure-watchdog-NGXTI4HR.js");
7682
+ const { startMemoryPressureWatchdog: startWatchdog, MEMORY_PRESSURE_WATCHDOG_DEFAULTS } = await import("../memory-pressure-watchdog-L3Z4VEPV.js");
7670
7683
  const watchdogCfg = {
7671
7684
  ...MEMORY_PRESSURE_WATCHDOG_DEFAULTS,
7672
7685
  ...cfg.memoryPressureWatchdog ?? {}
@@ -7698,7 +7711,7 @@ function startWorktreeReaper() {
7698
7711
  fired("worktree_reaper");
7699
7712
  if (sweepStarved("worktree_reaper")) return;
7700
7713
  try {
7701
- const { reapOrphanedWorktrees, createWorktreeReaperRealDeps } = await import("../daemon-orchestration-K4NKFYXO.js");
7714
+ const { reapOrphanedWorktrees, createWorktreeReaperRealDeps } = await import("../daemon-orchestration-ZPUEHXRM.js");
7702
7715
  const deps = await createWorktreeReaperRealDeps();
7703
7716
  const result = await reapOrphanedWorktrees(deps);
7704
7717
  if (result.pruned.length > 0) {
@@ -7742,8 +7755,8 @@ function startWorktreeReaper() {
7742
7755
  }
7743
7756
  return;
7744
7757
  }
7745
- const { cleanupAgentWorktree } = await import("../worktree-sweep-34MXJ7S6.js");
7746
- const { getMainRepoRootAsync } = await import("../worktree-7V4ZMF3D.js");
7758
+ const { cleanupAgentWorktree } = await import("../worktree-sweep-KMZ2KPSO.js");
7759
+ const { getMainRepoRootAsync } = await import("../worktree-GYH7OEVR.js");
7747
7760
  const repoRoot = await getMainRepoRootAsync(signal.worktreePath);
7748
7761
  if (repoRoot && signal.agentId) {
7749
7762
  const notes = await cleanupAgentWorktree(repoRoot, signal.agentId);
@@ -7780,7 +7793,7 @@ function startAutoWake() {
7780
7793
  if (!await ensureStoreForPolling()) return;
7781
7794
  try {
7782
7795
  const { getClient } = await import("./database.js");
7783
- const { pollOrphanedTasks, createAutoWakeRealDeps } = await import("../daemon-orchestration-K4NKFYXO.js");
7796
+ const { pollOrphanedTasks, createAutoWakeRealDeps } = await import("../daemon-orchestration-ZPUEHXRM.js");
7784
7797
  const deps = createAutoWakeRealDeps(getClient, process.cwd(), getTmuxSessionsAsync);
7785
7798
  const woken = await pollOrphanedTasks(deps);
7786
7799
  if (woken.length > 0) acted("auto_wake");
@@ -7855,7 +7868,7 @@ function startAutoWake() {
7855
7868
  if (age > 60 * 60 * 1e3) {
7856
7869
  try {
7857
7870
  await unlink(signalPath);
7858
- void import("../orchestration-events-2Z2BMMA5.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
7871
+ void import("../orchestration-events-TXMCSNWZ.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
7859
7872
  recordOE({ eventType: "signal.stale", source: "exe-daemon.autoWake", severity: "warn", payload: { file, ageMinutes: Math.round(age / 6e4) } });
7860
7873
  }).catch(() => {
7861
7874
  });
@@ -8004,7 +8017,7 @@ function startStuckTaskRelease() {
8004
8017
  createStaleClaimRealDeps,
8005
8018
  escalateStuckBlockedTasks,
8006
8019
  createStuckBlockedRealDeps
8007
- } = await import("../daemon-orchestration-K4NKFYXO.js");
8020
+ } = await import("../daemon-orchestration-ZPUEHXRM.js");
8008
8021
  const { runBudgetedSweep } = await import("../sweep-budget-YGLCNXZZ.js");
8009
8022
  const steps = [
8010
8023
  async () => {
@@ -8269,12 +8282,12 @@ function startTaskEnforcementScanner() {
8269
8282
  const tick = async () => traceDaemonTimer("task_enforcement", async () => {
8270
8283
  fired("task_enforcement");
8271
8284
  try {
8272
- const { runTaskEnforcementTick } = await import("../task-enforcement-LVAS55AR.js");
8285
+ const { runTaskEnforcementTick } = await import("../task-enforcement-DPOVUD2H.js");
8273
8286
  const { getTransport } = await import("./transport.js");
8274
8287
  const { loadAgentConfig } = await import("./agent-config.js");
8275
8288
  const { getClient } = await import("./database.js");
8276
8289
  const { loadEmployeesSync } = await import("./employees.js");
8277
- const { sessionScopeFilter } = await import("../task-scope-NLKUVCP5.js");
8290
+ const { sessionScopeFilter } = await import("../task-scope-5OTHET2J.js");
8278
8291
  const transport = getTransport();
8279
8292
  const { sessions: allSessions, paneCache, aliveSessions } = await getSharedOrchestrationCaches();
8280
8293
  await yieldToEventLoop();
@@ -8285,10 +8298,10 @@ function startTaskEnforcementScanner() {
8285
8298
  sendKeysLiteral: transport.sendKeysLiteral?.bind(transport),
8286
8299
  isAlive: (session) => aliveSessions.has(session)
8287
8300
  };
8288
- const { checkAutoWakeGates } = await import("../daemon-orchestration-K4NKFYXO.js");
8301
+ const { checkAutoWakeGates } = await import("../daemon-orchestration-ZPUEHXRM.js");
8289
8302
  const { ensureEmployeeAsync, employeeSessionName, sendIntercomAsync } = await import("./tmux-routing.js");
8290
8303
  const { shouldAutoInstance } = await import("./employees.js");
8291
- const { recordOrchestrationEventBestEffort } = await import("../orchestration-events-2Z2BMMA5.js");
8304
+ const { recordOrchestrationEventBestEffort } = await import("../orchestration-events-TXMCSNWZ.js");
8292
8305
  const projectDir = process.cwd();
8293
8306
  await runTaskEnforcementTick({
8294
8307
  transport: enforcementTransport,
@@ -8618,7 +8631,7 @@ async function sweepExpiredTracesFromDaemonTimer() {
8618
8631
  const memoryIds = idsResult.rows.map((r) => String(r.id)).filter(Boolean);
8619
8632
  if (memoryIds.length === 0) return 0;
8620
8633
  const { getClient } = await import("./database.js");
8621
- const { cleanupGraphLinksForMemories, cleanupCardsForMemories } = await import("../graph-rag-UWOTK4AQ.js");
8634
+ const { cleanupGraphLinksForMemories, cleanupCardsForMemories } = await import("../graph-rag-WPSWFLOX.js");
8622
8635
  const client = getClient();
8623
8636
  await cleanupGraphLinksForMemories(client, memoryIds);
8624
8637
  await cleanupCardsForMemories(client, memoryIds);
@@ -8756,7 +8769,7 @@ function startHookRegistrationWatch() {
8756
8769
  process.stderr.write(`[exed] [HOOKS DEAD] ${mod.formatHookLivenessFailure(report)}
8757
8770
  `);
8758
8771
  try {
8759
- const { pushNotifyAsync: pushNotifyAsync2 } = await import("../push-notifications-QW4BWRC7.js");
8772
+ const { pushNotifyAsync: pushNotifyAsync2 } = await import("../push-notifications-CT452G6K.js");
8760
8773
  pushNotifyAsync2({
8761
8774
  event: "hooks_dead",
8762
8775
  title: `${report.broken.length} exe-os hook(s) cannot run`,
@@ -9430,7 +9443,7 @@ function startEventLoopLagDetector() {
9430
9443
  setLastStallClass("blocked", lag);
9431
9444
  process.stderr.write(msg + "\n");
9432
9445
  logDaemonHealth({ event: "event_loop_blocked", pid: process.pid, message: msg, data: { lagMs: lag } });
9433
- void import("../orchestration-events-2Z2BMMA5.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
9446
+ void import("../orchestration-events-TXMCSNWZ.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
9434
9447
  recordOE({ eventType: "daemon.event_loop_blocked", source: "exe-daemon.lagDetector", severity: "error", durationMs: lag });
9435
9448
  }).catch(() => {
9436
9449
  });
@@ -9635,7 +9648,7 @@ function startTaskFileResync() {
9635
9648
  });
9636
9649
  if (Number(res.rowsAffected ?? 0) > 0) {
9637
9650
  synced++;
9638
- void import("../orchestration-events-2Z2BMMA5.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
9651
+ void import("../orchestration-events-TXMCSNWZ.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
9639
9652
  recordOE({
9640
9653
  eventType: "task_file.resynced",
9641
9654
  source: "exe-daemon.taskFileResync",
@@ -9669,7 +9682,7 @@ function startTaskGroupBarriers() {
9669
9682
  fired("task_group_barriers");
9670
9683
  if (!await ensureStoreForPolling()) return;
9671
9684
  try {
9672
- const { pollTaskGroupBarriers } = await import("../daemon-orchestration-K4NKFYXO.js");
9685
+ const { pollTaskGroupBarriers } = await import("../daemon-orchestration-ZPUEHXRM.js");
9673
9686
  const firedCount = await pollTaskGroupBarriers();
9674
9687
  if (firedCount > 0) {
9675
9688
  acted("task_group_barriers");
@@ -9691,7 +9704,7 @@ function startCheckpointGc() {
9691
9704
  fired("checkpoint_gc");
9692
9705
  if (!await ensureStoreForPolling()) return;
9693
9706
  try {
9694
- const { gcStaleCheckpoints } = await import("../daemon-orchestration-K4NKFYXO.js");
9707
+ const { gcStaleCheckpoints } = await import("../daemon-orchestration-ZPUEHXRM.js");
9695
9708
  const cleared = await gcStaleCheckpoints();
9696
9709
  if (cleared > 0) {
9697
9710
  acted("checkpoint_gc");
@@ -9731,14 +9744,14 @@ function startDispatchAckCleanup() {
9731
9744
  function startProjectionWorkerDeferred() {
9732
9745
  setTimeout(async () => {
9733
9746
  try {
9734
- const { startProjectionWorker } = await import("../projection-worker-3GEVFPAI.js");
9747
+ const { startProjectionWorker } = await import("../projection-worker-OD7SCQVL.js");
9735
9748
  startProjectionWorker();
9736
9749
  } catch {
9737
9750
  }
9738
9751
  }, 2e4);
9739
9752
  }
9740
9753
  async function startToolTelemetry() {
9741
- const { startToolTelemetryFlush } = await import("../tool-telemetry-I3SEU5M5.js");
9754
+ const { startToolTelemetryFlush } = await import("../tool-telemetry-HPOHW2Y2.js");
9742
9755
  startToolTelemetryFlush();
9743
9756
  process.stderr.write("[exed] Tool telemetry started (flush every 5m)\n");
9744
9757
  }
@@ -9911,7 +9924,7 @@ function startLocalFirstTimers() {
9911
9924
  fired("orphan_task_cleanup");
9912
9925
  try {
9913
9926
  if (!await ensureStoreForPolling()) return;
9914
- const { cleanOrphanedTaskFiles } = await import("../tasks-crud-NQDPLHNZ.js");
9927
+ const { cleanOrphanedTaskFiles } = await import("../tasks-crud-ZPUVDX7W.js");
9915
9928
  const count = await cleanOrphanedTaskFiles();
9916
9929
  if (count > 0) {
9917
9930
  acted("orphan_task_cleanup");
@@ -9927,7 +9940,7 @@ function startLocalFirstTimers() {
9927
9940
  fired("task_file_consistency");
9928
9941
  try {
9929
9942
  if (!await ensureStoreForPolling()) return;
9930
- const { checkTaskFileConsistency } = await import("../tasks-crud-NQDPLHNZ.js");
9943
+ const { checkTaskFileConsistency } = await import("../tasks-crud-ZPUVDX7W.js");
9931
9944
  const mismatches = await checkTaskFileConsistency();
9932
9945
  if (mismatches > 0) {
9933
9946
  acted("task_file_consistency");
@@ -9944,10 +9957,18 @@ function startLocalFirstTimers() {
9944
9957
  startDaemonHeartbeat();
9945
9958
  startDispatchAckCleanup();
9946
9959
  const TELEMETRY_DAILY_MS = 24 * 60 * 60 * 1e3;
9960
+ let telemetryDeferredLogged = false;
9947
9961
  const telemetryDaily = async () => {
9948
9962
  try {
9949
- const { sendTelemetry, isTelemetryEnabled } = await import("../telemetry-upload-6DR6AL3V.js");
9963
+ const { sendTelemetry, isTelemetryEnabled, canSendTelemetry } = await import("../telemetry-upload-4ZYZNO5R.js");
9950
9964
  if (!isTelemetryEnabled()) return;
9965
+ if (!canSendTelemetry()) {
9966
+ if (!telemetryDeferredLogged) {
9967
+ telemetryDeferredLogged = true;
9968
+ process.stderr.write("[exed] Daily telemetry paused: the telemetry notice has not been shown yet (run `exe-os telemetry status`)\n");
9969
+ }
9970
+ return;
9971
+ }
9951
9972
  const { upstream } = await sendTelemetry(24);
9952
9973
  if (upstream.startsWith("sent")) {
9953
9974
  process.stderr.write("[exed] Daily telemetry sent successfully\n");
@@ -10189,7 +10210,7 @@ try {
10189
10210
  });
10190
10211
  }
10191
10212
  try {
10192
- const { initOrgPartnerRuntime } = await import("../org-partner-runtime-UI35IHUC.js");
10213
+ const { initOrgPartnerRuntime } = await import("../org-partner-runtime-J64U2Z7X.js");
10193
10214
  await initOrgPartnerRuntime();
10194
10215
  } catch (err) {
10195
10216
  process.stderr.write(
@@ -10215,7 +10236,7 @@ try {
10215
10236
  });
10216
10237
  startEventLoopLagDetector();
10217
10238
  try {
10218
- const { startMaintenanceLane, isMaintenanceLaneEnabled } = await import("../maintenance-worker-OY2E4BM5.js");
10239
+ const { startMaintenanceLane, isMaintenanceLaneEnabled } = await import("../maintenance-worker-3FNF2GA5.js");
10219
10240
  if (isMaintenanceLaneEnabled()) {
10220
10241
  startMaintenanceLane();
10221
10242
  }