@askexenow/exe-os 0.9.359 → 0.9.362

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 (451) hide show
  1. package/deploy/compose/docker-compose.yml +7 -1
  2. package/deploy/compose/generate-env.ts +23 -4
  3. package/deploy/compose/sso-edge/default.conf.template +35 -0
  4. package/deploy/compose/sso-edge/sso-redirect.conf +23 -2
  5. package/deploy/stack-manifests/v0.9.json +228 -2
  6. package/dist/.dist-verified.json +3 -3
  7. package/dist/{active-agent-DMKNHGSG.js → active-agent-3FV5V7SS.js} +9 -8
  8. package/dist/{active-agent-Y3DCBD7J.js → active-agent-BPNEBKHI.js} +9 -8
  9. package/dist/{agentic-ontology-3233PNKV.js → agentic-ontology-RCVCJ6WB.js} +1 -1
  10. package/dist/{backfill-gate-DA7UT6UD.js → backfill-gate-LRX77SUD.js} +3 -2
  11. package/dist/{backfill-metadata-4DS4A5U3.js → backfill-metadata-Y3DGVCK5.js} +12 -11
  12. package/dist/{background-jobs-XGTLESKM.js → background-jobs-Z6KHCWES.js} +3 -2
  13. package/dist/{backup-verify-JNYKXIU2.js → backup-verify-TZPPUCLU.js} +5 -4
  14. package/dist/{behavior-injection-CGAMI552.js → behavior-injection-JMGGWCWG.js} +21 -13
  15. package/dist/{behaviors-57AMN5IP.js → behaviors-TT6CMEKC.js} +20 -12
  16. package/dist/bin/age-ontology-load.js +3 -2
  17. package/dist/bin/agentic-ontology-backfill.js +14 -13
  18. package/dist/bin/agentic-reflection-backfill.js +15 -14
  19. package/dist/bin/agentic-semantic-label.js +14 -13
  20. package/dist/bin/backfill-conversations.js +16 -14
  21. package/dist/bin/backfill-responses.js +16 -14
  22. package/dist/bin/backfill-vectors.js +20 -18
  23. package/dist/bin/bulk-sync-postgres.js +27 -24
  24. package/dist/bin/cc-doctor.js +13 -11
  25. package/dist/bin/cleanup-stale-review-tasks.js +31 -28
  26. package/dist/bin/cli.js +157 -47
  27. package/dist/bin/customer-readiness.js +10 -1
  28. package/dist/bin/deferred-daemon-restart.js +127 -104
  29. package/dist/bin/exe-agent-config.js +9 -8
  30. package/dist/bin/exe-agent.js +17 -16
  31. package/dist/bin/exe-assign.js +18 -16
  32. package/dist/bin/exe-boot.js +62 -49
  33. package/dist/bin/exe-call.js +10 -9
  34. package/dist/bin/exe-cloud.js +29 -26
  35. package/dist/bin/exe-config-dump.js +9 -8
  36. package/dist/bin/exe-dispatch.js +31 -28
  37. package/dist/bin/exe-doctor.js +14 -10
  38. package/dist/bin/exe-export-behaviors.js +22 -14
  39. package/dist/bin/exe-forget.js +14 -13
  40. package/dist/bin/exe-gateway.js +13 -12
  41. package/dist/bin/exe-grant.js +6 -6
  42. package/dist/bin/exe-healthcheck.js +13 -11
  43. package/dist/bin/exe-heartbeat.js +33 -30
  44. package/dist/bin/exe-kill.js +36 -33
  45. package/dist/bin/exe-launch-agent.js +126 -44
  46. package/dist/bin/exe-mcp.js +165 -1
  47. package/dist/bin/exe-memory-reads.js +12 -11
  48. package/dist/bin/exe-new-employee.js +20 -17
  49. package/dist/bin/exe-os-mcp-proxy.js +9 -8
  50. package/dist/bin/exe-pending-messages.js +32 -29
  51. package/dist/bin/exe-pending-notifications.js +31 -28
  52. package/dist/bin/exe-pending-reviews.js +31 -28
  53. package/dist/bin/exe-preflight.js +1 -1
  54. package/dist/bin/exe-rename.js +10 -9
  55. package/dist/bin/exe-review.js +35 -32
  56. package/dist/bin/exe-search.js +13 -12
  57. package/dist/bin/exe-session-cleanup.js +36 -33
  58. package/dist/bin/exe-settings.js +28 -25
  59. package/dist/bin/exe-start-codex.js +27 -19
  60. package/dist/bin/exe-start-opencode.js +23 -15
  61. package/dist/bin/exe-start.sh +11 -7
  62. package/dist/bin/exe-status.js +32 -29
  63. package/dist/bin/exe-support.js +5 -4
  64. package/dist/bin/exe-team.js +9 -8
  65. package/dist/bin/exe-watchdog.js +115 -30
  66. package/dist/bin/git-sweep.js +32 -29
  67. package/dist/bin/graph-backfill.js +14 -13
  68. package/dist/bin/graph-export.js +13 -12
  69. package/dist/bin/import-history.js +16 -15
  70. package/dist/bin/install.js +392 -201
  71. package/dist/bin/intercom-check.js +4 -4
  72. package/dist/bin/mcp-sessions.js +2 -2
  73. package/dist/bin/orchestration-metrics.js +10 -9
  74. package/dist/bin/postgres-agentic-reflection-backfill.js +5 -4
  75. package/dist/bin/postgres-agentic-semantic-backfill.js +4 -3
  76. package/dist/bin/reconcile-backlog.js +2 -2
  77. package/dist/bin/registry-proxy.js +1 -1
  78. package/dist/bin/scan-tasks.js +31 -28
  79. package/dist/bin/setup.js +7 -4
  80. package/dist/bin/shard-migrate.js +13 -12
  81. package/dist/bin/stack-update.js +45 -14
  82. package/dist/bin/update.js +4 -3
  83. package/dist/bin/vps-health-gate.js +1 -1
  84. package/dist/{boot-generation-4D3CTT7X.js → boot-generation-XABYKF5P.js} +9 -8
  85. package/dist/{boot-review-sections-NDFE5443.js → boot-review-sections-2X5TFIGU.js} +30 -27
  86. package/dist/{branch-hygiene-HNSOUDJE.js → branch-hygiene-Z4IBWAOX.js} +2 -1
  87. package/dist/{branding-6FHWZQYQ.js → branding-7MZDHTKN.js} +3 -2
  88. package/dist/build-manifest.json +1249 -1069
  89. package/dist/{capability-cards-OBB7BMMX.js → capability-cards-O5UXDOOA.js} +8 -7
  90. package/dist/{capacity-monitor-QLPEL6S5.js → capacity-monitor-IPXM726A.js} +32 -29
  91. package/dist/{catchup-brief-EN7QR6MP.js → catchup-brief-EBIGDXOK.js} +36 -33
  92. package/dist/{chunk-WRP5AG4D.js → chunk-23KWUA7Z.js} +2 -2
  93. package/dist/{chunk-PDRIIEFV.js → chunk-2FA4PYYX.js} +1 -1
  94. package/dist/chunk-2PRAXZWM.js +261 -0
  95. package/dist/{chunk-R6LNQAUG.js → chunk-327Q53AS.js} +34 -1
  96. package/dist/{chunk-MBULOZJF.js → chunk-32FEF5BW.js} +2 -2
  97. package/dist/{chunk-2YGAKBRG.js → chunk-35FD67ZB.js} +3 -3
  98. package/dist/{chunk-R62ITJDQ.js → chunk-3C7NE4JE.js} +1 -1
  99. package/dist/{chunk-YBX3G5OP.js → chunk-3ICF4IAZ.js} +1 -1
  100. package/dist/{chunk-CVTWQZOR.js → chunk-3L2QU5ZF.js} +14 -2
  101. package/dist/{chunk-I5AVZOL2.js → chunk-3YBJ36UX.js} +2 -2
  102. package/dist/{chunk-NKDKB2RT.js → chunk-465RCKVI.js} +6 -6
  103. package/dist/{chunk-QROIFRKI.js → chunk-4AFD4R35.js} +5 -5
  104. package/dist/{chunk-OSID72CN.js → chunk-4L33OFU4.js} +25 -1
  105. package/dist/{chunk-A6VIK3SS.js → chunk-4P2BFNSB.js} +2 -2
  106. package/dist/{chunk-SIGAQQHW.js → chunk-4R2WD6T3.js} +2 -2
  107. package/dist/{chunk-HPHF5VTT.js → chunk-4U56FZ7B.js} +4 -4
  108. package/dist/{chunk-2KLVTRY2.js → chunk-54USDN5Q.js} +1 -1
  109. package/dist/{chunk-CAEWPEBA.js → chunk-5C6ZIJ7J.js} +1 -1
  110. package/dist/{chunk-46RPEWTH.js → chunk-5H3RHWRE.js} +1 -1
  111. package/dist/chunk-5OPAUFLP.js +126 -0
  112. package/dist/{chunk-EHM4E62N.js → chunk-6DTALXOA.js} +1 -1
  113. package/dist/chunk-6EM6USV7.js +1332 -0
  114. package/dist/{chunk-JE34CB5H.js → chunk-6N3HUOV3.js} +2 -2
  115. package/dist/{chunk-6KREY2Q7.js → chunk-6QJXFLNN.js} +5 -5
  116. package/dist/{chunk-G37RG543.js → chunk-6UZDGEGQ.js} +1 -1
  117. package/dist/{chunk-APR556TY.js → chunk-6Y3KUO7Q.js} +190 -29
  118. package/dist/{chunk-2EAYZ3BK.js → chunk-7H3AZNQ7.js} +9 -9
  119. package/dist/{chunk-C5YZMYQH.js → chunk-7SY2NOMQ.js} +1 -1
  120. package/dist/{chunk-OAYTQ4RY.js → chunk-AL4HXKDJ.js} +55 -12
  121. package/dist/{chunk-VY5VU7SX.js → chunk-AOMFYUPT.js} +2 -2
  122. package/dist/{chunk-EX2SSLNU.js → chunk-AQO3BT3I.js} +12 -12
  123. package/dist/chunk-ARX6TAGN.js +102 -0
  124. package/dist/chunk-B6PFGUYJ.js +159 -0
  125. package/dist/{chunk-FASR2WLT.js → chunk-BDLRTLXY.js} +1 -1
  126. package/dist/chunk-BJEQBKGH.js +218 -0
  127. package/dist/{chunk-BCZF3AGJ.js → chunk-BRIZ6OZ3.js} +34 -44
  128. package/dist/{chunk-OMXJMOBD.js → chunk-BRZR76TS.js} +66 -0
  129. package/dist/{chunk-XV42EAVK.js → chunk-BT2PUK3S.js} +1 -1
  130. package/dist/{chunk-6EOLGE7T.js → chunk-CVYDJ2TW.js} +1 -1
  131. package/dist/{chunk-WCP4OQUL.js → chunk-CXQ724WH.js} +2 -2
  132. package/dist/{chunk-F3QTF4T7.js → chunk-CY5NVDTH.js} +3 -3
  133. package/dist/{chunk-3ODATKWH.js → chunk-D5CY4E7I.js} +1 -1
  134. package/dist/{chunk-W5YV2PZE.js → chunk-DKRDU2AX.js} +16 -16
  135. package/dist/{chunk-SNWV44E5.js → chunk-DSKEYEL2.js} +12 -5
  136. package/dist/{chunk-VXL7PJ56.js → chunk-E3YI6FVJ.js} +5 -24
  137. package/dist/{chunk-6SK4MM5B.js → chunk-E7PL3T2U.js} +1 -1
  138. package/dist/{chunk-IOEUAQWP.js → chunk-EEZOBN6X.js} +1 -1
  139. package/dist/{chunk-AHMUF6RO.js → chunk-G2M7WQ2M.js} +0 -2
  140. package/dist/{chunk-SKGMF2SO.js → chunk-GBNB4EWD.js} +22 -1
  141. package/dist/{chunk-UZ5RJYL3.js → chunk-HAXCUCJC.js} +1 -1
  142. package/dist/{chunk-VMR6M6GN.js → chunk-HISFWAAK.js} +1 -1
  143. package/dist/{chunk-DKRSKC5R.js → chunk-HKQ7UTSE.js} +1 -1
  144. package/dist/chunk-HLQ4MS42.js +257 -0
  145. package/dist/{chunk-EA5FVACM.js → chunk-HLU52KTO.js} +29 -18
  146. package/dist/{chunk-QWVXN224.js → chunk-HPXFKUGU.js} +350 -65
  147. package/dist/{chunk-2OVTGZYH.js → chunk-HSKABJE6.js} +46 -3
  148. package/dist/{chunk-NE57GONM.js → chunk-I3SF6QGV.js} +1 -1
  149. package/dist/chunk-J6KMGEJW.js +238 -0
  150. package/dist/chunk-JKKZGDLP.js +182 -0
  151. package/dist/{chunk-3ZEVMZ4G.js → chunk-JYKZVAS6.js} +1 -1
  152. package/dist/{chunk-4DYJ6NOK.js → chunk-KA4WVDLX.js} +2 -2
  153. package/dist/{chunk-QH2XAUZ5.js → chunk-KBI4FVBZ.js} +1 -1
  154. package/dist/{chunk-VAY6IXWY.js → chunk-KDMVVHZH.js} +1 -1
  155. package/dist/{chunk-4FQIWAXA.js → chunk-KID6T2A4.js} +10 -10
  156. package/dist/{chunk-HNPHPGGF.js → chunk-KIKB6FY3.js} +2 -2
  157. package/dist/{chunk-STFR72YH.js → chunk-LCDW2HUL.js} +1 -1
  158. package/dist/{chunk-RFUTLZ2U.js → chunk-LG37UBBE.js} +4 -4
  159. package/dist/{chunk-3QWOO74G.js → chunk-LLZNPOGB.js} +97 -3
  160. package/dist/chunk-M67ARGXY.js +175 -0
  161. package/dist/chunk-MPVXHYD5.js +85 -0
  162. package/dist/{chunk-RXL7A7JH.js → chunk-MZYNW5OY.js} +1 -1
  163. package/dist/{chunk-DQ75MEPU.js → chunk-MZZN5GFC.js} +1 -1
  164. package/dist/{chunk-X2F6Q7TW.js → chunk-NAHCSQWT.js} +1 -1
  165. package/dist/{chunk-AL7JMA54.js → chunk-NE4QI2GX.js} +2 -2
  166. package/dist/chunk-NGDXBN3M.js +254 -0
  167. package/dist/{chunk-HDSDXGLV.js → chunk-NO5KHKKB.js} +1 -1
  168. package/dist/chunk-NOKJCF27.js +437 -0
  169. package/dist/{chunk-PLOEFBFW.js → chunk-O32HTNRX.js} +3 -3
  170. package/dist/{chunk-UPM5JP6G.js → chunk-OZNCAMS3.js} +47 -4
  171. package/dist/{chunk-XLEYCOHX.js → chunk-P7CV4SHQ.js} +398 -58
  172. package/dist/{chunk-G2KK64UB.js → chunk-PDJWHL63.js} +101 -19
  173. package/dist/{chunk-W3XUU36X.js → chunk-PF7EQSE5.js} +5 -5
  174. package/dist/{chunk-QX7RWICL.js → chunk-PU7UYQRC.js} +1 -1
  175. package/dist/{chunk-A5WEEND7.js → chunk-PUMH7JSB.js} +3 -3
  176. package/dist/{chunk-POZGQQEZ.js → chunk-PV5BIXT6.js} +1 -1
  177. package/dist/{chunk-TG7JYSEA.js → chunk-Q2VQNAPU.js} +5 -2
  178. package/dist/{chunk-Z2PAVJJ4.js → chunk-Q7J2SQJ6.js} +127 -29
  179. package/dist/{chunk-4JERP7NT.js → chunk-QAEWWYHL.js} +29 -1
  180. package/dist/{chunk-6JTKIXLU.js → chunk-QCJT265O.js} +1 -1
  181. package/dist/{chunk-OY2PWHYR.js → chunk-QI25QRUP.js} +2 -2
  182. package/dist/chunk-QILQ5FCG.js +198 -0
  183. package/dist/{chunk-LRETL4I3.js → chunk-QJBX3MBV.js} +3 -3
  184. package/dist/{chunk-57GRYGDU.js → chunk-QP53XLC5.js} +1 -1
  185. package/dist/{chunk-JBAMYKBL.js → chunk-QQMYD4M7.js} +1 -1
  186. package/dist/{chunk-SHEWTDPC.js → chunk-QY3TM2T3.js} +4 -4
  187. package/dist/{chunk-WA2MJGPT.js → chunk-QYRI25IP.js} +3 -3
  188. package/dist/{chunk-QLFN3MUW.js → chunk-RCOIKTHM.js} +1 -1
  189. package/dist/{chunk-ITRKRKS7.js → chunk-RFKRCVGW.js} +1 -1
  190. package/dist/{chunk-HK7SQDKJ.js → chunk-RNSAVQEU.js} +2 -2
  191. package/dist/{chunk-44WFVMZ5.js → chunk-RUUX2ZST.js} +1 -1
  192. package/dist/{chunk-DWKH2H7W.js → chunk-RWKX2TK5.js} +1 -1
  193. package/dist/{chunk-MCNDZU5W.js → chunk-RYRNY6IF.js} +2 -2
  194. package/dist/{chunk-5I3YC7ER.js → chunk-SC6WDF3Q.js} +2 -2
  195. package/dist/chunk-SLBOKYYQ.js +197 -0
  196. package/dist/{chunk-74R44E4S.js → chunk-SQM4ZTL2.js} +246 -96
  197. package/dist/{chunk-KIXNMTGC.js → chunk-SRFRUN66.js} +5 -5
  198. package/dist/chunk-SXKIGBNF.js +61 -0
  199. package/dist/chunk-T2RZU7JA.js +2607 -0
  200. package/dist/{chunk-2I23RPSI.js → chunk-TKDITWDN.js} +9 -0
  201. package/dist/{chunk-5UAMBMNR.js → chunk-TN2E6ZCM.js} +44 -34
  202. package/dist/{chunk-SQBNN44X.js → chunk-TP7RXGMP.js} +49 -15
  203. package/dist/{chunk-GSVQBBE5.js → chunk-TY4JLBFO.js} +2 -2
  204. package/dist/{chunk-7QRMFYOV.js → chunk-UHPMK6QZ.js} +17 -3
  205. package/dist/{chunk-LPKTGK7L.js → chunk-UO5QJ2RX.js} +4 -4
  206. package/dist/{chunk-VCCZQDCU.js → chunk-URNVIZXU.js} +3 -3
  207. package/dist/{chunk-OIS5VIAH.js → chunk-UWEFIIEG.js} +6 -2
  208. package/dist/{chunk-IQWAYXVF.js → chunk-V5I5N7NC.js} +3 -3
  209. package/dist/{chunk-GD7VXXW6.js → chunk-V6YLIDLK.js} +801 -180
  210. package/dist/chunk-VAOUB2TK.js +23 -0
  211. package/dist/{chunk-XVTKJEI2.js → chunk-VDMFVUSY.js} +3 -3
  212. package/dist/{chunk-RJ67HG2P.js → chunk-VWTUKKUF.js} +4 -4
  213. package/dist/{chunk-4WSUP4CC.js → chunk-W3LKIQJ2.js} +43 -17
  214. package/dist/{chunk-EUQF3JOH.js → chunk-WBG7XYVR.js} +1 -1
  215. package/dist/{chunk-YKRNH5LU.js → chunk-WH2VVEGD.js} +1 -1
  216. package/dist/{chunk-NP2Y7P3I.js → chunk-WP2TGH5R.js} +1 -1
  217. package/dist/chunk-WT4RI36X.js +23 -0
  218. package/dist/{chunk-LXG37RB2.js → chunk-XJIRUTGJ.js} +1 -1
  219. package/dist/chunk-XRCX6R5S.js +57 -0
  220. package/dist/{chunk-XWWNRFRF.js → chunk-XSYQ5EPE.js} +11 -11
  221. package/dist/{chunk-HKK7LLS5.js → chunk-XTGR3LMF.js} +34 -3
  222. package/dist/{chunk-HLEZ5O5P.js → chunk-XUB4GFPN.js} +17 -15
  223. package/dist/chunk-YZUHSV24.js +277 -0
  224. package/dist/{chunk-6WHYSLGF.js → chunk-Z67DIJKT.js} +1 -1
  225. package/dist/{chunk-6LY3QSJA.js → chunk-ZI3HA3XW.js} +11 -6
  226. package/dist/{chunk-YEOIPUFO.js → chunk-ZR4CQBAP.js} +1 -1
  227. package/dist/{chunk-VNK3MNZE.js → chunk-ZZEKOI2M.js} +1 -1
  228. package/dist/{cleanup-graph-garbage-XFGY4EEE.js → cleanup-graph-garbage-6F22Y5SD.js} +13 -12
  229. package/dist/{cloud-sync-shutdown-XCOATIJW.js → cloud-sync-shutdown-FWERMZB5.js} +8 -7
  230. package/dist/{co-activation-XNBLOGK3.js → co-activation-UEEDCM5U.js} +8 -7
  231. package/dist/{co-occurrence-HO4PGQC4.js → co-occurrence-W6OPFRSY.js} +11 -10
  232. package/dist/{code-context-index-5RY66SWZ.js → code-context-index-DWR6HS35.js} +7 -5
  233. package/dist/consent-passphrase-Z64GFJXK.js +23 -0
  234. package/dist/{conversation-entity-extractor-5G5DGRJU.js → conversation-entity-extractor-LWUIH3UB.js} +3 -3
  235. package/dist/{conversation-wiki-populator-RZKG6PK4.js → conversation-wiki-populator-5EGRW2UZ.js} +1 -1
  236. package/dist/{crdt-sync-6TD7LSZW.js → crdt-sync-NHJX3ZJD.js} +5 -4
  237. package/dist/{crm-webhook-WZAV5776.js → crm-webhook-OY467ATC.js} +2 -2
  238. package/dist/{cto-delegation-gate-UHMYFM4D.js → cto-delegation-gate-XH4YSQVC.js} +30 -27
  239. package/dist/{daemon-auth-SXZHLUYS.js → daemon-auth-OCHW2U6B.js} +3 -2
  240. package/dist/{daemon-orchestration-DT5M2ZAR.js → daemon-orchestration-7425ZVNH.js} +35 -32
  241. package/dist/{daemon-ready-56VAPZU6.js → daemon-ready-VGPSRI3Z.js} +1 -1
  242. package/dist/{daemon-restart-circuit-breaker-5V6B6NLS.js → daemon-restart-circuit-breaker-SMTWFX27.js} +25 -3
  243. package/dist/db-backend-ODVJ3Q3D.js +7 -0
  244. package/dist/{db-restore-events-ZLD2HRQV.js → db-restore-events-TFCZ4CPM.js} +2 -1
  245. package/dist/{doc-graph-extractor-FNCYPFKY.js → doc-graph-extractor-RR2VSO4W.js} +11 -10
  246. package/dist/{documents-GKDZDUED.js → documents-TRZ4R2ZW.js} +18 -16
  247. package/dist/dreaming-MAMZAPYW.js +63 -0
  248. package/dist/{exe-drift-QTKD2FHT.js → exe-drift-VBWB5E6S.js} +9 -8
  249. package/dist/{exe-export-ESJ6KP6J.js → exe-export-XJJTVVT7.js} +21 -13
  250. package/dist/{exe-import-N4X3GEQB.js → exe-import-G6O7JFNZ.js} +21 -13
  251. package/dist/{exe-key-KZCCHX3W.js → exe-key-A2WJLLTM.js} +116 -99
  252. package/dist/exe-org-HXF4XBB3.js +672 -0
  253. package/dist/{exe-snapshot-SCRPHCPZ.js → exe-snapshot-TL3TLKLR.js} +38 -33
  254. package/dist/{fast-db-init-6H67K76Q.js → fast-db-init-SO2XUQ7T.js} +1 -1
  255. package/dist/{founder-context-C7X7IRDA.js → founder-context-IOCADC66.js} +4 -3
  256. package/dist/{founder-monitor-envelope-DHSUMBWU.js → founder-monitor-envelope-SMILO4BT.js} +7 -5
  257. package/dist/gateway/index.js +23 -22
  258. package/dist/{gateway-client-7LMZKHTH.js → gateway-client-JA2BH7QO.js} +1 -1
  259. package/dist/{git-staleness-JCKVMWPO.js → git-staleness-I6WT7EXV.js} +8 -7
  260. package/dist/{global-procedures-BR7WGSE7.js → global-procedures-3RMO6C3C.js} +9 -8
  261. package/dist/{graph-auto-extract-EOXWQRBZ.js → graph-auto-extract-NKTYPD2I.js} +11 -10
  262. package/dist/{graph-rag-5FVC5JXH.js → graph-rag-EOGPZOYI.js} +3 -3
  263. package/dist/{hook-integrity-TYGDD7OE.js → hook-integrity-RTBF2BL2.js} +1 -1
  264. package/dist/{hook-prefetch-2CN3MK4H.js → hook-prefetch-V5KCGW2N.js} +31 -28
  265. package/dist/hooks/bug-report-worker.js +35 -32
  266. package/dist/hooks/codex-stop-task-finalizer.js +36 -33
  267. package/dist/hooks/commit-complete.js +34 -31
  268. package/dist/hooks/error-recall.js +16 -15
  269. package/dist/hooks/exe-heartbeat-hook.js +10 -9
  270. package/dist/hooks/ingest-worker.js +12 -10
  271. package/dist/hooks/ingest.js +19 -18
  272. package/dist/hooks/instructions-loaded.js +11 -10
  273. package/dist/hooks/manifest.json +20 -20
  274. package/dist/hooks/notification.js +11 -10
  275. package/dist/hooks/post-compact.js +11 -115
  276. package/dist/hooks/post-tool-combined.js +11 -11
  277. package/dist/hooks/pre-compact.js +38 -64
  278. package/dist/hooks/pre-tool-use.js +95 -36
  279. package/dist/hooks/prompt-submit.js +50 -47
  280. package/dist/hooks/session-end.js +39 -36
  281. package/dist/hooks/session-start.js +64 -18
  282. package/dist/hooks/stop.js +40 -37
  283. package/dist/hooks/subagent-stop.js +35 -32
  284. package/dist/hooks/summary-worker.js +41 -38
  285. package/dist/index.js +45 -42
  286. package/dist/inrun-inbox-DRKVDPLY.js +29 -0
  287. package/dist/{installer-VPNTM3X6.js → installer-G67M3DME.js} +11 -10
  288. package/dist/{installer-YDLSXGD2.js → installer-L3ZKMOPU.js} +11 -10
  289. package/dist/{installer-7UV3CNWZ.js → installer-QBWZSYDG.js} +11 -10
  290. package/dist/{intercom-queue-KHKJJYCQ.js → intercom-queue-R5LSXD3V.js} +30 -27
  291. package/dist/{key-backup-status-YMS7YGWO.js → key-backup-status-3RC6XTUX.js} +2 -1
  292. package/dist/lib/agent-config.js +3 -2
  293. package/dist/lib/cloud-sync.js +27 -24
  294. package/dist/lib/config.js +6 -1
  295. package/dist/lib/consolidation.js +14 -13
  296. package/dist/lib/crypto.js +4 -3
  297. package/dist/lib/database.js +8 -7
  298. package/dist/lib/db-backup.js +4 -3
  299. package/dist/lib/db-checkpoint-worker.js +1 -1
  300. package/dist/lib/db-daemon-client.js +7 -5
  301. package/dist/lib/db-read-worker-client.js +1 -1
  302. package/dist/lib/db-read-worker.js +1 -1
  303. package/dist/lib/db-write-worker-client.js +4 -2
  304. package/dist/lib/db-write-worker.js +21 -3
  305. package/dist/lib/db.js +8 -7
  306. package/dist/lib/device-registry.js +3 -2
  307. package/dist/lib/embed-worker.js +2 -1
  308. package/dist/lib/embedder.js +7 -5
  309. package/dist/lib/employee-templates.js +10 -9
  310. package/dist/lib/employees.js +8 -7
  311. package/dist/lib/error-detector.js +1 -1
  312. package/dist/lib/exe-daemon-client.js +16 -6
  313. package/dist/lib/exe-daemon.js +342 -168
  314. package/dist/lib/hybrid-search.js +13 -12
  315. package/dist/lib/identity-templates.js +3 -1
  316. package/dist/lib/identity.js +8 -7
  317. package/dist/lib/keychain.js +41 -3
  318. package/dist/lib/license.js +12 -3
  319. package/dist/lib/messaging.js +31 -28
  320. package/dist/lib/platform-support.js +25 -0
  321. package/dist/lib/post-tool-memory.js +6 -4
  322. package/dist/lib/preflight.js +29 -0
  323. package/dist/lib/registry-proxy.js +1 -1
  324. package/dist/lib/reminders.js +9 -8
  325. package/dist/lib/schedules.js +13 -12
  326. package/dist/lib/session-registry.js +10 -9
  327. package/dist/lib/session-wrappers.js +7 -3
  328. package/dist/lib/skill-learning.js +21 -13
  329. package/dist/lib/status-brief.js +8 -3
  330. package/dist/lib/store.js +12 -11
  331. package/dist/lib/task-router.js +9 -8
  332. package/dist/lib/tasks.js +32 -29
  333. package/dist/lib/tmux-routing.js +45 -29
  334. package/dist/lib/tmux-status.js +7 -3
  335. package/dist/lib/token-spend.js +9 -8
  336. package/dist/lib/ws-client.js +1 -1
  337. package/dist/{license-gate-YXUSNA2I.js → license-gate-6R3F3NQR.js} +5 -4
  338. package/dist/{license-sync-XFDOXL3Z.js → license-sync-VBJCXBAP.js} +4 -3
  339. package/dist/linux-systemd-LRW3BYSS.js +38 -0
  340. package/dist/mailbox-inbox-CP2VRBXZ.js +10 -0
  341. package/dist/mailbox-outbox-HXI7DYNC.js +19 -0
  342. package/dist/mcp/register-tools.js +110 -94
  343. package/dist/mcp/server.js +113 -97
  344. package/dist/mcp/tools/complete-reminder.js +10 -9
  345. package/dist/mcp/tools/create-reminder.js +10 -9
  346. package/dist/mcp/tools/create-task.js +38 -31
  347. package/dist/mcp/tools/deactivate-behavior.js +22 -14
  348. package/dist/mcp/tools/list-reminders.js +10 -9
  349. package/dist/mcp/tools/list-tasks.js +34 -31
  350. package/dist/mcp/tools/send-message.js +33 -30
  351. package/dist/mcp/tools/update-task.js +33 -30
  352. package/dist/{mcp-http-config-HIP5CEDV.js → mcp-http-config-BWX7AMAZ.js} +9 -8
  353. package/dist/{mcp-session-identity-RTNZ2ZLW.js → mcp-session-identity-GOBGICLI.js} +30 -27
  354. package/dist/{memory-cards-KG4TPNKK.js → memory-cards-4EXX3BQS.js} +12 -11
  355. package/dist/{memory-graph-extractor-6HTBLO2N.js → memory-graph-extractor-OYVZIJ3R.js} +12 -11
  356. package/dist/{memory-poisoning-defense-3ZT57RSJ.js → memory-poisoning-defense-AHOD2EBX.js} +8 -7
  357. package/dist/{memory-pressure-watchdog-ZOZBIMKC.js → memory-pressure-watchdog-COJC3OYS.js} +31 -28
  358. package/dist/{memory-queue-W54BYW7V.js → memory-queue-4VN3DTOE.js} +3 -2
  359. package/dist/memory-queue-client-OI4LDT4W.js +18 -0
  360. package/dist/{memory-reflection-EQC4FXSW.js → memory-reflection-V2SNAUIB.js} +8 -7
  361. package/dist/{monitor-grants-BDLVFVDR.js → monitor-grants-W3ISOLMC.js} +6 -4
  362. package/dist/{monitor-identity-GLFZSEAH.js → monitor-identity-AN3B5QIN.js} +3 -2
  363. package/dist/{notification-ledger-NZ4HO3M5.js → notification-ledger-J6Q2GAYU.js} +117 -53
  364. package/dist/{notifications-74YECZ4V.js → notifications-56TP36IK.js} +30 -27
  365. package/dist/{orchestration-events-KRQI4ED5.js → orchestration-events-CKQ756NA.js} +9 -8
  366. package/dist/{orchestration-phase-KVF42ZKU.js → orchestration-phase-ZJ4XVNFO.js} +3 -2
  367. package/dist/orchestrator-ERSQ3KNT.js +55 -0
  368. package/dist/org-brief-session-FSZ3QJDN.js +45 -0
  369. package/dist/org-consent-policy-BN7MKCZ2.js +68 -0
  370. package/dist/org-join-HTQ57JYH.js +35 -0
  371. package/dist/org-key-admin-4W6LZ5KZ.js +242 -0
  372. package/dist/org-key-pin-OTOKAELD.js +37 -0
  373. package/dist/{org-membership-B32NS5NI.js → org-membership-SML6GCHP.js} +11 -7
  374. package/dist/org-partner-config-XQGOB7EJ.js +25 -0
  375. package/dist/org-partner-runtime-RNNUL5IN.js +44 -0
  376. package/dist/org-row-visibility-JZFJ3YRJ.js +18 -0
  377. package/dist/{pipeline-router-6ZZV7JMA.js → pipeline-router-IUENNTAY.js} +9 -8
  378. package/dist/{plan-limits-B7AZKZ6U.js → plan-limits-ZUII366B.js} +11 -10
  379. package/dist/postinstall-failure-A7WTAXD6.js +20 -0
  380. package/dist/{project-boot-WEQSKDD7.js → project-boot-3DFY5F35.js} +7 -2
  381. package/dist/{projection-worker-LRFFQ6JB.js → projection-worker-MBWUPB5O.js} +5 -4
  382. package/dist/{prospective-memory-A4GDTIWG.js → prospective-memory-GHE5ORN4.js} +8 -7
  383. package/dist/push-notifications-PTQ5DHCD.js +60 -0
  384. package/dist/{reranker-YVTLJCFC.js → reranker-NUIGAPA3.js} +3 -2
  385. package/dist/{retrieval-health-PK2ODTXM.js → retrieval-health-XHCERQPG.js} +1 -1
  386. package/dist/{review-polling-JFWRNQF6.js → review-polling-CYBCBHZA.js} +31 -28
  387. package/dist/runtime/index.js +41 -38
  388. package/dist/{session-events-VMQBCUH3.js → session-events-X33W4JNA.js} +31 -28
  389. package/dist/{session-kill-telemetry-Z3W256T5.js → session-kill-telemetry-I2F5PUIW.js} +31 -28
  390. package/dist/session-lineage-AGOHSXIS.js +66 -0
  391. package/dist/{session-scope-2ADEVY3C.js → session-scope-WXP4F7OF.js} +30 -27
  392. package/dist/setup-wizard-2CTVITIX.js +35 -0
  393. package/dist/{shard-manager-DFLCDZT5.js → shard-manager-YEOHEOHL.js} +4 -3
  394. package/dist/{skill-refinement-APBYOSGX.js → skill-refinement-VDR5OT4V.js} +9 -8
  395. package/dist/{stack-promote-SZYIPTFT.js → stack-promote-XVC7FRJW.js} +6 -5
  396. package/dist/{stack-release-EYRDEGPD.js → stack-release-6PWAACRM.js} +101 -80
  397. package/dist/{stack-update-YWK2YXP6.js → stack-update-24VRBQ3U.js} +9 -4
  398. package/dist/{steward-gate-CIOBPNX6.js → steward-gate-2ZNYDVFO.js} +9 -8
  399. package/dist/{support-inbox-OAWGFRKW.js → support-inbox-ZHKLDETT.js} +5 -4
  400. package/dist/{task-enforcement-YAU6ZGDC.js → task-enforcement-GQDUTIFY.js} +37 -28
  401. package/dist/task-request-inbox-BFXNUU44.js +64 -0
  402. package/dist/{task-scope-44N7XP5N.js → task-scope-ERHPHLUM.js} +30 -27
  403. package/dist/{tasks-crud-IWVDREXG.js → tasks-crud-NVNF3NRA.js} +30 -27
  404. package/dist/tasks-notify-DXLU5VCT.js +60 -0
  405. package/dist/{tasks-review-VDFWFETP.js → tasks-review-BST6N34P.js} +30 -27
  406. package/dist/{telemetry-upload-3X5ESEKM.js → telemetry-upload-NY3EKOGY.js} +13 -12
  407. package/dist/{token-budget-WZGO22ME.js → token-budget-CLB3GUIX.js} +9 -8
  408. package/dist/{tool-capability-index-IFNZ6QUS.js → tool-capability-index-WZWVBI2R.js} +1 -1
  409. package/dist/{tool-telemetry-F7RWUNVK.js → tool-telemetry-PALAZUXT.js} +1 -1
  410. package/dist/tui/App.js +44 -41
  411. package/dist/{tui-data-KT7YGVQS.js → tui-data-CNFSRZP7.js} +30 -27
  412. package/dist/{typed-messages-TKDGVPHS.js → typed-messages-RCMPEKJN.js} +1 -1
  413. package/dist/{update-support-ZVRMECNQ.js → update-support-ZVB3CNGY.js} +24 -22
  414. package/dist/{work-state-heartbeat-CA4CN7DQ.js → work-state-heartbeat-O7UMB6SE.js} +1 -1
  415. package/dist/{worker-gate-52MVKYGZ.js → worker-gate-6DQQWDNB.js} +3 -2
  416. package/dist/{workflow-engine-ZAFBPVUP.js → workflow-engine-5ZULFH7O.js} +2 -2
  417. package/dist/{worktree-NNVXVV6A.js → worktree-ZWA35PKW.js} +10 -9
  418. package/dist/{worktree-sweep-IM2ZQG6Z.js → worktree-sweep-5LCVT46V.js} +11 -10
  419. package/package.json +8 -20
  420. package/postinstall.mjs +124 -0
  421. package/release-notes.json +18 -16
  422. package/stack.release.schema.json +4 -0
  423. package/dist/chunk-AFNRE2RV.js +0 -408
  424. package/dist/chunk-OSKWCKUC.js +0 -6
  425. package/dist/chunk-S3FIQCSM.js +0 -232
  426. package/dist/chunk-W6UB2AWP.js +0 -656
  427. package/dist/dreaming-WPMQJAXW.js +0 -60
  428. package/dist/exe-org-UK77DUU4.js +0 -73
  429. package/dist/memory-queue-client-RRNW2IFZ.js +0 -16
  430. package/dist/orchestrator-WV2YCHTK.js +0 -52
  431. package/dist/push-notifications-GOFTDDWW.js +0 -15
  432. package/dist/setup-wizard-26B36FMC.js +0 -14
  433. package/dist/tasks-notify-WK5HA77D.js +0 -57
  434. /package/dist/{chunk-YL2JH3XV.js → chunk-6C4UAKMS.js} +0 -0
  435. /package/dist/{chunk-YMCIZCNK.js → chunk-BN26LSME.js} +0 -0
  436. /package/dist/{chunk-WTH4CSAP.js → chunk-DFQEUZSI.js} +0 -0
  437. /package/dist/{chunk-FVWI2AR4.js → chunk-FIPUVCKC.js} +0 -0
  438. /package/dist/{chunk-ZMYXQU4L.js → chunk-L4LPJMPV.js} +0 -0
  439. /package/dist/{chunk-COHHVCFA.js → chunk-UELGUVNL.js} +0 -0
  440. /package/dist/{chunk-U7RZIY74.js → chunk-X7LY3IOB.js} +0 -0
  441. /package/dist/{chunk-BGYCUZYK.js → chunk-YAZ5ECEG.js} +0 -0
  442. /package/dist/{chunk-DSGFX3RT.js → chunk-YWN3XMPU.js} +0 -0
  443. /package/dist/{chunk-YMUZWC33.js → chunk-YYB5PMTK.js} +0 -0
  444. /package/dist/{core-memory-AATZRQEY.js → core-memory-BZFPVS43.js} +0 -0
  445. /package/dist/{entity-boost-HLFG2CH3.js → entity-boost-VXXED26D.js} +0 -0
  446. /package/dist/{memory-isolation-CF6FYSXD.js → memory-isolation-3PIOWLYP.js} +0 -0
  447. /package/dist/{message-queue-client-AX6KQK7T.js → message-queue-client-5XW7ZOK2.js} +0 -0
  448. /package/dist/{oauth-server-VE5ELXTF.js → oauth-server-KW5M437C.js} +0 -0
  449. /package/dist/{webhook-pipe-A4X4SCMW.js → webhook-pipe-QJRFZVKA.js} +0 -0
  450. /package/dist/{wiki-acl-GNIXYWHJ.js → wiki-acl-RXFV5OEU.js} +0 -0
  451. /package/dist/{wiki-client-7RRYRSPS.js → wiki-client-57QWZIHQ.js} +0 -0
@@ -1,30 +1,30 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  exportBehaviorsForAgent
4
- } from "../chunk-VY5VU7SX.js";
4
+ } from "../chunk-AOMFYUPT.js";
5
5
  import {
6
6
  resolveClaudeBinaryPath
7
7
  } from "../chunk-75H4R62K.js";
8
8
  import {
9
9
  getSessionPrompt
10
- } from "../chunk-R6LNQAUG.js";
11
- import "../chunk-NP2Y7P3I.js";
10
+ } from "../chunk-327Q53AS.js";
11
+ import "../chunk-WP2TGH5R.js";
12
12
  import "../chunk-3BAGFZFN.js";
13
+ import "../chunk-ZI3HA3XW.js";
13
14
  import {
14
15
  retryOnDaemonTransportError
15
- } from "../chunk-VNK3MNZE.js";
16
- import "../chunk-6LY3QSJA.js";
16
+ } from "../chunk-ZZEKOI2M.js";
17
17
  import "../chunk-QGGH7LOU.js";
18
18
  import {
19
19
  disposeStore
20
- } from "../chunk-W5YV2PZE.js";
21
- import "../chunk-ZMYXQU4L.js";
20
+ } from "../chunk-DKRDU2AX.js";
21
+ import "../chunk-L4LPJMPV.js";
22
22
  import "../chunk-CHCA3ZM2.js";
23
23
  import "../chunk-OTVEIJUQ.js";
24
- import "../chunk-FVWI2AR4.js";
24
+ import "../chunk-FIPUVCKC.js";
25
25
  import {
26
26
  fastDbInit
27
- } from "../chunk-YMCIZCNK.js";
27
+ } from "../chunk-BN26LSME.js";
28
28
  import "../chunk-5MOYSU5A.js";
29
29
  import "../chunk-4QCFFW2H.js";
30
30
  import "../chunk-76CJBM36.js";
@@ -35,35 +35,35 @@ import {
35
35
  _resetCcHelpCache,
36
36
  claudeSupportsAgentFlag,
37
37
  getCcHelpOutputCached
38
- } from "../chunk-74R44E4S.js";
39
- import "../chunk-CAEWPEBA.js";
40
- import "../chunk-XV42EAVK.js";
41
- import "../chunk-6WHYSLGF.js";
42
- import "../chunk-EIKATSE4.js";
38
+ } from "../chunk-SQM4ZTL2.js";
39
+ import "../chunk-5C6ZIJ7J.js";
40
+ import "../chunk-SXKIGBNF.js";
41
+ import "../chunk-BT2PUK3S.js";
42
+ import "../chunk-KI5PFRG6.js";
43
+ import "../chunk-WT4RI36X.js";
44
+ import "../chunk-Z67DIJKT.js";
43
45
  import "../chunk-E23LNUWJ.js";
44
- import "../chunk-4JERP7NT.js";
45
- import "../chunk-3ODATKWH.js";
46
+ import "../chunk-QAEWWYHL.js";
47
+ import "../chunk-EIKATSE4.js";
48
+ import "../chunk-D5CY4E7I.js";
46
49
  import "../chunk-UXLO7VHX.js";
47
50
  import "../chunk-DSOQUQTV.js";
48
- import "../chunk-SKGMF2SO.js";
49
- import "../chunk-POZGQQEZ.js";
51
+ import "../chunk-GBNB4EWD.js";
52
+ import "../chunk-PV5BIXT6.js";
50
53
  import "../chunk-AJIXH5JF.js";
51
54
  import {
52
55
  getAgentRuntime,
53
56
  loadAgentConfig,
54
57
  normalizeCcModelName
55
- } from "../chunk-VAY6IXWY.js";
58
+ } from "../chunk-KDMVVHZH.js";
56
59
  import "../chunk-AM7S2TY6.js";
57
- import "../chunk-F3QTF4T7.js";
58
- import "../chunk-OSKWCKUC.js";
59
- import "../chunk-KI5PFRG6.js";
60
+ import "../chunk-CY5NVDTH.js";
60
61
  import "../chunk-CVYC6DUW.js";
61
- import "../chunk-A6VIK3SS.js";
62
- import "../chunk-RXL7A7JH.js";
62
+ import "../chunk-4P2BFNSB.js";
63
+ import "../chunk-MZYNW5OY.js";
63
64
  import "../chunk-OPU3NYOO.js";
64
- import "../chunk-W6UB2AWP.js";
65
- import "../chunk-AFNRE2RV.js";
66
- import "../chunk-VMR6M6GN.js";
65
+ import "../chunk-6EM6USV7.js";
66
+ import "../chunk-HISFWAAK.js";
67
67
  import "../chunk-NLEW62VC.js";
68
68
  import "../chunk-HYZV25LY.js";
69
69
  import "../chunk-GJV3WDWM.js";
@@ -74,25 +74,30 @@ import {
74
74
  loadEmployees,
75
75
  loadEmployeesSync,
76
76
  normalizeRole
77
- } from "../chunk-EA5FVACM.js";
78
- import "../chunk-2I23RPSI.js";
79
- import "../chunk-5YEUPUV4.js";
80
- import "../chunk-Z2PAVJJ4.js";
81
- import "../chunk-OMXJMOBD.js";
77
+ } from "../chunk-HLU52KTO.js";
78
+ import "../chunk-TKDITWDN.js";
82
79
  import "../chunk-BBMTVAE3.js";
83
- import "../chunk-YMUZWC33.js";
80
+ import "../chunk-5YEUPUV4.js";
81
+ import "../chunk-Q7J2SQJ6.js";
82
+ import "../chunk-YYB5PMTK.js";
83
+ import {
84
+ ensureAgentFrontmatter
85
+ } from "../chunk-BRZR76TS.js";
84
86
  import "../chunk-V3W3SATA.js";
85
87
  import "../chunk-JY5GAZYC.js";
86
88
  import "../chunk-FXU7JOXK.js";
87
- import "../chunk-QWVXN224.js";
89
+ import "../chunk-HPXFKUGU.js";
88
90
  import "../chunk-WNBZJSQT.js";
89
- import "../chunk-2OVTGZYH.js";
90
- import "../chunk-YBX3G5OP.js";
91
- import "../chunk-BCZF3AGJ.js";
91
+ import "../chunk-HSKABJE6.js";
92
+ import "../chunk-3ICF4IAZ.js";
93
+ import "../chunk-QILQ5FCG.js";
94
+ import "../chunk-ARX6TAGN.js";
95
+ import "../chunk-BRIZ6OZ3.js";
92
96
  import {
93
97
  atomicWriteJsonSync,
94
98
  atomicWriteSync
95
99
  } from "../chunk-HSGBZSCA.js";
100
+ import "../chunk-JKKZGDLP.js";
96
101
  import "../chunk-MLKGABMK.js";
97
102
 
98
103
  // src/bin/exe-launch-agent.ts
@@ -337,8 +342,68 @@ function ccSupportsFlag(flag) {
337
342
  function resolveClaudeBin(env = process.env) {
338
343
  return resolveClaudeBinaryPath(env);
339
344
  }
340
- function buildLaunchPlan(agent, behaviorsPath, passthrough, _hasAgentFlag, _provider) {
341
- const args = ["--dangerously-skip-permissions", "--permission-mode", "bypassPermissions"];
345
+ var ROOT_LAUNCH_REFUSED_EXIT = 78;
346
+ function isRootLaunch(uid = process.getuid?.()) {
347
+ return uid === 0;
348
+ }
349
+ function rootLaunchAllowed(env = process.env) {
350
+ const v = (env.EXE_ALLOW_ROOT ?? "").toLowerCase();
351
+ return v === "1" || v === "true" || v === "yes";
352
+ }
353
+ function rootRefusalMessage(agent) {
354
+ return `
355
+ \u274C exe-os will not launch "${agent}" as root (uid 0).
356
+
357
+ Claude Code REFUSES --dangerously-skip-permissions under root/sudo:
358
+ "--dangerously-skip-permissions cannot be used with root/sudo privileges"
359
+ Without that flag an agent stops at an interactive approval prompt on its
360
+ first tool call and can never work unattended. This launcher used to exit 0
361
+ here and leave a tmux session that looked alive but held only a shell.
362
+
363
+ Fix \u2014 run exe-os as a normal user (this is the supported setup on a VPS or
364
+ a default cloud image, where you land as root):
365
+
366
+ adduser exe && usermod -aG sudo exe
367
+ su - exe
368
+ npm install -g @askexenow/exe-os
369
+ exe-os setup
370
+
371
+ Already have a normal user? You are running under \`sudo\` \u2014 drop it:
372
+
373
+ ${agent}1 # no sudo
374
+
375
+ Override (NOT recommended \u2014 the agent will stall on every permission
376
+ prompt and cannot run unattended):
377
+
378
+ EXE_ALLOW_ROOT=1 ${agent}1
379
+
380
+ `;
381
+ }
382
+ function rootDegradedWarning(agent) {
383
+ return `
384
+ \u26A0\uFE0F EXE_ALLOW_ROOT=1 \u2014 launching "${agent}" as root WITHOUT
385
+ --dangerously-skip-permissions (Claude Code refuses it under root).
386
+ Claude Code will ask you to approve every tool call interactively.
387
+ Unattended/dispatched work will NOT complete in this session.
388
+
389
+ `;
390
+ }
391
+ function stripPermissionBypassArgs(args) {
392
+ const out = [];
393
+ for (let i = 0; i < args.length; i++) {
394
+ const arg = args[i];
395
+ if (arg === "--dangerously-skip-permissions") continue;
396
+ if (arg === "--permission-mode" && args[i + 1] === "bypassPermissions") {
397
+ i++;
398
+ continue;
399
+ }
400
+ if (arg === "--permission-mode=bypassPermissions") continue;
401
+ out.push(arg);
402
+ }
403
+ return out;
404
+ }
405
+ function buildLaunchPlan(agent, behaviorsPath, passthrough, _hasAgentFlag, _provider, uid = process.getuid?.()) {
406
+ const args = isRootLaunch(uid) ? [] : ["--dangerously-skip-permissions", "--permission-mode", "bypassPermissions"];
342
407
  if ((_provider ?? DEFAULT_PROVIDER) === DEFAULT_PROVIDER) {
343
408
  const configuredModel = getConfiguredClaudeModel(agent);
344
409
  if (configuredModel) args.push("--model", configuredModel);
@@ -380,7 +445,7 @@ function buildLaunchPlan(agent, behaviorsPath, passthrough, _hasAgentFlag, _prov
380
445
  const dir = path.dirname(idPath);
381
446
  if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
382
447
  const hasFrontmatter = identityContent.trimStart().startsWith("---");
383
- const fileContent = hasFrontmatter ? identityContent : `---
448
+ const baseContent = hasFrontmatter ? identityContent : `---
384
449
  role: ${normalizeRole(emp.role ?? "employee")}
385
450
  title: ${emp.role ?? "Employee"}
386
451
  agent_id: ${agent}
@@ -390,6 +455,7 @@ updated_at: ${(/* @__PURE__ */ new Date()).toISOString()}
390
455
  ---
391
456
 
392
457
  ${identityContent}`;
458
+ const fileContent = ensureAgentFrontmatter(baseContent, baseAgentName(agent));
393
459
  atomicWriteSync(idPath, fileContent);
394
460
  identityContent = fileContent;
395
461
  process.stderr.write(`[exe-launch-agent] self-healed missing identity file: ${idPath}
@@ -438,7 +504,8 @@ ${identityContent}`;
438
504
  `);
439
505
  }
440
506
  }
441
- for (const arg of passthrough) args.push(arg);
507
+ const effectivePassthrough = isRootLaunch(uid) ? stripPermissionBypassArgs(passthrough) : passthrough;
508
+ for (const arg of effectivePassthrough) args.push(arg);
442
509
  const hasUserPrompt = passthrough.some((a) => !a.startsWith("-"));
443
510
  if (!hasUserPrompt) {
444
511
  try {
@@ -584,6 +651,13 @@ async function main() {
584
651
  return 2;
585
652
  }
586
653
  const { agent, provider, passthrough } = resolved;
654
+ if (isRootLaunch()) {
655
+ if (!rootLaunchAllowed()) {
656
+ process.stderr.write(rootRefusalMessage(agent));
657
+ return ROOT_LAUNCH_REFUSED_EXIT;
658
+ }
659
+ process.stderr.write(rootDegradedWarning(agent));
660
+ }
587
661
  const inTmux = !!(process.env.TMUX || process.env.TMUX_PANE || process.env.TERM?.startsWith("tmux") || process.env.TERM?.startsWith("screen"));
588
662
  if (!inTmux) {
589
663
  process.stderr.write(
@@ -650,6 +724,7 @@ async function main() {
650
724
  mkdirSync(ccAgentDir, { recursive: true });
651
725
  let content = readFileSync(sourceFile, "utf-8");
652
726
  content = content.replace(/\$\{agent_id\}/g, baseAgentName(agent));
727
+ content = ensureAgentFrontmatter(content, baseAgentName(agent));
653
728
  atomicWriteSync(ccAgentFile, content);
654
729
  process.stderr.write(
655
730
  `[exe-launch-agent] auto-provisioned ${ccAgentFile} from ${sourceFile}
@@ -691,7 +766,7 @@ async function main() {
691
766
  if (sessionName && ccSupportsFlag("--mcp-config")) {
692
767
  try {
693
768
  const allServers = collectAllMcpServers();
694
- const { readOrCreateDaemonToken, mcpHttpUrl } = await import("../mcp-http-config-HIP5CEDV.js");
769
+ const { readOrCreateDaemonToken, mcpHttpUrl } = await import("../mcp-http-config-BWX7AMAZ.js");
695
770
  let currentDaemonToken = null;
696
771
  try {
697
772
  currentDaemonToken = readOrCreateDaemonToken();
@@ -761,7 +836,7 @@ async function main() {
761
836
  process.env.EXE_RUNTIME = "claude";
762
837
  process.env.AGENT_ROLE = empRole;
763
838
  try {
764
- const { writeActiveAgent } = await import("../active-agent-Y3DCBD7J.js");
839
+ const { writeActiveAgent } = await import("../active-agent-BPNEBKHI.js");
765
840
  writeActiveAgent(memoryAgent, empRole);
766
841
  } catch {
767
842
  }
@@ -822,6 +897,7 @@ if (!process.env.VITEST) {
822
897
  export {
823
898
  DEFAULT_PROVIDER,
824
899
  PROVIDER_TABLE,
900
+ ROOT_LAUNCH_REFUSED_EXIT,
825
901
  _resetCcHelpCache,
826
902
  _resetMcpServerCache,
827
903
  applyProviderEnv,
@@ -829,8 +905,14 @@ export {
829
905
  buildLaunchPlan,
830
906
  ccSupportsFlag,
831
907
  generateLeanMcpConfig,
908
+ isRootLaunch,
909
+ main,
832
910
  parseBasename,
833
911
  resolveAgent,
834
912
  resolveBehaviorsPath,
835
- resolveClaudeBin
913
+ resolveClaudeBin,
914
+ rootDegradedWarning,
915
+ rootLaunchAllowed,
916
+ rootRefusalMessage,
917
+ stripPermissionBypassArgs
836
918
  };
@@ -1,3 +1,21 @@
1
+ import {
2
+ buildMcpHttpHeaders,
3
+ mcpHttpUrl
4
+ } from "../chunk-CVYDJ2TW.js";
5
+ import "../chunk-B6TI3TZT.js";
6
+ import "../chunk-HLU52KTO.js";
7
+ import "../chunk-TKDITWDN.js";
8
+ import "../chunk-BBMTVAE3.js";
9
+ import "../chunk-5YEUPUV4.js";
10
+ import "../chunk-Q7J2SQJ6.js";
11
+ import "../chunk-YYB5PMTK.js";
12
+ import "../chunk-BRZR76TS.js";
13
+ import "../chunk-V3W3SATA.js";
14
+ import "../chunk-JY5GAZYC.js";
15
+ import "../chunk-FXU7JOXK.js";
16
+ import "../chunk-BRIZ6OZ3.js";
17
+ import "../chunk-HSGBZSCA.js";
18
+ import "../chunk-JKKZGDLP.js";
1
19
  import "../chunk-MLKGABMK.js";
2
20
 
3
21
  // src/bin/exe-mcp.ts
@@ -112,8 +130,149 @@ function usage() {
112
130
  exe-os mcp [list] [--runtime claude|codex|opencode|all] [--project <path>] [--json]
113
131
  exe-os mcp disable <name> [--runtime claude|codex|opencode|all] [--project <path>]
114
132
  exe-os mcp enable <name> [--runtime claude|codex|opencode|all] [--project <path>]
133
+ exe-os mcp call <tool> [json-args] [--args <json>]
115
134
  `;
116
135
  }
136
+ function parseJsonRpcMessages(contentType, body) {
137
+ const trimmed = body.trim();
138
+ if (!trimmed) return [];
139
+ if (contentType.includes("text/event-stream")) {
140
+ const out = [];
141
+ for (const line of trimmed.split(/\r?\n/)) {
142
+ const m = line.match(/^data:\s?(.*)$/);
143
+ if (!m) continue;
144
+ const data = m[1].trim();
145
+ if (!data || data === "[DONE]") continue;
146
+ try {
147
+ out.push(JSON.parse(data));
148
+ } catch {
149
+ }
150
+ }
151
+ return out;
152
+ }
153
+ try {
154
+ return [JSON.parse(trimmed)];
155
+ } catch {
156
+ return [];
157
+ }
158
+ }
159
+ async function runMcpCall(toolName, toolArgs, opts = {}) {
160
+ const fetchImpl = opts.fetchImpl ?? fetch;
161
+ const homeDir = opts.homeDir ?? os.homedir();
162
+ const baseUrl = opts.baseUrl ?? mcpHttpUrl(homeDir);
163
+ const timeoutMs = opts.timeoutMs ?? 12e4;
164
+ const baseHeaders = buildMcpHttpHeaders(homeDir, { agentId: opts.agentId, agentRole: opts.agentRole });
165
+ let sessionId = null;
166
+ const post = async (message) => {
167
+ const headers = {
168
+ ...baseHeaders,
169
+ "Content-Type": "application/json",
170
+ Accept: "application/json, text/event-stream"
171
+ };
172
+ if (sessionId) headers["Mcp-Session-Id"] = sessionId;
173
+ const res = await fetchImpl(baseUrl, {
174
+ method: "POST",
175
+ headers,
176
+ body: JSON.stringify(message),
177
+ signal: AbortSignal.timeout(timeoutMs)
178
+ });
179
+ const newSession = res.headers.get("mcp-session-id");
180
+ if (newSession) sessionId = newSession;
181
+ return {
182
+ status: res.status,
183
+ ok: res.ok,
184
+ body: await res.text(),
185
+ contentType: res.headers.get("content-type") ?? ""
186
+ };
187
+ };
188
+ try {
189
+ const initRes = await post({
190
+ jsonrpc: "2.0",
191
+ id: 1,
192
+ method: "initialize",
193
+ params: {
194
+ protocolVersion: "2025-06-18",
195
+ capabilities: {},
196
+ clientInfo: { name: "exe-os-mcp-call", version: "1.0.0" }
197
+ }
198
+ });
199
+ if (!initRes.ok) return { ok: false, error: `initialize failed: HTTP ${initRes.status}` };
200
+ const initErr = parseJsonRpcMessages(initRes.contentType, initRes.body).find((m) => m.error)?.error;
201
+ if (initErr) return { ok: false, error: `initialize error: ${initErr.message ?? "unknown"}` };
202
+ await post({ jsonrpc: "2.0", method: "notifications/initialized" });
203
+ const callRes = await post({
204
+ jsonrpc: "2.0",
205
+ id: 2,
206
+ method: "tools/call",
207
+ params: { name: toolName, arguments: toolArgs }
208
+ });
209
+ if (!callRes.ok) return { ok: false, error: `tools/call failed: HTTP ${callRes.status}` };
210
+ const messages = parseJsonRpcMessages(callRes.contentType, callRes.body);
211
+ const response = messages.find((m) => m.id === 2) ?? messages.find((m) => m.result !== void 0 || m.error);
212
+ if (!response) return { ok: false, error: "no JSON-RPC response for tools/call" };
213
+ if (response.error) return { ok: false, error: response.error.message ?? "tool error" };
214
+ const result = response.result;
215
+ if (result && result.isError === true) return { ok: false, error: "tool reported isError", result };
216
+ return { ok: true, result: response.result };
217
+ } catch (err) {
218
+ const msg = err instanceof Error ? err.message : String(err);
219
+ const unreachable = /ECONNREFUSED/.test(msg) || /fetch failed/i.test(msg);
220
+ return { ok: false, error: unreachable ? `daemon unreachable at ${baseUrl} (${msg})` : msg };
221
+ }
222
+ }
223
+ async function runCall(rawArgs, stdout, stderr) {
224
+ let argsJson;
225
+ const positionals = [];
226
+ for (let i = 0; i < rawArgs.length; i++) {
227
+ const a = rawArgs[i];
228
+ if (a === "--args") {
229
+ argsJson = rawArgs[i + 1];
230
+ i++;
231
+ } else if (a?.startsWith("--args=")) {
232
+ argsJson = a.slice("--args=".length);
233
+ } else if (a === "--json") {
234
+ } else if (a?.startsWith("--")) {
235
+ stderr.write(`Unknown option: ${a}
236
+ ${usage()}`);
237
+ return 1;
238
+ } else if (a) {
239
+ positionals.push(a);
240
+ }
241
+ }
242
+ const toolName = positionals.shift();
243
+ if (!toolName) {
244
+ stderr.write(`Missing tool name.
245
+ Usage: exe-os mcp call <tool> [json-args] [--args <json>]
246
+ `);
247
+ return 1;
248
+ }
249
+ if (argsJson === void 0 && positionals.length > 0) argsJson = positionals.join(" ");
250
+ let toolArgs = {};
251
+ if (argsJson && argsJson.trim()) {
252
+ let parsed;
253
+ try {
254
+ parsed = JSON.parse(argsJson);
255
+ } catch (err) {
256
+ stderr.write(`Invalid tool args JSON: ${err instanceof Error ? err.message : String(err)}
257
+ `);
258
+ return 1;
259
+ }
260
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
261
+ stderr.write("Tool args must be a JSON object.\n");
262
+ return 1;
263
+ }
264
+ toolArgs = parsed;
265
+ }
266
+ const outcome = await runMcpCall(toolName, toolArgs);
267
+ if (outcome.ok) {
268
+ stdout.write(`${JSON.stringify(outcome.result ?? null, null, 2)}
269
+ `);
270
+ return 0;
271
+ }
272
+ stderr.write(`mcp call failed: ${outcome.error ?? "unknown error"}
273
+ `);
274
+ return 1;
275
+ }
117
276
  function defaultClaudeJsonPath() {
118
277
  return path.join(os.homedir(), ".claude.json");
119
278
  }
@@ -463,6 +622,9 @@ async function main(args, opts = {}) {
463
622
  const cwd = opts.cwd ?? process.cwd();
464
623
  const paths = runtimePaths(opts);
465
624
  const backupDir = opts.backupDir ?? defaultBackupDir();
625
+ if (args[0] === "call") {
626
+ return runCall(args.slice(1), stdout, stderr);
627
+ }
466
628
  const explicitSubcommand = args[0] === "list" || args[0] === "disable" || args[0] === "enable";
467
629
  const subcommand = explicitSubcommand ? args[0] : "list";
468
630
  if (!explicitSubcommand && args[0] && !args[0].startsWith("--")) {
@@ -490,5 +652,7 @@ ${usage()}`);
490
652
  export {
491
653
  buildClaudeMcpStatus,
492
654
  buildMcpStatus,
493
- main
655
+ main,
656
+ parseJsonRpcMessages,
657
+ runMcpCall
494
658
  };
@@ -1,33 +1,34 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  initStore
4
- } from "../chunk-W5YV2PZE.js";
5
- import "../chunk-ZMYXQU4L.js";
4
+ } from "../chunk-DKRDU2AX.js";
5
+ import "../chunk-L4LPJMPV.js";
6
6
  import "../chunk-CHCA3ZM2.js";
7
7
  import "../chunk-OTVEIJUQ.js";
8
- import "../chunk-FVWI2AR4.js";
8
+ import "../chunk-FIPUVCKC.js";
9
9
  import "../chunk-5MOYSU5A.js";
10
10
  import "../chunk-4QCFFW2H.js";
11
11
  import "../chunk-76CJBM36.js";
12
12
  import "../chunk-MP2AFCGL.js";
13
13
  import {
14
14
  getClient
15
- } from "../chunk-EA5FVACM.js";
16
- import "../chunk-2I23RPSI.js";
17
- import "../chunk-5YEUPUV4.js";
18
- import "../chunk-Z2PAVJJ4.js";
19
- import "../chunk-OMXJMOBD.js";
15
+ } from "../chunk-HLU52KTO.js";
16
+ import "../chunk-TKDITWDN.js";
20
17
  import "../chunk-BBMTVAE3.js";
21
- import "../chunk-YMUZWC33.js";
18
+ import "../chunk-5YEUPUV4.js";
19
+ import "../chunk-Q7J2SQJ6.js";
20
+ import "../chunk-YYB5PMTK.js";
21
+ import "../chunk-BRZR76TS.js";
22
22
  import "../chunk-V3W3SATA.js";
23
23
  import "../chunk-JY5GAZYC.js";
24
24
  import "../chunk-FXU7JOXK.js";
25
- import "../chunk-QWVXN224.js";
26
- import "../chunk-BCZF3AGJ.js";
25
+ import "../chunk-HPXFKUGU.js";
26
+ import "../chunk-BRIZ6OZ3.js";
27
27
  import "../chunk-HSGBZSCA.js";
28
28
  import {
29
29
  isMainModule
30
30
  } from "../chunk-6Y4B3QF6.js";
31
+ import "../chunk-JKKZGDLP.js";
31
32
  import "../chunk-MLKGABMK.js";
32
33
 
33
34
  // src/lib/memory-reads-read.ts
@@ -1,40 +1,41 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  generateSessionWrappers
4
- } from "../chunk-CVTWQZOR.js";
4
+ } from "../chunk-3L2QU5ZF.js";
5
5
  import {
6
6
  TEMPLATE_VERSION,
7
7
  buildCustomEmployeePrompt,
8
8
  getTemplate,
9
9
  personalizePrompt
10
- } from "../chunk-R6LNQAUG.js";
11
- import "../chunk-NP2Y7P3I.js";
10
+ } from "../chunk-327Q53AS.js";
11
+ import "../chunk-WP2TGH5R.js";
12
12
  import "../chunk-3BAGFZFN.js";
13
13
  import {
14
14
  PlanLimitError,
15
15
  assertEmployeeLimit
16
- } from "../chunk-F3QTF4T7.js";
16
+ } from "../chunk-CY5NVDTH.js";
17
17
  import {
18
18
  hireEmployee,
19
19
  registerBinSymlinks,
20
20
  validateEmployeeName
21
- } from "../chunk-EA5FVACM.js";
22
- import "../chunk-2I23RPSI.js";
23
- import "../chunk-5YEUPUV4.js";
24
- import "../chunk-Z2PAVJJ4.js";
25
- import "../chunk-OMXJMOBD.js";
21
+ } from "../chunk-HLU52KTO.js";
22
+ import "../chunk-TKDITWDN.js";
26
23
  import "../chunk-BBMTVAE3.js";
27
- import "../chunk-YMUZWC33.js";
24
+ import "../chunk-5YEUPUV4.js";
25
+ import "../chunk-Q7J2SQJ6.js";
26
+ import "../chunk-YYB5PMTK.js";
27
+ import "../chunk-BRZR76TS.js";
28
28
  import "../chunk-V3W3SATA.js";
29
29
  import "../chunk-JY5GAZYC.js";
30
30
  import "../chunk-FXU7JOXK.js";
31
- import "../chunk-2OVTGZYH.js";
32
- import "../chunk-YBX3G5OP.js";
33
- import "../chunk-BCZF3AGJ.js";
31
+ import "../chunk-HSKABJE6.js";
32
+ import "../chunk-3ICF4IAZ.js";
33
+ import "../chunk-BRIZ6OZ3.js";
34
34
  import "../chunk-HSGBZSCA.js";
35
35
  import {
36
36
  isMainModule
37
37
  } from "../chunk-6Y4B3QF6.js";
38
+ import "../chunk-JKKZGDLP.js";
38
39
  import "../chunk-MLKGABMK.js";
39
40
 
40
41
  // src/bin/exe-new-employee.ts
@@ -110,7 +111,7 @@ async function main() {
110
111
  const { getTemplate: getIdentityTemplate } = await import("../lib/identity-templates.js");
111
112
  const { identityPath } = await import("../lib/identity.js");
112
113
  const fs = await import("fs");
113
- const { getTemplateForTitle, getEmotionalBaseline, renderEmotionalBaselineSection } = await import("../lib/identity-templates.js");
114
+ const { getTemplateForTitle, getEmotionalBaseline, renderEmotionalBaselineSection, ensureAgentFrontmatter } = await import("../lib/identity-templates.js");
114
115
  const employeeRole = newEmployee.role ?? "";
115
116
  const identityTemplate = getIdentityTemplate(employeeRole.toLowerCase()) ?? getTemplateForTitle(employeeRole);
116
117
  const emotionalBaseline = getEmotionalBaseline(employeeRole);
@@ -119,11 +120,12 @@ async function main() {
119
120
  const dir = path.dirname(idPath);
120
121
  if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
121
122
  if (identityTemplate) {
122
- const content = identityTemplate.replace(/^agent_id: \w+/m, `agent_id: ${name}`) + emotionalSection;
123
+ const rendered = identityTemplate.replace(/^agent_id: \w+/m, `agent_id: ${name}`) + emotionalSection;
124
+ const content = ensureAgentFrontmatter(rendered, name);
123
125
  fs.writeFileSync(idPath, content, "utf-8");
124
126
  console.log(`Identity doc written: ~/.exe-os/identity/${name}.md`);
125
127
  } else if (!fs.existsSync(idPath)) {
126
- const content = `---
128
+ const base = `---
127
129
  role: specialist
128
130
  title: Specialist
129
131
  agent_id: ${name}
@@ -133,6 +135,7 @@ updated_at: ${(/* @__PURE__ */ new Date()).toISOString()}
133
135
  ---
134
136
 
135
137
  ${rolePrompt}${emotionalSection}`;
138
+ const content = ensureAgentFrontmatter(base, name);
136
139
  fs.writeFileSync(idPath, content, "utf-8");
137
140
  console.log(`Identity doc written: ~/.exe-os/identity/${name}.md`);
138
141
  }
@@ -150,7 +153,7 @@ ${rolePrompt}${emotionalSection}`;
150
153
  console.error(`Warning: some launchers failed: ${bins.errors.join("; ")}`);
151
154
  }
152
155
  try {
153
- const { resolvePackageRoot } = await import("../installer-7UV3CNWZ.js");
156
+ const { resolvePackageRoot } = await import("../installer-QBWZSYDG.js");
154
157
  const { homedir } = await import("os");
155
158
  const pkgRoot = resolvePackageRoot();
156
159
  const wrapResult = generateSessionWrappers(pkgRoot);
@@ -3,23 +3,24 @@ import {
3
3
  buildMcpHttpHeaders,
4
4
  mcpHttpPort,
5
5
  mcpHttpUrl
6
- } from "../chunk-6EOLGE7T.js";
6
+ } from "../chunk-CVYDJ2TW.js";
7
7
  import "../chunk-B6TI3TZT.js";
8
- import "../chunk-EA5FVACM.js";
9
- import "../chunk-2I23RPSI.js";
10
- import "../chunk-5YEUPUV4.js";
11
- import "../chunk-Z2PAVJJ4.js";
12
- import "../chunk-OMXJMOBD.js";
8
+ import "../chunk-HLU52KTO.js";
9
+ import "../chunk-TKDITWDN.js";
13
10
  import "../chunk-BBMTVAE3.js";
14
- import "../chunk-YMUZWC33.js";
11
+ import "../chunk-5YEUPUV4.js";
12
+ import "../chunk-Q7J2SQJ6.js";
13
+ import "../chunk-YYB5PMTK.js";
14
+ import "../chunk-BRZR76TS.js";
15
15
  import "../chunk-V3W3SATA.js";
16
16
  import "../chunk-JY5GAZYC.js";
17
17
  import "../chunk-FXU7JOXK.js";
18
- import "../chunk-BCZF3AGJ.js";
18
+ import "../chunk-BRIZ6OZ3.js";
19
19
  import "../chunk-HSGBZSCA.js";
20
20
  import {
21
21
  isMainModule
22
22
  } from "../chunk-6Y4B3QF6.js";
23
+ import "../chunk-JKKZGDLP.js";
23
24
  import "../chunk-MLKGABMK.js";
24
25
 
25
26
  // src/bin/exe-os-mcp-proxy.ts