@askexenow/exe-os 0.9.341 → 0.9.343

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 (435) 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-LW45DSJ4.js → active-agent-MDGDKGCL.js} +5 -5
  7. package/dist/{active-agent-AIQP4DFL.js → active-agent-SNVSJFI5.js} +5 -5
  8. package/dist/{agentic-ontology-RVUNRCQY.js → agentic-ontology-SCG6UUHK.js} +1 -1
  9. package/dist/{backfill-gate-J7UXFNXU.js → backfill-gate-HARARX5F.js} +3 -3
  10. package/dist/{backfill-metadata-ZSDJ4O2T.js → backfill-metadata-SCQ5FPDR.js} +8 -8
  11. package/dist/{background-jobs-STURKDCS.js → background-jobs-KKRO3QRO.js} +3 -3
  12. package/dist/{backup-verify-ZAJLEL4X.js → backup-verify-KDLOT4RP.js} +4 -4
  13. package/dist/{behaviors-EO7KCP3H.js → behaviors-MICGF3H3.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 +19 -19
  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 +27 -24
  24. package/dist/bin/cli.js +79 -25
  25. package/dist/bin/customer-readiness.js +1 -1
  26. package/dist/bin/daemon-restart-handoff.js +27 -0
  27. package/dist/bin/deferred-daemon-restart.js +132 -99
  28. package/dist/bin/exe-agent-config.js +9 -8
  29. package/dist/bin/exe-agent.js +19 -19
  30. package/dist/bin/exe-assign.js +12 -12
  31. package/dist/bin/exe-boot.js +202 -68
  32. package/dist/bin/exe-call.js +7 -7
  33. package/dist/bin/exe-cloud.js +20 -20
  34. package/dist/bin/exe-config-dump.js +9 -8
  35. package/dist/bin/exe-dispatch.js +27 -24
  36. package/dist/bin/exe-doctor.js +10 -6
  37. package/dist/bin/exe-export-behaviors.js +13 -13
  38. package/dist/bin/exe-forget.js +14 -12
  39. package/dist/bin/exe-gateway.js +15 -10
  40. package/dist/bin/exe-grant.js +5 -5
  41. package/dist/bin/exe-healthcheck.js +14 -8
  42. package/dist/bin/exe-heartbeat.js +30 -28
  43. package/dist/bin/exe-kill.js +34 -31
  44. package/dist/bin/exe-launch-agent.js +146 -70
  45. package/dist/bin/exe-memory-reads.js +257 -0
  46. package/dist/bin/exe-new-employee.js +12 -11
  47. package/dist/bin/exe-os-mcp-proxy.js +365 -0
  48. package/dist/bin/exe-pending-messages.js +28 -25
  49. package/dist/bin/exe-pending-notifications.js +27 -24
  50. package/dist/bin/exe-pending-reviews.js +27 -24
  51. package/dist/bin/exe-rename.js +7 -7
  52. package/dist/bin/exe-review.js +33 -30
  53. package/dist/bin/exe-search.js +11 -9
  54. package/dist/bin/exe-session-cleanup.js +117 -86
  55. package/dist/bin/exe-settings.js +24 -23
  56. package/dist/bin/exe-start-codex.js +163 -41
  57. package/dist/bin/exe-start-opencode.js +15 -15
  58. package/dist/bin/exe-status.js +28 -25
  59. package/dist/bin/exe-support.js +5 -5
  60. package/dist/bin/exe-team.js +5 -5
  61. package/dist/bin/exe-timers.js +32 -213
  62. package/dist/bin/exe-watchdog.js +6 -5
  63. package/dist/bin/git-sweep.js +28 -25
  64. package/dist/bin/graph-backfill.js +11 -11
  65. package/dist/bin/graph-export.js +11 -11
  66. package/dist/bin/import-history.js +13 -13
  67. package/dist/bin/install.js +106 -99
  68. package/dist/bin/intercom-check.js +4 -4
  69. package/dist/bin/mcp-sessions.js +2 -2
  70. package/dist/bin/orchestration-metrics.js +6 -6
  71. package/dist/bin/postgres-agentic-reflection-backfill.js +5 -5
  72. package/dist/bin/postgres-agentic-semantic-backfill.js +7 -7
  73. package/dist/bin/pre-publish.js +5 -3
  74. package/dist/bin/reconcile-backlog.js +2 -2
  75. package/dist/bin/registry-proxy.js +1 -1
  76. package/dist/bin/scan-tasks.js +27 -24
  77. package/dist/bin/setup.js +6 -5
  78. package/dist/bin/shard-migrate.js +9 -9
  79. package/dist/bin/stack-update.js +6 -6
  80. package/dist/bin/update.js +1 -1
  81. package/dist/bin/vps-health-gate.js +1 -1
  82. package/dist/{boot-generation-GSMPJOWM.js → boot-generation-CFA5NKSK.js} +5 -5
  83. package/dist/boot-review-sections-FX2FYZJQ.js +108 -0
  84. package/dist/branch-hygiene-PILXQQDF.js +224 -0
  85. package/dist/{branding-JTEOF4ZV.js → branding-ZSC6YN63.js} +3 -3
  86. package/dist/{browser-session-store-CXQMOSEC.js → browser-session-store-B2NR3LIX.js} +2 -1
  87. package/dist/{capability-cards-OBYQNAKZ.js → capability-cards-O27UB3J5.js} +4 -4
  88. package/dist/{capacity-monitor-MG3FTUD5.js → capacity-monitor-5DVZY3SM.js} +28 -25
  89. package/dist/{catchup-brief-BVJOF3GL.js → catchup-brief-3GYI6AKV.js} +33 -29
  90. package/dist/{chunk-LEJ25726.js → chunk-25ORSHR7.js} +660 -444
  91. package/dist/{chunk-Q5AIPSSC.js → chunk-25X4JD2V.js} +10 -6
  92. package/dist/{chunk-MJB5ZFQM.js → chunk-2F7WGH5K.js} +57 -6
  93. package/dist/{chunk-LLU6WZLK.js → chunk-2VZMLKNS.js} +2 -2
  94. package/dist/{chunk-YWQMWFYR.js → chunk-2YPCD2UH.js} +24 -18
  95. package/dist/{chunk-L2YGXJGF.js → chunk-34RULPS2.js} +3 -3
  96. package/dist/{chunk-CLAYNAXC.js → chunk-3EUMUSLE.js} +1 -1
  97. package/dist/{chunk-KP4PY2Z2.js → chunk-3MLSM77R.js} +4 -4
  98. package/dist/{chunk-4LWV633D.js → chunk-3OO34BOT.js} +1 -1
  99. package/dist/{chunk-IELUDZAA.js → chunk-3OR54BBE.js} +3 -3
  100. package/dist/{chunk-Y3S4H77G.js → chunk-3PFP7GV2.js} +1 -1
  101. package/dist/{chunk-DPFQ2WQX.js → chunk-4AA2HRIM.js} +4 -4
  102. package/dist/{chunk-7SEC2AG5.js → chunk-4E3SZEEI.js} +13 -4
  103. package/dist/chunk-4EI5AHHR.js +37 -0
  104. package/dist/{chunk-7LF5DS3A.js → chunk-4MLSFZLY.js} +20 -9
  105. package/dist/{chunk-EDOO23B2.js → chunk-4N2NRGCM.js} +2 -2
  106. package/dist/chunk-4QCFFW2H.js +378 -0
  107. package/dist/{chunk-DNVFWFYF.js → chunk-4UIYLTA3.js} +1 -1
  108. package/dist/{chunk-BJOBR6P2.js → chunk-4VUAG6DN.js} +216 -9
  109. package/dist/{chunk-32YHCHWW.js → chunk-54O2FWRM.js} +1 -1
  110. package/dist/chunk-5DSVWSL5.js +91 -0
  111. package/dist/{chunk-2YCFNBC4.js → chunk-5ERB3AWT.js} +3 -2
  112. package/dist/{chunk-J6SEDDOR.js → chunk-5GDTZOVS.js} +2 -2
  113. package/dist/chunk-5H47VHB7.js +30 -0
  114. package/dist/{chunk-NTI22F3R.js → chunk-5HQHHQUR.js} +1 -1
  115. package/dist/chunk-5MLYU6I2.js +76 -0
  116. package/dist/{chunk-3NGZ4PL7.js → chunk-5VV2YMMB.js} +11 -2
  117. package/dist/{chunk-AP455LBW.js → chunk-62MYX7G4.js} +2 -2
  118. package/dist/{chunk-CCIEIRV2.js → chunk-6CYVBLZW.js} +2 -2
  119. package/dist/{chunk-6BQG7EKO.js → chunk-6IK2ME5X.js} +2 -2
  120. package/dist/{chunk-HJX6NCJF.js → chunk-6JMRRJD6.js} +39 -10
  121. package/dist/{chunk-A47MXY2I.js → chunk-6L6SXVTP.js} +58 -24
  122. package/dist/{chunk-BR4423AS.js → chunk-6ST7ZWTV.js} +1 -1
  123. package/dist/{chunk-5ZNY7IZI.js → chunk-6TJLBXR5.js} +66 -7
  124. package/dist/{chunk-4FJZ6SO7.js → chunk-6XKIMGHA.js} +1 -1
  125. package/dist/{chunk-AYLNJGCS.js → chunk-735SUAT4.js} +93 -12
  126. package/dist/chunk-76CJBM36.js +88 -0
  127. package/dist/{chunk-C445WRUX.js → chunk-7M5AWCR3.js} +2 -2
  128. package/dist/{chunk-LOBCQXV5.js → chunk-7MESPFOK.js} +4 -4
  129. package/dist/{chunk-B7CUBLF7.js → chunk-7S3A4TOL.js} +12 -12
  130. package/dist/{chunk-2C455MU3.js → chunk-7UNIYLGV.js} +29 -5
  131. package/dist/{chunk-RMOBQ6A5.js → chunk-AD2VCHSS.js} +1 -1
  132. package/dist/{chunk-FOV57K47.js → chunk-AGHKOBA6.js} +258 -14
  133. package/dist/chunk-AM7S2TY6.js +54 -0
  134. package/dist/{chunk-GOGSWXNZ.js → chunk-B4LOFZLB.js} +277 -137
  135. package/dist/{chunk-LA2Z6RMS.js → chunk-BUI2CHLQ.js} +1 -1
  136. package/dist/{chunk-WWNQFOSP.js → chunk-BVURFD5R.js} +2 -2
  137. package/dist/{chunk-ITMEE7PQ.js → chunk-BXSC34Y2.js} +3 -3
  138. package/dist/{chunk-SHIICYJW.js → chunk-BYTDMAGB.js} +4 -2
  139. package/dist/{chunk-JSKBHUR7.js → chunk-BZA4N43B.js} +2 -2
  140. package/dist/{chunk-GPW32HVB.js → chunk-C24F7SOO.js} +4 -4
  141. package/dist/{chunk-BJ23BNED.js → chunk-CBD64QQG.js} +1 -1
  142. package/dist/chunk-D74XYSA3.js +621 -0
  143. package/dist/{chunk-2WMTTIAZ.js → chunk-DHW4DIGK.js} +2 -2
  144. package/dist/{chunk-6MVI4QH2.js → chunk-DLGEQJ6E.js} +1 -1
  145. package/dist/{chunk-TWXZM34M.js → chunk-DT6LX4SV.js} +6 -6
  146. package/dist/{chunk-I7ECEP3W.js → chunk-E4FGXPHB.js} +43 -6
  147. package/dist/{chunk-XQNNB5GY.js → chunk-F55P3H4S.js} +37 -2
  148. package/dist/{chunk-W6K4XB6G.js → chunk-FCKYJSVY.js} +1 -1
  149. package/dist/{chunk-MC4ATFJV.js → chunk-FQEBVYVE.js} +6 -6
  150. package/dist/{chunk-RWSLVYTE.js → chunk-GD7FA6IP.js} +356 -124
  151. package/dist/{chunk-TIXTHUVJ.js → chunk-GGQMX4IU.js} +3 -3
  152. package/dist/chunk-GL57PO3K.js +104 -0
  153. package/dist/chunk-GWDSB25T.js +6 -0
  154. package/dist/{chunk-HSYJ6DZ2.js → chunk-H6BVQIAF.js} +39 -24
  155. package/dist/{chunk-KPIN44GZ.js → chunk-H6WLWIPN.js} +1 -1
  156. package/dist/{chunk-KKOLHBNC.js → chunk-HDL7CXQ4.js} +958 -215
  157. package/dist/{chunk-CMR64RYM.js → chunk-HENPNYGY.js} +13 -13
  158. package/dist/{chunk-32SXNM3G.js → chunk-HRBTW62M.js} +1 -1
  159. package/dist/{chunk-BV6GBSRP.js → chunk-IKAGAKAI.js} +249 -28
  160. package/dist/{chunk-JCBKARSK.js → chunk-IOEUAQWP.js} +1 -1
  161. package/dist/{chunk-PVIH3ZGV.js → chunk-IPB5QM4S.js} +90 -10
  162. package/dist/{chunk-B75BOKEI.js → chunk-IRUWKANS.js} +2 -2
  163. package/dist/{chunk-YHUNDGVV.js → chunk-JBMIIBPS.js} +1 -1
  164. package/dist/{chunk-2IWBY7XK.js → chunk-JLLJ3ER3.js} +2 -2
  165. package/dist/{chunk-N7A5D25S.js → chunk-JMMF3PPQ.js} +1 -1
  166. package/dist/{chunk-WNKVKNOM.js → chunk-K2G3VDCV.js} +1 -1
  167. package/dist/{chunk-BVV6NHKQ.js → chunk-KIUNO3JP.js} +5 -5
  168. package/dist/{chunk-OUEFW4RK.js → chunk-KRRZNASS.js} +2 -2
  169. package/dist/{chunk-IB336P52.js → chunk-L5GFREAH.js} +1 -1
  170. package/dist/{chunk-6QW6JHRE.js → chunk-LSAH73QD.js} +59 -32
  171. package/dist/chunk-LUQ57SRM.js +127 -0
  172. package/dist/{sweep-budget-WB2FKPYN.js → chunk-M6DZYWZH.js} +8 -3
  173. package/dist/{chunk-2UGGBIDL.js → chunk-MNIA3IOU.js} +3 -3
  174. package/dist/{chunk-3BRVLPPA.js → chunk-MOPUCPXK.js} +4 -0
  175. package/dist/{chunk-K6KRBXQP.js → chunk-MTFSD6DH.js} +3 -2
  176. package/dist/{chunk-PTJBWC77.js → chunk-MVWFY7IO.js} +4 -3
  177. package/dist/chunk-MVYB76QG.js +341 -0
  178. package/dist/{chunk-DGGDUKH6.js → chunk-NDJASAXP.js} +1 -1
  179. package/dist/{chunk-PPZOWQHP.js → chunk-NG2ABIDX.js} +1 -1
  180. package/dist/{chunk-TPHCZDE3.js → chunk-NPFU2NPG.js} +1 -1
  181. package/dist/{chunk-T2PYVVZ5.js → chunk-NUVP4CCD.js} +1 -1
  182. package/dist/chunk-O5VMAZZH.js +40 -0
  183. package/dist/chunk-O7LWR36Z.js +269 -0
  184. package/dist/{chunk-7Y5UDEVM.js → chunk-OL4JFQ2T.js} +7 -5
  185. package/dist/{chunk-HUSVERE6.js → chunk-OZUQJZYO.js} +7 -6
  186. package/dist/{chunk-NDSNM5OH.js → chunk-PAYVSTF2.js} +1 -1
  187. package/dist/chunk-PWRC5XZO.js +161 -0
  188. package/dist/{chunk-ZNE6H2JO.js → chunk-PXPBF2JZ.js} +4 -4
  189. package/dist/{chunk-ATKW3SYL.js → chunk-QFBT7CJH.js} +1 -1
  190. package/dist/{chunk-WH7XN5ER.js → chunk-QTKDGDR5.js} +1 -1
  191. package/dist/{chunk-Z42MXYWW.js → chunk-QWVXN224.js} +110 -28
  192. package/dist/{chunk-UU4UINUX.js → chunk-R3QDXB55.js} +13 -3
  193. package/dist/{chunk-IXBIVKWZ.js → chunk-RZZ66LSS.js} +98 -21
  194. package/dist/chunk-S3FIQCSM.js +232 -0
  195. package/dist/{chunk-RNAYCUNM.js → chunk-S3THSOWV.js} +1 -1
  196. package/dist/{chunk-HAZO7TRD.js → chunk-SA7GZU3U.js} +1 -1
  197. package/dist/{chunk-NFBW7N4D.js → chunk-SIGS6D5R.js} +2 -2
  198. package/dist/chunk-SJN5ZEDI.js +265 -0
  199. package/dist/{chunk-SSTLTIF3.js → chunk-SKGMF2SO.js} +25 -2
  200. package/dist/{chunk-CYA5S5OD.js → chunk-SLK3DPYU.js} +6 -5
  201. package/dist/{chunk-MWZFF3Q7.js → chunk-SXKMH4JX.js} +1 -1
  202. package/dist/{chunk-WD55PEBM.js → chunk-T3EJIMDX.js} +4 -4
  203. package/dist/{chunk-2P4WJNN5.js → chunk-TI2XFHRQ.js} +11 -7
  204. package/dist/{chunk-UIU2DGRV.js → chunk-TR73G4GH.js} +4 -4
  205. package/dist/{task-enforcement-X5QVL6RE.js → chunk-UC37QPSR.js} +173 -69
  206. package/dist/chunk-UU4FHMON.js +186 -0
  207. package/dist/{chunk-HNLXMD2V.js → chunk-UZ2LYBY5.js} +2 -2
  208. package/dist/{chunk-6D2PI4QD.js → chunk-V7AGCRLI.js} +1 -1
  209. package/dist/chunk-VIIHBYIP.js +335 -0
  210. package/dist/{chunk-54QCG45Y.js → chunk-WOYADZF5.js} +56 -5
  211. package/dist/{chunk-GFDGDFBF.js → chunk-WYRZEMRU.js} +22 -5
  212. package/dist/{chunk-BMHQPIJ2.js → chunk-WZTWA4G4.js} +585 -75
  213. package/dist/chunk-X4Z5DPOC.js +54 -0
  214. package/dist/{chunk-6MVC43X7.js → chunk-XZTTLTPG.js} +4 -4
  215. package/dist/{chunk-U2MREVXQ.js → chunk-YCPZTX7V.js} +2 -2
  216. package/dist/{chunk-YIIME2OW.js → chunk-YLXTKI6M.js} +1 -1
  217. package/dist/{chunk-4QSJVMMT.js → chunk-YYCKKORY.js} +13 -20
  218. package/dist/{chunk-YLQXP7T7.js → chunk-Z5VL7YBR.js} +1 -1
  219. package/dist/{chunk-XSMRR4IW.js → chunk-ZCLVPTZU.js} +26 -27
  220. package/dist/{chunk-5RACW3LX.js → chunk-ZUBUP66T.js} +1 -1
  221. package/dist/{chunk-EDH54E5A.js → chunk-ZYLKX3KB.js} +14 -14
  222. package/dist/{cleanup-graph-garbage-MXQ4Q2MA.js → cleanup-graph-garbage-DDVPSPI4.js} +8 -8
  223. package/dist/{co-activation-QI5BK4RT.js → co-activation-HLCAD44L.js} +4 -4
  224. package/dist/{co-occurrence-BYSQNZSV.js → co-occurrence-I5U2PCPX.js} +6 -6
  225. package/dist/{code-context-index-BNBHDXHW.js → code-context-index-FSYP5VF2.js} +5 -5
  226. package/dist/{content-extractor-JRJDNIHP.js → content-extractor-NXYNEF5K.js} +2 -2
  227. package/dist/{conversation-entity-extractor-FPAMTL3C.js → conversation-entity-extractor-D3EFTLT4.js} +2 -2
  228. package/dist/{conversation-wiki-populator-WU4HEQ7C.js → conversation-wiki-populator-YVT5AYSK.js} +1 -1
  229. package/dist/{crdt-sync-ETPKNBCU.js → crdt-sync-EMV5EZ4J.js} +8 -1
  230. package/dist/{crm-webhook-M566ZMZS.js → crm-webhook-XJ6UOBHR.js} +2 -2
  231. package/dist/cto-delegation-gate-5NNZWP2M.js +670 -0
  232. package/dist/{daemon-auth-7IFSV5FG.js → daemon-auth-TIE7HSWF.js} +5 -3
  233. package/dist/{daemon-orchestration-XV5GN73R.js → daemon-orchestration-GGSRCXR3.js} +47 -27
  234. package/dist/{daemon-ready-RKKB4P6K.js → daemon-ready-A7R6XZRF.js} +1 -1
  235. package/dist/{daemon-ready-signal-WKEJQNRA.js → daemon-ready-signal-LPAZWQOV.js} +3 -1
  236. package/dist/daemon-restart-circuit-breaker-5V6B6NLS.js +35 -0
  237. package/dist/daemon-timer-report-NM44WQRH.js +25 -0
  238. package/dist/{db-restore-events-JVEEP52Z.js → db-restore-events-GQGQSYHV.js} +2 -2
  239. package/dist/dispatch-ack-VYH3ONSS.js +27 -0
  240. package/dist/{doc-graph-extractor-LR5KMPH7.js → doc-graph-extractor-3OXUTEKS.js} +6 -6
  241. package/dist/{documents-FA6N7QDA.js → documents-M7UI6SZ6.js} +12 -12
  242. package/dist/dreaming-CYQWRJA5.js +47 -0
  243. package/dist/{exe-drift-TUKTCXZE.js → exe-drift-DPDRG3OM.js} +5 -5
  244. package/dist/{exe-export-ZLHBXMZC.js → exe-export-SZVIC6KI.js} +11 -11
  245. package/dist/{exe-import-VVKBZWSA.js → exe-import-Q6TCHQ6P.js} +11 -11
  246. package/dist/{exe-key-QJXFBF6G.js → exe-key-EVMVLB3Y.js} +244 -229
  247. package/dist/{exe-org-BGZNNE4H.js → exe-org-3Y3RWGIU.js} +3 -3
  248. package/dist/{exe-snapshot-JRLUO645.js → exe-snapshot-UX5CFSDX.js} +32 -29
  249. package/dist/{fast-db-init-JKJEEHUI.js → fast-db-init-O62SMAQL.js} +1 -1
  250. package/dist/{founder-context-HWPLMZVR.js → founder-context-FCVTBCWI.js} +4 -4
  251. package/dist/gateway/index.js +21 -21
  252. package/dist/{gateway-client-GRBOJQYC.js → gateway-client-7LMZKHTH.js} +1 -1
  253. package/dist/git-main-guard-UZP3KXYI.js +39 -0
  254. package/dist/{git-staleness-X5XZONX3.js → git-staleness-AFBXWNTZ.js} +4 -4
  255. package/dist/{global-procedures-VIIVWB6R.js → global-procedures-BDREAJSZ.js} +6 -6
  256. package/dist/{graph-auto-extract-HCQQF5AG.js → graph-auto-extract-JJ5OGNGJ.js} +6 -6
  257. package/dist/{graph-rag-WAK2BRJH.js → graph-rag-JZZAB7PC.js} +2 -2
  258. package/dist/{hook-integrity-WURH6DS3.js → hook-integrity-IKKZ6HBC.js} +1 -1
  259. package/dist/hook-prefetch-HLCCAOSZ.js +138 -0
  260. package/dist/hooks/bug-report-worker.js +33 -28
  261. package/dist/hooks/codex-stop-task-finalizer.js +33 -28
  262. package/dist/hooks/commit-complete.js +30 -27
  263. package/dist/hooks/error-recall.js +16 -15
  264. package/dist/hooks/exe-heartbeat-hook.js +6 -6
  265. package/dist/hooks/ingest-worker.js +11 -11
  266. package/dist/hooks/ingest.js +23 -23
  267. package/dist/hooks/instructions-loaded.js +7 -7
  268. package/dist/hooks/manifest.json +20 -20
  269. package/dist/hooks/notification.js +7 -7
  270. package/dist/hooks/post-compact.js +29 -26
  271. package/dist/hooks/post-tool-combined.js +25 -12
  272. package/dist/hooks/pre-compact.js +30 -27
  273. package/dist/hooks/pre-tool-use.js +181 -47
  274. package/dist/hooks/prompt-submit.js +343 -279
  275. package/dist/hooks/session-end.js +36 -33
  276. package/dist/hooks/session-start.js +28 -21
  277. package/dist/hooks/stop.js +36 -33
  278. package/dist/hooks/subagent-stop.js +29 -26
  279. package/dist/hooks/summary-worker.js +37 -34
  280. package/dist/index.js +39 -36
  281. package/dist/{installer-T2LGHZKL.js → installer-BZ3QV7DJ.js} +9 -9
  282. package/dist/{installer-NX2CLNV5.js → installer-HADQQZIU.js} +9 -9
  283. package/dist/{installer-6IFVEQI4.js → installer-OJ7XKSAR.js} +9 -9
  284. package/dist/{intercom-queue-KYHXXZCQ.js → intercom-queue-NFOLOBTT.js} +26 -23
  285. package/dist/{key-backup-status-TNEHXA2X.js → key-backup-status-TTO2UUYP.js} +2 -2
  286. package/dist/lib/agent-config.js +4 -3
  287. package/dist/lib/cloud-sync.js +19 -19
  288. package/dist/lib/config.js +2 -2
  289. package/dist/lib/consolidation.js +11 -11
  290. package/dist/lib/crypto.js +3 -3
  291. package/dist/lib/database.js +6 -4
  292. package/dist/{db-backup-MX2G3CEK.js → lib/db-backup.js} +28 -6
  293. package/dist/lib/db-checkpoint-worker.js +57 -0
  294. package/dist/lib/db-daemon-client.js +5 -5
  295. package/dist/lib/db-read-worker-client.js +9 -3
  296. package/dist/lib/db-write-worker-client.js +17 -0
  297. package/dist/lib/db-write-worker.js +216 -0
  298. package/dist/lib/db.js +6 -4
  299. package/dist/lib/device-registry.js +3 -3
  300. package/dist/lib/embed-worker.js +2 -2
  301. package/dist/lib/embedder.js +5 -5
  302. package/dist/lib/employee-templates.js +7 -7
  303. package/dist/lib/employees.js +10 -4
  304. package/dist/lib/exe-daemon-client.js +4 -4
  305. package/dist/lib/exe-daemon.js +1292 -363
  306. package/dist/lib/hybrid-search.js +11 -9
  307. package/dist/lib/identity.js +4 -4
  308. package/dist/lib/keychain.js +1 -1
  309. package/dist/lib/license.js +4 -4
  310. package/dist/lib/messaging.js +29 -24
  311. package/dist/lib/post-tool-memory.js +3 -3
  312. package/dist/lib/registry-proxy.js +1 -1
  313. package/dist/lib/reminders.js +15 -7
  314. package/dist/lib/schedules.js +9 -9
  315. package/dist/lib/session-registry.js +6 -6
  316. package/dist/lib/skill-learning.js +10 -10
  317. package/dist/lib/status-brief.js +4 -4
  318. package/dist/lib/store.js +8 -8
  319. package/dist/lib/task-router.js +5 -5
  320. package/dist/lib/tasks.js +30 -25
  321. package/dist/lib/tmux-routing.js +57 -25
  322. package/dist/lib/tmux-status.js +9 -3
  323. package/dist/lib/tmux-transport.js +1 -1
  324. package/dist/lib/token-spend.js +5 -5
  325. package/dist/lib/transport.js +2 -2
  326. package/dist/lib/ws-client.js +1 -1
  327. package/dist/{license-gate-MGDR4YNI.js → license-gate-3KPSNYVA.js} +5 -5
  328. package/dist/{license-sync-UWE6GEB4.js → license-sync-CQ42HDBA.js} +4 -4
  329. package/dist/mcp/register-tools.js +99 -92
  330. package/dist/mcp/server.js +102 -95
  331. package/dist/mcp/tools/complete-reminder.js +6 -6
  332. package/dist/mcp/tools/create-reminder.js +6 -6
  333. package/dist/mcp/tools/create-task.js +38 -28
  334. package/dist/mcp/tools/deactivate-behavior.js +11 -11
  335. package/dist/mcp/tools/list-reminders.js +6 -6
  336. package/dist/mcp/tools/list-tasks.js +36 -29
  337. package/dist/mcp/tools/send-message.js +29 -26
  338. package/dist/mcp/tools/update-task.js +35 -28
  339. package/dist/{mcp-http-config-RQLYEPTL.js → mcp-http-config-BHAM376G.js} +9 -7
  340. package/dist/mcp-port-config-PA3W3BJK.js +16 -0
  341. package/dist/mcp-session-identity-S7GSVRR6.js +178 -0
  342. package/dist/mcp-session-persist-PS7BIG44.js +62 -0
  343. package/dist/mcp-stale-flag-ZM23XRSJ.js +11 -0
  344. package/dist/{memory-cards-VYQ5DPMR.js → memory-cards-47NYPFC3.js} +8 -8
  345. package/dist/{memory-graph-extractor-GX2HNYLU.js → memory-graph-extractor-IH7YBZ6U.js} +7 -7
  346. package/dist/{memory-poisoning-defense-TX7627BD.js → memory-poisoning-defense-MZQFCQ2G.js} +4 -4
  347. package/dist/{memory-pressure-watchdog-MLNNH26B.js → memory-pressure-watchdog-PSVJ5BCF.js} +77 -37
  348. package/dist/{memory-queue-X2CSEAKE.js → memory-queue-ZI7DX44D.js} +5 -3
  349. package/dist/{memory-queue-client-YRL6XTGU.js → memory-queue-client-6IPZTWZA.js} +6 -6
  350. package/dist/{memory-reflection-KIGEFSI4.js → memory-reflection-3VPYJS2G.js} +4 -4
  351. package/dist/{monitor-grants-RZOVSYVO.js → monitor-grants-OXKZ75TH.js} +5 -5
  352. package/dist/{monitor-identity-MOXISYNG.js → monitor-identity-GLFZSEAH.js} +2 -2
  353. package/dist/{notification-ledger-B6AVEGMV.js → notification-ledger-A6MYLQAN.js} +27 -24
  354. package/dist/{notifications-DWXV7SVL.js → notifications-6XCSUTJW.js} +26 -23
  355. package/dist/{orchestration-events-ZG7O4HRY.js → orchestration-events-5XDNVNR2.js} +5 -5
  356. package/dist/{orchestration-phase-CXRCBCK7.js → orchestration-phase-6DJUSFMV.js} +3 -3
  357. package/dist/orchestrator-2RQBNMZL.js +48 -0
  358. package/dist/{pipeline-router-RTLAGZTA.js → pipeline-router-N2LDNFJ5.js} +5 -5
  359. package/dist/{plan-limits-WLQZTCSF.js → plan-limits-7BUMNQOI.js} +7 -7
  360. package/dist/platform-procedures-VDW2R65H.js +13 -0
  361. package/dist/{preferences-TYTGDXQZ.js → preferences-TWIXZBKS.js} +2 -2
  362. package/dist/{project-boot-6CGQ3EAH.js → project-boot-RXCHF3S7.js} +2 -2
  363. package/dist/{projection-worker-44SEKTZ5.js → projection-worker-CKC2E22U.js} +5 -5
  364. package/dist/{prospective-memory-UACFTYXK.js → prospective-memory-Q7ZUCAS4.js} +4 -4
  365. package/dist/{push-notifications-W5JRXLKJ.js → push-notifications-VCSZYVD5.js} +3 -3
  366. package/dist/{reranker-NL4YAV6R.js → reranker-L3GLRUDY.js} +3 -3
  367. package/dist/{retrieval-health-4C2PO6HH.js → retrieval-health-DPLY6O6P.js} +1 -1
  368. package/dist/{review-polling-W5AMHNLT.js → review-polling-DLPMK3QW.js} +27 -24
  369. package/dist/runtime/index.js +34 -31
  370. package/dist/{session-events-PGL5GJEB.js → session-events-N5VRC6IT.js} +27 -24
  371. package/dist/{session-kill-telemetry-6YDGEF27.js → session-kill-telemetry-76ZVQ525.js} +27 -24
  372. package/dist/session-mcp-config-YKNXG5DW.js +50 -0
  373. package/dist/{session-scope-3MEOO557.js → session-scope-B3BEHGHO.js} +26 -23
  374. package/dist/setup-wizard-5SIRITVN.js +14 -0
  375. package/dist/{shard-manager-MBWQEYNG.js → shard-manager-OETALPDW.js} +3 -3
  376. package/dist/{skill-refinement-EOROTBPX.js → skill-refinement-ACXLAK2G.js} +5 -5
  377. package/dist/{stack-release-PR2XKJ4Q.js → stack-release-HGFFFCGC.js} +90 -15
  378. package/dist/{stack-update-LMDM27ZW.js → stack-update-YVFP65NY.js} +5 -5
  379. package/dist/{steward-gate-4A2XHYFD.js → steward-gate-2M66UU6A.js} +5 -5
  380. package/dist/{support-inbox-Z77ACQUY.js → support-inbox-5W2GMJGV.js} +7 -6
  381. package/dist/{support-outbox-GB5SQFRJ.js → support-outbox-WHGPUYL2.js} +2 -2
  382. package/dist/sweep-budget-LQYBMDTK.js +15 -0
  383. package/dist/task-enforcement-C7MMJTKX.js +91 -0
  384. package/dist/{task-scope-EKYDCVUF.js → task-scope-DK666AKV.js} +28 -23
  385. package/dist/{tasks-crud-6LBNU43G.js → tasks-crud-DFPIAAEC.js} +38 -23
  386. package/dist/tasks-notify-4R5YIPZN.js +54 -0
  387. package/dist/{tasks-review-PBIUYXAL.js → tasks-review-GOYSZEZA.js} +28 -23
  388. package/dist/{telemetry-upload-WQDFABTF.js → telemetry-upload-Y5F6WYLD.js} +9 -9
  389. package/dist/tmux-command-guard-KSJKIX3C.js +117 -0
  390. package/dist/{token-budget-KWGL5DY7.js → token-budget-BAM5QDFV.js} +5 -5
  391. package/dist/{tool-capability-index-EH3HQVHU.js → tool-capability-index-QOFFCWDS.js} +1 -1
  392. package/dist/{tool-telemetry-UC55LSIH.js → tool-telemetry-4MF2HIWR.js} +1 -1
  393. package/dist/tui/App.js +41 -38
  394. package/dist/{tui-data-M3RBSJL3.js → tui-data-WMYZNTBR.js} +26 -23
  395. package/dist/{update-check-HFO4VHO4.js → update-check-3FHAWIG2.js} +7 -3
  396. package/dist/{update-support-VPBD5SD2.js → update-support-44SGQUA4.js} +93 -93
  397. package/dist/{whatsapp-accounts-BWRZUY23.js → whatsapp-accounts-BFIOXYW5.js} +1 -1
  398. package/dist/{whatsapp-config-GOSELKTE.js → whatsapp-config-FAX6EA5K.js} +20 -13
  399. package/dist/{worker-gate-4QLLMXZM.js → worker-gate-7OK7ZRJL.js} +3 -3
  400. package/dist/{workflow-engine-MMEHKUN4.js → workflow-engine-EDZGGHAI.js} +2 -2
  401. package/dist/{working-memory-PY4AG577.js → working-memory-NUVB5SFV.js} +1 -1
  402. package/dist/worktree-VDCY44ZP.js +47 -0
  403. package/dist/{worktree-sweep-5WKBU7E6.js → worktree-sweep-VSL7TRQK.js} +7 -7
  404. package/package.json +5 -3
  405. package/release-notes.json +86 -54
  406. package/dist/branch-hygiene-R5NVTRAY.js +0 -138
  407. package/dist/chunk-2KLAYDFB.js +0 -23
  408. package/dist/chunk-7YORGTXC.js +0 -138
  409. package/dist/chunk-CCPHEPLU.js +0 -30
  410. package/dist/chunk-HCJCW7X4.js +0 -190
  411. package/dist/chunk-HMP5VT6A.js +0 -118
  412. package/dist/chunk-PVYR4FCQ.js +0 -113
  413. package/dist/chunk-RP5GETX5.js +0 -140
  414. package/dist/chunk-X2FHTDIU.js +0 -34
  415. package/dist/chunk-YGAAZN3E.js +0 -47
  416. package/dist/cto-delegation-gate-S734XDXT.js +0 -290
  417. package/dist/dispatch-ack-4S44HBWB.js +0 -15
  418. package/dist/dreaming-UKGTQT6I.js +0 -44
  419. package/dist/mcp-port-config-FFAMMLLE.js +0 -10
  420. package/dist/orchestrator-PGHJDUUT.js +0 -45
  421. package/dist/setup-wizard-CJIYDSSP.js +0 -13
  422. package/dist/tasks-notify-TFJLSQ3B.js +0 -50
  423. package/dist/worktree-YXBDRYOC.js +0 -31
  424. package/dist/{chunk-7UMCQQWS.js → chunk-A4DVMPYB.js} +3 -3
  425. /package/dist/{chunk-3NCZKWPO.js → chunk-CIG7FSD5.js} +0 -0
  426. /package/dist/{chunk-MC6VPZKS.js → chunk-DFCSGPNZ.js} +0 -0
  427. /package/dist/{chunk-C2SRRCRK.js → chunk-EBTWNNAS.js} +0 -0
  428. /package/dist/{chunk-OADURIIN.js → chunk-WTH4CSAP.js} +0 -0
  429. /package/dist/{core-memory-3IBWM4WR.js → core-memory-VOBMIFRX.js} +0 -0
  430. /package/dist/{entity-boost-DWAWXFKN.js → entity-boost-N4NAK4WA.js} +0 -0
  431. /package/dist/{message-queue-client-3PTHPG5Q.js → message-queue-client-WMIO5FL5.js} +0 -0
  432. /package/dist/{oauth-server-M5TGXT6D.js → oauth-server-HPQCBLZQ.js} +0 -0
  433. /package/dist/{webhook-pipe-FZYLO6RR.js → webhook-pipe-HH7XXXYC.js} +0 -0
  434. /package/dist/{wiki-acl-7CROE3MJ.js → wiki-acl-NEM3L4LK.js} +0 -0
  435. /package/dist/{wiki-client-VNDOBK63.js → wiki-client-WREIYJLY.js} +0 -0
@@ -1,13 +1,4 @@
1
1
  #!/usr/bin/env node
2
- import {
3
- FileEditTool
4
- } from "../chunk-R4WMF32C.js";
5
- import {
6
- BashTool
7
- } from "../chunk-TQDARPML.js";
8
- import {
9
- FileReadTool
10
- } from "../chunk-TMEE7AT7.js";
11
2
  import {
12
3
  GlobTool
13
4
  } from "../chunk-KCUYRZSX.js";
@@ -17,15 +8,21 @@ import {
17
8
  import {
18
9
  FileWriteTool
19
10
  } from "../chunk-XEKO37NM.js";
11
+ import {
12
+ FileEditTool
13
+ } from "../chunk-R4WMF32C.js";
14
+ import {
15
+ BashTool
16
+ } from "../chunk-TQDARPML.js";
17
+ import {
18
+ FileReadTool
19
+ } from "../chunk-TMEE7AT7.js";
20
20
  import {
21
21
  createTerminalRenderer,
22
22
  renderAgentEvents
23
23
  } from "../chunk-YZFZDJWZ.js";
24
24
  import "../chunk-CMCYL2JC.js";
25
25
  import "../chunk-NGVOA6ZQ.js";
26
- import {
27
- createDefaultHooks
28
- } from "../chunk-O377P7GM.js";
29
26
  import {
30
27
  agentLoop
31
28
  } from "../chunk-KSVLBATT.js";
@@ -36,6 +33,9 @@ import {
36
33
  EMPLOYEE_PERMISSIONS
37
34
  } from "../chunk-2O2UKMUE.js";
38
35
  import "../chunk-HF25XPZE.js";
36
+ import {
37
+ createDefaultHooks
38
+ } from "../chunk-O377P7GM.js";
39
39
  import {
40
40
  OllamaProvider
41
41
  } from "../chunk-FWFFZGSC.js";
@@ -45,18 +45,18 @@ import {
45
45
  } from "../chunk-ECGTESAP.js";
46
46
  import {
47
47
  getSessionPrompt
48
- } from "../chunk-K6KRBXQP.js";
49
- import "../chunk-6BQG7EKO.js";
50
- import "../chunk-A47MXY2I.js";
51
- import "../chunk-RWSLVYTE.js";
48
+ } from "../chunk-MTFSD6DH.js";
49
+ import "../chunk-6IK2ME5X.js";
50
+ import "../chunk-6L6SXVTP.js";
51
+ import "../chunk-GD7FA6IP.js";
52
52
  import "../chunk-2I23RPSI.js";
53
- import "../chunk-BV6GBSRP.js";
53
+ import "../chunk-IKAGAKAI.js";
54
54
  import "../chunk-PNQDP3OA.js";
55
55
  import "../chunk-H73TUI4Y.js";
56
56
  import "../chunk-7HLWBYH7.js";
57
57
  import "../chunk-FXU7JOXK.js";
58
- import "../chunk-7Y5UDEVM.js";
59
- import "../chunk-SHIICYJW.js";
58
+ import "../chunk-OL4JFQ2T.js";
59
+ import "../chunk-BYTDMAGB.js";
60
60
  import "../chunk-MLKGABMK.js";
61
61
 
62
62
  // src/bin/exe-agent.ts
@@ -3,38 +3,38 @@ import {
3
3
  createAssignmentMemory,
4
4
  formatAssignmentOutput,
5
5
  routeTask
6
- } from "../chunk-HAZO7TRD.js";
6
+ } from "../chunk-SA7GZU3U.js";
7
7
  import {
8
8
  embed
9
- } from "../chunk-AP455LBW.js";
9
+ } from "../chunk-62MYX7G4.js";
10
10
  import {
11
11
  flushBatch,
12
12
  initStore,
13
13
  searchMemories,
14
14
  writeMemory
15
- } from "../chunk-EDH54E5A.js";
15
+ } from "../chunk-ZYLKX3KB.js";
16
16
  import "../chunk-CHCA3ZM2.js";
17
17
  import "../chunk-OTVEIJUQ.js";
18
- import "../chunk-7LF5DS3A.js";
19
- import "../chunk-RP5GETX5.js";
20
- import "../chunk-UU4UINUX.js";
18
+ import "../chunk-4MLSFZLY.js";
19
+ import "../chunk-4QCFFW2H.js";
20
+ import "../chunk-R3QDXB55.js";
21
21
  import "../chunk-AFNRE2RV.js";
22
- import "../chunk-3NGZ4PL7.js";
22
+ import "../chunk-5VV2YMMB.js";
23
23
  import "../chunk-NLEW62VC.js";
24
24
  import "../chunk-MP2AFCGL.js";
25
25
  import {
26
26
  getEmployee,
27
27
  loadEmployees
28
- } from "../chunk-RWSLVYTE.js";
28
+ } from "../chunk-GD7FA6IP.js";
29
29
  import "../chunk-2I23RPSI.js";
30
- import "../chunk-BV6GBSRP.js";
30
+ import "../chunk-IKAGAKAI.js";
31
31
  import "../chunk-PNQDP3OA.js";
32
32
  import "../chunk-H73TUI4Y.js";
33
33
  import "../chunk-7HLWBYH7.js";
34
34
  import "../chunk-FXU7JOXK.js";
35
- import "../chunk-Z42MXYWW.js";
36
- import "../chunk-7Y5UDEVM.js";
37
- import "../chunk-SHIICYJW.js";
35
+ import "../chunk-QWVXN224.js";
36
+ import "../chunk-OL4JFQ2T.js";
37
+ import "../chunk-BYTDMAGB.js";
38
38
  import {
39
39
  isMainModule
40
40
  } from "../chunk-6Y4B3QF6.js";
@@ -1,24 +1,24 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  generateStatusBrief
4
- } from "../chunk-5ZNY7IZI.js";
4
+ } from "../chunk-6TJLBXR5.js";
5
5
  import {
6
6
  DEFAULT_EXE,
7
7
  getSessionPrompt
8
- } from "../chunk-K6KRBXQP.js";
9
- import "../chunk-6BQG7EKO.js";
10
- import "../chunk-A47MXY2I.js";
8
+ } from "../chunk-MTFSD6DH.js";
9
+ import "../chunk-6IK2ME5X.js";
10
+ import "../chunk-6L6SXVTP.js";
11
11
  import {
12
12
  initStore
13
- } from "../chunk-EDH54E5A.js";
13
+ } from "../chunk-ZYLKX3KB.js";
14
14
  import "../chunk-CHCA3ZM2.js";
15
15
  import "../chunk-OTVEIJUQ.js";
16
- import "../chunk-7LF5DS3A.js";
16
+ import "../chunk-4MLSFZLY.js";
17
17
  import {
18
18
  cleanupSessionMarkers,
19
19
  writeActiveAgent
20
- } from "../chunk-C445WRUX.js";
21
- import "../chunk-RP5GETX5.js";
20
+ } from "../chunk-7M5AWCR3.js";
21
+ import "../chunk-4QCFFW2H.js";
22
22
  import {
23
23
  cleanupOldNotifications,
24
24
  getMySession,
@@ -29,31 +29,33 @@ import {
29
29
  resolveExeSession,
30
30
  sessionScopeFilter,
31
31
  updateTaskStatus
32
- } from "../chunk-KKOLHBNC.js";
33
- import "../chunk-ATKW3SYL.js";
34
- import "../chunk-BJOBR6P2.js";
35
- import "../chunk-6D2PI4QD.js";
36
- import "../chunk-E23LNUWJ.js";
32
+ } from "../chunk-HDL7CXQ4.js";
33
+ import "../chunk-QFBT7CJH.js";
34
+ import "../chunk-4VUAG6DN.js";
35
+ import "../chunk-V7AGCRLI.js";
37
36
  import "../chunk-4JERP7NT.js";
38
37
  import "../chunk-EIKATSE4.js";
38
+ import "../chunk-E23LNUWJ.js";
39
39
  import {
40
40
  pruneStaleSessions,
41
41
  registerSession
42
- } from "../chunk-HNLXMD2V.js";
43
- import "../chunk-RMOBQ6A5.js";
44
- import "../chunk-54QCG45Y.js";
45
- import "../chunk-SSTLTIF3.js";
46
- import "../chunk-WH7XN5ER.js";
47
- import "../chunk-GFDGDFBF.js";
48
- import "../chunk-NGP6LSV2.js";
49
- import "../chunk-2UGGBIDL.js";
42
+ } from "../chunk-UZ2LYBY5.js";
43
+ import "../chunk-AD2VCHSS.js";
44
+ import "../chunk-WOYADZF5.js";
45
+ import "../chunk-SKGMF2SO.js";
46
+ import "../chunk-QTKDGDR5.js";
47
+ import "../chunk-WYRZEMRU.js";
48
+ import "../chunk-AM7S2TY6.js";
49
+ import "../chunk-MNIA3IOU.js";
50
+ import "../chunk-GWDSB25T.js";
51
+ import "../chunk-M6DZYWZH.js";
50
52
  import "../chunk-CVYC6DUW.js";
51
- import "../chunk-LLU6WZLK.js";
52
- import "../chunk-HCJCW7X4.js";
53
+ import "../chunk-2VZMLKNS.js";
54
+ import "../chunk-VIIHBYIP.js";
53
55
  import "../chunk-OPU3NYOO.js";
54
- import "../chunk-UU4UINUX.js";
56
+ import "../chunk-R3QDXB55.js";
55
57
  import "../chunk-AFNRE2RV.js";
56
- import "../chunk-3NGZ4PL7.js";
58
+ import "../chunk-5VV2YMMB.js";
57
59
  import "../chunk-NLEW62VC.js";
58
60
  import "../chunk-HYZV25LY.js";
59
61
  import "../chunk-GJV3WDWM.js";
@@ -65,23 +67,24 @@ import {
65
67
  isCoordinatorName,
66
68
  loadEmployees,
67
69
  saveEmployees
68
- } from "../chunk-RWSLVYTE.js";
70
+ } from "../chunk-GD7FA6IP.js";
69
71
  import "../chunk-2I23RPSI.js";
70
- import "../chunk-BV6GBSRP.js";
72
+ import "../chunk-IKAGAKAI.js";
71
73
  import "../chunk-PNQDP3OA.js";
72
74
  import "../chunk-H73TUI4Y.js";
73
75
  import "../chunk-7HLWBYH7.js";
74
76
  import "../chunk-FXU7JOXK.js";
75
- import "../chunk-TPHCZDE3.js";
76
- import "../chunk-Z42MXYWW.js";
77
- import "../chunk-7SEC2AG5.js";
78
- import "../chunk-PPZOWQHP.js";
77
+ import "../chunk-NPFU2NPG.js";
78
+ import "../chunk-QWVXN224.js";
79
+ import "../chunk-NGP6LSV2.js";
80
+ import "../chunk-4E3SZEEI.js";
81
+ import "../chunk-NG2ABIDX.js";
79
82
  import {
80
83
  EXE_AI_DIR,
81
84
  loadConfig,
82
85
  loadConfigSync
83
- } from "../chunk-7Y5UDEVM.js";
84
- import "../chunk-SHIICYJW.js";
86
+ } from "../chunk-OL4JFQ2T.js";
87
+ import "../chunk-BYTDMAGB.js";
85
88
  import {
86
89
  isMainModule
87
90
  } from "../chunk-6Y4B3QF6.js";
@@ -90,8 +93,9 @@ import "../chunk-MLKGABMK.js";
90
93
  // src/bin/exe-boot.ts
91
94
  import path from "path";
92
95
  import { mkdir, writeFile } from "fs/promises";
93
- import { existsSync, readFileSync, readdirSync, unlinkSync } from "fs";
96
+ import { existsSync, readFileSync, readdirSync, unlinkSync, writeFileSync, mkdirSync } from "fs";
94
97
  import { execSync } from "child_process";
98
+ import { createHash } from "crypto";
95
99
  import os from "os";
96
100
  async function boot(options) {
97
101
  const briefOnly = options?.briefOnly ?? false;
@@ -126,7 +130,7 @@ async function boot(options) {
126
130
  const coordinatorEmployee = getCoordinatorEmployee(employees) ?? DEFAULT_EXE;
127
131
  const coordinatorName = coordinatorEmployee.name;
128
132
  try {
129
- const { fastDbInit } = await import("../fast-db-init-JKJEEHUI.js");
133
+ const { fastDbInit } = await import("../fast-db-init-O62SMAQL.js");
130
134
  await fastDbInit();
131
135
  } catch {
132
136
  await initStore();
@@ -228,12 +232,14 @@ async function boot(options) {
228
232
  } catch {
229
233
  }
230
234
  try {
231
- const { readdirSync: readdirSync2, readFileSync: readFs } = await import("fs");
235
+ const { readdirSync: readdirSync2, readFileSync: readFs, statSync } = await import("fs");
232
236
  const { STATUS_RE, PRIORITY_RE, TITLE_RE } = await import("../task-scanner-QEM5CO2Y.js");
233
237
  const { getProjectName } = await import("../project-name-EWG5KAZP.js");
238
+ const defaultProjectName = getProjectName(process.cwd());
234
239
  const exeDir = "exe";
235
240
  const entries = readdirSync2(exeDir, { withFileTypes: true });
236
241
  const employeeDirs = entries.filter((e) => e.isDirectory() && !["output", "research"].includes(e.name));
242
+ const taskFiles = [];
237
243
  for (const dir of employeeDirs) {
238
244
  const employee = dir.name;
239
245
  const taskDir = path.join(exeDir, employee);
@@ -244,10 +250,32 @@ async function boot(options) {
244
250
  continue;
245
251
  }
246
252
  for (const file of files) {
247
- const taskFilePath = `exe/${employee}/${file}`;
253
+ const absPath = path.join(taskDir, file);
254
+ let mtimeMs = 0;
255
+ try {
256
+ mtimeMs = statSync(absPath).mtimeMs;
257
+ } catch {
258
+ continue;
259
+ }
260
+ taskFiles.push({ employee, file, taskFilePath: `exe/${employee}/${file}`, absPath, mtimeMs });
261
+ }
262
+ }
263
+ let dbTaskFileCount = -1;
264
+ try {
265
+ const countRes = await client.execute("SELECT COUNT(*) AS c FROM tasks WHERE task_file IS NOT NULL");
266
+ dbTaskFileCount = Number(countRes.rows[0]?.c ?? -1);
267
+ } catch {
268
+ }
269
+ const signature = reconcileSignature(
270
+ taskFiles.map((t) => ({ path: t.taskFilePath, mtimeMs: t.mtimeMs })),
271
+ dbTaskFileCount
272
+ );
273
+ if (dbTaskFileCount < 0 || readReconcileStamp() !== signature) {
274
+ const existingByFile = await fetchTasksByFile(client, taskFiles.map((t) => t.taskFilePath));
275
+ for (const { employee, file, taskFilePath, absPath } of taskFiles) {
248
276
  let content;
249
277
  try {
250
- content = readFs(path.join(taskDir, file), "utf8");
278
+ content = readFs(absPath, "utf8");
251
279
  } catch {
252
280
  continue;
253
281
  }
@@ -260,12 +288,9 @@ async function boot(options) {
260
288
  const assignedByMatch = content.match(/^\*\*Assigned by:\*\*\s*(\w+)/m);
261
289
  const assignedBy = assignedByMatch?.[1] ?? coordinatorName;
262
290
  const projMatch = content.match(/^\*\*Project:\*\*\s*(.+)/m);
263
- const projectName = projMatch?.[1]?.trim() ?? getProjectName(process.cwd());
264
- const existing = await client.execute({
265
- sql: "SELECT id, status FROM tasks WHERE task_file = ?",
266
- args: [taskFilePath]
267
- });
268
- if (existing.rows.length === 0) {
291
+ const projectName = projMatch?.[1]?.trim() ?? defaultProjectName;
292
+ const existing = existingByFile.get(taskFilePath);
293
+ if (!existing) {
269
294
  const { createTask } = await import("../lib/tasks.js");
270
295
  await createTask({
271
296
  title,
@@ -278,7 +303,7 @@ async function boot(options) {
278
303
  skipDispatch: true
279
304
  });
280
305
  } else {
281
- const dbStatus = String(existing.rows[0].status);
306
+ const dbStatus = existing.status;
282
307
  const STATUS_RANK = {
283
308
  open: 0,
284
309
  in_progress: 1,
@@ -301,6 +326,7 @@ async function boot(options) {
301
326
  }
302
327
  }
303
328
  }
329
+ writeReconcileStamp(signature);
304
330
  }
305
331
  } catch (e) {
306
332
  process.stderr.write("[exe-boot] task reconciliation: " + (e instanceof Error ? e.message : String(e)) + "\n");
@@ -918,15 +944,17 @@ async function boot(options) {
918
944
  try {
919
945
  const backfillFlagPath = path.join(EXE_AI_DIR, "session-cache", "needs-backfill");
920
946
  const isBackfillNeeded = () => existsSync(backfillFlagPath);
921
- const coverageResult = await client.execute({
922
- sql: `SELECT COUNT(*) as total,
923
- SUM(CASE WHEN vector IS NOT NULL THEN 1 ELSE 0 END) as with_vectors
924
- FROM memories`,
947
+ const totalResult = await client.execute({
948
+ sql: "SELECT COUNT(*) as total FROM memories",
925
949
  args: []
926
950
  });
927
- const totalMemories = Number(coverageResult.rows[0]?.total) || 0;
928
- const memoriesWithVectors = Number(coverageResult.rows[0]?.with_vectors) || 0;
929
- const nullCount = totalMemories - memoriesWithVectors;
951
+ const nullResult = await client.execute({
952
+ sql: "SELECT COUNT(*) as nulls FROM memories WHERE vector IS NULL",
953
+ args: []
954
+ });
955
+ const totalMemories = Number(totalResult.rows[0]?.total) || 0;
956
+ const nullCount = Number(nullResult.rows[0]?.nulls) || 0;
957
+ const memoriesWithVectors = totalMemories - nullCount;
930
958
  const recentResult = await client.execute({
931
959
  sql: `SELECT COUNT(*) as total,
932
960
  SUM(CASE WHEN vector IS NOT NULL THEN 1 ELSE 0 END) as with_vec
@@ -1018,11 +1046,11 @@ async function boot(options) {
1018
1046
  const { loadConfigSync: loadCfgForEmbed } = await import("../lib/config.js");
1019
1047
  const embedCfg = loadCfgForEmbed();
1020
1048
  const embeddingsOn = resolveEmbed(process.env.EXE_EMBEDDINGS, embedCfg);
1021
- const { backfillKillSwitchEnabled, countActionableNullVectors } = await import("../backfill-gate-J7UXFNXU.js");
1049
+ const { backfillKillSwitchEnabled, countActionableNullVectors } = await import("../backfill-gate-HARARX5F.js");
1022
1050
  const actionableNullCount = nullCount > 0 ? await countActionableNullVectors(client) : 0;
1023
1051
  if (actionableNullCount > 0 && embeddingsOn && !backfillKillSwitchEnabled()) {
1024
1052
  try {
1025
- const { tryAcquireWorkerSlot, registerWorkerPid } = await import("../worker-gate-4QLLMXZM.js");
1053
+ const { tryAcquireWorkerSlot, registerWorkerPid } = await import("../worker-gate-7OK7ZRJL.js");
1026
1054
  if (!tryAcquireWorkerSlot()) {
1027
1055
  process.stderr.write("[exe-boot] Backfill needed but worker gate full \u2014 skipping\n");
1028
1056
  } else {
@@ -1093,9 +1121,9 @@ async function boot(options) {
1093
1121
  } catch {
1094
1122
  }
1095
1123
  try {
1096
- const { scanUnmergedBranches } = await import("../branch-hygiene-R5NVTRAY.js");
1124
+ const { scanUnmergedBranchesCached } = await import("../branch-hygiene-PILXQQDF.js");
1097
1125
  const STALE_HOURS = 24;
1098
- const scan = await scanUnmergedBranches(process.cwd(), { staleHours: STALE_HOURS });
1126
+ const scan = await scanUnmergedBranchesCached(process.cwd(), { staleHours: STALE_HOURS });
1099
1127
  if (scan.total > 0) {
1100
1128
  briefData.unmergedBranches = {
1101
1129
  total: scan.total,
@@ -1112,6 +1140,18 @@ async function boot(options) {
1112
1140
  }
1113
1141
  } catch {
1114
1142
  }
1143
+ try {
1144
+ const { getLocalMainAheadInfo } = await import("../git-main-guard-UZP3KXYI.js");
1145
+ const ahead = getLocalMainAheadInfo(process.cwd());
1146
+ if (ahead) {
1147
+ briefData.localMainAhead = {
1148
+ branch: ahead.branch,
1149
+ ahead: ahead.ahead,
1150
+ commits: ahead.commits
1151
+ };
1152
+ }
1153
+ } catch {
1154
+ }
1115
1155
  try {
1116
1156
  const { fileURLToPath } = await import("url");
1117
1157
  const thisFile = fileURLToPath(import.meta.url);
@@ -1129,7 +1169,7 @@ async function boot(options) {
1129
1169
  } catch {
1130
1170
  }
1131
1171
  try {
1132
- const { countKillsSince } = await import("../session-kill-telemetry-6YDGEF27.js");
1172
+ const { countKillsSince } = await import("../session-kill-telemetry-76ZVQ525.js");
1133
1173
  const { listSessions: listRegistrySessions } = await import("../lib/session-registry.js");
1134
1174
  const todayStart = /* @__PURE__ */ new Date();
1135
1175
  todayStart.setHours(0, 0, 0, 0);
@@ -1146,8 +1186,14 @@ async function boot(options) {
1146
1186
  const brief = await generateStatusBrief(employees, briefData);
1147
1187
  let ccWarning = null;
1148
1188
  try {
1149
- const { ccNativeBinaryWarningLine } = await import("../cc-binary-detect-6TNIY5JX.js");
1150
- ccWarning = ccNativeBinaryWarningLine();
1189
+ const cached = readProbeCache("probe-cc-native.json", PROBE_CACHE_TTL_MS);
1190
+ if (cached !== void 0) {
1191
+ ccWarning = cached;
1192
+ } else {
1193
+ const { ccNativeBinaryWarningLine } = await import("../cc-binary-detect-6TNIY5JX.js");
1194
+ ccWarning = ccNativeBinaryWarningLine();
1195
+ writeProbeCache("probe-cc-native.json", ccWarning);
1196
+ }
1151
1197
  } catch {
1152
1198
  }
1153
1199
  if (briefOnly) {
@@ -1168,6 +1214,17 @@ ${ccWarning}`);
1168
1214
 
1169
1215
  ${brief}`;
1170
1216
  await writeFile(path.join(sessionDir, "CLAUDE.md"), claudeMdContent, "utf-8");
1217
+ try {
1218
+ const { getPlatformReferenceMarkdown } = await import("../platform-procedures-VDW2R65H.js");
1219
+ const referenceDir = path.join(EXE_AI_DIR, "reference");
1220
+ await mkdir(referenceDir, { recursive: true });
1221
+ await writeFile(
1222
+ path.join(referenceDir, "platform-reference.md"),
1223
+ getPlatformReferenceMarkdown(),
1224
+ "utf-8"
1225
+ );
1226
+ } catch {
1227
+ }
1171
1228
  const notificationSessionScope = resolveExeSession();
1172
1229
  const unread = await readUnreadNotifications(void 0, notificationSessionScope);
1173
1230
  if (unread.length > 0) {
@@ -1227,7 +1284,7 @@ async function updateIdleKillSuspectStreak(client, killsToday, liveSessions, tod
1227
1284
  IDLE_KILL_STREAK_META_KEY,
1228
1285
  computeIdleKillSuspectStreak,
1229
1286
  parseStreakState
1230
- } = await import("../session-kill-telemetry-6YDGEF27.js");
1287
+ } = await import("../session-kill-telemetry-76ZVQ525.js");
1231
1288
  const prevResult = await client.execute({
1232
1289
  sql: "SELECT value FROM sync_meta WHERE key = ?",
1233
1290
  args: [IDLE_KILL_STREAK_META_KEY]
@@ -1249,18 +1306,93 @@ async function updateIdleKillSuspectStreak(client, killsToday, liveSessions, tod
1249
1306
  return false;
1250
1307
  }
1251
1308
  }
1309
+ async function fetchTasksByFile(client, taskFilePaths) {
1310
+ const found = /* @__PURE__ */ new Map();
1311
+ const IN_CHUNK = 500;
1312
+ for (let i = 0; i < taskFilePaths.length; i += IN_CHUNK) {
1313
+ const chunk = taskFilePaths.slice(i, i + IN_CHUNK);
1314
+ if (chunk.length === 0) continue;
1315
+ const placeholders = chunk.map(() => "?").join(",");
1316
+ const res = await client.execute({
1317
+ // session_scope: intentionally unscoped (see above — reconciliation by file key).
1318
+ sql: `SELECT task_file, id, status FROM tasks WHERE task_file IN (${placeholders})`,
1319
+ args: chunk
1320
+ });
1321
+ for (const row of res.rows) {
1322
+ const tf = row.task_file == null ? "" : String(row.task_file);
1323
+ if (!tf) continue;
1324
+ found.set(tf, { id: String(row.id), status: String(row.status) });
1325
+ }
1326
+ }
1327
+ return found;
1328
+ }
1329
+ function reconcileSignature(files, dbTaskFileCount) {
1330
+ const h = createHash("sha256");
1331
+ h.update(`db:${dbTaskFileCount}
1332
+ `);
1333
+ for (const f of [...files].sort((a, b) => a.path < b.path ? -1 : a.path > b.path ? 1 : 0)) {
1334
+ h.update(`${f.path}\0${Math.round(f.mtimeMs)}
1335
+ `);
1336
+ }
1337
+ return h.digest("hex");
1338
+ }
1339
+ function reconcileStampPath() {
1340
+ const key = createHash("sha256").update(process.cwd()).digest("hex").slice(0, 16);
1341
+ return path.join(EXE_AI_DIR, "session-cache", `boot-reconcile-${key}`);
1342
+ }
1343
+ function readReconcileStamp() {
1344
+ try {
1345
+ return readFileSync(reconcileStampPath(), "utf8").trim() || null;
1346
+ } catch {
1347
+ return null;
1348
+ }
1349
+ }
1350
+ function writeReconcileStamp(signature) {
1351
+ try {
1352
+ mkdirSync(path.join(EXE_AI_DIR, "session-cache"), { recursive: true });
1353
+ writeFileSync(reconcileStampPath(), signature, "utf8");
1354
+ } catch {
1355
+ }
1356
+ }
1357
+ function readProbeCache(name, ttlMs) {
1358
+ try {
1359
+ const raw = JSON.parse(readFileSync(path.join(EXE_AI_DIR, "session-cache", name), "utf8"));
1360
+ if (typeof raw.ts !== "number" || Date.now() - raw.ts > ttlMs) return void 0;
1361
+ return raw.value;
1362
+ } catch {
1363
+ return void 0;
1364
+ }
1365
+ }
1366
+ function writeProbeCache(name, value) {
1367
+ try {
1368
+ mkdirSync(path.join(EXE_AI_DIR, "session-cache"), { recursive: true });
1369
+ writeFileSync(
1370
+ path.join(EXE_AI_DIR, "session-cache", name),
1371
+ JSON.stringify({ ts: Date.now(), value }),
1372
+ "utf8"
1373
+ );
1374
+ } catch {
1375
+ }
1376
+ }
1377
+ var PROBE_CACHE_TTL_MS = 12 * 60 * 60 * 1e3;
1252
1378
  function runSplash() {
1253
1379
  try {
1254
1380
  const config = loadConfigSync();
1255
1381
  if (!config.splashEffect) return;
1256
- try {
1257
- execSync("python3 -c 'import terminaltexteffects'", {
1258
- stdio: "ignore",
1259
- timeout: 3e3
1260
- });
1261
- } catch {
1262
- return;
1382
+ let hasTte = readProbeCache("probe-tte.json", PROBE_CACHE_TTL_MS);
1383
+ if (hasTte === void 0) {
1384
+ try {
1385
+ execSync("python3 -c 'import terminaltexteffects'", {
1386
+ stdio: "ignore",
1387
+ timeout: 3e3
1388
+ });
1389
+ hasTte = true;
1390
+ } catch {
1391
+ hasTte = false;
1392
+ }
1393
+ writeProbeCache("probe-tte.json", hasTte);
1263
1394
  }
1395
+ if (!hasTte) return;
1264
1396
  execSync(
1265
1397
  'echo "EXE OS" | python3 -m terminaltexteffects decrypt --typing-speed 2 --ciphertext-colors 6B4C9A F5D76E --final-gradient-stops F5D76E F0EDE8 --final-gradient-direction vertical',
1266
1398
  { stdio: "inherit", timeout: 5e3 }
@@ -1282,5 +1414,7 @@ if (isMainModule(import.meta.url)) {
1282
1414
  });
1283
1415
  }
1284
1416
  export {
1285
- boot
1417
+ boot,
1418
+ fetchTasksByFile,
1419
+ reconcileSignature
1286
1420
  };
@@ -1,25 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  getSessionPrompt
4
- } from "../chunk-K6KRBXQP.js";
5
- import "../chunk-6BQG7EKO.js";
6
- import "../chunk-A47MXY2I.js";
4
+ } from "../chunk-MTFSD6DH.js";
5
+ import "../chunk-6IK2ME5X.js";
6
+ import "../chunk-6L6SXVTP.js";
7
7
  import {
8
8
  DEFAULT_COORDINATOR_TEMPLATE_NAME,
9
9
  getCoordinatorName,
10
10
  getEmployee,
11
11
  loadEmployees
12
- } from "../chunk-RWSLVYTE.js";
12
+ } from "../chunk-GD7FA6IP.js";
13
13
  import "../chunk-2I23RPSI.js";
14
- import "../chunk-BV6GBSRP.js";
14
+ import "../chunk-IKAGAKAI.js";
15
15
  import "../chunk-PNQDP3OA.js";
16
16
  import "../chunk-H73TUI4Y.js";
17
17
  import "../chunk-7HLWBYH7.js";
18
18
  import "../chunk-FXU7JOXK.js";
19
19
  import {
20
20
  EXE_AI_DIR
21
- } from "../chunk-7Y5UDEVM.js";
22
- import "../chunk-SHIICYJW.js";
21
+ } from "../chunk-OL4JFQ2T.js";
22
+ import "../chunk-BYTDMAGB.js";
23
23
  import {
24
24
  isMainModule
25
25
  } from "../chunk-6Y4B3QF6.js";
@@ -6,27 +6,27 @@ import {
6
6
  } from "../chunk-6KFICEAT.js";
7
7
  import {
8
8
  assertSecureEndpoint
9
- } from "../chunk-YWQMWFYR.js";
10
- import "../chunk-B75BOKEI.js";
11
- import "../chunk-AYLNJGCS.js";
12
- import "../chunk-OUEFW4RK.js";
13
- import "../chunk-RNAYCUNM.js";
14
- import "../chunk-JCBKARSK.js";
15
- import "../chunk-BJ23BNED.js";
9
+ } from "../chunk-2YPCD2UH.js";
10
+ import "../chunk-735SUAT4.js";
11
+ import "../chunk-IRUWKANS.js";
12
+ import "../chunk-CBD64QQG.js";
13
+ import "../chunk-KRRZNASS.js";
16
14
  import "../chunk-QGGH7LOU.js";
17
- import "../chunk-EDH54E5A.js";
15
+ import "../chunk-S3THSOWV.js";
16
+ import "../chunk-IOEUAQWP.js";
17
+ import "../chunk-ZYLKX3KB.js";
18
18
  import "../chunk-CHCA3ZM2.js";
19
19
  import "../chunk-OTVEIJUQ.js";
20
- import "../chunk-7LF5DS3A.js";
21
- import "../chunk-RP5GETX5.js";
22
- import "../chunk-UU4UINUX.js";
20
+ import "../chunk-4MLSFZLY.js";
21
+ import "../chunk-4QCFFW2H.js";
22
+ import "../chunk-R3QDXB55.js";
23
23
  import "../chunk-AFNRE2RV.js";
24
- import "../chunk-3NGZ4PL7.js";
24
+ import "../chunk-5VV2YMMB.js";
25
25
  import "../chunk-NLEW62VC.js";
26
26
  import "../chunk-MP2AFCGL.js";
27
- import "../chunk-RWSLVYTE.js";
27
+ import "../chunk-GD7FA6IP.js";
28
28
  import "../chunk-2I23RPSI.js";
29
- import "../chunk-BV6GBSRP.js";
29
+ import "../chunk-IKAGAKAI.js";
30
30
  import "../chunk-PNQDP3OA.js";
31
31
  import "../chunk-H73TUI4Y.js";
32
32
  import "../chunk-7HLWBYH7.js";
@@ -37,14 +37,14 @@ import {
37
37
  getMasterKey,
38
38
  importMnemonic,
39
39
  setMasterKey
40
- } from "../chunk-Z42MXYWW.js";
41
- import "../chunk-7SEC2AG5.js";
42
- import "../chunk-PPZOWQHP.js";
40
+ } from "../chunk-QWVXN224.js";
41
+ import "../chunk-4E3SZEEI.js";
42
+ import "../chunk-NG2ABIDX.js";
43
43
  import {
44
44
  loadConfig,
45
45
  saveConfig
46
- } from "../chunk-7Y5UDEVM.js";
47
- import "../chunk-SHIICYJW.js";
46
+ } from "../chunk-OL4JFQ2T.js";
47
+ import "../chunk-BYTDMAGB.js";
48
48
  import {
49
49
  isMainModule
50
50
  } from "../chunk-6Y4B3QF6.js";
@@ -330,7 +330,7 @@ async function linkMode() {
330
330
  if (showFull) {
331
331
  console.log(` ${mnemonic}
332
332
  `);
333
- const { markKeyBackupConfirmed } = await import("../key-backup-status-TNEHXA2X.js");
333
+ const { markKeyBackupConfirmed } = await import("../key-backup-status-TTO2UUYP.js");
334
334
  markKeyBackupConfirmed("exe-os cloud link --show-full");
335
335
  } else {
336
336
  const words = mnemonic.split(" ");