@askexenow/exe-os 0.9.372 → 0.9.374

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 (470) hide show
  1. package/deploy/compose/.env.customer.example +45 -10
  2. package/deploy/compose/.env.example +46 -9
  3. package/deploy/compose/docker-compose.yml +136 -18
  4. package/deploy/compose/generate-env.ts +142 -34
  5. package/deploy/compose/sso-edge/default.conf.template +78 -7
  6. package/deploy/compose/sso-edge/sso-redirect.conf +109 -13
  7. package/deploy/stack-manifests/v0.9.30-apps.json +1 -1
  8. package/deploy/stack-manifests/v0.9.json +4 -4
  9. package/dist/.dist-verified.json +3 -3
  10. package/dist/{active-agent-GRT5MKD5.js → active-agent-ONPPEWQV.js} +7 -6
  11. package/dist/{active-agent-L2ZSSXDK.js → active-agent-UJKMG7LJ.js} +7 -6
  12. package/dist/{agent-defs-generator-M4ZNYIVX.js → agent-defs-generator-ZWI6DXOE.js} +6 -5
  13. package/dist/{agent-loop-FOK2IRZQ.js → agent-loop-OYHJKNYH.js} +1 -1
  14. package/dist/{agentic-ontology-DMPRDEUX.js → agentic-ontology-WHFJ3QFS.js} +1 -1
  15. package/dist/{artifact-backup-767STHSW.js → artifact-backup-WXZNB7KE.js} +2 -1
  16. package/dist/{backfill-gate-VX2RZTQV.js → backfill-gate-KWJQ35YX.js} +3 -2
  17. package/dist/{backfill-metadata-ZMEHJQ5M.js → backfill-metadata-3OUSQD5V.js} +8 -7
  18. package/dist/{background-jobs-LTPWCMA3.js → background-jobs-6VMD55PK.js} +3 -2
  19. package/dist/{backup-verify-EX2K732J.js → backup-verify-ZKTUYLTA.js} +4 -3
  20. package/dist/{behavior-injection-22AGMS25.js → behavior-injection-M6UYZCMW.js} +17 -15
  21. package/dist/{behaviors-DVFXAWF5.js → behaviors-ZJ45TFBJ.js} +21 -13
  22. package/dist/bin/age-ontology-load.js +3 -2
  23. package/dist/bin/agentic-ontology-backfill.js +10 -9
  24. package/dist/bin/agentic-reflection-backfill.js +11 -10
  25. package/dist/bin/agentic-semantic-label.js +10 -9
  26. package/dist/bin/backfill-conversations.js +13 -11
  27. package/dist/bin/backfill-responses.js +13 -11
  28. package/dist/bin/backfill-vectors.js +17 -15
  29. package/dist/bin/bulk-sync-postgres.js +22 -20
  30. package/dist/bin/cc-doctor.js +10 -9
  31. package/dist/bin/cleanup-stale-review-tasks.js +29 -26
  32. package/dist/bin/cli.js +36 -26
  33. package/dist/bin/deferred-daemon-restart.js +114 -110
  34. package/dist/bin/exe-agent-config.js +6 -5
  35. package/dist/bin/exe-agent.js +127 -33
  36. package/dist/bin/exe-assign.js +15 -13
  37. package/dist/bin/exe-boot.js +57 -54
  38. package/dist/bin/exe-call.js +8 -7
  39. package/dist/bin/exe-cloud.js +24 -22
  40. package/dist/bin/exe-config-dump.js +6 -5
  41. package/dist/bin/exe-dispatch.js +30 -27
  42. package/dist/bin/exe-doctor.js +14 -10
  43. package/dist/bin/exe-export-behaviors.js +19 -17
  44. package/dist/bin/exe-forget.js +10 -9
  45. package/dist/bin/exe-gateway.js +199 -19
  46. package/dist/bin/exe-grant.js +5 -5
  47. package/dist/bin/exe-healthcheck.js +10 -9
  48. package/dist/bin/exe-heartbeat.js +35 -32
  49. package/dist/bin/exe-kill.js +34 -31
  50. package/dist/bin/exe-launch-agent.js +126 -54
  51. package/dist/bin/exe-mcp.js +6 -5
  52. package/dist/bin/exe-memory-reads.js +8 -7
  53. package/dist/bin/exe-new-employee.js +12 -11
  54. package/dist/bin/exe-os-mcp-proxy.js +6 -5
  55. package/dist/bin/exe-pending-messages.js +30 -27
  56. package/dist/bin/exe-pending-notifications.js +29 -26
  57. package/dist/bin/exe-pending-reviews.js +30 -27
  58. package/dist/bin/exe-rename.js +8 -7
  59. package/dist/bin/exe-repo-truth.js +1 -1
  60. package/dist/bin/exe-review.js +33 -30
  61. package/dist/bin/exe-search.js +9 -8
  62. package/dist/bin/exe-session-cleanup.js +35 -32
  63. package/dist/bin/exe-settings.js +24 -22
  64. package/dist/bin/exe-start-codex.js +137 -55
  65. package/dist/bin/exe-start-opencode.js +121 -23
  66. package/dist/bin/exe-status.js +31 -28
  67. package/dist/bin/exe-support.js +5 -4
  68. package/dist/bin/exe-team.js +7 -6
  69. package/dist/bin/exe-watchdog.js +31 -11
  70. package/dist/bin/generate-hook-manifest.js +44 -7
  71. package/dist/bin/git-sweep.js +31 -28
  72. package/dist/bin/graph-backfill.js +89 -35
  73. package/dist/bin/graph-export.js +9 -8
  74. package/dist/bin/import-history.js +14 -13
  75. package/dist/bin/install.js +137 -113
  76. package/dist/bin/intercom-check.js +5 -5
  77. package/dist/bin/mcp-sessions.js +2 -2
  78. package/dist/bin/orchestration-metrics.js +7 -6
  79. package/dist/bin/postgres-agentic-reflection-backfill.js +5 -4
  80. package/dist/bin/postgres-agentic-semantic-backfill.js +4 -3
  81. package/dist/bin/pre-publish.js +1 -1
  82. package/dist/bin/reconcile-backlog.js +2 -2
  83. package/dist/bin/registry-proxy.js +1 -1
  84. package/dist/bin/scan-tasks.js +29 -26
  85. package/dist/bin/setup.js +5 -4
  86. package/dist/bin/shard-migrate.js +9 -8
  87. package/dist/bin/stack-update.js +40 -9
  88. package/dist/bin/verify-stack.js +2 -2
  89. package/dist/bin/vps-health-gate.js +1 -1
  90. package/dist/{boot-generation-OHXH4YC5.js → boot-generation-JKVZ4ZAT.js} +6 -5
  91. package/dist/{boot-review-sections-N5IXIGSS.js → boot-review-sections-2M6BTG73.js} +28 -25
  92. package/dist/{branch-hygiene-KCGXRAWP.js → branch-hygiene-U5GFRSTP.js} +31 -7
  93. package/dist/{branding-GH43W3PU.js → branding-I6KIMB7F.js} +3 -2
  94. package/dist/budget-fallback-XJRPMP2D.js +11 -0
  95. package/dist/build-manifest.json +1318 -1233
  96. package/dist/{capability-cards-4PXVLIVS.js → capability-cards-5IMJT6J7.js} +5 -4
  97. package/dist/{capacity-monitor-FKMQXORX.js → capacity-monitor-SAXCQK7O.js} +30 -27
  98. package/dist/{catchup-brief-SN5EKO4N.js → catchup-brief-U2TXBLHD.js} +34 -31
  99. package/dist/{chunk-CNC57JCS.js → chunk-23MVDXLY.js} +4 -4
  100. package/dist/{chunk-V4XAKXXF.js → chunk-2AJGV5UL.js} +1 -1
  101. package/dist/{chunk-FBYAXTDM.js → chunk-2ZOEC4KC.js} +10 -2
  102. package/dist/{chunk-ELXFSIIM.js → chunk-32YV32VA.js} +2 -2
  103. package/dist/{chunk-44C7QNZS.js → chunk-3KDCORDO.js} +1 -1
  104. package/dist/{chunk-JTB5V6BV.js → chunk-3SXHEQ7X.js} +1 -1
  105. package/dist/{chunk-HDW4XPDV.js → chunk-3UUX5OY4.js} +1 -1
  106. package/dist/{chunk-7PSLK36P.js → chunk-44TLJZJ5.js} +1 -1
  107. package/dist/{chunk-JTWTBX2M.js → chunk-4EN3IZ3Q.js} +2 -1
  108. package/dist/{chunk-KPMC7PY7.js → chunk-4HKTO2SV.js} +1 -1
  109. package/dist/{chunk-CDUB5Q6J.js → chunk-4IK2K3B3.js} +1 -1
  110. package/dist/{chunk-GH6YJOOC.js → chunk-4SJ4LK4V.js} +6 -6
  111. package/dist/{chunk-PVEM537A.js → chunk-4YLBKEL5.js} +2 -2
  112. package/dist/chunk-4YNA3CM6.js +872 -0
  113. package/dist/{chunk-KYFFVTGO.js → chunk-55BEFF4V.js} +3 -3
  114. package/dist/{chunk-SEP5ITFQ.js → chunk-636LKCKE.js} +2 -2
  115. package/dist/{chunk-QTI4QAWA.js → chunk-6EZQUNE6.js} +338 -5
  116. package/dist/{chunk-WAEKYKTK.js → chunk-6RKKVPYF.js} +1 -1
  117. package/dist/{chunk-VX2F4ZUY.js → chunk-6SCGLHJ7.js} +3 -3
  118. package/dist/{chunk-MEGRQ53A.js → chunk-6VHOQ3IM.js} +51 -6
  119. package/dist/{chunk-HIIXCAEE.js → chunk-6YVUR3OU.js} +3 -3
  120. package/dist/{chunk-L6ZNURWN.js → chunk-7GE2EQ23.js} +1 -1
  121. package/dist/{chunk-2CWS374F.js → chunk-7RI2CNXJ.js} +1 -1
  122. package/dist/{chunk-OL3QP3AU.js → chunk-7TSBV3SD.js} +1 -1
  123. package/dist/{chunk-DSOQUQTV.js → chunk-A27Q27CT.js} +27 -0
  124. package/dist/{chunk-5AHRZI3R.js → chunk-AETLDRZB.js} +1 -1
  125. package/dist/{chunk-RNLF3CBB.js → chunk-AKLJ4JH3.js} +1 -1
  126. package/dist/{chunk-XHYHX6F7.js → chunk-AKLQSC6W.js} +329 -164
  127. package/dist/chunk-ANLFH23R.js +261 -0
  128. package/dist/{chunk-QLA3RTH4.js → chunk-AWWKRZMB.js} +5 -5
  129. package/dist/{chunk-ERVQTR7P.js → chunk-BBSIEYF5.js} +17 -3
  130. package/dist/{chunk-IPMUWYRQ.js → chunk-BJ7AVSY6.js} +2 -2
  131. package/dist/{chunk-HV6Y6F4X.js → chunk-C2L622QJ.js} +89 -3
  132. package/dist/{chunk-TX3Q2GIL.js → chunk-C5HUMAA7.js} +24 -1
  133. package/dist/{chunk-QTYJPWJN.js → chunk-CBCGDEJA.js} +7 -7
  134. package/dist/{chunk-XXSNLM6R.js → chunk-DB55JZHU.js} +1 -1
  135. package/dist/{chunk-LAZKEJMS.js → chunk-DIXXEE3S.js} +840 -607
  136. package/dist/{chunk-FB343XQX.js → chunk-DJ7YXOTU.js} +2 -2
  137. package/dist/{chunk-YFCNWQAM.js → chunk-DJOIMFKV.js} +2 -2
  138. package/dist/{chunk-UTDMTQNH.js → chunk-DSJI76XL.js} +92 -14
  139. package/dist/{chunk-EEXX4UMQ.js → chunk-DZKPOSFD.js} +1 -1
  140. package/dist/{chunk-WSOA3WMC.js → chunk-E426DOSY.js} +161 -4
  141. package/dist/{chunk-ZISQOOER.js → chunk-EKE37MO4.js} +3 -3
  142. package/dist/{chunk-RIECV7SR.js → chunk-EKYYMIVT.js} +1 -1
  143. package/dist/{chunk-HIVZ53YB.js → chunk-EXTZSNWL.js} +2 -2
  144. package/dist/{chunk-YYA5LXCT.js → chunk-FNEZ4BWT.js} +1 -1
  145. package/dist/chunk-FTZET5YX.js +313 -0
  146. package/dist/chunk-GHR4ZPJ7.js +70 -0
  147. package/dist/{chunk-MINXPXAB.js → chunk-GJI77VDO.js} +3 -3
  148. package/dist/{chunk-AAMGHW5W.js → chunk-GLQEJOXE.js} +1 -0
  149. package/dist/{chunk-ADNBOKYZ.js → chunk-GM7TLYOK.js} +60 -18
  150. package/dist/{chunk-RUWWES2K.js → chunk-GNUAL43X.js} +2 -2
  151. package/dist/{chunk-QZL6E4UB.js → chunk-GOMQ7PVQ.js} +2 -2
  152. package/dist/{chunk-GB3AHV5F.js → chunk-GQOEWNVM.js} +1 -1
  153. package/dist/{chunk-NQZUSEAR.js → chunk-GS7LIT34.js} +246 -17
  154. package/dist/{chunk-XTWHNLGD.js → chunk-GZOG2MAX.js} +1 -1
  155. package/dist/{chunk-E5HAY3DQ.js → chunk-HDLAB7W3.js} +1 -1
  156. package/dist/{chunk-E5QQZDQN.js → chunk-HNWS7YHN.js} +358 -136
  157. package/dist/{chunk-VV5EZZNT.js → chunk-HTBEVCO2.js} +1 -1
  158. package/dist/{chunk-OZBII5E3.js → chunk-I4DNJFDR.js} +4 -4
  159. package/dist/{chunk-SI5SZAJA.js → chunk-IBS2FAI4.js} +21 -4
  160. package/dist/{chunk-J5EYOBFF.js → chunk-IHXW4VUI.js} +1 -1
  161. package/dist/{chunk-RUVO3NJC.js → chunk-IN6CAM4F.js} +9 -3
  162. package/dist/{chunk-53PYNYTW.js → chunk-IRVOXUSK.js} +5 -5
  163. package/dist/{chunk-THM7J6UI.js → chunk-JHI5WMK5.js} +5 -5
  164. package/dist/{chunk-3KTQWMHI.js → chunk-JSMDRKPJ.js} +12 -4
  165. package/dist/chunk-JTVIANUB.js +131 -0
  166. package/dist/{chunk-2ADYTOHQ.js → chunk-K4ESASPL.js} +1 -1
  167. package/dist/{chunk-YWUQVHDL.js → chunk-KTCXJWJG.js} +1 -1
  168. package/dist/{chunk-RGUDGC6A.js → chunk-KTU3EAWK.js} +5 -5
  169. package/dist/{chunk-DKBPCOU4.js → chunk-L6RXG36J.js} +2 -2
  170. package/dist/{chunk-T4EK56WI.js → chunk-LDNYSMPZ.js} +1 -1
  171. package/dist/{chunk-RIK5GRWI.js → chunk-LGS2V2XD.js} +3 -3
  172. package/dist/{chunk-JKXZGRWR.js → chunk-LP4GB656.js} +2 -2
  173. package/dist/{chunk-H74466TM.js → chunk-M7O7TGGU.js} +1 -1
  174. package/dist/chunk-MJCSEIFI.js +54 -0
  175. package/dist/{chunk-IDZPQG2D.js → chunk-MOGA4Q7F.js} +2 -2
  176. package/dist/{chunk-OYQNNKNS.js → chunk-MXPNVSXI.js} +37 -14
  177. package/dist/{chunk-UVW7YFAF.js → chunk-N7VEP5B3.js} +4 -4
  178. package/dist/{chunk-HHE2HV3V.js → chunk-NBXDXKLC.js} +1 -1
  179. package/dist/{chunk-LDL3S7AC.js → chunk-NKETJCB5.js} +7 -3
  180. package/dist/{chunk-ECHLVLA7.js → chunk-NMH5ZQPU.js} +1 -1
  181. package/dist/{chunk-U3XLRMJD.js → chunk-NT7W4RXD.js} +1 -1
  182. package/dist/{chunk-UQUUNGTP.js → chunk-NUK7EEN5.js} +11 -9
  183. package/dist/{chunk-GBNB4EWD.js → chunk-ORM7ZFKC.js} +16 -0
  184. package/dist/{chunk-O4ZFRK6W.js → chunk-OVEQE6YS.js} +244 -49
  185. package/dist/{chunk-4ZJ5BPY6.js → chunk-PB5S7YOF.js} +2 -2
  186. package/dist/{chunk-JR23BL74.js → chunk-PDVXWXTL.js} +4 -4
  187. package/dist/{chunk-3CIMDFXG.js → chunk-PFQ3VEEM.js} +1 -1
  188. package/dist/{chunk-SBJV2PCU.js → chunk-PHBU4LGO.js} +1 -1
  189. package/dist/{chunk-W25RLOQ2.js → chunk-PLZSZOZN.js} +3 -3
  190. package/dist/{chunk-THIJIOE2.js → chunk-PY3FOMRN.js} +18 -6
  191. package/dist/{chunk-AAUWFXOX.js → chunk-Q3AXXKDF.js} +3 -3
  192. package/dist/{chunk-VKXS2YGN.js → chunk-QHJR7IMX.js} +2 -2
  193. package/dist/chunk-QLZ46RCK.js +45 -0
  194. package/dist/{chunk-UHPMK6QZ.js → chunk-R3CZWFFC.js} +10 -2
  195. package/dist/{chunk-6XEYELCA.js → chunk-R4CBHKZ2.js} +1 -1
  196. package/dist/{chunk-5APCDDJZ.js → chunk-R522MWAR.js} +9 -9
  197. package/dist/chunk-RH4AH3YB.js +80 -0
  198. package/dist/{chunk-AMKSDKMK.js → chunk-S2WBS6BG.js} +22 -35
  199. package/dist/{chunk-WUKQVNLP.js → chunk-SEQIPGLU.js} +1 -1
  200. package/dist/{chunk-7WQRFSZI.js → chunk-SL6KQYDU.js} +26 -6
  201. package/dist/chunk-SLLLOOEI.js +103 -0
  202. package/dist/{chunk-5N4SG5NB.js → chunk-T35RCQFE.js} +3 -3
  203. package/dist/{chunk-7V6M3QUS.js → chunk-T3QUKNLI.js} +1 -1
  204. package/dist/{chunk-CW2UCKHS.js → chunk-TADAO3HV.js} +2 -2
  205. package/dist/{chunk-5DCCKHDY.js → chunk-TAMDAOCU.js} +109 -13
  206. package/dist/{chunk-ZXB56YR2.js → chunk-TFKCERAK.js} +101 -23
  207. package/dist/{chunk-RBYHJDAT.js → chunk-TQAZTRQ3.js} +3 -3
  208. package/dist/{chunk-OKGIOWOB.js → chunk-U6SUKSZR.js} +2 -2
  209. package/dist/{chunk-23QKEUF6.js → chunk-U73AC5AN.js} +34 -12
  210. package/dist/{chunk-PM6WSWVU.js → chunk-UBK7HK3J.js} +3 -3
  211. package/dist/{chunk-H37FSTF2.js → chunk-UBMZ3YQU.js} +1 -1
  212. package/dist/{chunk-JJUGI2YL.js → chunk-UCFC2AEI.js} +1 -1
  213. package/dist/{chunk-6IWLAQ7O.js → chunk-UCUOGVDX.js} +4 -0
  214. package/dist/{chunk-E7UCDSUE.js → chunk-UKLN57Q5.js} +2 -2
  215. package/dist/{chunk-ZYCLSEZT.js → chunk-ULIBLJ6W.js} +33 -11
  216. package/dist/{chunk-RLR6VVKV.js → chunk-UM3N6VND.js} +4 -4
  217. package/dist/{chunk-ZNUJFX7L.js → chunk-UQGSBM3U.js} +1 -1
  218. package/dist/{chunk-ZZXMB5F2.js → chunk-UZDF6FLJ.js} +1 -1
  219. package/dist/{chunk-LNOS24GV.js → chunk-V3WLC5TJ.js} +2 -95
  220. package/dist/{chunk-UXLO7VHX.js → chunk-VI4ATC6I.js} +1 -1
  221. package/dist/{chunk-77JP3LK4.js → chunk-VKJGHAZT.js} +92 -21
  222. package/dist/{chunk-7R73IAHU.js → chunk-VMTZ4RUW.js} +67 -150
  223. package/dist/{chunk-TGPQMMQP.js → chunk-VYQ7B7DI.js} +30 -17
  224. package/dist/{chunk-E2WEFZOR.js → chunk-W75GTHR3.js} +1 -1
  225. package/dist/{chunk-UKLF7F3Z.js → chunk-WJG344NC.js} +9 -9
  226. package/dist/{chunk-MBNIJXKI.js → chunk-WMEYJT4R.js} +18 -4
  227. package/dist/{chunk-R6FLELV6.js → chunk-XFTEX77S.js} +3 -3
  228. package/dist/{chunk-MDGYXUOV.js → chunk-XH7YL7JM.js} +1 -1
  229. package/dist/{chunk-JOO35RHR.js → chunk-XL5MFGMR.js} +3 -3
  230. package/dist/{chunk-OW5RZIDW.js → chunk-XNNECNDL.js} +95 -33
  231. package/dist/{chunk-5AHDQCTB.js → chunk-XXFKSJYA.js} +6 -6
  232. package/dist/{chunk-TGEPLJ66.js → chunk-XXOPG4BW.js} +3 -3
  233. package/dist/{chunk-PGLPUP37.js → chunk-XZ65ST2I.js} +1 -1
  234. package/dist/{chunk-3TTKAT6V.js → chunk-YKC7QDZH.js} +9 -4
  235. package/dist/{chunk-KXYFBBZR.js → chunk-YMP2QSOP.js} +20 -3
  236. package/dist/{chunk-TK4MI6F6.js → chunk-YSLGFPWX.js} +6 -6
  237. package/dist/{chunk-X2P43TB2.js → chunk-YTSXPJUQ.js} +1 -1
  238. package/dist/{chunk-HECXZGGZ.js → chunk-ZCERWHY2.js} +33 -35
  239. package/dist/{chunk-IVU3WN7S.js → chunk-ZG62LIK3.js} +74 -4
  240. package/dist/{chunk-GU62SNDH.js → chunk-ZGYNKA3O.js} +744 -111
  241. package/dist/{chunk-QMSEL5YS.js → chunk-ZIG7VPJV.js} +28 -76
  242. package/dist/{chunk-WZJVGA5I.js → chunk-ZL4AGWAH.js} +258 -13
  243. package/dist/{chunk-QR624DER.js → chunk-ZSODLMFV.js} +2 -2
  244. package/dist/{cleanup-graph-garbage-IPYDS5OX.js → cleanup-graph-garbage-DPJGO52H.js} +11 -10
  245. package/dist/{cloud-sync-command-JLNVG7H4.js → cloud-sync-command-JPNTT4OQ.js} +2 -2
  246. package/dist/{cloud-sync-db-init-JXUF6GI3.js → cloud-sync-db-init-V2LWIUQU.js} +1 -1
  247. package/dist/{cloud-sync-shutdown-Z4SBP6PL.js → cloud-sync-shutdown-BNALPWGX.js} +5 -4
  248. package/dist/{co-activation-74RDFTKS.js → co-activation-CMNSWS6B.js} +5 -4
  249. package/dist/{co-occurrence-CN3TBYVR.js → co-occurrence-WRI2NAN6.js} +9 -8
  250. package/dist/{code-context-index-D4MJ4VFX.js → code-context-index-NOJSHLPN.js} +12 -6
  251. package/dist/code-context-watcher-VZNZU3BO.js +118 -0
  252. package/dist/{codex-consolidation-PPXNBXCV.js → codex-consolidation-SH4UKFBQ.js} +2 -1
  253. package/dist/{conversation-entity-extractor-QGTLH4BP.js → conversation-entity-extractor-74252CAO.js} +4 -4
  254. package/dist/{conversation-wiki-populator-EBUZXYEU.js → conversation-wiki-populator-OS4C6W54.js} +1 -1
  255. package/dist/conversations-retention-C4BLKFEL.js +54 -0
  256. package/dist/coordinator-notice-MHUY7AQB.js +55 -0
  257. package/dist/{crdt-sync-7T4WCOKD.js → crdt-sync-B3JN6AIV.js} +1 -1
  258. package/dist/{crm-webhook-FTW3XZTO.js → crm-webhook-GYWQRFET.js} +2 -2
  259. package/dist/{cto-delegation-gate-SZCE34LB.js → cto-delegation-gate-LQHVLEMW.js} +29 -26
  260. package/dist/{daemon-auth-SSPY5ODS.js → daemon-auth-QZHEO7IQ.js} +3 -2
  261. package/dist/{daemon-orchestration-IGPHVNFR.js → daemon-orchestration-5HIQALZH.js} +36 -34
  262. package/dist/{daemon-ready-OT2VQLS7.js → daemon-ready-P2BR2XP5.js} +1 -1
  263. package/dist/{db-integrity-events-5DTASXJF.js → db-integrity-events-2DTFO37N.js} +3 -2
  264. package/dist/{db-restore-events-2FI4ZMKA.js → db-restore-events-G6NOQOVE.js} +2 -1
  265. package/dist/{destructive-data-guard-6I5MDFVD.js → destructive-data-guard-BVFWPPIS.js} +1 -1
  266. package/dist/doc-graph-extractor-PQHDHQPQ.js +367 -0
  267. package/dist/{documents-URULIXGM.js → documents-C4SSPJMC.js} +15 -13
  268. package/dist/{dreaming-VIZO3QDO.js → dreaming-XAO3FCBV.js} +33 -30
  269. package/dist/{employee-boot-brief-XLOG4ULP.js → employee-boot-brief-W4OHUMRQ.js} +37 -34
  270. package/dist/{exe-drift-TLQM3IHD.js → exe-drift-AG2KMKD5.js} +6 -5
  271. package/dist/{exe-export-7YWYWJHY.js → exe-export-IC5BT335.js} +17 -15
  272. package/dist/{exe-import-DW6VAUKW.js → exe-import-A35ZLDPG.js} +17 -15
  273. package/dist/{exe-key-TLJP2B4Y.js → exe-key-TCMJNYLA.js} +116 -112
  274. package/dist/{exe-org-LU46N36E.js → exe-org-JXCR3JYZ.js} +24 -23
  275. package/dist/{exe-snapshot-QHUZRS62.js → exe-snapshot-SV6SRIG6.js} +36 -33
  276. package/dist/{fast-db-init-SCTOOIUT.js → fast-db-init-L2RGKJWH.js} +1 -1
  277. package/dist/{founder-context-ZFZC4UHO.js → founder-context-D4HFIESJ.js} +4 -3
  278. package/dist/{founder-monitor-envelope-5KTKNL5G.js → founder-monitor-envelope-TFKRGCFE.js} +5 -4
  279. package/dist/{fts-integrity-LKAZEZJE.js → fts-integrity-4YB34KWX.js} +3 -2
  280. package/dist/gateway/index.js +19 -17
  281. package/dist/{git-main-guard-TN27QBAI.js → git-main-guard-VTW4N3CM.js} +7 -1
  282. package/dist/{git-staleness-GSGP344N.js → git-staleness-TN7CYGFG.js} +5 -4
  283. package/dist/{global-procedures-YAR7G4C6.js → global-procedures-YFDEIOG7.js} +7 -6
  284. package/dist/{graph-auto-extract-GNQS64F5.js → graph-auto-extract-3YR3TYRW.js} +9 -8
  285. package/dist/{graph-rag-RMSFLUOB.js → graph-rag-Z2KCJTPK.js} +6 -4
  286. package/dist/{hook-integrity-CF567MVN.js → hook-integrity-KGAV6ZC2.js} +14 -4
  287. package/dist/{hook-prefetch-36BK4F7U.js → hook-prefetch-K5DN3TOQ.js} +29 -26
  288. package/dist/hooks/bug-report-worker.js +34 -30
  289. package/dist/hooks/codex-stop-task-finalizer.js +36 -32
  290. package/dist/hooks/commit-complete.js +33 -30
  291. package/dist/hooks/error-recall.js +12 -11
  292. package/dist/hooks/exe-heartbeat-hook.js +8 -7
  293. package/dist/hooks/ingest-worker.js +23 -11
  294. package/dist/hooks/ingest.js +18 -17
  295. package/dist/hooks/instructions-loaded.js +10 -9
  296. package/dist/hooks/manifest.json +20 -20
  297. package/dist/hooks/notification.js +9 -8
  298. package/dist/hooks/post-compact.js +8 -7
  299. package/dist/hooks/post-tool-combined.js +26 -15
  300. package/dist/hooks/pre-compact.js +33 -30
  301. package/dist/hooks/pre-tool-use.js +404 -46
  302. package/dist/hooks/prompt-submit.js +57 -47
  303. package/dist/hooks/session-end.js +40 -41
  304. package/dist/hooks/session-start.js +21 -20
  305. package/dist/hooks/stop.js +40 -37
  306. package/dist/hooks/subagent-stop.js +38 -35
  307. package/dist/hooks/summary-worker.js +39 -36
  308. package/dist/hyde-MP4QNMU5.js +80 -0
  309. package/dist/index.js +44 -39
  310. package/dist/{installer-LUN4HQIC.js → installer-54HTN5RE.js} +8 -7
  311. package/dist/{installer-OC5VXNC7.js → installer-LK35OX6R.js} +8 -7
  312. package/dist/{installer-MPRFUQJE.js → installer-LLWKZI2S.js} +8 -7
  313. package/dist/intercom-ack-VCW755TN.js +13 -0
  314. package/dist/{intercom-queue-6DZ7BANV.js → intercom-queue-5NOT2RKI.js} +28 -25
  315. package/dist/{key-backup-status-6L2ARCXW.js → key-backup-status-LQPINQ3W.js} +2 -1
  316. package/dist/lib/agent-config.js +3 -2
  317. package/dist/lib/cloud-sync.js +26 -20
  318. package/dist/lib/config.js +2 -1
  319. package/dist/lib/consolidation.js +17 -10
  320. package/dist/lib/database.js +7 -4
  321. package/dist/lib/db-backup.js +17 -2
  322. package/dist/lib/db-daemon-client.js +8 -6
  323. package/dist/lib/db-write-worker-client.js +3 -1
  324. package/dist/lib/db-write-worker.js +20 -3
  325. package/dist/lib/db.js +7 -4
  326. package/dist/lib/device-registry.js +3 -2
  327. package/dist/lib/embed-worker.js +2 -1
  328. package/dist/lib/embedder.js +8 -6
  329. package/dist/lib/employee-templates.js +8 -7
  330. package/dist/lib/employees.js +5 -4
  331. package/dist/lib/exe-daemon-client.js +7 -5
  332. package/dist/lib/exe-daemon.js +467 -221
  333. package/dist/lib/hybrid-search.js +11 -8
  334. package/dist/lib/identity.js +5 -4
  335. package/dist/lib/license.js +4 -3
  336. package/dist/lib/messaging.js +29 -26
  337. package/dist/lib/post-tool-memory.js +16 -2
  338. package/dist/lib/registry-proxy.js +3 -1
  339. package/dist/lib/reminders.js +6 -5
  340. package/dist/lib/schedules.js +9 -8
  341. package/dist/lib/session-registry.js +7 -6
  342. package/dist/lib/skill-learning.js +16 -14
  343. package/dist/lib/stack-invariants.js +17 -1
  344. package/dist/lib/status-brief.js +5 -4
  345. package/dist/lib/store.js +10 -7
  346. package/dist/lib/task-router.js +6 -5
  347. package/dist/lib/tasks.js +31 -27
  348. package/dist/lib/tmux-routing.js +40 -25
  349. package/dist/lib/tmux-status.js +3 -1
  350. package/dist/lib/tmux-transport.js +2 -1
  351. package/dist/lib/token-spend.js +6 -5
  352. package/dist/lib/transport.js +3 -2
  353. package/dist/{license-gate-ESER24PJ.js → license-gate-JVMB6OFD.js} +5 -4
  354. package/dist/{license-sync-JVG5KNIY.js → license-sync-5VYS2F2W.js} +4 -3
  355. package/dist/mcp/register-tools.js +113 -109
  356. package/dist/mcp/server.js +118 -114
  357. package/dist/mcp/tools/complete-reminder.js +7 -6
  358. package/dist/mcp/tools/create-reminder.js +7 -6
  359. package/dist/mcp/tools/create-task.js +34 -30
  360. package/dist/mcp/tools/deactivate-behavior.js +18 -16
  361. package/dist/mcp/tools/list-reminders.js +7 -6
  362. package/dist/mcp/tools/list-tasks.js +34 -30
  363. package/dist/mcp/tools/send-message.js +32 -29
  364. package/dist/mcp/tools/update-task.js +32 -28
  365. package/dist/mcp-child-registry-OTG4MWO7.js +25 -0
  366. package/dist/{mcp-http-config-6K6IKH5F.js → mcp-http-config-DQWL7U2Z.js} +6 -5
  367. package/dist/{mcp-session-identity-LRC6WJSD.js → mcp-session-identity-277GASTQ.js} +28 -25
  368. package/dist/{memory-cards-V3OZHIYP.js → memory-cards-3S2ZQPR7.js} +17 -8
  369. package/dist/{memory-graph-extractor-JC2Z64L4.js → memory-graph-extractor-A6DFEFIN.js} +10 -9
  370. package/dist/{memory-poisoning-defense-YM4QJHCX.js → memory-poisoning-defense-ZVP4H6DY.js} +5 -4
  371. package/dist/{memory-pressure-watchdog-6F6KEQHN.js → memory-pressure-watchdog-6W5F6R7H.js} +29 -26
  372. package/dist/{memory-queue-QJNWKWKG.js → memory-queue-YF7IDSFY.js} +3 -2
  373. package/dist/{memory-queue-client-COA4ABEV.js → memory-queue-client-ADSDP6OX.js} +9 -7
  374. package/dist/{memory-reflection-QXHJPYPC.js → memory-reflection-BKB2YOE6.js} +52 -6
  375. package/dist/{monitor-grants-BW2WL4IU.js → monitor-grants-EV747HMW.js} +4 -3
  376. package/dist/{notification-ledger-6QRLQW4Q.js → notification-ledger-CLGM7ODF.js} +30 -27
  377. package/dist/{notifications-7B6D7Y5C.js → notifications-MACUZPYP.js} +28 -25
  378. package/dist/{oauth-server-TZFNQAFS.js → oauth-server-AYM37SQ4.js} +25 -4
  379. package/dist/{orchestration-events-GY5VP5LU.js → orchestration-events-N7LYMUGA.js} +6 -5
  380. package/dist/{orchestration-phase-UDS24CVQ.js → orchestration-phase-T2WD45UA.js} +3 -2
  381. package/dist/{orchestrator-JVPVOYWA.js → orchestrator-4X24EWHV.js} +30 -27
  382. package/dist/{org-brief-session-GRV5R5E3.js → org-brief-session-FZOFMO5U.js} +13 -12
  383. package/dist/{org-consent-policy-3FHHSYXV.js → org-consent-policy-O5E6HXBL.js} +1 -1
  384. package/dist/{org-join-BY4PV6UO.js → org-join-POWUG25F.js} +8 -7
  385. package/dist/{org-key-admin-WSCPT2CZ.js → org-key-admin-E7EMDOZZ.js} +9 -8
  386. package/dist/{org-key-pin-5WUSPGVN.js → org-key-pin-WHWHVWUO.js} +4 -3
  387. package/dist/{org-membership-ESALTLLN.js → org-membership-WRT2IHJK.js} +5 -4
  388. package/dist/{org-partner-config-YKHPDPZR.js → org-partner-config-B7T4CL2T.js} +7 -6
  389. package/dist/{org-partner-runtime-UJDGECZ4.js → org-partner-runtime-FODONVTM.js} +13 -12
  390. package/dist/{org-row-visibility-V5DXIHTE.js → org-row-visibility-VX4AVV5Q.js} +1 -1
  391. package/dist/{pipeline-router-YY5FQKTY.js → pipeline-router-6GGT2ZW3.js} +6 -5
  392. package/dist/{plan-limits-OVX6SN6B.js → plan-limits-FUN76LYY.js} +8 -7
  393. package/dist/{platform-procedures-I57ITMDC.js → platform-procedures-7YSCLF4Z.js} +1 -1
  394. package/dist/{postinstall-failure-B2JHNFPM.js → postinstall-failure-O6TSSNJB.js} +3 -2
  395. package/dist/{project-boot-LXLU2J32.js → project-boot-3Q65LCIP.js} +2 -1
  396. package/dist/project-name-LJVFMYTQ.js +30 -0
  397. package/dist/{projection-worker-D2472IOD.js → projection-worker-4OANGP5K.js} +5 -4
  398. package/dist/{prospective-memory-JXO2A6PL.js → prospective-memory-KR3P4T6N.js} +5 -4
  399. package/dist/{push-notifications-HR3FZRDI.js → push-notifications-NCZLH6DI.js} +29 -26
  400. package/dist/ref-provenance-gate-M4AQO4OT.js +269 -0
  401. package/dist/{reproject-worktree-memories-OSS3PGRF.js → reproject-worktree-memories-PWYKPB2U.js} +106 -23
  402. package/dist/{reranker-IMZRPYJ2.js → reranker-6V3C2AO4.js} +3 -2
  403. package/dist/resolve-image-labels-ZI6UBW5W.js +15 -0
  404. package/dist/{retrieval-health-W7OD44FE.js → retrieval-health-5D7O6VH6.js} +4 -3
  405. package/dist/{review-polling-2INP7H6M.js → review-polling-QW3LJ4KN.js} +29 -26
  406. package/dist/runtime/index.js +38 -34
  407. package/dist/{session-events-G4XUPVWV.js → session-events-T45SSTMF.js} +31 -26
  408. package/dist/{session-kill-telemetry-W7MHWJTQ.js → session-kill-telemetry-QSPVJGBF.js} +29 -26
  409. package/dist/{session-mcp-config-F7KATWOF.js → session-mcp-config-SC5BLWZG.js} +3 -2
  410. package/dist/{session-scope-LG2J4EMQ.js → session-scope-KRWE54C4.js} +28 -25
  411. package/dist/{setup-wizard-YQJI3SVM.js → setup-wizard-GP3TBTPF.js} +5 -4
  412. package/dist/{shard-manager-UROHZE46.js → shard-manager-OE36A4MY.js} +3 -2
  413. package/dist/{skill-refinement-RA37U756.js → skill-refinement-C7JTMLJG.js} +6 -5
  414. package/dist/stack-generate-manifest-MFMDWRUP.js +810 -0
  415. package/dist/{stack-promote-IYBRXHTA.js → stack-promote-EKSCYY63.js} +8 -6
  416. package/dist/{stack-release-OXWLVVG6.js → stack-release-2GZAAFO4.js} +8 -6
  417. package/dist/{stack-update-2CZEROPK.js → stack-update-J6JXSTAZ.js} +51 -5
  418. package/dist/{steward-gate-LTNFB3FY.js → steward-gate-BFCCMCSW.js} +6 -5
  419. package/dist/{subagent-brief-injection-OHLWLECQ.js → subagent-brief-injection-ED36PLYY.js} +44 -36
  420. package/dist/{subagent-spawn-ledger-USYZXU3M.js → subagent-spawn-ledger-E6U3OY6Z.js} +3 -2
  421. package/dist/{supervisor-handoff-CSJQMI53.js → supervisor-handoff-SGLEPOCY.js} +12 -3
  422. package/dist/{support-inbox-4KCEPAZQ.js → support-inbox-YW47SYJF.js} +20 -5
  423. package/dist/{task-enforcement-LGXWXGVZ.js → task-enforcement-CECTQX4U.js} +29 -26
  424. package/dist/{task-request-inbox-WHCOSUCP.js → task-request-inbox-Q5T4N5K7.js} +1 -1
  425. package/dist/{task-scope-KXF7Y6KA.js → task-scope-ERVEUEYU.js} +28 -25
  426. package/dist/{tasks-crud-5EM55WRZ.js → tasks-crud-ZRQNJXQ2.js} +28 -25
  427. package/dist/{tasks-notify-VFMAURTN.js → tasks-notify-MIZH4C2O.js} +29 -26
  428. package/dist/{tasks-review-MHGMBHUZ.js → tasks-review-Z7J2P6DG.js} +28 -25
  429. package/dist/{telemetry-upload-6NRTN7QJ.js → telemetry-upload-LVQUQYFP.js} +10 -9
  430. package/dist/{token-budget-LZPOYTRP.js → token-budget-BU4NOVZF.js} +6 -5
  431. package/dist/{tool-capability-index-ED5OAPMW.js → tool-capability-index-7F42MOJT.js} +1 -1
  432. package/dist/{tool-gates-7PLIOLAL.js → tool-gates-JWVSAYTW.js} +1 -1
  433. package/dist/{tool-gates-2OZY3GZM.js → tool-gates-VXITVRFQ.js} +1 -1
  434. package/dist/{tool-telemetry-ZX7VSAXK.js → tool-telemetry-O27EVMBR.js} +1 -1
  435. package/dist/tui/App.js +43 -40
  436. package/dist/{tui-data-CC5POSUV.js → tui-data-TPWWBIUQ.js} +28 -25
  437. package/dist/{update-support-KH6NSQON.js → update-support-F2F5537B.js} +22 -20
  438. package/dist/{whatsapp-QW3X7OCN.js → whatsapp-YM4A2CSK.js} +3 -1
  439. package/dist/{work-claims-MNK7PEPW.js → work-claims-B73X5NE7.js} +6 -5
  440. package/dist/{work-state-heartbeat-YEWT5NMZ.js → work-state-heartbeat-P4YX6E2R.js} +1 -1
  441. package/dist/{worker-gate-BOQSIU2Z.js → worker-gate-BEEIIVWA.js} +3 -2
  442. package/dist/{workflow-engine-MUUD7ZEX.js → workflow-engine-5X46PFCW.js} +4 -2
  443. package/dist/{worktree-GOGT2LZP.js → worktree-W47CIMJ6.js} +9 -6
  444. package/dist/worktree-ownership-guard-OUWJROW2.js +88 -0
  445. package/dist/{worktree-sweep-46VWPVQT.js → worktree-sweep-BNBD4RFX.js} +8 -7
  446. package/package.json +14 -5
  447. package/release-notes.json +5 -5
  448. package/src/commands/exe/call.md +1 -1
  449. package/stack.release.json +6 -0
  450. package/dist/chunk-KZXMP6JG.js +0 -319
  451. package/dist/chunk-TCTED52S.js +0 -120
  452. package/dist/chunk-W2IRQJ6R.js +0 -67
  453. package/dist/doc-graph-extractor-VPTRIEKN.js +0 -149
  454. package/dist/project-name-ILJTETUE.js +0 -14
  455. /package/dist/{chunk-3Y5THOU6.js → chunk-6WIFPD2P.js} +0 -0
  456. /package/dist/{chunk-7XGXRD22.js → chunk-AISULNGL.js} +0 -0
  457. /package/dist/{chunk-3F2UB4IQ.js → chunk-DN4YVV4Z.js} +0 -0
  458. /package/dist/{chunk-WV3TOOL7.js → chunk-KQ6RJWRW.js} +0 -0
  459. /package/dist/{chunk-HR2R2QER.js → chunk-M4IRPXSZ.js} +0 -0
  460. /package/dist/{chunk-ORA5BWCV.js → chunk-NRG7KZIP.js} +0 -0
  461. /package/dist/{chunk-7UTJA6HF.js → chunk-VZAFWPAY.js} +0 -0
  462. /package/dist/{chunk-VJSDGDNS.js → chunk-WSQASFLP.js} +0 -0
  463. /package/dist/{chunk-FZQWVQJG.js → chunk-YO4BO2CL.js} +0 -0
  464. /package/dist/{core-memory-6WBNT2HL.js → core-memory-7I7RE2SJ.js} +0 -0
  465. /package/dist/{entity-boost-MT336PI3.js → entity-boost-3UWGXG5O.js} +0 -0
  466. /package/dist/{memory-isolation-EJ45IXBH.js → memory-isolation-2TUZ7Z4K.js} +0 -0
  467. /package/dist/{message-queue-client-MVBTYCSV.js → message-queue-client-XQN7QABL.js} +0 -0
  468. /package/dist/{webhook-pipe-UQSEHFPO.js → webhook-pipe-W2FVXY7M.js} +0 -0
  469. /package/dist/{wiki-acl-WXRJGZ5Q.js → wiki-acl-IBQLLBTS.js} +0 -0
  470. /package/dist/{wiki-client-AXNM5FWY.js → wiki-client-W65IOSWF.js} +0 -0
@@ -1,193 +1,197 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  computeMcpSurfaceHash
4
- } from "../chunk-RNLF3CBB.js";
4
+ } from "../chunk-AKLJ4JH3.js";
5
5
  import "../chunk-WCGNCH3Q.js";
6
- import "../chunk-LAZKEJMS.js";
7
- import "../chunk-OKGIOWOB.js";
8
- import "../chunk-ERVQTR7P.js";
9
- import "../chunk-7V6M3QUS.js";
10
- import "../chunk-WZJVGA5I.js";
11
- import "../chunk-5H47VHB7.js";
6
+ import "../chunk-DIXXEE3S.js";
7
+ import "../chunk-BBSIEYF5.js";
8
+ import "../chunk-T3QUKNLI.js";
12
9
  import "../chunk-557C2IGL.js";
10
+ import "../chunk-U6SUKSZR.js";
13
11
  import "../chunk-GSJLB6JI.js";
14
- import "../chunk-WUKQVNLP.js";
15
- import "../chunk-RGUDGC6A.js";
16
- import "../chunk-NQZUSEAR.js";
17
- import "../chunk-RUWWES2K.js";
18
- import "../chunk-RLR6VVKV.js";
19
- import "../chunk-V4XAKXXF.js";
12
+ import "../chunk-ZL4AGWAH.js";
13
+ import "../chunk-5H47VHB7.js";
14
+ import "../chunk-KTU3EAWK.js";
15
+ import "../chunk-GNUAL43X.js";
16
+ import "../chunk-SEQIPGLU.js";
17
+ import "../chunk-UM3N6VND.js";
18
+ import "../chunk-2AJGV5UL.js";
20
19
  import "../chunk-CRCB5S7I.js";
21
- import "../chunk-FBYAXTDM.js";
20
+ import "../chunk-2ZOEC4KC.js";
21
+ import "../chunk-VMTZ4RUW.js";
22
+ import "../chunk-23MVDXLY.js";
23
+ import "../chunk-6WIFPD2P.js";
24
+ import "../chunk-YO4BO2CL.js";
25
+ import "../chunk-GLQEJOXE.js";
22
26
  import "../chunk-PHUHIVD5.js";
23
- import "../chunk-7R73IAHU.js";
24
- import "../chunk-CNC57JCS.js";
25
- import "../chunk-XXSNLM6R.js";
26
- import "../chunk-3Y5THOU6.js";
27
- import "../chunk-FZQWVQJG.js";
28
- import "../chunk-AAMGHW5W.js";
29
- import "../chunk-VX2F4ZUY.js";
27
+ import "../chunk-GS7LIT34.js";
28
+ import "../chunk-DB55JZHU.js";
29
+ import "../chunk-Q3AXXKDF.js";
30
+ import "../chunk-T35RCQFE.js";
31
+ import "../chunk-6SCGLHJ7.js";
30
32
  import "../chunk-A6PDF4BO.js";
31
- import "../chunk-W25RLOQ2.js";
32
- import "../chunk-YFCNWQAM.js";
33
- import "../chunk-AAUWFXOX.js";
34
- import "../chunk-5N4SG5NB.js";
35
- import "../chunk-PVEM537A.js";
36
- import "../chunk-H37FSTF2.js";
33
+ import "../chunk-PLZSZOZN.js";
34
+ import "../chunk-DJOIMFKV.js";
35
+ import "../chunk-4YLBKEL5.js";
36
+ import "../chunk-UBMZ3YQU.js";
37
37
  import "../chunk-X2X3IGZU.js";
38
- import "../chunk-ZZXMB5F2.js";
39
- import "../chunk-GH6YJOOC.js";
40
- import "../chunk-RUVO3NJC.js";
38
+ import "../chunk-UZDF6FLJ.js";
39
+ import "../chunk-4SJ4LK4V.js";
40
+ import "../chunk-IN6CAM4F.js";
41
41
  import "../chunk-MPVXHYD5.js";
42
42
  import "../chunk-5OPAUFLP.js";
43
43
  import "../chunk-4LWBC7CM.js";
44
- import "../chunk-UVW7YFAF.js";
45
- import "../chunk-7PSLK36P.js";
46
- import "../chunk-HHE2HV3V.js";
47
- import "../chunk-5AHRZI3R.js";
48
- import "../chunk-OZBII5E3.js";
49
- import "../chunk-SEP5ITFQ.js";
50
- import "../chunk-IPMUWYRQ.js";
51
- import "../chunk-O4ZFRK6W.js";
44
+ import "../chunk-N7VEP5B3.js";
45
+ import "../chunk-44TLJZJ5.js";
46
+ import "../chunk-NBXDXKLC.js";
47
+ import "../chunk-AETLDRZB.js";
48
+ import "../chunk-I4DNJFDR.js";
49
+ import "../chunk-636LKCKE.js";
50
+ import "../chunk-BJ7AVSY6.js";
51
+ import "../chunk-OVEQE6YS.js";
52
52
  import "../chunk-S2YTU74T.js";
53
- import "../chunk-53PYNYTW.js";
54
- import "../chunk-MINXPXAB.js";
55
- import "../chunk-RIK5GRWI.js";
56
- import "../chunk-RBYHJDAT.js";
57
- import "../chunk-FB343XQX.js";
58
- import "../chunk-THM7J6UI.js";
59
- import "../chunk-4ZJ5BPY6.js";
53
+ import "../chunk-IRVOXUSK.js";
54
+ import "../chunk-GJI77VDO.js";
55
+ import "../chunk-LGS2V2XD.js";
56
+ import "../chunk-TQAZTRQ3.js";
57
+ import "../chunk-DJ7YXOTU.js";
58
+ import "../chunk-JHI5WMK5.js";
59
+ import "../chunk-PB5S7YOF.js";
60
60
  import "../chunk-3OEVDGIY.js";
61
- import "../chunk-KZXMP6JG.js";
62
- import "../chunk-QLA3RTH4.js";
61
+ import "../chunk-4YNA3CM6.js";
62
+ import "../chunk-AWWKRZMB.js";
63
63
  import "../chunk-SSC7EKY2.js";
64
- import "../chunk-7WQRFSZI.js";
65
- import "../chunk-OW5RZIDW.js";
64
+ import "../chunk-SL6KQYDU.js";
65
+ import "../chunk-XNNECNDL.js";
66
+ import "../chunk-PHBU4LGO.js";
67
+ import "../chunk-XFTEX77S.js";
66
68
  import "../chunk-EXDW3E2R.js";
67
- import "../chunk-SBJV2PCU.js";
68
- import "../chunk-R6FLELV6.js";
69
69
  import "../chunk-KM6XSFHP.js";
70
- import "../chunk-ZNUJFX7L.js";
71
- import "../chunk-E5HAY3DQ.js";
70
+ import "../chunk-UQGSBM3U.js";
71
+ import "../chunk-HDLAB7W3.js";
72
72
  import "../chunk-YQGMSXT5.js";
73
73
  import "../chunk-75H4R62K.js";
74
- import "../chunk-VKXS2YGN.js";
74
+ import "../chunk-QHJR7IMX.js";
75
75
  import "../chunk-MMRUBN3I.js";
76
76
  import "../chunk-2XZ6X3PJ.js";
77
- import "../chunk-ORA5BWCV.js";
78
- import "../chunk-6XEYELCA.js";
79
- import "../chunk-HIVZ53YB.js";
80
- import "../chunk-THIJIOE2.js";
81
- import "../chunk-77JP3LK4.js";
82
- import "../chunk-WV3TOOL7.js";
77
+ import "../chunk-NRG7KZIP.js";
78
+ import "../chunk-R4CBHKZ2.js";
79
+ import "../chunk-EXTZSNWL.js";
80
+ import "../chunk-PY3FOMRN.js";
81
+ import "../chunk-VKJGHAZT.js";
82
+ import "../chunk-KQ6RJWRW.js";
83
83
  import "../chunk-NEHOQ3P2.js";
84
- import "../chunk-CW2UCKHS.js";
85
- import "../chunk-VV5EZZNT.js";
86
- import "../chunk-JTB5V6BV.js";
84
+ import "../chunk-TADAO3HV.js";
85
+ import "../chunk-HTBEVCO2.js";
86
+ import "../chunk-3SXHEQ7X.js";
87
87
  import "../chunk-NUTZJZKW.js";
88
88
  import "../chunk-X2Z5GT3V.js";
89
- import "../chunk-ZISQOOER.js";
90
- import "../chunk-MBNIJXKI.js";
91
- import "../chunk-PGLPUP37.js";
92
- import "../chunk-TGPQMMQP.js";
93
- import "../chunk-ZYCLSEZT.js";
94
- import "../chunk-Z6BZQHP5.js";
89
+ import "../chunk-EKE37MO4.js";
90
+ import "../chunk-WMEYJT4R.js";
91
+ import "../chunk-XZ65ST2I.js";
92
+ import "../chunk-VYQ7B7DI.js";
93
+ import "../chunk-ULIBLJ6W.js";
95
94
  import "../chunk-GUMRIUI5.js";
95
+ import "../chunk-Z6BZQHP5.js";
96
96
  import "../chunk-VGMACSEV.js";
97
- import "../chunk-IDZPQG2D.js";
98
- import "../chunk-YYA5LXCT.js";
97
+ import "../chunk-MOGA4Q7F.js";
98
+ import "../chunk-FNEZ4BWT.js";
99
99
  import "../chunk-MWEIBVBS.js";
100
100
  import "../chunk-QGGH7LOU.js";
101
101
  import "../chunk-VHJVD3MZ.js";
102
102
  import "../chunk-TWMWHDOY.js";
103
103
  import "../chunk-EEZOBN6X.js";
104
- import "../chunk-ZXB56YR2.js";
104
+ import "../chunk-TFKCERAK.js";
105
105
  import "../chunk-VMHZSZQJ.js";
106
- import "../chunk-OYQNNKNS.js";
107
- import "../chunk-7UTJA6HF.js";
106
+ import "../chunk-MXPNVSXI.js";
107
+ import "../chunk-VZAFWPAY.js";
108
108
  import "../chunk-CHCA3ZM2.js";
109
109
  import "../chunk-OTVEIJUQ.js";
110
- import "../chunk-3F2UB4IQ.js";
111
- import "../chunk-HECXZGGZ.js";
112
- import "../chunk-QTYJPWJN.js";
113
- import "../chunk-HR2R2QER.js";
114
- import "../chunk-LDL3S7AC.js";
110
+ import "../chunk-DN4YVV4Z.js";
111
+ import "../chunk-ZCERWHY2.js";
112
+ import "../chunk-CBCGDEJA.js";
113
+ import "../chunk-M4IRPXSZ.js";
114
+ import "../chunk-NKETJCB5.js";
115
115
  import "../chunk-B6TI3TZT.js";
116
- import "../chunk-QR624DER.js";
117
- import "../chunk-KYFFVTGO.js";
118
- import "../chunk-2ADYTOHQ.js";
116
+ import "../chunk-ZSODLMFV.js";
117
+ import "../chunk-55BEFF4V.js";
118
+ import "../chunk-K4ESASPL.js";
119
119
  import "../chunk-5MOYSU5A.js";
120
120
  import "../chunk-4QCFFW2H.js";
121
121
  import "../chunk-76CJBM36.js";
122
- import "../chunk-XHYHX6F7.js";
122
+ import "../chunk-QLZ46RCK.js";
123
+ import "../chunk-AKLQSC6W.js";
123
124
  import "../chunk-BTSWFMEH.js";
124
- import "../chunk-WAEKYKTK.js";
125
- import "../chunk-44C7QNZS.js";
126
- import "../chunk-JTWTBX2M.js";
125
+ import "../chunk-6RKKVPYF.js";
126
+ import "../chunk-4EN3IZ3Q.js";
127
127
  import "../chunk-KI5PFRG6.js";
128
+ import "../chunk-3KDCORDO.js";
128
129
  import "../chunk-WT4RI36X.js";
129
130
  import "../chunk-E23LNUWJ.js";
130
131
  import "../chunk-QAEWWYHL.js";
131
132
  import "../chunk-EIKATSE4.js";
132
- import "../chunk-MDGYXUOV.js";
133
- import "../chunk-GBNB4EWD.js";
134
- import "../chunk-UXLO7VHX.js";
135
- import "../chunk-DSOQUQTV.js";
136
- import "../chunk-E2WEFZOR.js";
133
+ import "../chunk-MJCSEIFI.js";
134
+ import "../chunk-XH7YL7JM.js";
135
+ import "../chunk-ORM7ZFKC.js";
136
+ import "../chunk-VI4ATC6I.js";
137
+ import "../chunk-A27Q27CT.js";
138
+ import "../chunk-W75GTHR3.js";
137
139
  import "../chunk-AJIXH5JF.js";
138
- import "../chunk-L6ZNURWN.js";
139
- import "../chunk-XTWHNLGD.js";
140
+ import "../chunk-7GE2EQ23.js";
141
+ import "../chunk-GZOG2MAX.js";
140
142
  import "../chunk-AM7S2TY6.js";
141
- import "../chunk-HIIXCAEE.js";
143
+ import "../chunk-6YVUR3OU.js";
142
144
  import "../chunk-CVYC6DUW.js";
143
- import "../chunk-QZL6E4UB.js";
144
- import "../chunk-CDUB5Q6J.js";
145
+ import "../chunk-GOMQ7PVQ.js";
146
+ import "../chunk-4IK2K3B3.js";
145
147
  import {
146
148
  requestDeployRestart
147
- } from "../chunk-UQUUNGTP.js";
149
+ } from "../chunk-NUK7EEN5.js";
148
150
  import {
149
151
  handOffToSupervisor,
150
152
  isSupervisorConfigured,
151
153
  runSupervisorCommand
152
- } from "../chunk-IVU3WN7S.js";
153
- import "../chunk-RIECV7SR.js";
154
- import "../chunk-LNOS24GV.js";
154
+ } from "../chunk-ZG62LIK3.js";
155
+ import "../chunk-EKYYMIVT.js";
155
156
  import {
156
157
  computeDaemonHeapCapMb
157
158
  } from "../chunk-NLEW62VC.js";
158
- import "../chunk-W2IRQJ6R.js";
159
+ import "../chunk-SLLLOOEI.js";
160
+ import "../chunk-V3WLC5TJ.js";
161
+ import "../chunk-JTVIANUB.js";
159
162
  import "../chunk-HYZV25LY.js";
160
163
  import "../chunk-GJV3WDWM.js";
161
164
  import "../chunk-GL57PO3K.js";
162
- import "../chunk-ADNBOKYZ.js";
165
+ import "../chunk-GM7TLYOK.js";
163
166
  import "../chunk-ML4S5SHZ.js";
164
167
  import "../chunk-MP2AFCGL.js";
165
- import "../chunk-5DCCKHDY.js";
166
- import "../chunk-TKDITWDN.js";
168
+ import "../chunk-TAMDAOCU.js";
167
169
  import "../chunk-BBMTVAE3.js";
170
+ import "../chunk-TKDITWDN.js";
168
171
  import "../chunk-5YEUPUV4.js";
169
- import "../chunk-UTDMTQNH.js";
172
+ import "../chunk-DSJI76XL.js";
170
173
  import "../chunk-YYB5PMTK.js";
171
174
  import "../chunk-NJFJWQNN.js";
172
175
  import "../chunk-V3W3SATA.js";
173
176
  import "../chunk-JY5GAZYC.js";
174
177
  import "../chunk-FXU7JOXK.js";
175
178
  import "../chunk-SO7KTH3Q.js";
176
- import "../chunk-HPXFKUGU.js";
177
179
  import "../chunk-WNBZJSQT.js";
180
+ import "../chunk-HPXFKUGU.js";
178
181
  import "../chunk-F55P3H4S.js";
179
- import "../chunk-TCTED52S.js";
180
- import "../chunk-DKBPCOU4.js";
182
+ import "../chunk-FTZET5YX.js";
183
+ import "../chunk-L6RXG36J.js";
181
184
  import "../chunk-A7XLR3K7.js";
182
- import "../chunk-GB3AHV5F.js";
185
+ import "../chunk-GQOEWNVM.js";
183
186
  import {
184
187
  SYSTEMD_DAEMON_UNIT
185
188
  } from "../chunk-A7JYF4RG.js";
186
189
  import "../chunk-ARX6TAGN.js";
187
190
  import {
188
191
  resolveDataDir
189
- } from "../chunk-QMSEL5YS.js";
192
+ } from "../chunk-ZIG7VPJV.js";
190
193
  import "../chunk-HSGBZSCA.js";
194
+ import "../chunk-RH4AH3YB.js";
191
195
  import "../chunk-6Y4B3QF6.js";
192
196
  import "../chunk-JKKZGDLP.js";
193
197
  import "../chunk-MLKGABMK.js";
@@ -6,15 +6,15 @@ import {
6
6
  getAgentRuntime,
7
7
  loadAgentConfig,
8
8
  setAgentRuntime
9
- } from "../chunk-XTWHNLGD.js";
9
+ } from "../chunk-GZOG2MAX.js";
10
10
  import "../chunk-AM7S2TY6.js";
11
11
  import {
12
12
  loadEmployeesSync
13
- } from "../chunk-5DCCKHDY.js";
14
- import "../chunk-TKDITWDN.js";
13
+ } from "../chunk-TAMDAOCU.js";
15
14
  import "../chunk-BBMTVAE3.js";
15
+ import "../chunk-TKDITWDN.js";
16
16
  import "../chunk-5YEUPUV4.js";
17
- import "../chunk-UTDMTQNH.js";
17
+ import "../chunk-DSJI76XL.js";
18
18
  import "../chunk-YYB5PMTK.js";
19
19
  import "../chunk-NJFJWQNN.js";
20
20
  import "../chunk-V3W3SATA.js";
@@ -23,8 +23,9 @@ import "../chunk-FXU7JOXK.js";
23
23
  import {
24
24
  DEFAULT_RUNTIME
25
25
  } from "../chunk-WNBZJSQT.js";
26
- import "../chunk-QMSEL5YS.js";
26
+ import "../chunk-ZIG7VPJV.js";
27
27
  import "../chunk-HSGBZSCA.js";
28
+ import "../chunk-RH4AH3YB.js";
28
29
  import "../chunk-JKKZGDLP.js";
29
30
  import "../chunk-MLKGABMK.js";
30
31
 
@@ -1,4 +1,7 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ FileEditTool
4
+ } from "../chunk-R4WMF32C.js";
2
5
  import {
3
6
  BashTool
4
7
  } from "../chunk-TQDARPML.js";
@@ -15,8 +18,11 @@ import {
15
18
  FileWriteTool
16
19
  } from "../chunk-XEKO37NM.js";
17
20
  import {
18
- FileEditTool
19
- } from "../chunk-R4WMF32C.js";
21
+ currentMcpSessionKey,
22
+ registerMcpChild,
23
+ terminateSessionMcpChildren,
24
+ unregisterMcpChild
25
+ } from "../chunk-ANLFH23R.js";
20
26
  import {
21
27
  createTerminalRenderer,
22
28
  renderAgentEvents
@@ -25,7 +31,10 @@ import "../chunk-CMCYL2JC.js";
25
31
  import "../chunk-NGVOA6ZQ.js";
26
32
  import {
27
33
  agentLoop
28
- } from "../chunk-E5QQZDQN.js";
34
+ } from "../chunk-HNWS7YHN.js";
35
+ import {
36
+ createDefaultHooks
37
+ } from "../chunk-O377P7GM.js";
29
38
  import {
30
39
  ToolRegistry
31
40
  } from "../chunk-JRLNE3T2.js";
@@ -33,9 +42,6 @@ import {
33
42
  EMPLOYEE_PERMISSIONS
34
43
  } from "../chunk-2O2UKMUE.js";
35
44
  import "../chunk-HF25XPZE.js";
36
- import {
37
- createDefaultHooks
38
- } from "../chunk-O377P7GM.js";
39
45
  import {
40
46
  OllamaProvider
41
47
  } from "../chunk-FWFFZGSC.js";
@@ -45,21 +51,24 @@ import {
45
51
  } from "../chunk-ECGTESAP.js";
46
52
  import {
47
53
  getSessionPrompt
48
- } from "../chunk-6XEYELCA.js";
49
- import "../chunk-HIVZ53YB.js";
50
- import "../chunk-THIJIOE2.js";
51
- import "../chunk-5DCCKHDY.js";
52
- import "../chunk-TKDITWDN.js";
54
+ } from "../chunk-R4CBHKZ2.js";
55
+ import "../chunk-EXTZSNWL.js";
56
+ import "../chunk-PY3FOMRN.js";
57
+ import "../chunk-SLLLOOEI.js";
58
+ import "../chunk-V3WLC5TJ.js";
59
+ import "../chunk-TAMDAOCU.js";
53
60
  import "../chunk-BBMTVAE3.js";
61
+ import "../chunk-TKDITWDN.js";
54
62
  import "../chunk-5YEUPUV4.js";
55
- import "../chunk-UTDMTQNH.js";
63
+ import "../chunk-DSJI76XL.js";
56
64
  import "../chunk-YYB5PMTK.js";
57
65
  import "../chunk-NJFJWQNN.js";
58
66
  import "../chunk-V3W3SATA.js";
59
67
  import "../chunk-JY5GAZYC.js";
60
68
  import "../chunk-FXU7JOXK.js";
61
- import "../chunk-QMSEL5YS.js";
69
+ import "../chunk-ZIG7VPJV.js";
62
70
  import "../chunk-HSGBZSCA.js";
71
+ import "../chunk-RH4AH3YB.js";
63
72
  import "../chunk-JKKZGDLP.js";
64
73
  import "../chunk-MLKGABMK.js";
65
74
 
@@ -108,25 +117,37 @@ var McpToolWrapper = class {
108
117
  }
109
118
  };
110
119
  var DEFAULT_MCP_REQUEST_TIMEOUT_MS = 15e3;
120
+ var CLOSE_SIGKILL_GRACE_MS = 3e3;
111
121
  var McpStdioClient = class {
112
122
  constructor(command, args = [], options = {}) {
113
123
  this.command = command;
114
124
  this.args = args;
115
125
  this.requestTimeoutMs = Math.max(1, options.requestTimeoutMs ?? DEFAULT_MCP_REQUEST_TIMEOUT_MS);
126
+ this.sessionKey = options.sessionKey ?? currentMcpSessionKey();
116
127
  }
117
128
  command;
118
129
  args;
119
130
  child = null;
131
+ childPid = null;
120
132
  requestId = 0;
121
133
  pending = /* @__PURE__ */ new Map();
122
134
  buffer = "";
123
135
  MAX_BUFFER = 1e7;
124
136
  // 10MB cap
125
137
  requestTimeoutMs;
138
+ sessionKey;
139
+ closeGraceMs = CLOSE_SIGKILL_GRACE_MS;
140
+ /** Pending SIGKILL escalation from close(); cancelled the moment the child exits. */
141
+ forceKillTimer = null;
126
142
  async connect() {
127
143
  this.child = spawn(this.command, this.args, {
128
144
  stdio: ["pipe", "pipe", "pipe"]
129
145
  });
146
+ const spawnedAtMs = Date.now();
147
+ if (this.child.pid != null) {
148
+ this.childPid = this.child.pid;
149
+ registerMcpChild(this.sessionKey, this.child.pid, this.command, process.pid, spawnedAtMs);
150
+ }
130
151
  this.child.stdout.on("data", (chunk) => {
131
152
  this.buffer += chunk.toString("utf-8");
132
153
  if (this.buffer.length > this.MAX_BUFFER) {
@@ -139,6 +160,8 @@ var McpStdioClient = class {
139
160
  this.rejectAllPending(err);
140
161
  });
141
162
  this.child.on("exit", (code, signal) => {
163
+ this.cancelForceKill();
164
+ if (this.childPid != null) unregisterMcpChild(this.sessionKey, this.childPid);
142
165
  this.rejectAllPending(
143
166
  new Error(`MCP server exited before responding (code=${code ?? "null"}, signal=${signal ?? "null"})`)
144
167
  );
@@ -169,12 +192,50 @@ var McpStdioClient = class {
169
192
  return result;
170
193
  }
171
194
  async close() {
172
- if (this.child) {
173
- this.child.kill("SIGTERM");
174
- this.child = null;
195
+ const child = this.child;
196
+ this.child = null;
197
+ if (child) {
198
+ this.signalChild(child, "SIGTERM");
199
+ this.forceKillTimer = this.scheduleForceKill(() => {
200
+ this.forceKillTimer = null;
201
+ if (child.exitCode !== null || child.signalCode !== null) return;
202
+ this.signalChild(child, "SIGKILL");
203
+ }, this.closeGraceMs);
175
204
  }
176
205
  this.rejectAllPending(new Error("MCP client closed"));
177
206
  }
207
+ /** Cancel any pending SIGKILL escalation. Idempotent. */
208
+ cancelForceKill() {
209
+ const timer = this.forceKillTimer;
210
+ this.forceKillTimer = null;
211
+ if (timer) timer.cancel();
212
+ }
213
+ /**
214
+ * Signal the child through its handle.
215
+ *
216
+ * PROCESS GROUPS — deliberate, unchanged blast radius: the child is spawned
217
+ * without `detached`, so it shares our process group. Signalling `-pid` would
218
+ * therefore hit our *own* group (the agent/daemon itself), and a group id is a
219
+ * recycled integer with exactly the same hazard as a recycled PID. So we signal
220
+ * the single process we own and nothing else. Grandchildren the MCP server
221
+ * spawns are not orphan-proofed here; that is what the on-disk registry plus
222
+ * the daemon's identity-guarded reaper exist for, and widening this to a group
223
+ * kill is a separate, deliberate decision — not a side effect of this fix.
224
+ *
225
+ * @internal Overridable purely as a test seam.
226
+ */
227
+ signalChild(child, signal) {
228
+ try {
229
+ child.kill(signal);
230
+ } catch {
231
+ }
232
+ }
233
+ /** @internal Overridable purely as a test seam (deterministic timers in tests). */
234
+ scheduleForceKill(run, ms) {
235
+ const timer = setTimeout(run, ms);
236
+ timer.unref?.();
237
+ return { cancel: () => clearTimeout(timer) };
238
+ }
178
239
  request(method, params) {
179
240
  return new Promise((resolve, reject) => {
180
241
  if (!this.child?.stdin?.writable) {
@@ -234,8 +295,8 @@ var McpStdioClient = class {
234
295
  }
235
296
  }
236
297
  };
237
- async function createMcpTools(serverCommand, serverArgs = []) {
238
- const client = new McpStdioClient(serverCommand, serverArgs);
298
+ async function createMcpTools(serverCommand, serverArgs = [], options = {}) {
299
+ const client = new McpStdioClient(serverCommand, serverArgs, options);
239
300
  await client.connect();
240
301
  const mcpTools = await client.listTools();
241
302
  const tools = mcpTools.map(
@@ -317,14 +378,14 @@ function resolveMcpServerCommand(env = process.env, proxyPath = fileURLToPath(ne
317
378
  }
318
379
  return { command: execPath, args: [proxyPath] };
319
380
  }
320
- async function registerMcpTools(registry, connect = createMcpTools, env = process.env) {
381
+ async function registerMcpTools(registry, connect = createMcpTools, env = process.env, sessionKey) {
321
382
  const server = resolveMcpServerCommand(env);
322
383
  if (!server) {
323
384
  console.error("[exe-agent] MCP disabled (EXE_AGENT_MCP=0) \u2014 builtin tools only.");
324
385
  return null;
325
386
  }
326
387
  try {
327
- const { tools, client } = await connect(server.command, server.args);
388
+ const { tools, client } = await connect(server.command, server.args, sessionKey ? { sessionKey } : void 0);
328
389
  const builtins = new Set(registry.names());
329
390
  let registered = 0;
330
391
  for (const tool of tools) {
@@ -345,6 +406,38 @@ async function registerMcpTools(registry, connect = createMcpTools, env = proces
345
406
  return null;
346
407
  }
347
408
  }
409
+ var MCP_TEARDOWN_GRACE_MS = 3e3;
410
+ var MCP_TEARDOWN_MARGIN_MS = 500;
411
+ var MCP_TEARDOWN_CEILING_MS = MCP_TEARDOWN_GRACE_MS + MCP_TEARDOWN_MARGIN_MS;
412
+ async function shutdownMcpChildren(client, sessionKey, deps = {}) {
413
+ const terminate = deps.terminate ?? terminateSessionMcpChildren;
414
+ const graceMs = deps.graceMs ?? MCP_TEARDOWN_GRACE_MS;
415
+ const ceilingMs = deps.ceilingMs ?? MCP_TEARDOWN_CEILING_MS;
416
+ const warn = deps.warn ?? ((msg) => process.stderr.write(msg));
417
+ const setTimer = deps.setTimer ?? ((fn, ms) => {
418
+ const t = setTimeout(fn, ms);
419
+ t.unref?.();
420
+ return { cancel: () => clearTimeout(t) };
421
+ });
422
+ try {
423
+ client?.close();
424
+ } catch {
425
+ }
426
+ let timer;
427
+ const sweep = Promise.resolve().then(() => terminate(sessionKey, { graceMs })).then(() => "complete").catch(() => "complete");
428
+ const ceiling = new Promise((resolve) => {
429
+ timer = setTimer(() => resolve("timeout"), ceilingMs);
430
+ });
431
+ const outcome = await Promise.race([sweep, ceiling]);
432
+ timer?.cancel();
433
+ if (outcome === "timeout") {
434
+ warn(
435
+ `[exe-agent] MCP teardown exceeded ${ceilingMs}ms \u2014 exiting anyway. Any surviving child stays in the MCP child registry for the daemon reaper.
436
+ `
437
+ );
438
+ }
439
+ return outcome;
440
+ }
348
441
  async function main() {
349
442
  const args = parseArgs(process.argv);
350
443
  if (!args.employee) {
@@ -360,15 +453,13 @@ async function main() {
360
453
  const model = args.model ?? provider.defaultModel ?? "claude-sonnet-4-20250514";
361
454
  const registry = new ToolRegistry();
362
455
  registerBuiltinTools(registry);
363
- const mcpClient = await registerMcpTools(registry);
456
+ const mcpSessionKey = currentMcpSessionKey();
457
+ const mcpClient = await registerMcpTools(registry, createMcpTools, process.env, mcpSessionKey);
364
458
  const abortController = new AbortController();
365
459
  const shutdown = () => {
366
460
  process.stderr.write("\n[exe-agent] Shutting down...\n");
367
461
  abortController.abort();
368
- try {
369
- mcpClient?.close();
370
- } catch {
371
- }
462
+ void shutdownMcpChildren(mcpClient, mcpSessionKey);
372
463
  };
373
464
  process.on("SIGINT", shutdown);
374
465
  process.on("SIGTERM", shutdown);
@@ -407,12 +498,10 @@ async function main() {
407
498
  rl.prompt();
408
499
  });
409
500
  rl.on("close", () => {
410
- try {
411
- mcpClient?.close();
412
- } catch {
413
- }
414
- console.error("[exe-agent] Session ended.");
415
- process.exit(0);
501
+ void shutdownMcpChildren(mcpClient, mcpSessionKey).then(() => {
502
+ console.error("[exe-agent] Session ended.");
503
+ process.exit(0);
504
+ });
416
505
  });
417
506
  }
418
507
  function isDirectRun(entry = process.argv[1], selfUrl = import.meta.url) {
@@ -424,13 +513,18 @@ function isDirectRun(entry = process.argv[1], selfUrl = import.meta.url) {
424
513
  }
425
514
  }
426
515
  if (isDirectRun()) {
427
- main().catch((err) => {
516
+ main().catch(async (err) => {
428
517
  console.error(`[exe-agent] Fatal: ${err instanceof Error ? err.message : String(err)}`);
518
+ await shutdownMcpChildren(null, currentMcpSessionKey());
429
519
  process.exit(1);
430
520
  });
431
521
  }
432
522
  export {
523
+ MCP_TEARDOWN_CEILING_MS,
524
+ MCP_TEARDOWN_GRACE_MS,
525
+ MCP_TEARDOWN_MARGIN_MS,
433
526
  isDirectRun,
434
527
  registerMcpTools,
435
- resolveMcpServerCommand
528
+ resolveMcpServerCommand,
529
+ shutdownMcpChildren
436
530
  };