@askexenow/exe-os 0.9.340 → 0.9.342

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 (417) hide show
  1. package/README.md +159 -196
  2. package/deploy/compose/.env.customer.example +1 -0
  3. package/deploy/compose/.env.example +1 -0
  4. package/deploy/compose/docker-compose.yml +13 -4
  5. package/deploy/compose/generate-env.ts +4 -0
  6. package/dist/{active-agent-EC6M7KTX.js → active-agent-PVGE57FY.js} +5 -5
  7. package/dist/{active-agent-WHIUCHLA.js → active-agent-TNIO6IY3.js} +5 -5
  8. package/dist/{agentic-ontology-RNSXGXW4.js → agentic-ontology-3FXYMHKW.js} +1 -1
  9. package/dist/{backfill-gate-J7UXFNXU.js → backfill-gate-65LSYVE5.js} +3 -3
  10. package/dist/{backfill-metadata-MFY6BHKE.js → backfill-metadata-ZSMZC45J.js} +8 -8
  11. package/dist/{background-jobs-STURKDCS.js → background-jobs-EXR5RVGG.js} +3 -3
  12. package/dist/backup-verify-3Y2FHGZU.js +425 -0
  13. package/dist/{behaviors-HLZUJSMP.js → behaviors-KYRB3NGJ.js} +9 -9
  14. package/dist/bin/age-ontology-load.js +3 -3
  15. package/dist/bin/agentic-ontology-backfill.js +10 -10
  16. package/dist/bin/agentic-reflection-backfill.js +11 -11
  17. package/dist/bin/agentic-semantic-label.js +10 -10
  18. package/dist/bin/backfill-conversations.js +10 -10
  19. package/dist/bin/backfill-responses.js +10 -10
  20. package/dist/bin/backfill-vectors.js +14 -14
  21. package/dist/bin/bulk-sync-postgres.js +19 -19
  22. package/dist/bin/cc-doctor.js +10 -8
  23. package/dist/bin/cleanup-stale-review-tasks.js +26 -24
  24. package/dist/bin/cli.js +111 -25
  25. package/dist/bin/customer-readiness.js +1 -1
  26. package/dist/bin/deferred-daemon-restart.js +97 -90
  27. package/dist/bin/exe-agent-config.js +9 -8
  28. package/dist/bin/exe-agent.js +20 -20
  29. package/dist/bin/exe-assign.js +12 -12
  30. package/dist/bin/exe-boot.js +201 -68
  31. package/dist/bin/exe-call.js +7 -7
  32. package/dist/bin/exe-cloud.js +20 -20
  33. package/dist/bin/exe-config-dump.js +9 -8
  34. package/dist/bin/exe-dispatch.js +26 -24
  35. package/dist/bin/exe-doctor.js +10 -6
  36. package/dist/bin/exe-export-behaviors.js +11 -11
  37. package/dist/bin/exe-forget.js +12 -10
  38. package/dist/bin/exe-gateway.js +15 -10
  39. package/dist/bin/exe-grant.js +5 -5
  40. package/dist/bin/exe-healthcheck.js +14 -8
  41. package/dist/bin/exe-heartbeat.js +29 -28
  42. package/dist/bin/exe-kill.js +31 -29
  43. package/dist/bin/exe-launch-agent.js +129 -68
  44. package/dist/bin/exe-memory-reads.js +257 -0
  45. package/dist/bin/exe-new-employee.js +12 -11
  46. package/dist/bin/exe-pending-messages.js +27 -25
  47. package/dist/bin/exe-pending-notifications.js +26 -24
  48. package/dist/bin/exe-pending-reviews.js +26 -24
  49. package/dist/bin/exe-rename.js +7 -7
  50. package/dist/bin/exe-review.js +30 -28
  51. package/dist/bin/exe-search.js +11 -9
  52. package/dist/bin/exe-session-cleanup.js +116 -86
  53. package/dist/bin/exe-settings.js +24 -23
  54. package/dist/bin/exe-start-codex.js +163 -41
  55. package/dist/bin/exe-start-opencode.js +15 -15
  56. package/dist/bin/exe-status.js +27 -25
  57. package/dist/bin/exe-support.js +5 -5
  58. package/dist/bin/exe-team.js +5 -5
  59. package/dist/bin/exe-timers.js +32 -213
  60. package/dist/bin/exe-watchdog.js +6 -5
  61. package/dist/bin/git-sweep.js +27 -25
  62. package/dist/bin/graph-backfill.js +9 -9
  63. package/dist/bin/graph-export.js +9 -9
  64. package/dist/bin/import-history.js +11 -11
  65. package/dist/bin/install.js +102 -95
  66. package/dist/bin/intercom-check.js +4 -4
  67. package/dist/bin/mcp-sessions.js +2 -2
  68. package/dist/bin/orchestration-metrics.js +6 -6
  69. package/dist/bin/postgres-agentic-reflection-backfill.js +5 -5
  70. package/dist/bin/postgres-agentic-semantic-backfill.js +7 -7
  71. package/dist/bin/pre-publish.js +5 -3
  72. package/dist/bin/reconcile-backlog.js +484 -0
  73. package/dist/bin/registry-proxy.js +1 -1
  74. package/dist/bin/scan-tasks.js +26 -24
  75. package/dist/bin/setup.js +6 -5
  76. package/dist/bin/shard-migrate.js +9 -9
  77. package/dist/bin/stack-update.js +15 -9
  78. package/dist/bin/update.js +1 -1
  79. package/dist/bin/vps-health-gate.js +1 -1
  80. package/dist/boot-generation-BL2ISK4U.js +22 -0
  81. package/dist/boot-review-sections-DBMQJT5N.js +107 -0
  82. package/dist/branch-hygiene-TZWK6QCF.js +224 -0
  83. package/dist/{branding-JTEOF4ZV.js → branding-DVXBGVDH.js} +3 -3
  84. package/dist/{browser-session-store-CXQMOSEC.js → browser-session-store-B2NR3LIX.js} +2 -1
  85. package/dist/{capability-cards-YOKVMMOL.js → capability-cards-DN5UIKVN.js} +4 -4
  86. package/dist/{capacity-monitor-S54IOWRL.js → capacity-monitor-ZG5GGFR2.js} +27 -25
  87. package/dist/{catchup-brief-DRRQCMKA.js → catchup-brief-D6HH6DWS.js} +32 -29
  88. package/dist/{support-outbox-MGUVVGHT.js → chunk-25X4JD2V.js} +28 -12
  89. package/dist/{chunk-IYB2NIW3.js → chunk-2KZNGDSW.js} +1 -1
  90. package/dist/{chunk-FUIIVSW6.js → chunk-2WAVZ5UJ.js} +1 -1
  91. package/dist/{chunk-K5WFKEXQ.js → chunk-2ZYO73KO.js} +4 -3
  92. package/dist/{chunk-CLAYNAXC.js → chunk-3EUMUSLE.js} +1 -1
  93. package/dist/{chunk-BVV6NHKQ.js → chunk-3SW4OEHB.js} +5 -5
  94. package/dist/{task-enforcement-VI7L43DC.js → chunk-4CMVFVFC.js} +173 -69
  95. package/dist/{chunk-BU2QQWBQ.js → chunk-4J4PMPXZ.js} +3 -2
  96. package/dist/{chunk-JD5S5AAV.js → chunk-4N2NRGCM.js} +2 -2
  97. package/dist/chunk-4QCFFW2H.js +378 -0
  98. package/dist/{chunk-7EA7LYW4.js → chunk-4VSV5P4D.js} +4 -4
  99. package/dist/{chunk-52KNOQMK.js → chunk-4ZCD2UWW.js} +39 -10
  100. package/dist/{chunk-DZ6OQM67.js → chunk-5ERDIOV3.js} +2 -2
  101. package/dist/chunk-5H47VHB7.js +30 -0
  102. package/dist/{chunk-UCQITDLM.js → chunk-5TY4FPH6.js} +1 -1
  103. package/dist/{chunk-R44Z32O2.js → chunk-6CH3TPHR.js} +2 -2
  104. package/dist/{chunk-WYLV4S6A.js → chunk-6WQ3NNCE.js} +3 -3
  105. package/dist/{chunk-HHIBOU3P.js → chunk-6XWTQUO4.js} +1 -1
  106. package/dist/chunk-76CJBM36.js +88 -0
  107. package/dist/{chunk-H2L4PHGH.js → chunk-7CTRGNLW.js} +2 -2
  108. package/dist/{chunk-XUKPALWT.js → chunk-7V4JADD6.js} +2 -2
  109. package/dist/{chunk-RMOBQ6A5.js → chunk-AD2VCHSS.js} +1 -1
  110. package/dist/{chunk-QXSBB26A.js → chunk-AJYCFKJR.js} +1 -1
  111. package/dist/chunk-AM7S2TY6.js +54 -0
  112. package/dist/{chunk-HEPR6QTL.js → chunk-AOHXREB7.js} +334 -66
  113. package/dist/{chunk-FNZR3B7U.js → chunk-ASAFVDVR.js} +1 -1
  114. package/dist/{chunk-TALWBVZE.js → chunk-BUCXNV32.js} +1 -1
  115. package/dist/{chunk-SHIICYJW.js → chunk-BYTDMAGB.js} +4 -2
  116. package/dist/{chunk-32SXNM3G.js → chunk-C5QAPURN.js} +1 -1
  117. package/dist/{chunk-XCTGRD4S.js → chunk-CE7F6RHG.js} +587 -77
  118. package/dist/{chunk-7WPOJDTA.js → chunk-CNVBKDEY.js} +21 -15
  119. package/dist/{chunk-KPIN44GZ.js → chunk-CWXVH7WV.js} +1 -1
  120. package/dist/chunk-D74XYSA3.js +621 -0
  121. package/dist/{chunk-A47MXY2I.js → chunk-EQHQF5IM.js} +50 -32
  122. package/dist/{chunk-AOO77BDE.js → chunk-EUS4QUKP.js} +1 -1
  123. package/dist/{chunk-RLRT2BVM.js → chunk-EV46QTD3.js} +1 -1
  124. package/dist/{chunk-PAEXYFMY.js → chunk-F27XXN6C.js} +1 -1
  125. package/dist/{chunk-XQNNB5GY.js → chunk-F55P3H4S.js} +37 -2
  126. package/dist/{chunk-MWZFF3Q7.js → chunk-F5O7V7UK.js} +1 -1
  127. package/dist/{chunk-LMZISHSJ.js → chunk-FPFPLPUY.js} +6 -6
  128. package/dist/{chunk-7TS64TBG.js → chunk-G4RGKBCA.js} +8 -3
  129. package/dist/{chunk-4IYSBPX3.js → chunk-G5T6KDG4.js} +1 -1
  130. package/dist/{chunk-7WDXEKUL.js → chunk-GBTTBXAF.js} +4 -4
  131. package/dist/{chunk-6MRWJMI5.js → chunk-GDIJE6D7.js} +1 -1
  132. package/dist/{chunk-AVKXCSBI.js → chunk-GG5NDQNN.js} +2 -2
  133. package/dist/{chunk-I3XKO3KQ.js → chunk-GJ26DULE.js} +2 -2
  134. package/dist/chunk-GL57PO3K.js +104 -0
  135. package/dist/chunk-GWDSB25T.js +6 -0
  136. package/dist/{chunk-F55JF43M.js → chunk-H6BV5TKD.js} +39 -24
  137. package/dist/{chunk-HCJCW7X4.js → chunk-H7I47RS5.js} +34 -1
  138. package/dist/{chunk-65SVQELL.js → chunk-HA5R6USD.js} +31 -5
  139. package/dist/{chunk-VJHUVFIW.js → chunk-HAF2DJYV.js} +3 -3
  140. package/dist/chunk-HJ447YER.js +224 -0
  141. package/dist/chunk-HV4KESRY.js +395 -0
  142. package/dist/{chunk-B76TSEP3.js → chunk-I26FWCSP.js} +216 -9
  143. package/dist/{chunk-X2FHTDIU.js → chunk-IBYL4DHM.js} +1 -1
  144. package/dist/{chunk-JCBKARSK.js → chunk-IOEUAQWP.js} +1 -1
  145. package/dist/{chunk-MW2GJJ53.js → chunk-JGIPOUIK.js} +3 -3
  146. package/dist/{chunk-2233TQCA.js → chunk-JLZ4RYSD.js} +2 -2
  147. package/dist/{chunk-Q7L6G6KV.js → chunk-JMYHW3AL.js} +2 -2
  148. package/dist/{chunk-OJTJYEMX.js → chunk-JPUZPAAF.js} +4 -4
  149. package/dist/{chunk-XWHE4LZK.js → chunk-JTBIS4R5.js} +21 -2
  150. package/dist/{chunk-5Z5NATNS.js → chunk-K7KFGDWF.js} +1 -1
  151. package/dist/{chunk-UIV2WPBT.js → chunk-KGWRTRKC.js} +2 -2
  152. package/dist/{chunk-KTPG4XKI.js → chunk-KP3U5QGJ.js} +1 -1
  153. package/dist/{chunk-TLYAEISW.js → chunk-KW2SD2FL.js} +2 -2
  154. package/dist/{chunk-X7H3HMFH.js → chunk-KWZMQACA.js} +11 -7
  155. package/dist/{chunk-OFX5B2S7.js → chunk-L2R3LN2P.js} +1 -1
  156. package/dist/{chunk-T4KZ2Z2N.js → chunk-L4A5DL6Z.js} +3 -3
  157. package/dist/{chunk-X425OEYF.js → chunk-LU2FALL6.js} +3 -3
  158. package/dist/{chunk-6M36JFFD.js → chunk-MKYFAKDW.js} +4 -4
  159. package/dist/{chunk-I5RLNOFK.js → chunk-MOPUCPXK.js} +12 -4
  160. package/dist/{chunk-ZIVEA3NB.js → chunk-MR6LHP4F.js} +1 -1
  161. package/dist/chunk-MVYB76QG.js +341 -0
  162. package/dist/{chunk-2SG2UGCH.js → chunk-MZM6EJCU.js} +4 -4
  163. package/dist/{chunk-ZREGOV2Q.js → chunk-N7QJKQMX.js} +258 -14
  164. package/dist/{chunk-QLFRCA6I.js → chunk-NBZL5CGA.js} +93 -12
  165. package/dist/{chunk-QFPTDSY2.js → chunk-NN2B2QKU.js} +1 -1
  166. package/dist/chunk-NX5INHHG.js +40 -0
  167. package/dist/{chunk-B75BOKEI.js → chunk-NXUSDL37.js} +2 -2
  168. package/dist/{chunk-TPHCZDE3.js → chunk-O5V57XYE.js} +1 -1
  169. package/dist/chunk-O7LWR36Z.js +269 -0
  170. package/dist/{chunk-ATOU6CYR.js → chunk-OLMQ4UOF.js} +57 -11
  171. package/dist/{chunk-6HBURYON.js → chunk-OTF44GXL.js} +4 -4
  172. package/dist/{chunk-DILD54TU.js → chunk-OZEBAGKR.js} +277 -137
  173. package/dist/{chunk-DADMPMYX.js → chunk-P5HIWY2E.js} +1 -1
  174. package/dist/{chunk-EIF2LQHZ.js → chunk-PDWS3E22.js} +55 -4
  175. package/dist/{chunk-KTY7I7UH.js → chunk-PPCDBE6Z.js} +1 -1
  176. package/dist/{chunk-XACL67CS.js → chunk-PQIDGXSG.js} +13 -4
  177. package/dist/chunk-PWUFMX75.js +186 -0
  178. package/dist/{chunk-UPWE5NOG.js → chunk-QDGZJ653.js} +3 -3
  179. package/dist/{chunk-MQRFKSLI.js → chunk-QOO5RW3K.js} +6 -5
  180. package/dist/{chunk-KCC5A7YL.js → chunk-QQ4E2RYW.js} +95 -18
  181. package/dist/{chunk-BPC5LZ6Y.js → chunk-QRYVCDWS.js} +2 -2
  182. package/dist/{chunk-Z42MXYWW.js → chunk-QWVXN224.js} +110 -28
  183. package/dist/{chunk-542EWGY3.js → chunk-QYZJHTNE.js} +26 -27
  184. package/dist/{chunk-I7Z6KTGF.js → chunk-R2NN3JKH.js} +43 -6
  185. package/dist/{chunk-3OBWSCJN.js → chunk-RACAOE2Z.js} +14 -14
  186. package/dist/{chunk-5RACW3LX.js → chunk-RAXVPNMR.js} +1 -1
  187. package/dist/{chunk-2HZY3ECT.js → chunk-RHWZUUS4.js} +6 -6
  188. package/dist/{chunk-RNAYCUNM.js → chunk-S3THSOWV.js} +1 -1
  189. package/dist/{chunk-W7DHFGCB.js → chunk-S7QUM2UK.js} +2 -2
  190. package/dist/{chunk-SSTLTIF3.js → chunk-SKGMF2SO.js} +25 -2
  191. package/dist/{chunk-GN45PBWI.js → chunk-SQKXKV2Y.js} +2 -2
  192. package/dist/{chunk-QZLIZAS7.js → chunk-TLT7NZCW.js} +4 -4
  193. package/dist/chunk-TTCUG2CF.js +91 -0
  194. package/dist/chunk-UEA3LXOB.js +40 -0
  195. package/dist/{chunk-DRCRZIIJ.js → chunk-UNXQBELK.js} +1 -1
  196. package/dist/{chunk-PLRIJALF.js → chunk-UP75Z5X7.js} +921 -176
  197. package/dist/{chunk-TNJRWUCE.js → chunk-USSB56WK.js} +1 -1
  198. package/dist/{chunk-KMBEL7VB.js → chunk-UUEKJDK6.js} +90 -10
  199. package/dist/{chunk-XJI7Z6LZ.js → chunk-UUQBZPJJ.js} +1 -1
  200. package/dist/{chunk-RRWDYOQS.js → chunk-V3EEVY4L.js} +1 -1
  201. package/dist/{chunk-N5I7RL3I.js → chunk-VPZHJCKW.js} +2 -2
  202. package/dist/chunk-VRAQTFD6.js +265 -0
  203. package/dist/{chunk-H37HHX3E.js → chunk-VSRPS3J7.js} +14 -14
  204. package/dist/{chunk-5ZNY7IZI.js → chunk-WMESXBJM.js} +37 -3
  205. package/dist/{chunk-54QCG45Y.js → chunk-WOYADZF5.js} +56 -5
  206. package/dist/{chunk-7Y5UDEVM.js → chunk-WZHZCDDO.js} +6 -5
  207. package/dist/{chunk-3NGZ4PL7.js → chunk-X2Q5NLUL.js} +11 -2
  208. package/dist/{chunk-YE7NH53A.js → chunk-X33NYQYJ.js} +2 -2
  209. package/dist/{chunk-UXBD22CD.js → chunk-XHK3FS3W.js} +3 -2
  210. package/dist/{chunk-3QDSCJ3F.js → chunk-XZXBB3TN.js} +2 -2
  211. package/dist/{chunk-JSKBHUR7.js → chunk-YCANDMI2.js} +2 -2
  212. package/dist/{chunk-JBSCL2XT.js → chunk-YLXTKI6M.js} +1 -1
  213. package/dist/{chunk-G7WO77Z2.js → chunk-YTCFACP4.js} +812 -896
  214. package/dist/{chunk-LTVCRHHD.js → chunk-Z6RSN7KS.js} +7 -6
  215. package/dist/{cleanup-graph-garbage-KUABW6LS.js → cleanup-graph-garbage-XWUFAMFO.js} +6 -6
  216. package/dist/{co-activation-XMPHKGHR.js → co-activation-ZCHPLLP6.js} +4 -4
  217. package/dist/{co-occurrence-SHKSJ6CV.js → co-occurrence-KG3LKALN.js} +4 -4
  218. package/dist/{code-context-index-EXXDY3QZ.js → code-context-index-WSOJQ72R.js} +5 -5
  219. package/dist/{content-extractor-RHITF2KM.js → content-extractor-NXYNEF5K.js} +2 -2
  220. package/dist/{conversation-wiki-populator-WU4HEQ7C.js → conversation-wiki-populator-WQN3IUU6.js} +1 -1
  221. package/dist/{crdt-sync-UJELKSNX.js → crdt-sync-4PFGPZXV.js} +8 -1
  222. package/dist/{crm-webhook-HHNBS7LY.js → crm-webhook-II7Z45Q6.js} +2 -2
  223. package/dist/cto-delegation-gate-JWWOJPNC.js +669 -0
  224. package/dist/{daemon-auth-7IFSV5FG.js → daemon-auth-3FEAHFWC.js} +5 -3
  225. package/dist/{daemon-orchestration-7QB6QOXT.js → daemon-orchestration-FX4XZDR5.js} +46 -27
  226. package/dist/{daemon-ready-5XI5BIJD.js → daemon-ready-4JTSFKAY.js} +1 -1
  227. package/dist/{daemon-ready-signal-E7VMIQ6I.js → daemon-ready-signal-LPAZWQOV.js} +5 -1
  228. package/dist/daemon-restart-circuit-breaker-PEGEIP6H.js +35 -0
  229. package/dist/daemon-timer-report-NM44WQRH.js +25 -0
  230. package/dist/{db-backup-DLD4QZBO.js → db-backup-W2QFSYQC.js} +15 -5
  231. package/dist/{db-restore-events-JVEEP52Z.js → db-restore-events-MQ2DBGEQ.js} +2 -2
  232. package/dist/dispatch-ack-VYH3ONSS.js +27 -0
  233. package/dist/{doc-graph-extractor-3TRLGD7M.js → doc-graph-extractor-F6ODFIID.js} +4 -4
  234. package/dist/{documents-FHIBU7KJ.js → documents-23WX2FPQ.js} +12 -12
  235. package/dist/dreaming-NWD22UQ5.js +46 -0
  236. package/dist/{exe-drift-KY2KHZEL.js → exe-drift-CW72FBGE.js} +5 -5
  237. package/dist/{exe-export-SP6G3QF6.js → exe-export-AUJ7CV7G.js} +11 -11
  238. package/dist/{exe-import-KJU7FBVQ.js → exe-import-JX4I52VE.js} +11 -11
  239. package/dist/{exe-key-M6TYHNUW.js → exe-key-2N6LY2BU.js} +241 -226
  240. package/dist/{exe-org-BGZNNE4H.js → exe-org-X4CSNCKS.js} +3 -3
  241. package/dist/{exe-snapshot-ZNPGUKRZ.js → exe-snapshot-XZ7FVCYZ.js} +31 -29
  242. package/dist/{fast-db-init-QQB6IVWV.js → fast-db-init-4CWHSOOR.js} +1 -1
  243. package/dist/{founder-context-PQR3BUS7.js → founder-context-7L3CFPYN.js} +4 -4
  244. package/dist/gateway/index.js +14 -14
  245. package/dist/{gateway-client-GRBOJQYC.js → gateway-client-7LMZKHTH.js} +1 -1
  246. package/dist/git-main-guard-UZP3KXYI.js +39 -0
  247. package/dist/{git-staleness-UGB5J3K7.js → git-staleness-CI2R4QOJ.js} +4 -4
  248. package/dist/{global-procedures-R7KRREEK.js → global-procedures-XQX3LUH6.js} +6 -6
  249. package/dist/{graph-auto-extract-LKIQ57PL.js → graph-auto-extract-OURWMGBS.js} +4 -4
  250. package/dist/{hook-integrity-WURH6DS3.js → hook-integrity-XY47IM7G.js} +1 -1
  251. package/dist/hook-prefetch-PHRRKY4C.js +137 -0
  252. package/dist/hooks/bug-report-worker.js +32 -28
  253. package/dist/hooks/codex-stop-task-finalizer.js +32 -28
  254. package/dist/hooks/commit-complete.js +29 -27
  255. package/dist/hooks/error-recall.js +12 -11
  256. package/dist/hooks/exe-heartbeat-hook.js +6 -6
  257. package/dist/hooks/ingest-worker.js +11 -11
  258. package/dist/hooks/ingest.js +18 -18
  259. package/dist/hooks/instructions-loaded.js +7 -7
  260. package/dist/hooks/manifest.json +20 -20
  261. package/dist/hooks/notification.js +7 -7
  262. package/dist/hooks/post-compact.js +28 -26
  263. package/dist/hooks/post-tool-combined.js +12 -12
  264. package/dist/hooks/pre-compact.js +29 -27
  265. package/dist/hooks/pre-tool-use.js +180 -47
  266. package/dist/hooks/prompt-submit.js +324 -273
  267. package/dist/hooks/session-end.js +35 -33
  268. package/dist/hooks/session-start.js +28 -21
  269. package/dist/hooks/stop.js +35 -33
  270. package/dist/hooks/subagent-stop.js +28 -26
  271. package/dist/hooks/summary-worker.js +36 -34
  272. package/dist/index.js +39 -37
  273. package/dist/{installer-SB2N5NKH.js → installer-G3JAO3NT.js} +9 -9
  274. package/dist/{installer-MZWWBXM6.js → installer-JND3RJ6Q.js} +9 -9
  275. package/dist/{installer-MNPXDLGG.js → installer-L7EVH5U5.js} +9 -9
  276. package/dist/{intercom-queue-VU2G6F5R.js → intercom-queue-ZFEQALR3.js} +25 -23
  277. package/dist/{key-backup-status-TNEHXA2X.js → key-backup-status-LOSMVATJ.js} +2 -2
  278. package/dist/lib/agent-config.js +4 -3
  279. package/dist/lib/cloud-sync.js +19 -19
  280. package/dist/lib/config.js +2 -2
  281. package/dist/lib/consolidation.js +9 -9
  282. package/dist/lib/crypto.js +3 -3
  283. package/dist/lib/database.js +6 -4
  284. package/dist/lib/db-daemon-client.js +5 -5
  285. package/dist/lib/db-read-worker-client.js +9 -3
  286. package/dist/lib/db.js +6 -4
  287. package/dist/lib/device-registry.js +3 -3
  288. package/dist/lib/embed-worker.js +2 -2
  289. package/dist/lib/embedder.js +5 -5
  290. package/dist/lib/employee-templates.js +7 -7
  291. package/dist/lib/employees.js +10 -4
  292. package/dist/lib/exe-daemon-client.js +4 -4
  293. package/dist/lib/exe-daemon.js +651 -158
  294. package/dist/lib/hybrid-search.js +11 -9
  295. package/dist/lib/identity.js +4 -4
  296. package/dist/lib/keychain.js +1 -1
  297. package/dist/lib/license.js +4 -4
  298. package/dist/lib/messaging.js +28 -24
  299. package/dist/lib/post-tool-memory.js +3 -3
  300. package/dist/lib/registry-proxy.js +1 -1
  301. package/dist/lib/reminders.js +15 -7
  302. package/dist/lib/schedules.js +9 -9
  303. package/dist/lib/session-registry.js +6 -6
  304. package/dist/lib/skill-learning.js +10 -10
  305. package/dist/lib/status-brief.js +4 -4
  306. package/dist/lib/store.js +8 -8
  307. package/dist/lib/task-router.js +5 -5
  308. package/dist/lib/tasks.js +29 -25
  309. package/dist/lib/tmux-routing.js +56 -25
  310. package/dist/lib/tmux-status.js +9 -3
  311. package/dist/lib/tmux-transport.js +1 -1
  312. package/dist/lib/token-spend.js +5 -5
  313. package/dist/lib/transport.js +2 -2
  314. package/dist/lib/ws-client.js +1 -1
  315. package/dist/{license-gate-BYDMFMFT.js → license-gate-QTRQHV4F.js} +5 -5
  316. package/dist/{license-sync-N3RNYVP2.js → license-sync-N3UJFWAW.js} +4 -4
  317. package/dist/mcp/register-tools.js +96 -89
  318. package/dist/mcp/server.js +98 -91
  319. package/dist/mcp/tools/complete-reminder.js +6 -6
  320. package/dist/mcp/tools/create-reminder.js +6 -6
  321. package/dist/mcp/tools/create-task.js +37 -28
  322. package/dist/mcp/tools/deactivate-behavior.js +11 -11
  323. package/dist/mcp/tools/list-reminders.js +6 -6
  324. package/dist/mcp/tools/list-tasks.js +35 -29
  325. package/dist/mcp/tools/send-message.js +28 -26
  326. package/dist/mcp/tools/update-task.js +34 -28
  327. package/dist/{mcp-http-config-EMAVS2JI.js → mcp-http-config-BDL36JZ3.js} +6 -6
  328. package/dist/{mcp-port-config-FFAMMLLE.js → mcp-port-config-6HYY6J7K.js} +2 -2
  329. package/dist/mcp-session-identity-T7H2EKFQ.js +177 -0
  330. package/dist/{memory-cards-TQRLZI4D.js → memory-cards-ZRDW7QBX.js} +8 -8
  331. package/dist/{memory-graph-extractor-IWGNVAFU.js → memory-graph-extractor-QLXDMHRS.js} +5 -5
  332. package/dist/{memory-poisoning-defense-T4ITBGSG.js → memory-poisoning-defense-HJTXYCWH.js} +4 -4
  333. package/dist/{memory-pressure-watchdog-RRIAXPXQ.js → memory-pressure-watchdog-HN5X7AVN.js} +76 -37
  334. package/dist/{memory-queue-X2CSEAKE.js → memory-queue-2UOOF27L.js} +5 -3
  335. package/dist/{memory-queue-client-BKQHTYTH.js → memory-queue-client-O5U6F6XP.js} +6 -6
  336. package/dist/{memory-reflection-6N4J2FL7.js → memory-reflection-WVNFBJAA.js} +4 -4
  337. package/dist/{monitor-grants-RZOVSYVO.js → monitor-grants-E3ELDEWD.js} +5 -5
  338. package/dist/{monitor-identity-MOXISYNG.js → monitor-identity-GLFZSEAH.js} +2 -2
  339. package/dist/notification-ledger-SZEPGJQ7.js +409 -0
  340. package/dist/{notifications-KONB3C62.js → notifications-4UT53CDG.js} +25 -23
  341. package/dist/{orchestration-events-5SIJOE4H.js → orchestration-events-WV4NWKZH.js} +5 -5
  342. package/dist/{orchestration-phase-CXRCBCK7.js → orchestration-phase-AWBXPO52.js} +3 -3
  343. package/dist/orchestrator-UAC3RW2T.js +47 -0
  344. package/dist/{pipeline-router-O6HU7DKH.js → pipeline-router-LM53NMWJ.js} +5 -5
  345. package/dist/{plan-limits-GRNBOBB3.js → plan-limits-2FEY2GOS.js} +7 -7
  346. package/dist/platform-procedures-X5DFJFV7.js +13 -0
  347. package/dist/{preferences-TYTGDXQZ.js → preferences-TWIXZBKS.js} +2 -2
  348. package/dist/{project-boot-SD7GM24K.js → project-boot-4NUH5FRU.js} +2 -2
  349. package/dist/{projection-worker-ZVOFHTXT.js → projection-worker-FZ7YSN3G.js} +5 -5
  350. package/dist/{prospective-memory-W6S67LZZ.js → prospective-memory-6D2ASWM3.js} +4 -4
  351. package/dist/{push-notifications-W5JRXLKJ.js → push-notifications-U6FIBQRW.js} +3 -3
  352. package/dist/{reranker-QATGTAPC.js → reranker-GYYRPANK.js} +3 -3
  353. package/dist/{retrieval-health-TWHKYCRK.js → retrieval-health-4Z242P3B.js} +1 -1
  354. package/dist/{review-polling-PCMD5BFN.js → review-polling-HXAFJZDA.js} +26 -24
  355. package/dist/runtime/index.js +37 -35
  356. package/dist/{session-events-3LCVQEL7.js → session-events-O3BV56ZX.js} +26 -24
  357. package/dist/{session-kill-telemetry-CZSPN5V6.js → session-kill-telemetry-AELE4JDK.js} +26 -24
  358. package/dist/session-mcp-config-YKNXG5DW.js +50 -0
  359. package/dist/{session-scope-CFHVSVAQ.js → session-scope-5EAPUT45.js} +25 -23
  360. package/dist/setup-wizard-NB6R4QVS.js +14 -0
  361. package/dist/{shard-manager-MBWQEYNG.js → shard-manager-35PWFR3B.js} +3 -3
  362. package/dist/{skill-refinement-74T6VDFM.js → skill-refinement-DVSYXBBP.js} +5 -5
  363. package/dist/stack-promote-RSOWO6EY.js +130 -0
  364. package/dist/{stack-release-XXMV7SPX.js → stack-release-HGFFFCGC.js} +112 -22
  365. package/dist/{stack-update-E2TKHHSQ.js → stack-update-ATCJFOEK.js} +7 -5
  366. package/dist/{steward-gate-WT7WXQIE.js → steward-gate-3GQ5XKMJ.js} +5 -5
  367. package/dist/support-inbox-4L62P4EP.js +33 -0
  368. package/dist/support-outbox-WHGPUYL2.js +16 -0
  369. package/dist/task-enforcement-IPIZX2MM.js +90 -0
  370. package/dist/{task-scope-CQEG5SSJ.js → task-scope-FOIW25HR.js} +27 -23
  371. package/dist/{tasks-crud-UGK5A25L.js → tasks-crud-HBDKE6C5.js} +35 -23
  372. package/dist/tasks-notify-G2U2U2YA.js +53 -0
  373. package/dist/{tasks-review-JKBRACII.js → tasks-review-27SFX5XN.js} +27 -23
  374. package/dist/{telemetry-upload-7LBYGPCB.js → telemetry-upload-ZOXHRWR5.js} +9 -9
  375. package/dist/tmux-command-guard-KSJKIX3C.js +117 -0
  376. package/dist/{token-budget-QBRJR4M5.js → token-budget-5Y4YPDO3.js} +5 -5
  377. package/dist/{tool-capability-index-Q6YQDL7I.js → tool-capability-index-VYF5GNJ2.js} +1 -1
  378. package/dist/{tool-telemetry-ULIDUK3P.js → tool-telemetry-KBXSBDTK.js} +1 -1
  379. package/dist/tui/App.js +40 -38
  380. package/dist/{tui-data-NPTGKT37.js → tui-data-NLFMBIQI.js} +25 -23
  381. package/dist/{update-check-HFO4VHO4.js → update-check-3FHAWIG2.js} +7 -3
  382. package/dist/update-support-UVUSZG7R.js +355 -0
  383. package/dist/{whatsapp-accounts-BWRZUY23.js → whatsapp-accounts-BFIOXYW5.js} +1 -1
  384. package/dist/{whatsapp-config-GOSELKTE.js → whatsapp-config-FAX6EA5K.js} +20 -13
  385. package/dist/{worker-gate-MXUQUG4M.js → worker-gate-3KUBAU32.js} +3 -3
  386. package/dist/{workflow-engine-EWCOLD47.js → workflow-engine-YITHXZR5.js} +2 -2
  387. package/dist/{working-memory-PY4AG577.js → working-memory-NUVB5SFV.js} +1 -1
  388. package/dist/worktree-LL62PLQB.js +47 -0
  389. package/dist/{worktree-sweep-ZAG3V24E.js → worktree-sweep-WTK3MTKH.js} +7 -7
  390. package/package.json +3 -2
  391. package/release-notes.json +86 -76
  392. package/dist/branch-hygiene-R5NVTRAY.js +0 -138
  393. package/dist/chunk-6IRVGOUL.js +0 -30
  394. package/dist/chunk-HMP5VT6A.js +0 -118
  395. package/dist/chunk-PVYR4FCQ.js +0 -113
  396. package/dist/chunk-UFAXZ2PY.js +0 -138
  397. package/dist/chunk-Y25OJWOQ.js +0 -45
  398. package/dist/chunk-YGAAZN3E.js +0 -47
  399. package/dist/cto-delegation-gate-DXNF5HVW.js +0 -290
  400. package/dist/dispatch-ack-4S44HBWB.js +0 -15
  401. package/dist/dreaming-OMFUEUCQ.js +0 -44
  402. package/dist/orchestrator-DUUX7FQV.js +0 -45
  403. package/dist/setup-wizard-TOFEJPLF.js +0 -13
  404. package/dist/tasks-notify-SMLDFBWM.js +0 -50
  405. package/dist/worktree-GVF2I5FP.js +0 -31
  406. /package/dist/{chunk-FLNSJ2TC.js → chunk-GIBYNT6W.js} +0 -0
  407. /package/dist/{chunk-NQBRGXYR.js → chunk-JRM4TAGS.js} +0 -0
  408. /package/dist/{chunk-WHRTDN5J.js → chunk-MGGOSFCR.js} +0 -0
  409. /package/dist/{chunk-D3QASX2W.js → chunk-QIFYLIUF.js} +0 -0
  410. /package/dist/{chunk-OADURIIN.js → chunk-WTH4CSAP.js} +0 -0
  411. /package/dist/{core-memory-VO5ZIBKH.js → core-memory-GAC6EWOQ.js} +0 -0
  412. /package/dist/{entity-boost-DNI4A5I7.js → entity-boost-NT6UO2Z3.js} +0 -0
  413. /package/dist/{message-queue-client-Q5BW3O5W.js → message-queue-client-4EOQRUXW.js} +0 -0
  414. /package/dist/{oauth-server-ROQFOEMM.js → oauth-server-67YBDP32.js} +0 -0
  415. /package/dist/{webhook-pipe-FZYLO6RR.js → webhook-pipe-LEXMUQ5B.js} +0 -0
  416. /package/dist/{wiki-acl-JA5UCQZ4.js → wiki-acl-74BLWG6J.js} +0 -0
  417. /package/dist/{wiki-client-VNDOBK63.js → wiki-client-EAN7F5LV.js} +0 -0
@@ -8,7 +8,7 @@ process.on("unhandledRejection", (err) => {
8
8
  process.exit(1);
9
9
  });
10
10
  try {
11
- const { verifyOrBlock } = await import("../hook-integrity-WURH6DS3.js");
11
+ const { verifyOrBlock } = await import("../hook-integrity-XY47IM7G.js");
12
12
  if (!await verifyOrBlock(new URL(import.meta.url).pathname)) process.exit(2);
13
13
  } catch (err) {
14
14
  const code = err?.code;
@@ -44,10 +44,10 @@ process.stdin.on("end", async () => {
44
44
  const payload = JSON.parse(input);
45
45
  const { detectError } = await import("../lib/error-detector.js");
46
46
  if (detectError(payload)) {
47
- const { isDaemonReady } = await import("../daemon-ready-signal-E7VMIQ6I.js");
47
+ const { isDaemonReady } = await import("../daemon-ready-signal-LPAZWQOV.js");
48
48
  if (isDaemonReady()) {
49
- const { initStore } = await import("../lib/store.js");
50
- await initStore({ lightweight: true });
49
+ const { fastDbInit } = await import("../fast-db-init-4CWHSOOR.js");
50
+ await fastDbInit({ daemonOnly: true });
51
51
  const errorText = JSON.stringify(payload.tool_response ?? payload.tool_result ?? "");
52
52
  const { lightweightSearch } = await import("../lib/hybrid-search.js");
53
53
  const results = await lightweightSearch(errorText.slice(0, 500), process.env.AGENT_ID, {
@@ -72,7 +72,7 @@ ${context}`
72
72
  try {
73
73
  const payload = JSON.parse(input);
74
74
  const toolName = String(payload.tool_name ?? "");
75
- const { getActiveAgent } = await import("../active-agent-WHIUCHLA.js");
75
+ const { getActiveAgent } = await import("../active-agent-TNIO6IY3.js");
76
76
  const driftAgent = getActiveAgent();
77
77
  if (driftAgent.agentId !== "default" && toolName) {
78
78
  const { existsSync: driftExists, readFileSync: driftRead, writeFileSync: driftWrite, mkdirSync: driftMkdir } = await import("fs");
@@ -128,7 +128,7 @@ You are **${driftAgent.agentId}**. You've used ${mismatches.length} tools outsid
128
128
  }
129
129
  try {
130
130
  const payload = JSON.parse(input);
131
- const { getActiveAgent: getInvAgent } = await import("../active-agent-WHIUCHLA.js");
131
+ const { getActiveAgent: getInvAgent } = await import("../active-agent-TNIO6IY3.js");
132
132
  const invAgent = getInvAgent();
133
133
  const { trackToolResult } = await import("../investigation-tracker-WSCY4XBP.js");
134
134
  trackToolResult({
@@ -145,7 +145,7 @@ You are **${driftAgent.agentId}**. You've used ${mismatches.length} tools outsid
145
145
  }
146
146
  try {
147
147
  const budgetData = JSON.parse(input);
148
- const { getActiveAgent: getBudgetAgent } = await import("../active-agent-WHIUCHLA.js");
148
+ const { getActiveAgent: getBudgetAgent } = await import("../active-agent-TNIO6IY3.js");
149
149
  const budgetAgent = getBudgetAgent();
150
150
  if (budgetAgent.agentId !== "default") {
151
151
  const budgetPath = await import("path");
@@ -168,7 +168,7 @@ You are **${driftAgent.agentId}**. You've used ${mismatches.length} tools outsid
168
168
  const toolOutputStr = JSON.stringify(budgetData.tool_response ?? budgetData.tool_result ?? {});
169
169
  const estimatedInputTokens = Math.ceil(toolInputStr.length / 4);
170
170
  const estimatedOutputTokens = Math.ceil(toolOutputStr.length / 4);
171
- const { createTokenBudgetMiddleware } = await import("../token-budget-QBRJR4M5.js");
171
+ const { createTokenBudgetMiddleware } = await import("../token-budget-5Y4YPDO3.js");
172
172
  const middleware = createTokenBudgetMiddleware(cached.taskId);
173
173
  const budgetResult = await middleware.onTokenUsed(estimatedInputTokens, estimatedOutputTokens);
174
174
  if (budgetResult.warned) {
@@ -197,12 +197,12 @@ Your task token budget has been reached (${budgetResult.percentUsed}% used). Wra
197
197
  }
198
198
  try {
199
199
  const data = JSON.parse(input);
200
- const { getActiveAgent } = await import("../active-agent-WHIUCHLA.js");
200
+ const { getActiveAgent } = await import("../active-agent-TNIO6IY3.js");
201
201
  const { detectError } = await import("../lib/error-detector.js");
202
202
  const agent = getActiveAgent();
203
203
  try {
204
- const { fastDbInit } = await import("../fast-db-init-QQB6IVWV.js");
205
- const { recordSessionEvent } = await import("../session-events-3LCVQEL7.js");
204
+ const { fastDbInit } = await import("../fast-db-init-4CWHSOOR.js");
205
+ const { recordSessionEvent } = await import("../session-events-O3BV56ZX.js");
206
206
  const client = await fastDbInit({ daemonOnly: true });
207
207
  const toolName = String(data.tool_name ?? "unknown");
208
208
  const toolInput = JSON.stringify(data.tool_input ?? {});
@@ -226,7 +226,7 @@ result: ${toolResponse.slice(0, 8e3)}`,
226
226
  }
227
227
  const { loadConfigSync } = await import("../lib/config.js");
228
228
  if (loadConfigSync().autoIngestion) {
229
- const { writeMemoryViaDaemon } = await import("../memory-queue-client-BKQHTYTH.js");
229
+ const { writeMemoryViaDaemon } = await import("../memory-queue-client-O5U6F6XP.js");
230
230
  const { buildPostToolMemoryEntry } = await import("../lib/post-tool-memory.js");
231
231
  const entry = buildPostToolMemoryEntry(data, agent);
232
232
  if (entry) await writeMemoryViaDaemon(entry);
@@ -1,50 +1,52 @@
1
1
  import {
2
2
  checkpointActiveTask,
3
3
  writeContinuityCheckpoint
4
- } from "../chunk-TNJRWUCE.js";
4
+ } from "../chunk-USSB56WK.js";
5
5
  import "../chunk-SH45SJQW.js";
6
6
  import {
7
7
  getActiveAgent
8
- } from "../chunk-DZ6OQM67.js";
8
+ } from "../chunk-5ERDIOV3.js";
9
9
  import {
10
10
  sessionScopeFilter
11
- } from "../chunk-PLRIJALF.js";
12
- import "../chunk-OFX5B2S7.js";
13
- import "../chunk-B76TSEP3.js";
14
- import "../chunk-RLRT2BVM.js";
11
+ } from "../chunk-UP75Z5X7.js";
12
+ import "../chunk-L2R3LN2P.js";
13
+ import "../chunk-I26FWCSP.js";
14
+ import "../chunk-EV46QTD3.js";
15
+ import "../chunk-E23LNUWJ.js";
15
16
  import "../chunk-4JERP7NT.js";
16
17
  import "../chunk-EIKATSE4.js";
17
- import "../chunk-E23LNUWJ.js";
18
- import "../chunk-UIV2WPBT.js";
19
- import "../chunk-SSTLTIF3.js";
20
- import "../chunk-RMOBQ6A5.js";
21
- import "../chunk-54QCG45Y.js";
22
- import "../chunk-FUIIVSW6.js";
23
- import "../chunk-65SVQELL.js";
24
- import "../chunk-NGP6LSV2.js";
25
- import "../chunk-MW2GJJ53.js";
18
+ import "../chunk-KGWRTRKC.js";
19
+ import "../chunk-AD2VCHSS.js";
20
+ import "../chunk-WOYADZF5.js";
21
+ import "../chunk-SKGMF2SO.js";
22
+ import "../chunk-2WAVZ5UJ.js";
23
+ import "../chunk-HA5R6USD.js";
24
+ import "../chunk-AM7S2TY6.js";
25
+ import "../chunk-JGIPOUIK.js";
26
+ import "../chunk-GWDSB25T.js";
26
27
  import "../chunk-CVYC6DUW.js";
27
- import "../chunk-2233TQCA.js";
28
- import "../chunk-HCJCW7X4.js";
28
+ import "../chunk-JLZ4RYSD.js";
29
+ import "../chunk-H7I47RS5.js";
29
30
  import "../chunk-OPU3NYOO.js";
30
- import "../chunk-7TS64TBG.js";
31
+ import "../chunk-G4RGKBCA.js";
31
32
  import "../chunk-AFNRE2RV.js";
32
- import "../chunk-3NGZ4PL7.js";
33
+ import "../chunk-X2Q5NLUL.js";
33
34
  import "../chunk-NLEW62VC.js";
34
35
  import "../chunk-HYZV25LY.js";
35
36
  import "../chunk-GJV3WDWM.js";
36
37
  import "../chunk-MP2AFCGL.js";
37
- import "../chunk-HEPR6QTL.js";
38
+ import "../chunk-AOHXREB7.js";
38
39
  import "../chunk-2I23RPSI.js";
39
- import "../chunk-ATOU6CYR.js";
40
+ import "../chunk-OLMQ4UOF.js";
40
41
  import "../chunk-PNQDP3OA.js";
41
42
  import "../chunk-H73TUI4Y.js";
42
43
  import "../chunk-7HLWBYH7.js";
43
44
  import "../chunk-FXU7JOXK.js";
44
- import "../chunk-XACL67CS.js";
45
- import "../chunk-5Z5NATNS.js";
46
- import "../chunk-7Y5UDEVM.js";
47
- import "../chunk-SHIICYJW.js";
45
+ import "../chunk-NGP6LSV2.js";
46
+ import "../chunk-PQIDGXSG.js";
47
+ import "../chunk-K7KFGDWF.js";
48
+ import "../chunk-WZHZCDDO.js";
49
+ import "../chunk-BYTDMAGB.js";
48
50
  import "../chunk-MLKGABMK.js";
49
51
 
50
52
  // src/adapters/claude/hooks/pre-compact.ts
@@ -57,7 +59,7 @@ process.on("unhandledRejection", (err) => {
57
59
  process.exit(1);
58
60
  });
59
61
  try {
60
- const { verifyOrBlock } = await import("../hook-integrity-WURH6DS3.js");
62
+ const { verifyOrBlock } = await import("../hook-integrity-XY47IM7G.js");
61
63
  if (!await verifyOrBlock(new URL(import.meta.url).pathname)) process.exit(2);
62
64
  } catch (err) {
63
65
  const code = err?.code;
@@ -90,7 +92,7 @@ process.stdin.on("end", async () => {
90
92
  const agent = getActiveAgent();
91
93
  const sections = [];
92
94
  try {
93
- const { fastDbInit } = await import("../fast-db-init-QQB6IVWV.js");
95
+ const { fastDbInit } = await import("../fast-db-init-4CWHSOOR.js");
94
96
  const client = await fastDbInit({ socketOnly: true });
95
97
  const projectName = process.cwd().split("/").pop() ?? "unknown";
96
98
  const pcScope = sessionScopeFilter();
@@ -1,3 +1,6 @@
1
+ import {
2
+ evaluateMainGuard
3
+ } from "../chunk-D74XYSA3.js";
1
4
  import {
2
5
  resolveSidechainAgentIdentity
3
6
  } from "../chunk-6IWLAQ7O.js";
@@ -5,33 +8,34 @@ import "../chunk-YSU7JB7H.js";
5
8
  import "../chunk-SH45SJQW.js";
6
9
  import {
7
10
  getActiveAgent
8
- } from "../chunk-DZ6OQM67.js";
11
+ } from "../chunk-5ERDIOV3.js";
9
12
  import {
10
13
  sessionScopeFilter
11
- } from "../chunk-PLRIJALF.js";
12
- import "../chunk-OFX5B2S7.js";
13
- import "../chunk-B76TSEP3.js";
14
- import "../chunk-RLRT2BVM.js";
14
+ } from "../chunk-UP75Z5X7.js";
15
+ import "../chunk-L2R3LN2P.js";
16
+ import "../chunk-I26FWCSP.js";
17
+ import "../chunk-EV46QTD3.js";
18
+ import "../chunk-E23LNUWJ.js";
15
19
  import "../chunk-4JERP7NT.js";
16
20
  import "../chunk-EIKATSE4.js";
17
- import "../chunk-E23LNUWJ.js";
18
- import "../chunk-UIV2WPBT.js";
19
- import "../chunk-SSTLTIF3.js";
20
- import "../chunk-RMOBQ6A5.js";
21
- import "../chunk-54QCG45Y.js";
22
- import "../chunk-FUIIVSW6.js";
23
- import "../chunk-65SVQELL.js";
24
- import "../chunk-NGP6LSV2.js";
25
- import "../chunk-MW2GJJ53.js";
21
+ import "../chunk-KGWRTRKC.js";
22
+ import "../chunk-AD2VCHSS.js";
23
+ import "../chunk-WOYADZF5.js";
24
+ import "../chunk-SKGMF2SO.js";
25
+ import "../chunk-2WAVZ5UJ.js";
26
+ import "../chunk-HA5R6USD.js";
27
+ import "../chunk-AM7S2TY6.js";
28
+ import "../chunk-JGIPOUIK.js";
29
+ import "../chunk-GWDSB25T.js";
26
30
  import {
27
31
  getSessionKey
28
32
  } from "../chunk-CVYC6DUW.js";
29
- import "../chunk-2233TQCA.js";
30
- import "../chunk-HCJCW7X4.js";
33
+ import "../chunk-JLZ4RYSD.js";
34
+ import "../chunk-H7I47RS5.js";
31
35
  import "../chunk-OPU3NYOO.js";
32
- import "../chunk-7TS64TBG.js";
36
+ import "../chunk-G4RGKBCA.js";
33
37
  import "../chunk-AFNRE2RV.js";
34
- import "../chunk-3NGZ4PL7.js";
38
+ import "../chunk-X2Q5NLUL.js";
35
39
  import "../chunk-NLEW62VC.js";
36
40
  import "../chunk-HYZV25LY.js";
37
41
  import "../chunk-GJV3WDWM.js";
@@ -39,19 +43,20 @@ import "../chunk-MP2AFCGL.js";
39
43
  import {
40
44
  canCoordinate,
41
45
  loadEmployeesSync
42
- } from "../chunk-HEPR6QTL.js";
46
+ } from "../chunk-AOHXREB7.js";
43
47
  import "../chunk-2I23RPSI.js";
44
- import "../chunk-ATOU6CYR.js";
48
+ import "../chunk-OLMQ4UOF.js";
45
49
  import "../chunk-PNQDP3OA.js";
46
50
  import "../chunk-H73TUI4Y.js";
47
51
  import "../chunk-7HLWBYH7.js";
48
52
  import "../chunk-FXU7JOXK.js";
49
- import "../chunk-XACL67CS.js";
50
- import "../chunk-5Z5NATNS.js";
53
+ import "../chunk-NGP6LSV2.js";
54
+ import "../chunk-PQIDGXSG.js";
55
+ import "../chunk-K7KFGDWF.js";
51
56
  import {
52
57
  EXE_AI_DIR
53
- } from "../chunk-7Y5UDEVM.js";
54
- import "../chunk-SHIICYJW.js";
58
+ } from "../chunk-WZHZCDDO.js";
59
+ import "../chunk-BYTDMAGB.js";
55
60
  import "../chunk-MLKGABMK.js";
56
61
 
57
62
  // src/adapters/claude/hooks/pre-tool-use.ts
@@ -60,6 +65,63 @@ import { execFileSync } from "child_process";
60
65
  import path2 from "path";
61
66
  import os from "os";
62
67
 
68
+ // src/lib/sidechain-task-guard.ts
69
+ var MUTATING_TASK_ACTIONS = /* @__PURE__ */ new Set([
70
+ "create",
71
+ "update",
72
+ "close",
73
+ "checkpoint",
74
+ "resume",
75
+ "create_group",
76
+ "reminder_create",
77
+ "reminder_complete"
78
+ ]);
79
+ var LEGACY_TASK_MUTATION_TOOLS = /* @__PURE__ */ new Set([
80
+ "mcp__exe-os__update_task",
81
+ "mcp__exe-mem__update_task",
82
+ "mcp__exe-os__close_task",
83
+ "mcp__exe-mem__close_task",
84
+ "mcp__exe-os__create_task",
85
+ "mcp__exe-mem__create_task",
86
+ "mcp__exe-os__checkpoint_task",
87
+ "mcp__exe-mem__checkpoint_task",
88
+ "mcp__exe-os__resume_employee",
89
+ "mcp__exe-mem__resume_employee",
90
+ // Standalone reminder mutations, legacy aliases (create/complete only —
91
+ // reminder READS stay allowed). Reminders are ALSO exposed via the standalone
92
+ // `reminder` tool below; a sidechain must not mutate parent reminder state
93
+ // through EITHER surface.
94
+ "mcp__exe-os__create_reminder",
95
+ "mcp__exe-mem__create_reminder",
96
+ "mcp__exe-os__complete_reminder",
97
+ "mcp__exe-mem__complete_reminder"
98
+ ]);
99
+ var REMINDER_MUTATION_ACTIONS = /* @__PURE__ */ new Set(["create", "complete"]);
100
+ var STANDALONE_REMINDER_TOOLS = /* @__PURE__ */ new Set([
101
+ "mcp__exe-os__reminder",
102
+ "mcp__exe-mem__reminder"
103
+ ]);
104
+ var CONSOLIDATED_TASK_TOOLS = /* @__PURE__ */ new Set([
105
+ "mcp__exe-os__task",
106
+ "mcp__exe-mem__task"
107
+ ]);
108
+ function isSidechainTaskMutation(toolName, action) {
109
+ if (LEGACY_TASK_MUTATION_TOOLS.has(toolName)) return true;
110
+ if (CONSOLIDATED_TASK_TOOLS.has(toolName)) {
111
+ return MUTATING_TASK_ACTIONS.has(String(action ?? "").toLowerCase());
112
+ }
113
+ if (STANDALONE_REMINDER_TOOLS.has(toolName)) {
114
+ return REMINDER_MUTATION_ACTIONS.has(String(action ?? "").toLowerCase());
115
+ }
116
+ return false;
117
+ }
118
+ function isSidechainIdentity(agentId) {
119
+ return agentId.startsWith("subagent:");
120
+ }
121
+ function shouldBlockSidechainTaskMutation(agentId, toolName, action) {
122
+ return isSidechainIdentity(agentId) && isSidechainTaskMutation(toolName, action);
123
+ }
124
+
63
125
  // src/lib/settings-tamper-guard.ts
64
126
  import path from "path";
65
127
  function normalizeForCompare(filePath, homeDir) {
@@ -99,7 +161,7 @@ process.on("unhandledRejection", (err) => {
99
161
  process.exit(1);
100
162
  });
101
163
  try {
102
- const { verifyOrBlock } = await import("../hook-integrity-WURH6DS3.js");
164
+ const { verifyOrBlock } = await import("../hook-integrity-XY47IM7G.js");
103
165
  if (!await verifyOrBlock(new URL(import.meta.url).pathname)) process.exit(2);
104
166
  } catch (err) {
105
167
  const code = err?.code;
@@ -192,6 +254,23 @@ process.stdin.on("end", async () => {
192
254
  if (data.tool_name === "Bash") {
193
255
  const command = data.tool_input?.command ?? "";
194
256
  const isCoordinator = canCoordinate(agent.agentId, agent.agentRole);
257
+ {
258
+ const guard = evaluateMainGuard(command, { cwd: process.cwd(), env: process.env });
259
+ if (guard.block) {
260
+ const output = JSON.stringify({
261
+ hookSpecificOutput: { hookEventName: "PreToolUse", permissionDecision: "deny" },
262
+ systemMessage: guard.message
263
+ });
264
+ process.stdout.write(output);
265
+ process.exit(0);
266
+ }
267
+ if (guard.overridden) {
268
+ process.stderr.write(
269
+ `[pre-tool-use] MAIN-GUARD OVERRIDE used \u2014 destructive main-rewrite allowed via EXE_FORCE_ALLOW_MAIN_HISTORY_REWRITE=1: ${command}
270
+ `
271
+ );
272
+ }
273
+ }
195
274
  if (!isCoordinator && commandTouchesProtectedAgentSettings(command, os.homedir())) {
196
275
  const output = JSON.stringify({
197
276
  hookSpecificOutput: { hookEventName: "PreToolUse", permissionDecision: "deny" },
@@ -228,9 +307,9 @@ If MCP is down, tell the user: "MCP disconnected. Run /mcp to reconnect."`
228
307
  }
229
308
  if (data.tool_name === "Bash") {
230
309
  const command = data.tool_input?.command ?? "";
231
- const killMatch = command.match(/tmux\s+kill-session\s+-t\s+["']?([^\s"']+)/);
232
- if (killMatch) {
233
- const targetSession = killMatch[1];
310
+ const { extractTmuxKillTargets } = await import("../tmux-command-guard-KSJKIX3C.js");
311
+ const killTargets = extractTmuxKillTargets(command);
312
+ for (const targetSession of killTargets) {
234
313
  if (targetSession.includes("-")) {
235
314
  const targetScope = targetSession.slice(targetSession.lastIndexOf("-") + 1);
236
315
  try {
@@ -238,6 +317,7 @@ If MCP is down, tell the user: "MCP disconnected. Run /mcp to reconnect."`
238
317
  const myScope = mySession.includes("-") ? mySession.slice(mySession.lastIndexOf("-") + 1) : mySession;
239
318
  if (myScope && targetScope !== myScope) {
240
319
  const output = JSON.stringify({
320
+ hookSpecificOutput: { hookEventName: "PreToolUse", permissionDecision: "deny" },
241
321
  systemMessage: `\u{1F6AB} BLOCKED: Cannot kill ${targetSession} \u2014 it belongs to scope ${targetScope}, you are in ${myScope}. Session isolation: you can only kill sessions in your own scope.`
242
322
  });
243
323
  process.stdout.write(output);
@@ -430,28 +510,61 @@ Do NOT report this as successful. No file was changed. If you are a sub-agent, r
430
510
  process.exit(0);
431
511
  }
432
512
  }
433
- const { getGatedAgent } = await import("../cto-delegation-gate-DXNF5HVW.js");
513
+ const { getGatedAgent } = await import("../cto-delegation-gate-JWWOJPNC.js");
434
514
  const gatedAgent = getGatedAgent();
435
- if (agent.agentId === gatedAgent && /^(Write|Edit)$/.test(data.tool_name)) {
436
- const filePath = data.tool_input?.file_path ?? "";
437
- if (filePath) {
515
+ if (agent.agentId === gatedAgent) {
516
+ const isStructured = /^(Write|Edit|MultiEdit|NotebookEdit)$/.test(data.tool_name);
517
+ const isBash = data.tool_name === "Bash";
518
+ if (isStructured || isBash) {
438
519
  try {
439
- const { fastDbInit } = await import("../fast-db-init-QQB6IVWV.js");
440
- await fastDbInit();
441
- const { evaluateDelegationGate, GATE_BLOCK_MESSAGE } = await import("../cto-delegation-gate-DXNF5HVW.js");
442
- const decision = await evaluateDelegationGate({
443
- agentId: agent.agentId,
444
- toolName: data.tool_name,
445
- filePath,
446
- sessionId: getSessionKey()
447
- });
448
- if (decision.outcome === "block") {
520
+ const sessionKey = getSessionKey();
521
+ const {
522
+ evaluateDelegationGate,
523
+ evaluateBashWriteGate,
524
+ GATE_BLOCK_MESSAGE
525
+ } = await import("../cto-delegation-gate-JWWOJPNC.js");
526
+ let decision = null;
527
+ let surfaceLabel = data.tool_name;
528
+ let targetLabel = "";
529
+ if (isStructured) {
530
+ const ti = data.tool_input;
531
+ const filePath = data.tool_name === "NotebookEdit" ? ti.notebook_path ?? "" : ti.file_path ?? "";
532
+ const content = data.tool_name === "MultiEdit" ? (ti.edits ?? []).map((e) => e.new_string ?? "").filter(Boolean) : data.tool_name === "NotebookEdit" ? ti.new_source : ti.content ?? ti.new_string;
533
+ if (filePath) {
534
+ const { fastDbInit } = await import("../fast-db-init-4CWHSOOR.js");
535
+ await fastDbInit();
536
+ targetLabel = filePath;
537
+ decision = await evaluateDelegationGate({
538
+ agentId: agent.agentId,
539
+ toolName: data.tool_name,
540
+ filePath,
541
+ sessionId: sessionKey,
542
+ content
543
+ });
544
+ }
545
+ } else {
546
+ const command = data.tool_input?.command ?? "";
547
+ const { detectBashSourceWrites } = await import("../cto-delegation-gate-JWWOJPNC.js");
548
+ const targets = detectBashSourceWrites(command, process.cwd());
549
+ if (targets.length > 0) {
550
+ const { fastDbInit } = await import("../fast-db-init-4CWHSOOR.js");
551
+ await fastDbInit();
552
+ surfaceLabel = "Bash-write";
553
+ targetLabel = targets.join(", ");
554
+ decision = await evaluateBashWriteGate({
555
+ agentId: agent.agentId,
556
+ command,
557
+ sessionId: sessionKey
558
+ });
559
+ }
560
+ }
561
+ if (decision && decision.outcome === "block") {
449
562
  process.stderr.write(
450
- `[pre-tool-use] CTO delegation gate BLOCKED Write/Edit on ${filePath} (reason=${decision.reason})
563
+ `[pre-tool-use] CTO delegation gate BLOCKED ${surfaceLabel} on ${targetLabel} (reason=${decision.reason})
451
564
  `
452
565
  );
453
- const blockReason = `${GATE_BLOCK_MESSAGE}
454
- File: ${filePath}
566
+ const blockReason = `${GATE_BLOCK_MESSAGE(sessionKey, void 0, surfaceLabel)}
567
+ File: ${targetLabel}
455
568
  Reason: ${decision.reason ?? "engineer-delegatable edit"}`;
456
569
  const output = JSON.stringify({
457
570
  hookSpecificOutput: {
@@ -487,11 +600,31 @@ Reason: ${decision.reason ?? "engineer-delegatable edit"}`;
487
600
  process.exit(0);
488
601
  }
489
602
  }
603
+ {
604
+ const preToolInput = data.tool_input;
605
+ const blockTaskMutation = shouldBlockSidechainTaskMutation(
606
+ agent.agentId,
607
+ data.tool_name,
608
+ preToolInput?.action != null ? String(preToolInput.action) : void 0
609
+ );
610
+ if (blockTaskMutation) {
611
+ process.stderr.write(
612
+ `[pre-tool-use] BLOCKED task mutation from sidechain ${agent.agentId} (${data.tool_name})
613
+ `
614
+ );
615
+ const output = JSON.stringify({
616
+ hookSpecificOutput: { hookEventName: "PreToolUse", permissionDecision: "deny" },
617
+ systemMessage: "BLOCKED: sub-agent / sidechain contexts cannot change the parent session's task tracker. You share the parent employee's tmux session and identity, so creating, updating, or closing a task would hijack the parent's queue. Report your findings back to the parent session as text; the owning employee updates the task."
618
+ });
619
+ process.stdout.write(output);
620
+ process.exit(0);
621
+ }
622
+ }
490
623
  const toolInput = data.tool_input;
491
624
  const isUpdateTaskDone = (data.tool_name === "mcp__exe-os__update_task" || data.tool_name === "mcp__exe-mem__update_task") && toolInput.status === "done" && CTO_ROLES.includes(agent.agentRole);
492
625
  if (isUpdateTaskDone) {
493
626
  try {
494
- const { fastDbInit } = await import("../fast-db-init-QQB6IVWV.js");
627
+ const { fastDbInit } = await import("../fast-db-init-4CWHSOOR.js");
495
628
  const client = await fastDbInit();
496
629
  const taskId = String(toolInput.task_id ?? "");
497
630
  const ptScope = sessionScopeFilter();
@@ -549,7 +682,7 @@ Reason: ${decision.reason ?? "engineer-delegatable edit"}`;
549
682
  }
550
683
  if (CTO_ROLES.includes(agent.agentRole) && !hasDelegationFired()) {
551
684
  try {
552
- const { fastDbInit } = await import("../fast-db-init-QQB6IVWV.js");
685
+ const { fastDbInit } = await import("../fast-db-init-4CWHSOOR.js");
553
686
  const client = await fastDbInit();
554
687
  const dlScope = sessionScopeFilter();
555
688
  const result = await client.execute({