@askexenow/exe-os 0.9.341 → 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 (419) 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-AIQP4DFL.js → active-agent-PVGE57FY.js} +5 -5
  7. package/dist/{active-agent-LW45DSJ4.js → active-agent-TNIO6IY3.js} +5 -5
  8. package/dist/{agentic-ontology-RVUNRCQY.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-ZSDJ4O2T.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-ZAJLEL4X.js → backup-verify-3Y2FHGZU.js} +4 -4
  13. package/dist/{behaviors-EO7KCP3H.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 +25 -23
  24. package/dist/bin/cli.js +79 -25
  25. package/dist/bin/customer-readiness.js +1 -1
  26. package/dist/bin/deferred-daemon-restart.js +98 -92
  27. package/dist/bin/exe-agent-config.js +9 -8
  28. package/dist/bin/exe-agent.js +17 -17
  29. package/dist/bin/exe-assign.js +12 -12
  30. package/dist/bin/exe-boot.js +200 -67
  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 +25 -23
  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 +28 -27
  42. package/dist/bin/exe-kill.js +30 -28
  43. package/dist/bin/exe-launch-agent.js +128 -67
  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 +26 -24
  47. package/dist/bin/exe-pending-notifications.js +25 -23
  48. package/dist/bin/exe-pending-reviews.js +25 -23
  49. package/dist/bin/exe-rename.js +7 -7
  50. package/dist/bin/exe-review.js +29 -27
  51. package/dist/bin/exe-search.js +11 -9
  52. package/dist/bin/exe-session-cleanup.js +115 -85
  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 +26 -24
  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 +26 -24
  62. package/dist/bin/graph-backfill.js +11 -11
  63. package/dist/bin/graph-export.js +9 -9
  64. package/dist/bin/import-history.js +13 -13
  65. package/dist/bin/install.js +103 -97
  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 +2 -2
  73. package/dist/bin/registry-proxy.js +1 -1
  74. package/dist/bin/scan-tasks.js +25 -23
  75. package/dist/bin/setup.js +6 -5
  76. package/dist/bin/shard-migrate.js +9 -9
  77. package/dist/bin/stack-update.js +6 -6
  78. package/dist/bin/update.js +1 -1
  79. package/dist/bin/vps-health-gate.js +1 -1
  80. package/dist/{boot-generation-GSMPJOWM.js → boot-generation-BL2ISK4U.js} +5 -5
  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-OBYQNAKZ.js → capability-cards-DN5UIKVN.js} +4 -4
  86. package/dist/{capacity-monitor-MG3FTUD5.js → capacity-monitor-ZG5GGFR2.js} +26 -24
  87. package/dist/{catchup-brief-BVJOF3GL.js → catchup-brief-D6HH6DWS.js} +31 -28
  88. package/dist/{chunk-Q5AIPSSC.js → chunk-25X4JD2V.js} +10 -6
  89. package/dist/{chunk-6MVI4QH2.js → chunk-2KZNGDSW.js} +1 -1
  90. package/dist/{chunk-WH7XN5ER.js → chunk-2WAVZ5UJ.js} +1 -1
  91. package/dist/{chunk-PTJBWC77.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-X5QVL6RE.js → chunk-4CMVFVFC.js} +173 -69
  95. package/dist/{chunk-2YCFNBC4.js → chunk-4J4PMPXZ.js} +3 -2
  96. package/dist/{chunk-EDOO23B2.js → chunk-4N2NRGCM.js} +2 -2
  97. package/dist/chunk-4QCFFW2H.js +378 -0
  98. package/dist/{chunk-6MVC43X7.js → chunk-4VSV5P4D.js} +2 -2
  99. package/dist/{chunk-HJX6NCJF.js → chunk-4ZCD2UWW.js} +39 -10
  100. package/dist/{chunk-C445WRUX.js → chunk-5ERDIOV3.js} +2 -2
  101. package/dist/chunk-5H47VHB7.js +30 -0
  102. package/dist/{chunk-BJ23BNED.js → chunk-5TY4FPH6.js} +1 -1
  103. package/dist/{chunk-WD55PEBM.js → chunk-6CH3TPHR.js} +3 -3
  104. package/dist/{chunk-TIXTHUVJ.js → chunk-6WQ3NNCE.js} +3 -3
  105. package/dist/{chunk-7LF5DS3A.js → chunk-6XWTQUO4.js} +1 -1
  106. package/dist/chunk-76CJBM36.js +88 -0
  107. package/dist/{chunk-NFBW7N4D.js → chunk-7CTRGNLW.js} +2 -2
  108. package/dist/{chunk-ITMEE7PQ.js → chunk-7V4JADD6.js} +3 -3
  109. package/dist/{chunk-RMOBQ6A5.js → chunk-AD2VCHSS.js} +1 -1
  110. package/dist/{chunk-DNVFWFYF.js → chunk-AJYCFKJR.js} +1 -1
  111. package/dist/chunk-AM7S2TY6.js +54 -0
  112. package/dist/{chunk-RWSLVYTE.js → chunk-AOHXREB7.js} +295 -67
  113. package/dist/{chunk-DGGDUKH6.js → chunk-ASAFVDVR.js} +1 -1
  114. package/dist/{chunk-NTI22F3R.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-BMHQPIJ2.js → chunk-CE7F6RHG.js} +585 -75
  118. package/dist/{chunk-YWQMWFYR.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-YHUNDGVV.js → chunk-EUS4QUKP.js} +1 -1
  123. package/dist/{chunk-6D2PI4QD.js → chunk-EV46QTD3.js} +1 -1
  124. package/dist/{chunk-N7A5D25S.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-MC4ATFJV.js → chunk-FPFPLPUY.js} +6 -6
  128. package/dist/{chunk-UU4UINUX.js → chunk-G4RGKBCA.js} +2 -2
  129. package/dist/{chunk-HAZO7TRD.js → chunk-G5T6KDG4.js} +1 -1
  130. package/dist/{chunk-TWXZM34M.js → chunk-GBTTBXAF.js} +6 -6
  131. package/dist/{chunk-LA2Z6RMS.js → chunk-GDIJE6D7.js} +1 -1
  132. package/dist/{chunk-4QSJVMMT.js → chunk-GG5NDQNN.js} +2 -2
  133. package/dist/{chunk-6BQG7EKO.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-HSYJ6DZ2.js → chunk-H6BV5TKD.js} +39 -24
  137. package/dist/{chunk-HCJCW7X4.js → chunk-H7I47RS5.js} +34 -1
  138. package/dist/{chunk-GFDGDFBF.js → chunk-HA5R6USD.js} +22 -5
  139. package/dist/{chunk-L2YGXJGF.js → chunk-HAF2DJYV.js} +3 -3
  140. package/dist/chunk-HJ447YER.js +224 -0
  141. package/dist/{chunk-6QW6JHRE.js → chunk-HV4KESRY.js} +59 -32
  142. package/dist/{chunk-BJOBR6P2.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-2UGGBIDL.js → chunk-JGIPOUIK.js} +3 -3
  146. package/dist/{chunk-LLU6WZLK.js → chunk-JLZ4RYSD.js} +2 -2
  147. package/dist/{chunk-WWNQFOSP.js → chunk-JMYHW3AL.js} +2 -2
  148. package/dist/{chunk-KP4PY2Z2.js → chunk-JPUZPAAF.js} +4 -4
  149. package/dist/{chunk-4LWV633D.js → chunk-JTBIS4R5.js} +1 -1
  150. package/dist/{chunk-PPZOWQHP.js → chunk-K7KFGDWF.js} +1 -1
  151. package/dist/{chunk-HNLXMD2V.js → chunk-KGWRTRKC.js} +2 -2
  152. package/dist/{chunk-IB336P52.js → chunk-KP3U5QGJ.js} +1 -1
  153. package/dist/{chunk-OUEFW4RK.js → chunk-KW2SD2FL.js} +2 -2
  154. package/dist/{chunk-2P4WJNN5.js → chunk-KWZMQACA.js} +11 -7
  155. package/dist/{chunk-ATKW3SYL.js → chunk-L2R3LN2P.js} +1 -1
  156. package/dist/{chunk-IELUDZAA.js → chunk-L4A5DL6Z.js} +3 -3
  157. package/dist/{chunk-2C455MU3.js → chunk-LU2FALL6.js} +3 -3
  158. package/dist/{chunk-LOBCQXV5.js → chunk-MKYFAKDW.js} +4 -4
  159. package/dist/{chunk-3BRVLPPA.js → chunk-MOPUCPXK.js} +4 -0
  160. package/dist/{chunk-BR4423AS.js → chunk-MR6LHP4F.js} +1 -1
  161. package/dist/chunk-MVYB76QG.js +341 -0
  162. package/dist/{chunk-ZNE6H2JO.js → chunk-MZM6EJCU.js} +4 -4
  163. package/dist/{chunk-FOV57K47.js → chunk-N7QJKQMX.js} +258 -14
  164. package/dist/{chunk-AYLNJGCS.js → chunk-NBZL5CGA.js} +93 -12
  165. package/dist/{chunk-YLQXP7T7.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-BV6GBSRP.js → chunk-OLMQ4UOF.js} +42 -10
  171. package/dist/{chunk-UIU2DGRV.js → chunk-OTF44GXL.js} +4 -4
  172. package/dist/{chunk-GOGSWXNZ.js → chunk-OZEBAGKR.js} +277 -137
  173. package/dist/{chunk-NDSNM5OH.js → chunk-P5HIWY2E.js} +1 -1
  174. package/dist/{chunk-MJB5ZFQM.js → chunk-PDWS3E22.js} +55 -4
  175. package/dist/{chunk-4FJZ6SO7.js → chunk-PPCDBE6Z.js} +1 -1
  176. package/dist/{chunk-7SEC2AG5.js → chunk-PQIDGXSG.js} +13 -4
  177. package/dist/chunk-PWUFMX75.js +186 -0
  178. package/dist/{chunk-GPW32HVB.js → chunk-QDGZJ653.js} +3 -3
  179. package/dist/{chunk-CYA5S5OD.js → chunk-QOO5RW3K.js} +6 -5
  180. package/dist/{chunk-IXBIVKWZ.js → chunk-QQ4E2RYW.js} +95 -18
  181. package/dist/{chunk-2WMTTIAZ.js → chunk-QRYVCDWS.js} +2 -2
  182. package/dist/{chunk-Z42MXYWW.js → chunk-QWVXN224.js} +110 -28
  183. package/dist/{chunk-XSMRR4IW.js → chunk-QYZJHTNE.js} +26 -27
  184. package/dist/{chunk-I7ECEP3W.js → chunk-R2NN3JKH.js} +43 -6
  185. package/dist/{chunk-B7CUBLF7.js → chunk-RACAOE2Z.js} +13 -13
  186. package/dist/{chunk-5RACW3LX.js → chunk-RAXVPNMR.js} +1 -1
  187. package/dist/{chunk-CMR64RYM.js → chunk-RHWZUUS4.js} +17 -17
  188. package/dist/{chunk-RNAYCUNM.js → chunk-S3THSOWV.js} +1 -1
  189. package/dist/{chunk-U2MREVXQ.js → chunk-S7QUM2UK.js} +2 -2
  190. package/dist/{chunk-SSTLTIF3.js → chunk-SKGMF2SO.js} +25 -2
  191. package/dist/{chunk-J6SEDDOR.js → chunk-SQKXKV2Y.js} +2 -2
  192. package/dist/{chunk-DPFQ2WQX.js → chunk-TLT7NZCW.js} +4 -4
  193. package/dist/chunk-TTCUG2CF.js +91 -0
  194. package/dist/{chunk-W6K4XB6G.js → chunk-UEA3LXOB.js} +1 -1
  195. package/dist/{chunk-WNKVKNOM.js → chunk-UNXQBELK.js} +1 -1
  196. package/dist/{chunk-KKOLHBNC.js → chunk-UP75Z5X7.js} +904 -167
  197. package/dist/{chunk-Y3S4H77G.js → chunk-USSB56WK.js} +1 -1
  198. package/dist/{chunk-PVIH3ZGV.js → chunk-UUEKJDK6.js} +90 -10
  199. package/dist/{chunk-T2PYVVZ5.js → chunk-UUQBZPJJ.js} +1 -1
  200. package/dist/{chunk-32YHCHWW.js → chunk-V3EEVY4L.js} +1 -1
  201. package/dist/{chunk-2IWBY7XK.js → chunk-VPZHJCKW.js} +2 -2
  202. package/dist/chunk-VRAQTFD6.js +265 -0
  203. package/dist/{chunk-EDH54E5A.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-CCIEIRV2.js → chunk-X33NYQYJ.js} +2 -2
  209. package/dist/{chunk-K6KRBXQP.js → chunk-XHK3FS3W.js} +3 -2
  210. package/dist/{chunk-AP455LBW.js → chunk-XZXBB3TN.js} +2 -2
  211. package/dist/{chunk-JSKBHUR7.js → chunk-YCANDMI2.js} +2 -2
  212. package/dist/{chunk-YIIME2OW.js → chunk-YLXTKI6M.js} +1 -1
  213. package/dist/{chunk-LEJ25726.js → chunk-YTCFACP4.js} +650 -434
  214. package/dist/{chunk-HUSVERE6.js → chunk-Z6RSN7KS.js} +7 -6
  215. package/dist/{cleanup-graph-garbage-MXQ4Q2MA.js → cleanup-graph-garbage-XWUFAMFO.js} +8 -8
  216. package/dist/{co-activation-QI5BK4RT.js → co-activation-ZCHPLLP6.js} +4 -4
  217. package/dist/{co-occurrence-BYSQNZSV.js → co-occurrence-KG3LKALN.js} +6 -6
  218. package/dist/{code-context-index-BNBHDXHW.js → code-context-index-WSOJQ72R.js} +5 -5
  219. package/dist/{content-extractor-JRJDNIHP.js → content-extractor-NXYNEF5K.js} +2 -2
  220. package/dist/{conversation-entity-extractor-FPAMTL3C.js → conversation-entity-extractor-D3EFTLT4.js} +2 -2
  221. package/dist/{conversation-wiki-populator-WU4HEQ7C.js → conversation-wiki-populator-WQN3IUU6.js} +1 -1
  222. package/dist/{crdt-sync-ETPKNBCU.js → crdt-sync-4PFGPZXV.js} +8 -1
  223. package/dist/{crm-webhook-M566ZMZS.js → crm-webhook-II7Z45Q6.js} +2 -2
  224. package/dist/cto-delegation-gate-JWWOJPNC.js +669 -0
  225. package/dist/{daemon-auth-7IFSV5FG.js → daemon-auth-3FEAHFWC.js} +5 -3
  226. package/dist/{daemon-orchestration-XV5GN73R.js → daemon-orchestration-FX4XZDR5.js} +45 -26
  227. package/dist/{daemon-ready-RKKB4P6K.js → daemon-ready-4JTSFKAY.js} +1 -1
  228. package/dist/{daemon-ready-signal-WKEJQNRA.js → daemon-ready-signal-LPAZWQOV.js} +3 -1
  229. package/dist/daemon-restart-circuit-breaker-PEGEIP6H.js +35 -0
  230. package/dist/daemon-timer-report-NM44WQRH.js +25 -0
  231. package/dist/{db-backup-MX2G3CEK.js → db-backup-W2QFSYQC.js} +15 -5
  232. package/dist/{db-restore-events-JVEEP52Z.js → db-restore-events-MQ2DBGEQ.js} +2 -2
  233. package/dist/dispatch-ack-VYH3ONSS.js +27 -0
  234. package/dist/{doc-graph-extractor-LR5KMPH7.js → doc-graph-extractor-F6ODFIID.js} +6 -6
  235. package/dist/{documents-FA6N7QDA.js → documents-23WX2FPQ.js} +12 -12
  236. package/dist/dreaming-NWD22UQ5.js +46 -0
  237. package/dist/{exe-drift-TUKTCXZE.js → exe-drift-CW72FBGE.js} +5 -5
  238. package/dist/{exe-export-ZLHBXMZC.js → exe-export-AUJ7CV7G.js} +11 -11
  239. package/dist/{exe-import-VVKBZWSA.js → exe-import-JX4I52VE.js} +11 -11
  240. package/dist/{exe-key-QJXFBF6G.js → exe-key-2N6LY2BU.js} +242 -228
  241. package/dist/{exe-org-BGZNNE4H.js → exe-org-X4CSNCKS.js} +3 -3
  242. package/dist/{exe-snapshot-JRLUO645.js → exe-snapshot-XZ7FVCYZ.js} +30 -28
  243. package/dist/{fast-db-init-JKJEEHUI.js → fast-db-init-4CWHSOOR.js} +1 -1
  244. package/dist/{founder-context-HWPLMZVR.js → founder-context-7L3CFPYN.js} +4 -4
  245. package/dist/gateway/index.js +25 -25
  246. package/dist/{gateway-client-GRBOJQYC.js → gateway-client-7LMZKHTH.js} +1 -1
  247. package/dist/git-main-guard-UZP3KXYI.js +39 -0
  248. package/dist/{git-staleness-X5XZONX3.js → git-staleness-CI2R4QOJ.js} +4 -4
  249. package/dist/{global-procedures-VIIVWB6R.js → global-procedures-XQX3LUH6.js} +6 -6
  250. package/dist/{graph-auto-extract-HCQQF5AG.js → graph-auto-extract-OURWMGBS.js} +6 -6
  251. package/dist/{graph-rag-WAK2BRJH.js → graph-rag-JZZAB7PC.js} +2 -2
  252. package/dist/{hook-integrity-WURH6DS3.js → hook-integrity-XY47IM7G.js} +1 -1
  253. package/dist/hook-prefetch-PHRRKY4C.js +137 -0
  254. package/dist/hooks/bug-report-worker.js +31 -27
  255. package/dist/hooks/codex-stop-task-finalizer.js +31 -27
  256. package/dist/hooks/commit-complete.js +28 -26
  257. package/dist/hooks/error-recall.js +12 -11
  258. package/dist/hooks/exe-heartbeat-hook.js +6 -6
  259. package/dist/hooks/ingest-worker.js +11 -11
  260. package/dist/hooks/ingest.js +18 -18
  261. package/dist/hooks/instructions-loaded.js +7 -7
  262. package/dist/hooks/manifest.json +20 -20
  263. package/dist/hooks/notification.js +7 -7
  264. package/dist/hooks/post-compact.js +27 -25
  265. package/dist/hooks/post-tool-combined.js +12 -12
  266. package/dist/hooks/pre-compact.js +28 -26
  267. package/dist/hooks/pre-tool-use.js +179 -46
  268. package/dist/hooks/prompt-submit.js +323 -272
  269. package/dist/hooks/session-end.js +34 -32
  270. package/dist/hooks/session-start.js +28 -21
  271. package/dist/hooks/stop.js +34 -32
  272. package/dist/hooks/subagent-stop.js +27 -25
  273. package/dist/hooks/summary-worker.js +35 -33
  274. package/dist/index.js +40 -38
  275. package/dist/{installer-6IFVEQI4.js → installer-G3JAO3NT.js} +9 -9
  276. package/dist/{installer-NX2CLNV5.js → installer-JND3RJ6Q.js} +9 -9
  277. package/dist/{installer-T2LGHZKL.js → installer-L7EVH5U5.js} +9 -9
  278. package/dist/{intercom-queue-KYHXXZCQ.js → intercom-queue-ZFEQALR3.js} +24 -22
  279. package/dist/{key-backup-status-TNEHXA2X.js → key-backup-status-LOSMVATJ.js} +2 -2
  280. package/dist/lib/agent-config.js +4 -3
  281. package/dist/lib/cloud-sync.js +19 -19
  282. package/dist/lib/config.js +2 -2
  283. package/dist/lib/consolidation.js +11 -11
  284. package/dist/lib/crypto.js +3 -3
  285. package/dist/lib/database.js +6 -4
  286. package/dist/lib/db-daemon-client.js +5 -5
  287. package/dist/lib/db-read-worker-client.js +9 -3
  288. package/dist/lib/db.js +6 -4
  289. package/dist/lib/device-registry.js +3 -3
  290. package/dist/lib/embed-worker.js +2 -2
  291. package/dist/lib/embedder.js +5 -5
  292. package/dist/lib/employee-templates.js +7 -7
  293. package/dist/lib/employees.js +10 -4
  294. package/dist/lib/exe-daemon-client.js +4 -4
  295. package/dist/lib/exe-daemon.js +588 -164
  296. package/dist/lib/hybrid-search.js +11 -9
  297. package/dist/lib/identity.js +4 -4
  298. package/dist/lib/keychain.js +1 -1
  299. package/dist/lib/license.js +4 -4
  300. package/dist/lib/messaging.js +27 -23
  301. package/dist/lib/post-tool-memory.js +3 -3
  302. package/dist/lib/registry-proxy.js +1 -1
  303. package/dist/lib/reminders.js +15 -7
  304. package/dist/lib/schedules.js +9 -9
  305. package/dist/lib/session-registry.js +6 -6
  306. package/dist/lib/skill-learning.js +10 -10
  307. package/dist/lib/status-brief.js +4 -4
  308. package/dist/lib/store.js +8 -8
  309. package/dist/lib/task-router.js +5 -5
  310. package/dist/lib/tasks.js +28 -24
  311. package/dist/lib/tmux-routing.js +55 -24
  312. package/dist/lib/tmux-status.js +9 -3
  313. package/dist/lib/tmux-transport.js +1 -1
  314. package/dist/lib/token-spend.js +5 -5
  315. package/dist/lib/transport.js +2 -2
  316. package/dist/lib/ws-client.js +1 -1
  317. package/dist/{license-gate-MGDR4YNI.js → license-gate-QTRQHV4F.js} +5 -5
  318. package/dist/{license-sync-UWE6GEB4.js → license-sync-N3UJFWAW.js} +4 -4
  319. package/dist/mcp/register-tools.js +97 -91
  320. package/dist/mcp/server.js +99 -93
  321. package/dist/mcp/tools/complete-reminder.js +6 -6
  322. package/dist/mcp/tools/create-reminder.js +6 -6
  323. package/dist/mcp/tools/create-task.js +36 -27
  324. package/dist/mcp/tools/deactivate-behavior.js +11 -11
  325. package/dist/mcp/tools/list-reminders.js +6 -6
  326. package/dist/mcp/tools/list-tasks.js +34 -28
  327. package/dist/mcp/tools/send-message.js +27 -25
  328. package/dist/mcp/tools/update-task.js +33 -27
  329. package/dist/{mcp-http-config-RQLYEPTL.js → mcp-http-config-BDL36JZ3.js} +6 -6
  330. package/dist/{mcp-port-config-FFAMMLLE.js → mcp-port-config-6HYY6J7K.js} +2 -2
  331. package/dist/mcp-session-identity-T7H2EKFQ.js +177 -0
  332. package/dist/{memory-cards-VYQ5DPMR.js → memory-cards-ZRDW7QBX.js} +8 -8
  333. package/dist/{memory-graph-extractor-GX2HNYLU.js → memory-graph-extractor-QLXDMHRS.js} +7 -7
  334. package/dist/{memory-poisoning-defense-TX7627BD.js → memory-poisoning-defense-HJTXYCWH.js} +4 -4
  335. package/dist/{memory-pressure-watchdog-MLNNH26B.js → memory-pressure-watchdog-HN5X7AVN.js} +75 -36
  336. package/dist/{memory-queue-X2CSEAKE.js → memory-queue-2UOOF27L.js} +5 -3
  337. package/dist/{memory-queue-client-YRL6XTGU.js → memory-queue-client-O5U6F6XP.js} +6 -6
  338. package/dist/{memory-reflection-KIGEFSI4.js → memory-reflection-WVNFBJAA.js} +4 -4
  339. package/dist/{monitor-grants-RZOVSYVO.js → monitor-grants-E3ELDEWD.js} +5 -5
  340. package/dist/{monitor-identity-MOXISYNG.js → monitor-identity-GLFZSEAH.js} +2 -2
  341. package/dist/{notification-ledger-B6AVEGMV.js → notification-ledger-SZEPGJQ7.js} +25 -23
  342. package/dist/{notifications-DWXV7SVL.js → notifications-4UT53CDG.js} +24 -22
  343. package/dist/{orchestration-events-ZG7O4HRY.js → orchestration-events-WV4NWKZH.js} +5 -5
  344. package/dist/{orchestration-phase-CXRCBCK7.js → orchestration-phase-AWBXPO52.js} +3 -3
  345. package/dist/orchestrator-UAC3RW2T.js +47 -0
  346. package/dist/{pipeline-router-RTLAGZTA.js → pipeline-router-LM53NMWJ.js} +5 -5
  347. package/dist/{plan-limits-WLQZTCSF.js → plan-limits-2FEY2GOS.js} +7 -7
  348. package/dist/platform-procedures-X5DFJFV7.js +13 -0
  349. package/dist/{preferences-TYTGDXQZ.js → preferences-TWIXZBKS.js} +2 -2
  350. package/dist/{project-boot-6CGQ3EAH.js → project-boot-4NUH5FRU.js} +2 -2
  351. package/dist/{projection-worker-44SEKTZ5.js → projection-worker-FZ7YSN3G.js} +5 -5
  352. package/dist/{prospective-memory-UACFTYXK.js → prospective-memory-6D2ASWM3.js} +4 -4
  353. package/dist/{push-notifications-W5JRXLKJ.js → push-notifications-U6FIBQRW.js} +3 -3
  354. package/dist/{reranker-NL4YAV6R.js → reranker-GYYRPANK.js} +3 -3
  355. package/dist/{retrieval-health-4C2PO6HH.js → retrieval-health-4Z242P3B.js} +1 -1
  356. package/dist/{review-polling-W5AMHNLT.js → review-polling-HXAFJZDA.js} +25 -23
  357. package/dist/runtime/index.js +35 -33
  358. package/dist/{session-events-PGL5GJEB.js → session-events-O3BV56ZX.js} +25 -23
  359. package/dist/{session-kill-telemetry-6YDGEF27.js → session-kill-telemetry-AELE4JDK.js} +25 -23
  360. package/dist/session-mcp-config-YKNXG5DW.js +50 -0
  361. package/dist/{session-scope-3MEOO557.js → session-scope-5EAPUT45.js} +24 -22
  362. package/dist/setup-wizard-NB6R4QVS.js +14 -0
  363. package/dist/{shard-manager-MBWQEYNG.js → shard-manager-35PWFR3B.js} +3 -3
  364. package/dist/{skill-refinement-EOROTBPX.js → skill-refinement-DVSYXBBP.js} +5 -5
  365. package/dist/{stack-release-PR2XKJ4Q.js → stack-release-HGFFFCGC.js} +90 -15
  366. package/dist/{stack-update-LMDM27ZW.js → stack-update-ATCJFOEK.js} +5 -5
  367. package/dist/{steward-gate-4A2XHYFD.js → steward-gate-3GQ5XKMJ.js} +5 -5
  368. package/dist/{support-inbox-Z77ACQUY.js → support-inbox-4L62P4EP.js} +7 -6
  369. package/dist/{support-outbox-GB5SQFRJ.js → support-outbox-WHGPUYL2.js} +2 -2
  370. package/dist/task-enforcement-IPIZX2MM.js +90 -0
  371. package/dist/{task-scope-EKYDCVUF.js → task-scope-FOIW25HR.js} +26 -22
  372. package/dist/{tasks-crud-6LBNU43G.js → tasks-crud-HBDKE6C5.js} +34 -22
  373. package/dist/tasks-notify-G2U2U2YA.js +53 -0
  374. package/dist/{tasks-review-PBIUYXAL.js → tasks-review-27SFX5XN.js} +26 -22
  375. package/dist/{telemetry-upload-WQDFABTF.js → telemetry-upload-ZOXHRWR5.js} +9 -9
  376. package/dist/tmux-command-guard-KSJKIX3C.js +117 -0
  377. package/dist/{token-budget-KWGL5DY7.js → token-budget-5Y4YPDO3.js} +5 -5
  378. package/dist/{tool-capability-index-EH3HQVHU.js → tool-capability-index-VYF5GNJ2.js} +1 -1
  379. package/dist/{tool-telemetry-UC55LSIH.js → tool-telemetry-KBXSBDTK.js} +1 -1
  380. package/dist/tui/App.js +39 -37
  381. package/dist/{tui-data-M3RBSJL3.js → tui-data-NLFMBIQI.js} +24 -22
  382. package/dist/{update-check-HFO4VHO4.js → update-check-3FHAWIG2.js} +7 -3
  383. package/dist/{update-support-VPBD5SD2.js → update-support-UVUSZG7R.js} +93 -93
  384. package/dist/{whatsapp-accounts-BWRZUY23.js → whatsapp-accounts-BFIOXYW5.js} +1 -1
  385. package/dist/{whatsapp-config-GOSELKTE.js → whatsapp-config-FAX6EA5K.js} +20 -13
  386. package/dist/{worker-gate-4QLLMXZM.js → worker-gate-3KUBAU32.js} +3 -3
  387. package/dist/{workflow-engine-MMEHKUN4.js → workflow-engine-YITHXZR5.js} +2 -2
  388. package/dist/{working-memory-PY4AG577.js → working-memory-NUVB5SFV.js} +1 -1
  389. package/dist/worktree-LL62PLQB.js +47 -0
  390. package/dist/{worktree-sweep-5WKBU7E6.js → worktree-sweep-WTK3MTKH.js} +7 -7
  391. package/package.json +3 -2
  392. package/release-notes.json +75 -43
  393. package/dist/branch-hygiene-R5NVTRAY.js +0 -138
  394. package/dist/chunk-7YORGTXC.js +0 -138
  395. package/dist/chunk-CCPHEPLU.js +0 -30
  396. package/dist/chunk-HMP5VT6A.js +0 -118
  397. package/dist/chunk-PVYR4FCQ.js +0 -113
  398. package/dist/chunk-RP5GETX5.js +0 -140
  399. package/dist/chunk-YGAAZN3E.js +0 -47
  400. package/dist/cto-delegation-gate-S734XDXT.js +0 -290
  401. package/dist/dispatch-ack-4S44HBWB.js +0 -15
  402. package/dist/dreaming-UKGTQT6I.js +0 -44
  403. package/dist/orchestrator-PGHJDUUT.js +0 -45
  404. package/dist/setup-wizard-CJIYDSSP.js +0 -13
  405. package/dist/tasks-notify-TFJLSQ3B.js +0 -50
  406. package/dist/worktree-YXBDRYOC.js +0 -31
  407. package/dist/{chunk-7UMCQQWS.js → chunk-A4DVMPYB.js} +3 -3
  408. /package/dist/{chunk-2KLAYDFB.js → chunk-GIBYNT6W.js} +0 -0
  409. /package/dist/{chunk-MC6VPZKS.js → chunk-JRM4TAGS.js} +0 -0
  410. /package/dist/{chunk-3NCZKWPO.js → chunk-MGGOSFCR.js} +0 -0
  411. /package/dist/{chunk-C2SRRCRK.js → chunk-QIFYLIUF.js} +0 -0
  412. /package/dist/{chunk-OADURIIN.js → chunk-WTH4CSAP.js} +0 -0
  413. /package/dist/{core-memory-3IBWM4WR.js → core-memory-GAC6EWOQ.js} +0 -0
  414. /package/dist/{entity-boost-DWAWXFKN.js → entity-boost-NT6UO2Z3.js} +0 -0
  415. /package/dist/{message-queue-client-3PTHPG5Q.js → message-queue-client-4EOQRUXW.js} +0 -0
  416. /package/dist/{oauth-server-M5TGXT6D.js → oauth-server-67YBDP32.js} +0 -0
  417. /package/dist/{webhook-pipe-FZYLO6RR.js → webhook-pipe-LEXMUQ5B.js} +0 -0
  418. /package/dist/{wiki-acl-7CROE3MJ.js → wiki-acl-74BLWG6J.js} +0 -0
  419. /package/dist/{wiki-client-VNDOBK63.js → wiki-client-EAN7F5LV.js} +0 -0
@@ -1,119 +1,124 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  computeMcpSurfaceHash
4
- } from "./chunk-NTI22F3R.js";
4
+ } from "./chunk-BUCXNV32.js";
5
5
  import "./chunk-WCGNCH3Q.js";
6
- import "./chunk-LEJ25726.js";
6
+ import "./chunk-YTCFACP4.js";
7
+ import "./chunk-TLT7NZCW.js";
8
+ import "./chunk-UUQBZPJJ.js";
9
+ import "./chunk-HV4KESRY.js";
7
10
  import "./chunk-557C2IGL.js";
8
- import "./chunk-DPFQ2WQX.js";
9
- import "./chunk-T2PYVVZ5.js";
10
- import "./chunk-6QW6JHRE.js";
11
- import "./chunk-LOBCQXV5.js";
12
- import "./chunk-U2MREVXQ.js";
13
- import "./chunk-YHUNDGVV.js";
14
- import "./chunk-L2YGXJGF.js";
15
- import "./chunk-WNKVKNOM.js";
11
+ import "./chunk-TTCUG2CF.js";
12
+ import "./chunk-5H47VHB7.js";
13
+ import "./chunk-EUS4QUKP.js";
14
+ import "./chunk-MKYFAKDW.js";
15
+ import "./chunk-UNXQBELK.js";
16
16
  import "./chunk-CRCB5S7I.js";
17
- import "./chunk-YLQXP7T7.js";
18
- import "./chunk-PVYR4FCQ.js";
19
- import "./chunk-BMHQPIJ2.js";
20
- import "./chunk-NDSNM5OH.js";
21
- import "./chunk-MC6VPZKS.js";
22
- import "./chunk-3NCZKWPO.js";
17
+ import "./chunk-S7QUM2UK.js";
18
+ import "./chunk-NN2B2QKU.js";
19
+ import "./chunk-HAF2DJYV.js";
20
+ import "./chunk-CE7F6RHG.js";
21
+ import "./chunk-4CMVFVFC.js";
22
+ import "./chunk-P5HIWY2E.js";
23
+ import "./chunk-JRM4TAGS.js";
24
+ import "./chunk-MGGOSFCR.js";
23
25
  import "./chunk-E6ORBQHP.js";
24
- import "./chunk-32SXNM3G.js";
25
- import "./chunk-MC4ATFJV.js";
26
- import "./chunk-GOGSWXNZ.js";
27
- import "./chunk-HMP5VT6A.js";
28
- import "./chunk-CYA5S5OD.js";
29
- import "./chunk-HUSVERE6.js";
30
- import "./chunk-CCPHEPLU.js";
31
- import "./chunk-2YCFNBC4.js";
32
- import "./chunk-N7A5D25S.js";
33
- import "./chunk-ZNE6H2JO.js";
34
- import "./chunk-PVIH3ZGV.js";
35
- import "./chunk-TIXTHUVJ.js";
36
- import "./chunk-ITMEE7PQ.js";
37
- import "./chunk-WWNQFOSP.js";
38
- import "./chunk-IELUDZAA.js";
39
- import "./chunk-J6SEDDOR.js";
40
- import "./chunk-KP4PY2Z2.js";
41
- import "./chunk-2WMTTIAZ.js";
26
+ import "./chunk-C5QAPURN.js";
27
+ import "./chunk-FPFPLPUY.js";
28
+ import "./chunk-JMYHW3AL.js";
29
+ import "./chunk-OZEBAGKR.js";
30
+ import "./chunk-QOO5RW3K.js";
31
+ import "./chunk-Z6RSN7KS.js";
32
+ import "./chunk-NX5INHHG.js";
33
+ import "./chunk-4J4PMPXZ.js";
34
+ import "./chunk-F27XXN6C.js";
35
+ import "./chunk-UUEKJDK6.js";
36
+ import "./chunk-MZM6EJCU.js";
37
+ import "./chunk-6WQ3NNCE.js";
38
+ import "./chunk-7V4JADD6.js";
39
+ import "./chunk-L4A5DL6Z.js";
40
+ import "./chunk-SQKXKV2Y.js";
41
+ import "./chunk-JPUZPAAF.js";
42
+ import "./chunk-QRYVCDWS.js";
42
43
  import "./chunk-3OEVDGIY.js";
43
- import "./chunk-IXBIVKWZ.js";
44
- import "./chunk-6MVI4QH2.js";
44
+ import "./chunk-QQ4E2RYW.js";
45
+ import "./chunk-2KZNGDSW.js";
45
46
  import "./chunk-KQ4Z2G24.js";
46
47
  import "./chunk-L3TB7CC3.js";
47
- import "./chunk-MJB5ZFQM.js";
48
- import "./chunk-4QSJVMMT.js";
49
- import "./chunk-X2FHTDIU.js";
48
+ import "./chunk-PDWS3E22.js";
49
+ import "./chunk-GG5NDQNN.js";
50
+ import "./chunk-IBYL4DHM.js";
50
51
  import "./chunk-SSC7EKY2.js";
51
- import "./chunk-2P4WJNN5.js";
52
+ import "./chunk-VRAQTFD6.js";
53
+ import "./chunk-KWZMQACA.js";
52
54
  import "./chunk-75H4R62K.js";
53
- import "./chunk-UIU2DGRV.js";
55
+ import "./chunk-OTF44GXL.js";
54
56
  import "./chunk-MMRUBN3I.js";
55
57
  import "./chunk-2XZ6X3PJ.js";
56
- import "./chunk-K6KRBXQP.js";
57
- import "./chunk-6BQG7EKO.js";
58
- import "./chunk-A47MXY2I.js";
59
- import "./chunk-YWQMWFYR.js";
60
- import "./chunk-B75BOKEI.js";
61
- import "./chunk-AYLNJGCS.js";
58
+ import "./chunk-XHK3FS3W.js";
59
+ import "./chunk-GJ26DULE.js";
60
+ import "./chunk-EQHQF5IM.js";
61
+ import "./chunk-CNVBKDEY.js";
62
+ import "./chunk-NXUSDL37.js";
63
+ import "./chunk-NBZL5CGA.js";
62
64
  import "./chunk-X2Z5GT3V.js";
63
- import "./chunk-GPW32HVB.js";
64
- import "./chunk-OUEFW4RK.js";
65
- import "./chunk-WD55PEBM.js";
66
- import "./chunk-7UMCQQWS.js";
67
- import "./chunk-Z6BZQHP5.js";
65
+ import "./chunk-QDGZJ653.js";
66
+ import "./chunk-KW2SD2FL.js";
67
+ import "./chunk-6CH3TPHR.js";
68
+ import "./chunk-A4DVMPYB.js";
68
69
  import "./chunk-GUMRIUI5.js";
70
+ import "./chunk-Z6BZQHP5.js";
69
71
  import "./chunk-VGMACSEV.js";
70
- import "./chunk-RNAYCUNM.js";
71
- import "./chunk-JCBKARSK.js";
72
- import "./chunk-BJ23BNED.js";
73
- import "./chunk-AP455LBW.js";
74
- import "./chunk-5RACW3LX.js";
72
+ import "./chunk-S3THSOWV.js";
73
+ import "./chunk-IOEUAQWP.js";
74
+ import "./chunk-5TY4FPH6.js";
75
+ import "./chunk-XZXBB3TN.js";
76
+ import "./chunk-RAXVPNMR.js";
75
77
  import "./chunk-QGGH7LOU.js";
76
- import "./chunk-XSMRR4IW.js";
77
- import "./chunk-I7ECEP3W.js";
78
- import "./chunk-7YORGTXC.js";
79
- import "./chunk-2IWBY7XK.js";
80
- import "./chunk-FOV57K47.js";
78
+ import "./chunk-QYZJHTNE.js";
79
+ import "./chunk-R2NN3JKH.js";
80
+ import "./chunk-O7LWR36Z.js";
81
+ import "./chunk-PWUFMX75.js";
82
+ import "./chunk-VPZHJCKW.js";
83
+ import "./chunk-N7QJKQMX.js";
81
84
  import "./chunk-AB4PAQYK.js";
82
- import "./chunk-EDH54E5A.js";
85
+ import "./chunk-VSRPS3J7.js";
83
86
  import "./chunk-CHCA3ZM2.js";
84
87
  import "./chunk-OTVEIJUQ.js";
85
- import "./chunk-7LF5DS3A.js";
86
- import "./chunk-C445WRUX.js";
87
- import "./chunk-RP5GETX5.js";
88
- import "./chunk-KKOLHBNC.js";
89
- import "./chunk-ATKW3SYL.js";
90
- import "./chunk-BJOBR6P2.js";
91
- import "./chunk-6D2PI4QD.js";
88
+ import "./chunk-6XWTQUO4.js";
89
+ import "./chunk-76CJBM36.js";
90
+ import "./chunk-5ERDIOV3.js";
91
+ import "./chunk-4QCFFW2H.js";
92
+ import "./chunk-UP75Z5X7.js";
93
+ import "./chunk-L2R3LN2P.js";
94
+ import "./chunk-I26FWCSP.js";
95
+ import "./chunk-EV46QTD3.js";
92
96
  import "./chunk-E23LNUWJ.js";
93
97
  import "./chunk-4JERP7NT.js";
94
98
  import "./chunk-EIKATSE4.js";
95
- import "./chunk-HNLXMD2V.js";
96
- import "./chunk-RMOBQ6A5.js";
97
- import "./chunk-54QCG45Y.js";
98
- import "./chunk-SSTLTIF3.js";
99
- import "./chunk-WH7XN5ER.js";
100
- import "./chunk-GFDGDFBF.js";
101
- import "./chunk-NGP6LSV2.js";
102
- import "./chunk-2UGGBIDL.js";
99
+ import "./chunk-KGWRTRKC.js";
100
+ import "./chunk-AD2VCHSS.js";
101
+ import "./chunk-WOYADZF5.js";
102
+ import "./chunk-SKGMF2SO.js";
103
+ import "./chunk-2WAVZ5UJ.js";
104
+ import "./chunk-HA5R6USD.js";
105
+ import "./chunk-AM7S2TY6.js";
106
+ import "./chunk-JGIPOUIK.js";
107
+ import "./chunk-GWDSB25T.js";
103
108
  import "./chunk-CVYC6DUW.js";
104
- import "./chunk-LLU6WZLK.js";
105
- import "./chunk-HCJCW7X4.js";
109
+ import "./chunk-JLZ4RYSD.js";
110
+ import "./chunk-H7I47RS5.js";
106
111
  import "./chunk-OPU3NYOO.js";
107
- import "./chunk-UU4UINUX.js";
112
+ import "./chunk-G4RGKBCA.js";
108
113
  import {
109
114
  requestDeployRestart
110
115
  } from "./chunk-AFNRE2RV.js";
111
- import "./chunk-3NGZ4PL7.js";
116
+ import "./chunk-X2Q5NLUL.js";
112
117
  import "./chunk-NLEW62VC.js";
113
118
  import "./chunk-HYZV25LY.js";
114
119
  import "./chunk-GJV3WDWM.js";
115
- import "./chunk-YGAAZN3E.js";
116
- import "./chunk-IB336P52.js";
120
+ import "./chunk-GL57PO3K.js";
121
+ import "./chunk-KP3U5QGJ.js";
117
122
  import "./chunk-ML4S5SHZ.js";
118
123
  import "./chunk-MP2AFCGL.js";
119
124
  import {
@@ -121,11 +126,11 @@ import {
121
126
  ensureSchema,
122
127
  getClient,
123
128
  initDatabase
124
- } from "./chunk-RWSLVYTE.js";
129
+ } from "./chunk-AOHXREB7.js";
125
130
  import {
126
131
  assertValidDbPath
127
132
  } from "./chunk-2I23RPSI.js";
128
- import "./chunk-BV6GBSRP.js";
133
+ import "./chunk-OLMQ4UOF.js";
129
134
  import "./chunk-PNQDP3OA.js";
130
135
  import "./chunk-H73TUI4Y.js";
131
136
  import "./chunk-7HLWBYH7.js";
@@ -136,14 +141,15 @@ import {
136
141
  getMasterKey,
137
142
  importMnemonic,
138
143
  setMasterKey
139
- } from "./chunk-Z42MXYWW.js";
140
- import "./chunk-XQNNB5GY.js";
141
- import "./chunk-7SEC2AG5.js";
142
- import "./chunk-PPZOWQHP.js";
144
+ } from "./chunk-QWVXN224.js";
145
+ import "./chunk-NGP6LSV2.js";
146
+ import "./chunk-F55P3H4S.js";
147
+ import "./chunk-PQIDGXSG.js";
148
+ import "./chunk-K7KFGDWF.js";
143
149
  import {
144
150
  loadConfig
145
- } from "./chunk-7Y5UDEVM.js";
146
- import "./chunk-SHIICYJW.js";
151
+ } from "./chunk-WZHZCDDO.js";
152
+ import "./chunk-BYTDMAGB.js";
147
153
  import {
148
154
  isMainModule
149
155
  } from "./chunk-6Y4B3QF6.js";
@@ -232,7 +238,7 @@ async function keyStatus() {
232
238
  console.log(`Storage: ${storage.kind} \u2014 ${storage.note}`);
233
239
  console.log(`Key length: ${key.length} bytes`);
234
240
  try {
235
- const { getKeyBackupStatus, keyBackupMarkerPath } = await import("./key-backup-status-TNEHXA2X.js");
241
+ const { getKeyBackupStatus, keyBackupMarkerPath } = await import("./key-backup-status-LOSMVATJ.js");
236
242
  const backup = getKeyBackupStatus();
237
243
  if (backup.exists) {
238
244
  const when = backup.confirmedAt ? ` at ${backup.confirmedAt}` : "";
@@ -411,149 +417,157 @@ async function rotateWizard(argv) {
411
417
  const newKeyTempPath = path.join(baseDir, "NEW_KEY_DO_NOT_SHARE.base64");
412
418
  writeFileSync(newKeyTempPath, `${newKey.toString("base64")}
413
419
  `, { mode: 384 });
414
- console.log(`Rotation workspace: ${baseDir}`);
415
- console.log("Stopping daemon...");
416
- await stopDaemonIfAlive();
417
- console.log("Backing up encrypted DB/WAL/SHM...");
418
- const dbDir = path.dirname(pf.dbPath);
419
- for (const name of ["memories.db", "memories.db-wal", "memories.db-shm"]) {
420
- const src = path.join(dbDir, name);
421
- if (existsSync(src)) copyFileSync(src, path.join(backupDir, name));
422
- }
423
- console.log("Creating fresh encrypted DB with new key...");
424
- await initDatabase({ dbPath: newDbPath, encryptionKey: newKey.toString("hex") });
425
- await ensureSchema();
426
- const target = getClient();
427
- await target.execute("PRAGMA foreign_keys=OFF");
428
- assertValidDbPath(pf.dbPath, "exe-key rotate source");
429
- const source = createClient({ url: `file:${pf.dbPath}`, encryptionKey: pf.key.toString("hex") });
430
- await source.execute("PRAGMA busy_timeout = 30000");
431
- const tables = await getTableNames(source);
432
- const copiedTables = [];
433
- for (const table of tables) {
434
- const copied = await copyTable(source, target, table);
435
- copiedTables.push({ table, count: copied });
436
- console.log(`\u2713 copied ${table}: ${copied}`);
437
- }
438
- const generationId = crypto.randomUUID();
439
- await target.execute({ sql: "INSERT OR REPLACE INTO sync_meta (key, value) VALUES (?, ?)", args: ["key_rotation_at", (/* @__PURE__ */ new Date()).toISOString()] });
440
- await target.execute({ sql: "INSERT OR REPLACE INTO sync_meta (key, value) VALUES (?, ?)", args: ["key_rotation_generation_id", generationId] });
441
- await target.execute({ sql: "INSERT OR REPLACE INTO sync_meta (key, value) VALUES (?, ?)", args: ["cloud_reupload_required", pf.cloudConfigured ? "1" : "0"] });
442
- await target.execute("DELETE FROM sync_meta WHERE key IN ('last_cloud_pull_version', 'last_cloud_push_version')");
443
- const verifyMem = await target.execute("SELECT COUNT(*) as cnt FROM memories");
444
- const verifyTasks = await target.execute("SELECT COUNT(*) as cnt FROM tasks");
445
- const expectedMemories = Number(verifyMem.rows[0]?.cnt ?? 0);
446
- const expectedTasks = Number(verifyTasks.rows[0]?.cnt ?? 0);
447
- console.log(`Verified new DB: ${expectedMemories} memories, ${expectedTasks} tasks`);
448
- await target.execute("PRAGMA wal_checkpoint(TRUNCATE)");
449
420
  try {
450
- source.close();
451
- } catch {
452
- }
453
- try {
454
- target.close();
455
- } catch {
456
- }
457
- console.log("Swapping DB files...");
458
- for (const name of ["memories.db", "memories.db-wal", "memories.db-shm"]) {
459
- const current = path.join(dbDir, name);
460
- if (existsSync(current)) renameSync(current, path.join(backupDir, `moved-${name}`));
461
- }
462
- copyFileSync(newDbPath, pf.dbPath);
463
- rmSync(path.join(dbDir, "memories.db-wal"), { force: true });
464
- rmSync(path.join(dbDir, "memories.db-shm"), { force: true });
465
- console.log("Installing new key into OS keychain...");
466
- await setMasterKey(newKey);
467
- await initDatabase({ dbPath: pf.dbPath, encryptionKey: newKey.toString("hex") });
468
- const finalClient = getClient();
469
- const finalMem = await finalClient.execute("SELECT COUNT(*) as cnt FROM memories");
470
- const finalTasks = await finalClient.execute("SELECT COUNT(*) as cnt FROM tasks");
471
- const finalMemoryCount = Number(finalMem.rows[0]?.cnt ?? 0);
472
- const finalTaskCount = Number(finalTasks.rows[0]?.cnt ?? 0);
473
- if (finalMemoryCount !== expectedMemories || finalTaskCount !== expectedTasks) {
474
- throw new Error(`Post-swap verification mismatch: expected ${expectedMemories}/${expectedTasks}, got ${finalMemoryCount}/${finalTaskCount}. Backup kept at ${backupDir}`);
475
- }
476
- rmSync(newKeyTempPath, { force: true });
477
- writeFileSync(path.join(baseDir, "rotation-manifest.json"), JSON.stringify({
478
- rotationId,
479
- createdAt: (/* @__PURE__ */ new Date()).toISOString(),
480
- backupDir,
481
- generationId,
482
- cloudReuploadRequired: pf.cloudConfigured,
483
- finalCounts: { memories: finalMemoryCount, tasks: finalTaskCount },
484
- copiedTables
485
- }, null, 2) + "\n", { mode: 384 });
486
- console.log("Restarting daemon and verifying daemon DB access...");
487
- try {
488
- const { connectEmbedDaemon, sendDaemonRequest, isClientConnected, disconnectClient } = await import("./lib/exe-daemon-client.js");
489
- await connectEmbedDaemon();
490
- const resp = await sendDaemonRequest({ type: "db-execute", sql: "SELECT COUNT(*) as cnt FROM memories", args: [] });
491
- if (resp.error) throw new Error(String(resp.error));
492
- console.log(`\u2713 Daemon connected: ${isClientConnected()} (${resp.db?.rows?.[0]?.cnt ?? "?"} memories)`);
493
- disconnectClient();
494
- } catch (err) {
495
- console.log(`\u26A0 Daemon restart/verify failed: ${err instanceof Error ? err.message : String(err)}`);
496
- console.log(" You can retry by running any exe-os command that starts the daemon.");
497
- }
498
- console.log("");
499
- console.log("Key rotation complete.");
500
- console.log(`Backup kept at: ${backupDir}`);
501
- console.log(`New DB verified: ${finalMemoryCount} memories, ${finalTaskCount} tasks`);
502
- if (pf.cloudConfigured) {
503
- console.log("Local key rotation is complete.");
504
- console.log("Cloud sync is paused until your newly encrypted cloud backup is re-uploaded.");
505
- console.log("");
506
- }
507
- const newRecoveryPhrase = await exportMnemonic(newKey);
508
- console.log("\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550");
509
- console.log(" REQUIRED: SAVE YOUR NEW RECOVERY PHRASE");
510
- console.log("\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550");
511
- console.log("Write these 24 words down now. They will not be uploaded to Exe Cloud.");
512
- console.log("");
513
- console.log(newRecoveryPhrase);
514
- console.log("");
515
- console.log("If you need to reveal it again later from this trusted local Terminal, run:");
516
- console.log(" exe-os cloud link --show-full");
517
- console.log("");
518
- console.log("Do not continue to cloud re-upload until the NEW phrase is saved.");
519
- if (pf.cloudConfigured) {
520
- const rl2 = createInterface({ input: process.stdin, output: process.stdout });
421
+ console.log(`Rotation workspace: ${baseDir}`);
422
+ console.log("Stopping daemon...");
423
+ await stopDaemonIfAlive();
424
+ console.log("Backing up encrypted DB/WAL/SHM...");
425
+ const dbDir = path.dirname(pf.dbPath);
426
+ for (const name of ["memories.db", "memories.db-wal", "memories.db-shm"]) {
427
+ const src = path.join(dbDir, name);
428
+ if (existsSync(src)) copyFileSync(src, path.join(backupDir, name));
429
+ }
430
+ console.log("Creating fresh encrypted DB with new key...");
431
+ await initDatabase({ dbPath: newDbPath, encryptionKey: newKey.toString("hex") });
432
+ await ensureSchema();
433
+ const target = getClient();
434
+ await target.execute("PRAGMA foreign_keys=OFF");
435
+ assertValidDbPath(pf.dbPath, "exe-key rotate source");
436
+ const source = createClient({ url: `file:${pf.dbPath}`, encryptionKey: pf.key.toString("hex") });
437
+ await source.execute("PRAGMA busy_timeout = 30000");
438
+ const tables = await getTableNames(source);
439
+ const copiedTables = [];
440
+ for (const table of tables) {
441
+ const copied = await copyTable(source, target, table);
442
+ copiedTables.push({ table, count: copied });
443
+ console.log(`\u2713 copied ${table}: ${copied}`);
444
+ }
445
+ const generationId = crypto.randomUUID();
446
+ await target.execute({ sql: "INSERT OR REPLACE INTO sync_meta (key, value) VALUES (?, ?)", args: ["key_rotation_at", (/* @__PURE__ */ new Date()).toISOString()] });
447
+ await target.execute({ sql: "INSERT OR REPLACE INTO sync_meta (key, value) VALUES (?, ?)", args: ["key_rotation_generation_id", generationId] });
448
+ await target.execute({ sql: "INSERT OR REPLACE INTO sync_meta (key, value) VALUES (?, ?)", args: ["cloud_reupload_required", pf.cloudConfigured ? "1" : "0"] });
449
+ await target.execute("DELETE FROM sync_meta WHERE key IN ('last_cloud_pull_version', 'last_cloud_push_version')");
450
+ const verifyMem = await target.execute("SELECT COUNT(*) as cnt FROM memories");
451
+ const verifyTasks = await target.execute("SELECT COUNT(*) as cnt FROM tasks");
452
+ const expectedMemories = Number(verifyMem.rows[0]?.cnt ?? 0);
453
+ const expectedTasks = Number(verifyTasks.rows[0]?.cnt ?? 0);
454
+ console.log(`Verified new DB: ${expectedMemories} memories, ${expectedTasks} tasks`);
455
+ await target.execute("PRAGMA wal_checkpoint(TRUNCATE)");
521
456
  try {
522
- const saved = await ask(rl2, 'After saving the 24 words, type exactly "I SAVED MY NEW RECOVERY PHRASE" to continue: ');
523
- if (saved !== "I SAVED MY NEW RECOVERY PHRASE") {
524
- console.log("Cloud re-upload skipped. Save the phrase with:");
525
- console.log(" exe-os cloud link --show-full");
526
- console.log("Then run:");
527
- console.log(" exe-os cloud reupload");
528
- return 0;
529
- }
530
- } finally {
531
- rl2.close();
457
+ source.close();
458
+ } catch {
532
459
  }
533
- console.log("Starting automatic cloud re-upload now...");
534
460
  try {
535
- const { main: runCloud } = await import("./bin/exe-cloud.js");
536
- const originalArgv = process.argv;
461
+ target.close();
462
+ } catch {
463
+ }
464
+ console.log("Swapping DB files...");
465
+ for (const name of ["memories.db", "memories.db-wal", "memories.db-shm"]) {
466
+ const current = path.join(dbDir, name);
467
+ if (existsSync(current)) renameSync(current, path.join(backupDir, `moved-${name}`));
468
+ }
469
+ copyFileSync(newDbPath, pf.dbPath);
470
+ rmSync(path.join(dbDir, "memories.db-wal"), { force: true });
471
+ rmSync(path.join(dbDir, "memories.db-shm"), { force: true });
472
+ const staleCrdtState = path.join(dataDir(), "crdt-state.bin");
473
+ if (existsSync(staleCrdtState)) {
474
+ renameSync(staleCrdtState, path.join(backupDir, "crdt-state.bin"));
475
+ console.log("Moved stale crdt-state.bin (old-key CRDT cache) into pre-rotation backup; it rebuilds from the DB on next sync.");
476
+ }
477
+ console.log("Installing new key into OS keychain...");
478
+ await setMasterKey(newKey);
479
+ await initDatabase({ dbPath: pf.dbPath, encryptionKey: newKey.toString("hex") });
480
+ const finalClient = getClient();
481
+ const finalMem = await finalClient.execute("SELECT COUNT(*) as cnt FROM memories");
482
+ const finalTasks = await finalClient.execute("SELECT COUNT(*) as cnt FROM tasks");
483
+ const finalMemoryCount = Number(finalMem.rows[0]?.cnt ?? 0);
484
+ const finalTaskCount = Number(finalTasks.rows[0]?.cnt ?? 0);
485
+ if (finalMemoryCount !== expectedMemories || finalTaskCount !== expectedTasks) {
486
+ throw new Error(`Post-swap verification mismatch: expected ${expectedMemories}/${expectedTasks}, got ${finalMemoryCount}/${finalTaskCount}. Backup kept at ${backupDir}`);
487
+ }
488
+ writeFileSync(path.join(baseDir, "rotation-manifest.json"), JSON.stringify({
489
+ rotationId,
490
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
491
+ backupDir,
492
+ generationId,
493
+ cloudReuploadRequired: pf.cloudConfigured,
494
+ finalCounts: { memories: finalMemoryCount, tasks: finalTaskCount },
495
+ copiedTables
496
+ }, null, 2) + "\n", { mode: 384 });
497
+ console.log("Restarting daemon and verifying daemon DB access...");
498
+ try {
499
+ const { connectEmbedDaemon, sendDaemonRequest, isClientConnected, disconnectClient } = await import("./lib/exe-daemon-client.js");
500
+ await connectEmbedDaemon();
501
+ const resp = await sendDaemonRequest({ type: "db-execute", sql: "SELECT COUNT(*) as cnt FROM memories", args: [] });
502
+ if (resp.error) throw new Error(String(resp.error));
503
+ console.log(`\u2713 Daemon connected: ${isClientConnected()} (${resp.db?.rows?.[0]?.cnt ?? "?"} memories)`);
504
+ disconnectClient();
505
+ } catch (err) {
506
+ console.log(`\u26A0 Daemon restart/verify failed: ${err instanceof Error ? err.message : String(err)}`);
507
+ console.log(" You can retry by running any exe-os command that starts the daemon.");
508
+ }
509
+ console.log("");
510
+ console.log("Key rotation complete.");
511
+ console.log(`Backup kept at: ${backupDir}`);
512
+ console.log(`New DB verified: ${finalMemoryCount} memories, ${finalTaskCount} tasks`);
513
+ if (pf.cloudConfigured) {
514
+ console.log("Local key rotation is complete.");
515
+ console.log("Cloud sync is paused until your newly encrypted cloud backup is re-uploaded.");
516
+ console.log("");
517
+ }
518
+ const newRecoveryPhrase = await exportMnemonic(newKey);
519
+ console.log("\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550");
520
+ console.log(" REQUIRED: SAVE YOUR NEW RECOVERY PHRASE");
521
+ console.log("\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550");
522
+ console.log("Write these 24 words down now. They will not be uploaded to Exe Cloud.");
523
+ console.log("");
524
+ console.log(newRecoveryPhrase);
525
+ console.log("");
526
+ console.log("If you need to reveal it again later from this trusted local Terminal, run:");
527
+ console.log(" exe-os cloud link --show-full");
528
+ console.log("");
529
+ console.log("Do not continue to cloud re-upload until the NEW phrase is saved.");
530
+ if (pf.cloudConfigured) {
531
+ const rl2 = createInterface({ input: process.stdin, output: process.stdout });
537
532
  try {
538
- process.argv = [process.argv[0], process.argv[1], "reupload", "--local-db-is-source-of-truth"];
539
- await runCloud();
533
+ const saved = await ask(rl2, 'After saving the 24 words, type exactly "I SAVED MY NEW RECOVERY PHRASE" to continue: ');
534
+ if (saved !== "I SAVED MY NEW RECOVERY PHRASE") {
535
+ console.log("Cloud re-upload skipped. Save the phrase with:");
536
+ console.log(" exe-os cloud link --show-full");
537
+ console.log("Then run:");
538
+ console.log(" exe-os cloud reupload");
539
+ return 0;
540
+ }
540
541
  } finally {
541
- process.argv = originalArgv;
542
+ rl2.close();
543
+ }
544
+ console.log("Starting automatic cloud re-upload now...");
545
+ try {
546
+ const { main: runCloud } = await import("./bin/exe-cloud.js");
547
+ const originalArgv = process.argv;
548
+ try {
549
+ process.argv = [process.argv[0], process.argv[1], "reupload", "--local-db-is-source-of-truth"];
550
+ await runCloud();
551
+ } finally {
552
+ process.argv = originalArgv;
553
+ }
554
+ console.log("\u2713 Cloud re-upload finished. Main device rotation is complete.");
555
+ } catch (err) {
556
+ console.log(`\u26A0 Cloud re-upload did not finish: ${err instanceof Error ? err.message : String(err)}`);
557
+ console.log("Your local key rotation succeeded, but normal cloud sync remains blocked.");
558
+ console.log("Retry with the support fallback command:");
559
+ console.log(" exe-os cloud reupload");
542
560
  }
543
- console.log("\u2713 Cloud re-upload finished. Main device rotation is complete.");
544
- } catch (err) {
545
- console.log(`\u26A0 Cloud re-upload did not finish: ${err instanceof Error ? err.message : String(err)}`);
546
- console.log("Your local key rotation succeeded, but normal cloud sync remains blocked.");
547
- console.log("Retry with the support fallback command:");
548
- console.log(" exe-os cloud reupload");
549
561
  }
562
+ console.log("");
563
+ console.log("Cleanup guidance:");
564
+ console.log(" 1. Verify the new recovery phrase opens this DB on another local terminal/device.");
565
+ console.log(" 2. Keep the old-key encrypted backup until verification is complete.");
566
+ console.log(` 3. After verification, manually review/remove the sensitive rotation workspace: ${baseDir}`);
567
+ return 0;
568
+ } finally {
569
+ rmSync(newKeyTempPath, { force: true });
550
570
  }
551
- console.log("");
552
- console.log("Cleanup guidance:");
553
- console.log(" 1. Verify the new recovery phrase opens this DB on another local terminal/device.");
554
- console.log(" 2. Keep the old-key encrypted backup until verification is complete.");
555
- console.log(` 3. After verification, manually review/remove the sensitive rotation workspace: ${baseDir}`);
556
- return 0;
557
571
  }
558
572
  async function acceptRotationWizard(argv) {
559
573
  const dryRun = argv.includes("--dry-run");
@@ -746,7 +760,7 @@ async function confirmBackupWizard(argv) {
746
760
  rl.close();
747
761
  }
748
762
  }
749
- const { markKeyBackupConfirmed, keyBackupMarkerPath } = await import("./key-backup-status-TNEHXA2X.js");
763
+ const { markKeyBackupConfirmed, keyBackupMarkerPath } = await import("./key-backup-status-LOSMVATJ.js");
750
764
  markKeyBackupConfirmed("exe-os key confirm-backup");
751
765
  console.log("");
752
766
  console.log("\u2713 Recovery phrase backup confirmed for this node.");
@@ -3,9 +3,9 @@ import {
3
3
  getOrchestrationPhaseInfo,
4
4
  loadOrchestrationPhase,
5
5
  setOrchestrationPhase
6
- } from "./chunk-32SXNM3G.js";
7
- import "./chunk-7Y5UDEVM.js";
8
- import "./chunk-SHIICYJW.js";
6
+ } from "./chunk-C5QAPURN.js";
7
+ import "./chunk-WZHZCDDO.js";
8
+ import "./chunk-BYTDMAGB.js";
9
9
  import "./chunk-MLKGABMK.js";
10
10
 
11
11
  // src/bin/exe-org.ts