@askexenow/exe-os 0.9.340 → 0.9.342

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/README.md +159 -196
  2. package/deploy/compose/.env.customer.example +1 -0
  3. package/deploy/compose/.env.example +1 -0
  4. package/deploy/compose/docker-compose.yml +13 -4
  5. package/deploy/compose/generate-env.ts +4 -0
  6. package/dist/{active-agent-EC6M7KTX.js → active-agent-PVGE57FY.js} +5 -5
  7. package/dist/{active-agent-WHIUCHLA.js → active-agent-TNIO6IY3.js} +5 -5
  8. package/dist/{agentic-ontology-RNSXGXW4.js → agentic-ontology-3FXYMHKW.js} +1 -1
  9. package/dist/{backfill-gate-J7UXFNXU.js → backfill-gate-65LSYVE5.js} +3 -3
  10. package/dist/{backfill-metadata-MFY6BHKE.js → backfill-metadata-ZSMZC45J.js} +8 -8
  11. package/dist/{background-jobs-STURKDCS.js → background-jobs-EXR5RVGG.js} +3 -3
  12. package/dist/backup-verify-3Y2FHGZU.js +425 -0
  13. package/dist/{behaviors-HLZUJSMP.js → behaviors-KYRB3NGJ.js} +9 -9
  14. package/dist/bin/age-ontology-load.js +3 -3
  15. package/dist/bin/agentic-ontology-backfill.js +10 -10
  16. package/dist/bin/agentic-reflection-backfill.js +11 -11
  17. package/dist/bin/agentic-semantic-label.js +10 -10
  18. package/dist/bin/backfill-conversations.js +10 -10
  19. package/dist/bin/backfill-responses.js +10 -10
  20. package/dist/bin/backfill-vectors.js +14 -14
  21. package/dist/bin/bulk-sync-postgres.js +19 -19
  22. package/dist/bin/cc-doctor.js +10 -8
  23. package/dist/bin/cleanup-stale-review-tasks.js +26 -24
  24. package/dist/bin/cli.js +111 -25
  25. package/dist/bin/customer-readiness.js +1 -1
  26. package/dist/bin/deferred-daemon-restart.js +97 -90
  27. package/dist/bin/exe-agent-config.js +9 -8
  28. package/dist/bin/exe-agent.js +20 -20
  29. package/dist/bin/exe-assign.js +12 -12
  30. package/dist/bin/exe-boot.js +201 -68
  31. package/dist/bin/exe-call.js +7 -7
  32. package/dist/bin/exe-cloud.js +20 -20
  33. package/dist/bin/exe-config-dump.js +9 -8
  34. package/dist/bin/exe-dispatch.js +26 -24
  35. package/dist/bin/exe-doctor.js +10 -6
  36. package/dist/bin/exe-export-behaviors.js +11 -11
  37. package/dist/bin/exe-forget.js +12 -10
  38. package/dist/bin/exe-gateway.js +15 -10
  39. package/dist/bin/exe-grant.js +5 -5
  40. package/dist/bin/exe-healthcheck.js +14 -8
  41. package/dist/bin/exe-heartbeat.js +29 -28
  42. package/dist/bin/exe-kill.js +31 -29
  43. package/dist/bin/exe-launch-agent.js +129 -68
  44. package/dist/bin/exe-memory-reads.js +257 -0
  45. package/dist/bin/exe-new-employee.js +12 -11
  46. package/dist/bin/exe-pending-messages.js +27 -25
  47. package/dist/bin/exe-pending-notifications.js +26 -24
  48. package/dist/bin/exe-pending-reviews.js +26 -24
  49. package/dist/bin/exe-rename.js +7 -7
  50. package/dist/bin/exe-review.js +30 -28
  51. package/dist/bin/exe-search.js +11 -9
  52. package/dist/bin/exe-session-cleanup.js +116 -86
  53. package/dist/bin/exe-settings.js +24 -23
  54. package/dist/bin/exe-start-codex.js +163 -41
  55. package/dist/bin/exe-start-opencode.js +15 -15
  56. package/dist/bin/exe-status.js +27 -25
  57. package/dist/bin/exe-support.js +5 -5
  58. package/dist/bin/exe-team.js +5 -5
  59. package/dist/bin/exe-timers.js +32 -213
  60. package/dist/bin/exe-watchdog.js +6 -5
  61. package/dist/bin/git-sweep.js +27 -25
  62. package/dist/bin/graph-backfill.js +9 -9
  63. package/dist/bin/graph-export.js +9 -9
  64. package/dist/bin/import-history.js +11 -11
  65. package/dist/bin/install.js +102 -95
  66. package/dist/bin/intercom-check.js +4 -4
  67. package/dist/bin/mcp-sessions.js +2 -2
  68. package/dist/bin/orchestration-metrics.js +6 -6
  69. package/dist/bin/postgres-agentic-reflection-backfill.js +5 -5
  70. package/dist/bin/postgres-agentic-semantic-backfill.js +7 -7
  71. package/dist/bin/pre-publish.js +5 -3
  72. package/dist/bin/reconcile-backlog.js +484 -0
  73. package/dist/bin/registry-proxy.js +1 -1
  74. package/dist/bin/scan-tasks.js +26 -24
  75. package/dist/bin/setup.js +6 -5
  76. package/dist/bin/shard-migrate.js +9 -9
  77. package/dist/bin/stack-update.js +15 -9
  78. package/dist/bin/update.js +1 -1
  79. package/dist/bin/vps-health-gate.js +1 -1
  80. package/dist/boot-generation-BL2ISK4U.js +22 -0
  81. package/dist/boot-review-sections-DBMQJT5N.js +107 -0
  82. package/dist/branch-hygiene-TZWK6QCF.js +224 -0
  83. package/dist/{branding-JTEOF4ZV.js → branding-DVXBGVDH.js} +3 -3
  84. package/dist/{browser-session-store-CXQMOSEC.js → browser-session-store-B2NR3LIX.js} +2 -1
  85. package/dist/{capability-cards-YOKVMMOL.js → capability-cards-DN5UIKVN.js} +4 -4
  86. package/dist/{capacity-monitor-S54IOWRL.js → capacity-monitor-ZG5GGFR2.js} +27 -25
  87. package/dist/{catchup-brief-DRRQCMKA.js → catchup-brief-D6HH6DWS.js} +32 -29
  88. package/dist/{support-outbox-MGUVVGHT.js → chunk-25X4JD2V.js} +28 -12
  89. package/dist/{chunk-IYB2NIW3.js → chunk-2KZNGDSW.js} +1 -1
  90. package/dist/{chunk-FUIIVSW6.js → chunk-2WAVZ5UJ.js} +1 -1
  91. package/dist/{chunk-K5WFKEXQ.js → chunk-2ZYO73KO.js} +4 -3
  92. package/dist/{chunk-CLAYNAXC.js → chunk-3EUMUSLE.js} +1 -1
  93. package/dist/{chunk-BVV6NHKQ.js → chunk-3SW4OEHB.js} +5 -5
  94. package/dist/{task-enforcement-VI7L43DC.js → chunk-4CMVFVFC.js} +173 -69
  95. package/dist/{chunk-BU2QQWBQ.js → chunk-4J4PMPXZ.js} +3 -2
  96. package/dist/{chunk-JD5S5AAV.js → chunk-4N2NRGCM.js} +2 -2
  97. package/dist/chunk-4QCFFW2H.js +378 -0
  98. package/dist/{chunk-7EA7LYW4.js → chunk-4VSV5P4D.js} +4 -4
  99. package/dist/{chunk-52KNOQMK.js → chunk-4ZCD2UWW.js} +39 -10
  100. package/dist/{chunk-DZ6OQM67.js → chunk-5ERDIOV3.js} +2 -2
  101. package/dist/chunk-5H47VHB7.js +30 -0
  102. package/dist/{chunk-UCQITDLM.js → chunk-5TY4FPH6.js} +1 -1
  103. package/dist/{chunk-R44Z32O2.js → chunk-6CH3TPHR.js} +2 -2
  104. package/dist/{chunk-WYLV4S6A.js → chunk-6WQ3NNCE.js} +3 -3
  105. package/dist/{chunk-HHIBOU3P.js → chunk-6XWTQUO4.js} +1 -1
  106. package/dist/chunk-76CJBM36.js +88 -0
  107. package/dist/{chunk-H2L4PHGH.js → chunk-7CTRGNLW.js} +2 -2
  108. package/dist/{chunk-XUKPALWT.js → chunk-7V4JADD6.js} +2 -2
  109. package/dist/{chunk-RMOBQ6A5.js → chunk-AD2VCHSS.js} +1 -1
  110. package/dist/{chunk-QXSBB26A.js → chunk-AJYCFKJR.js} +1 -1
  111. package/dist/chunk-AM7S2TY6.js +54 -0
  112. package/dist/{chunk-HEPR6QTL.js → chunk-AOHXREB7.js} +334 -66
  113. package/dist/{chunk-FNZR3B7U.js → chunk-ASAFVDVR.js} +1 -1
  114. package/dist/{chunk-TALWBVZE.js → chunk-BUCXNV32.js} +1 -1
  115. package/dist/{chunk-SHIICYJW.js → chunk-BYTDMAGB.js} +4 -2
  116. package/dist/{chunk-32SXNM3G.js → chunk-C5QAPURN.js} +1 -1
  117. package/dist/{chunk-XCTGRD4S.js → chunk-CE7F6RHG.js} +587 -77
  118. package/dist/{chunk-7WPOJDTA.js → chunk-CNVBKDEY.js} +21 -15
  119. package/dist/{chunk-KPIN44GZ.js → chunk-CWXVH7WV.js} +1 -1
  120. package/dist/chunk-D74XYSA3.js +621 -0
  121. package/dist/{chunk-A47MXY2I.js → chunk-EQHQF5IM.js} +50 -32
  122. package/dist/{chunk-AOO77BDE.js → chunk-EUS4QUKP.js} +1 -1
  123. package/dist/{chunk-RLRT2BVM.js → chunk-EV46QTD3.js} +1 -1
  124. package/dist/{chunk-PAEXYFMY.js → chunk-F27XXN6C.js} +1 -1
  125. package/dist/{chunk-XQNNB5GY.js → chunk-F55P3H4S.js} +37 -2
  126. package/dist/{chunk-MWZFF3Q7.js → chunk-F5O7V7UK.js} +1 -1
  127. package/dist/{chunk-LMZISHSJ.js → chunk-FPFPLPUY.js} +6 -6
  128. package/dist/{chunk-7TS64TBG.js → chunk-G4RGKBCA.js} +8 -3
  129. package/dist/{chunk-4IYSBPX3.js → chunk-G5T6KDG4.js} +1 -1
  130. package/dist/{chunk-7WDXEKUL.js → chunk-GBTTBXAF.js} +4 -4
  131. package/dist/{chunk-6MRWJMI5.js → chunk-GDIJE6D7.js} +1 -1
  132. package/dist/{chunk-AVKXCSBI.js → chunk-GG5NDQNN.js} +2 -2
  133. package/dist/{chunk-I3XKO3KQ.js → chunk-GJ26DULE.js} +2 -2
  134. package/dist/chunk-GL57PO3K.js +104 -0
  135. package/dist/chunk-GWDSB25T.js +6 -0
  136. package/dist/{chunk-F55JF43M.js → chunk-H6BV5TKD.js} +39 -24
  137. package/dist/{chunk-HCJCW7X4.js → chunk-H7I47RS5.js} +34 -1
  138. package/dist/{chunk-65SVQELL.js → chunk-HA5R6USD.js} +31 -5
  139. package/dist/{chunk-VJHUVFIW.js → chunk-HAF2DJYV.js} +3 -3
  140. package/dist/chunk-HJ447YER.js +224 -0
  141. package/dist/chunk-HV4KESRY.js +395 -0
  142. package/dist/{chunk-B76TSEP3.js → chunk-I26FWCSP.js} +216 -9
  143. package/dist/{chunk-X2FHTDIU.js → chunk-IBYL4DHM.js} +1 -1
  144. package/dist/{chunk-JCBKARSK.js → chunk-IOEUAQWP.js} +1 -1
  145. package/dist/{chunk-MW2GJJ53.js → chunk-JGIPOUIK.js} +3 -3
  146. package/dist/{chunk-2233TQCA.js → chunk-JLZ4RYSD.js} +2 -2
  147. package/dist/{chunk-Q7L6G6KV.js → chunk-JMYHW3AL.js} +2 -2
  148. package/dist/{chunk-OJTJYEMX.js → chunk-JPUZPAAF.js} +4 -4
  149. package/dist/{chunk-XWHE4LZK.js → chunk-JTBIS4R5.js} +21 -2
  150. package/dist/{chunk-5Z5NATNS.js → chunk-K7KFGDWF.js} +1 -1
  151. package/dist/{chunk-UIV2WPBT.js → chunk-KGWRTRKC.js} +2 -2
  152. package/dist/{chunk-KTPG4XKI.js → chunk-KP3U5QGJ.js} +1 -1
  153. package/dist/{chunk-TLYAEISW.js → chunk-KW2SD2FL.js} +2 -2
  154. package/dist/{chunk-X7H3HMFH.js → chunk-KWZMQACA.js} +11 -7
  155. package/dist/{chunk-OFX5B2S7.js → chunk-L2R3LN2P.js} +1 -1
  156. package/dist/{chunk-T4KZ2Z2N.js → chunk-L4A5DL6Z.js} +3 -3
  157. package/dist/{chunk-X425OEYF.js → chunk-LU2FALL6.js} +3 -3
  158. package/dist/{chunk-6M36JFFD.js → chunk-MKYFAKDW.js} +4 -4
  159. package/dist/{chunk-I5RLNOFK.js → chunk-MOPUCPXK.js} +12 -4
  160. package/dist/{chunk-ZIVEA3NB.js → chunk-MR6LHP4F.js} +1 -1
  161. package/dist/chunk-MVYB76QG.js +341 -0
  162. package/dist/{chunk-2SG2UGCH.js → chunk-MZM6EJCU.js} +4 -4
  163. package/dist/{chunk-ZREGOV2Q.js → chunk-N7QJKQMX.js} +258 -14
  164. package/dist/{chunk-QLFRCA6I.js → chunk-NBZL5CGA.js} +93 -12
  165. package/dist/{chunk-QFPTDSY2.js → chunk-NN2B2QKU.js} +1 -1
  166. package/dist/chunk-NX5INHHG.js +40 -0
  167. package/dist/{chunk-B75BOKEI.js → chunk-NXUSDL37.js} +2 -2
  168. package/dist/{chunk-TPHCZDE3.js → chunk-O5V57XYE.js} +1 -1
  169. package/dist/chunk-O7LWR36Z.js +269 -0
  170. package/dist/{chunk-ATOU6CYR.js → chunk-OLMQ4UOF.js} +57 -11
  171. package/dist/{chunk-6HBURYON.js → chunk-OTF44GXL.js} +4 -4
  172. package/dist/{chunk-DILD54TU.js → chunk-OZEBAGKR.js} +277 -137
  173. package/dist/{chunk-DADMPMYX.js → chunk-P5HIWY2E.js} +1 -1
  174. package/dist/{chunk-EIF2LQHZ.js → chunk-PDWS3E22.js} +55 -4
  175. package/dist/{chunk-KTY7I7UH.js → chunk-PPCDBE6Z.js} +1 -1
  176. package/dist/{chunk-XACL67CS.js → chunk-PQIDGXSG.js} +13 -4
  177. package/dist/chunk-PWUFMX75.js +186 -0
  178. package/dist/{chunk-UPWE5NOG.js → chunk-QDGZJ653.js} +3 -3
  179. package/dist/{chunk-MQRFKSLI.js → chunk-QOO5RW3K.js} +6 -5
  180. package/dist/{chunk-KCC5A7YL.js → chunk-QQ4E2RYW.js} +95 -18
  181. package/dist/{chunk-BPC5LZ6Y.js → chunk-QRYVCDWS.js} +2 -2
  182. package/dist/{chunk-Z42MXYWW.js → chunk-QWVXN224.js} +110 -28
  183. package/dist/{chunk-542EWGY3.js → chunk-QYZJHTNE.js} +26 -27
  184. package/dist/{chunk-I7Z6KTGF.js → chunk-R2NN3JKH.js} +43 -6
  185. package/dist/{chunk-3OBWSCJN.js → chunk-RACAOE2Z.js} +14 -14
  186. package/dist/{chunk-5RACW3LX.js → chunk-RAXVPNMR.js} +1 -1
  187. package/dist/{chunk-2HZY3ECT.js → chunk-RHWZUUS4.js} +6 -6
  188. package/dist/{chunk-RNAYCUNM.js → chunk-S3THSOWV.js} +1 -1
  189. package/dist/{chunk-W7DHFGCB.js → chunk-S7QUM2UK.js} +2 -2
  190. package/dist/{chunk-SSTLTIF3.js → chunk-SKGMF2SO.js} +25 -2
  191. package/dist/{chunk-GN45PBWI.js → chunk-SQKXKV2Y.js} +2 -2
  192. package/dist/{chunk-QZLIZAS7.js → chunk-TLT7NZCW.js} +4 -4
  193. package/dist/chunk-TTCUG2CF.js +91 -0
  194. package/dist/chunk-UEA3LXOB.js +40 -0
  195. package/dist/{chunk-DRCRZIIJ.js → chunk-UNXQBELK.js} +1 -1
  196. package/dist/{chunk-PLRIJALF.js → chunk-UP75Z5X7.js} +921 -176
  197. package/dist/{chunk-TNJRWUCE.js → chunk-USSB56WK.js} +1 -1
  198. package/dist/{chunk-KMBEL7VB.js → chunk-UUEKJDK6.js} +90 -10
  199. package/dist/{chunk-XJI7Z6LZ.js → chunk-UUQBZPJJ.js} +1 -1
  200. package/dist/{chunk-RRWDYOQS.js → chunk-V3EEVY4L.js} +1 -1
  201. package/dist/{chunk-N5I7RL3I.js → chunk-VPZHJCKW.js} +2 -2
  202. package/dist/chunk-VRAQTFD6.js +265 -0
  203. package/dist/{chunk-H37HHX3E.js → chunk-VSRPS3J7.js} +14 -14
  204. package/dist/{chunk-5ZNY7IZI.js → chunk-WMESXBJM.js} +37 -3
  205. package/dist/{chunk-54QCG45Y.js → chunk-WOYADZF5.js} +56 -5
  206. package/dist/{chunk-7Y5UDEVM.js → chunk-WZHZCDDO.js} +6 -5
  207. package/dist/{chunk-3NGZ4PL7.js → chunk-X2Q5NLUL.js} +11 -2
  208. package/dist/{chunk-YE7NH53A.js → chunk-X33NYQYJ.js} +2 -2
  209. package/dist/{chunk-UXBD22CD.js → chunk-XHK3FS3W.js} +3 -2
  210. package/dist/{chunk-3QDSCJ3F.js → chunk-XZXBB3TN.js} +2 -2
  211. package/dist/{chunk-JSKBHUR7.js → chunk-YCANDMI2.js} +2 -2
  212. package/dist/{chunk-JBSCL2XT.js → chunk-YLXTKI6M.js} +1 -1
  213. package/dist/{chunk-G7WO77Z2.js → chunk-YTCFACP4.js} +812 -896
  214. package/dist/{chunk-LTVCRHHD.js → chunk-Z6RSN7KS.js} +7 -6
  215. package/dist/{cleanup-graph-garbage-KUABW6LS.js → cleanup-graph-garbage-XWUFAMFO.js} +6 -6
  216. package/dist/{co-activation-XMPHKGHR.js → co-activation-ZCHPLLP6.js} +4 -4
  217. package/dist/{co-occurrence-SHKSJ6CV.js → co-occurrence-KG3LKALN.js} +4 -4
  218. package/dist/{code-context-index-EXXDY3QZ.js → code-context-index-WSOJQ72R.js} +5 -5
  219. package/dist/{content-extractor-RHITF2KM.js → content-extractor-NXYNEF5K.js} +2 -2
  220. package/dist/{conversation-wiki-populator-WU4HEQ7C.js → conversation-wiki-populator-WQN3IUU6.js} +1 -1
  221. package/dist/{crdt-sync-UJELKSNX.js → crdt-sync-4PFGPZXV.js} +8 -1
  222. package/dist/{crm-webhook-HHNBS7LY.js → crm-webhook-II7Z45Q6.js} +2 -2
  223. package/dist/cto-delegation-gate-JWWOJPNC.js +669 -0
  224. package/dist/{daemon-auth-7IFSV5FG.js → daemon-auth-3FEAHFWC.js} +5 -3
  225. package/dist/{daemon-orchestration-7QB6QOXT.js → daemon-orchestration-FX4XZDR5.js} +46 -27
  226. package/dist/{daemon-ready-5XI5BIJD.js → daemon-ready-4JTSFKAY.js} +1 -1
  227. package/dist/{daemon-ready-signal-E7VMIQ6I.js → daemon-ready-signal-LPAZWQOV.js} +5 -1
  228. package/dist/daemon-restart-circuit-breaker-PEGEIP6H.js +35 -0
  229. package/dist/daemon-timer-report-NM44WQRH.js +25 -0
  230. package/dist/{db-backup-DLD4QZBO.js → db-backup-W2QFSYQC.js} +15 -5
  231. package/dist/{db-restore-events-JVEEP52Z.js → db-restore-events-MQ2DBGEQ.js} +2 -2
  232. package/dist/dispatch-ack-VYH3ONSS.js +27 -0
  233. package/dist/{doc-graph-extractor-3TRLGD7M.js → doc-graph-extractor-F6ODFIID.js} +4 -4
  234. package/dist/{documents-FHIBU7KJ.js → documents-23WX2FPQ.js} +12 -12
  235. package/dist/dreaming-NWD22UQ5.js +46 -0
  236. package/dist/{exe-drift-KY2KHZEL.js → exe-drift-CW72FBGE.js} +5 -5
  237. package/dist/{exe-export-SP6G3QF6.js → exe-export-AUJ7CV7G.js} +11 -11
  238. package/dist/{exe-import-KJU7FBVQ.js → exe-import-JX4I52VE.js} +11 -11
  239. package/dist/{exe-key-M6TYHNUW.js → exe-key-2N6LY2BU.js} +241 -226
  240. package/dist/{exe-org-BGZNNE4H.js → exe-org-X4CSNCKS.js} +3 -3
  241. package/dist/{exe-snapshot-ZNPGUKRZ.js → exe-snapshot-XZ7FVCYZ.js} +31 -29
  242. package/dist/{fast-db-init-QQB6IVWV.js → fast-db-init-4CWHSOOR.js} +1 -1
  243. package/dist/{founder-context-PQR3BUS7.js → founder-context-7L3CFPYN.js} +4 -4
  244. package/dist/gateway/index.js +14 -14
  245. package/dist/{gateway-client-GRBOJQYC.js → gateway-client-7LMZKHTH.js} +1 -1
  246. package/dist/git-main-guard-UZP3KXYI.js +39 -0
  247. package/dist/{git-staleness-UGB5J3K7.js → git-staleness-CI2R4QOJ.js} +4 -4
  248. package/dist/{global-procedures-R7KRREEK.js → global-procedures-XQX3LUH6.js} +6 -6
  249. package/dist/{graph-auto-extract-LKIQ57PL.js → graph-auto-extract-OURWMGBS.js} +4 -4
  250. package/dist/{hook-integrity-WURH6DS3.js → hook-integrity-XY47IM7G.js} +1 -1
  251. package/dist/hook-prefetch-PHRRKY4C.js +137 -0
  252. package/dist/hooks/bug-report-worker.js +32 -28
  253. package/dist/hooks/codex-stop-task-finalizer.js +32 -28
  254. package/dist/hooks/commit-complete.js +29 -27
  255. package/dist/hooks/error-recall.js +12 -11
  256. package/dist/hooks/exe-heartbeat-hook.js +6 -6
  257. package/dist/hooks/ingest-worker.js +11 -11
  258. package/dist/hooks/ingest.js +18 -18
  259. package/dist/hooks/instructions-loaded.js +7 -7
  260. package/dist/hooks/manifest.json +20 -20
  261. package/dist/hooks/notification.js +7 -7
  262. package/dist/hooks/post-compact.js +28 -26
  263. package/dist/hooks/post-tool-combined.js +12 -12
  264. package/dist/hooks/pre-compact.js +29 -27
  265. package/dist/hooks/pre-tool-use.js +180 -47
  266. package/dist/hooks/prompt-submit.js +324 -273
  267. package/dist/hooks/session-end.js +35 -33
  268. package/dist/hooks/session-start.js +28 -21
  269. package/dist/hooks/stop.js +35 -33
  270. package/dist/hooks/subagent-stop.js +28 -26
  271. package/dist/hooks/summary-worker.js +36 -34
  272. package/dist/index.js +39 -37
  273. package/dist/{installer-SB2N5NKH.js → installer-G3JAO3NT.js} +9 -9
  274. package/dist/{installer-MZWWBXM6.js → installer-JND3RJ6Q.js} +9 -9
  275. package/dist/{installer-MNPXDLGG.js → installer-L7EVH5U5.js} +9 -9
  276. package/dist/{intercom-queue-VU2G6F5R.js → intercom-queue-ZFEQALR3.js} +25 -23
  277. package/dist/{key-backup-status-TNEHXA2X.js → key-backup-status-LOSMVATJ.js} +2 -2
  278. package/dist/lib/agent-config.js +4 -3
  279. package/dist/lib/cloud-sync.js +19 -19
  280. package/dist/lib/config.js +2 -2
  281. package/dist/lib/consolidation.js +9 -9
  282. package/dist/lib/crypto.js +3 -3
  283. package/dist/lib/database.js +6 -4
  284. package/dist/lib/db-daemon-client.js +5 -5
  285. package/dist/lib/db-read-worker-client.js +9 -3
  286. package/dist/lib/db.js +6 -4
  287. package/dist/lib/device-registry.js +3 -3
  288. package/dist/lib/embed-worker.js +2 -2
  289. package/dist/lib/embedder.js +5 -5
  290. package/dist/lib/employee-templates.js +7 -7
  291. package/dist/lib/employees.js +10 -4
  292. package/dist/lib/exe-daemon-client.js +4 -4
  293. package/dist/lib/exe-daemon.js +651 -158
  294. package/dist/lib/hybrid-search.js +11 -9
  295. package/dist/lib/identity.js +4 -4
  296. package/dist/lib/keychain.js +1 -1
  297. package/dist/lib/license.js +4 -4
  298. package/dist/lib/messaging.js +28 -24
  299. package/dist/lib/post-tool-memory.js +3 -3
  300. package/dist/lib/registry-proxy.js +1 -1
  301. package/dist/lib/reminders.js +15 -7
  302. package/dist/lib/schedules.js +9 -9
  303. package/dist/lib/session-registry.js +6 -6
  304. package/dist/lib/skill-learning.js +10 -10
  305. package/dist/lib/status-brief.js +4 -4
  306. package/dist/lib/store.js +8 -8
  307. package/dist/lib/task-router.js +5 -5
  308. package/dist/lib/tasks.js +29 -25
  309. package/dist/lib/tmux-routing.js +56 -25
  310. package/dist/lib/tmux-status.js +9 -3
  311. package/dist/lib/tmux-transport.js +1 -1
  312. package/dist/lib/token-spend.js +5 -5
  313. package/dist/lib/transport.js +2 -2
  314. package/dist/lib/ws-client.js +1 -1
  315. package/dist/{license-gate-BYDMFMFT.js → license-gate-QTRQHV4F.js} +5 -5
  316. package/dist/{license-sync-N3RNYVP2.js → license-sync-N3UJFWAW.js} +4 -4
  317. package/dist/mcp/register-tools.js +96 -89
  318. package/dist/mcp/server.js +98 -91
  319. package/dist/mcp/tools/complete-reminder.js +6 -6
  320. package/dist/mcp/tools/create-reminder.js +6 -6
  321. package/dist/mcp/tools/create-task.js +37 -28
  322. package/dist/mcp/tools/deactivate-behavior.js +11 -11
  323. package/dist/mcp/tools/list-reminders.js +6 -6
  324. package/dist/mcp/tools/list-tasks.js +35 -29
  325. package/dist/mcp/tools/send-message.js +28 -26
  326. package/dist/mcp/tools/update-task.js +34 -28
  327. package/dist/{mcp-http-config-EMAVS2JI.js → mcp-http-config-BDL36JZ3.js} +6 -6
  328. package/dist/{mcp-port-config-FFAMMLLE.js → mcp-port-config-6HYY6J7K.js} +2 -2
  329. package/dist/mcp-session-identity-T7H2EKFQ.js +177 -0
  330. package/dist/{memory-cards-TQRLZI4D.js → memory-cards-ZRDW7QBX.js} +8 -8
  331. package/dist/{memory-graph-extractor-IWGNVAFU.js → memory-graph-extractor-QLXDMHRS.js} +5 -5
  332. package/dist/{memory-poisoning-defense-T4ITBGSG.js → memory-poisoning-defense-HJTXYCWH.js} +4 -4
  333. package/dist/{memory-pressure-watchdog-RRIAXPXQ.js → memory-pressure-watchdog-HN5X7AVN.js} +76 -37
  334. package/dist/{memory-queue-X2CSEAKE.js → memory-queue-2UOOF27L.js} +5 -3
  335. package/dist/{memory-queue-client-BKQHTYTH.js → memory-queue-client-O5U6F6XP.js} +6 -6
  336. package/dist/{memory-reflection-6N4J2FL7.js → memory-reflection-WVNFBJAA.js} +4 -4
  337. package/dist/{monitor-grants-RZOVSYVO.js → monitor-grants-E3ELDEWD.js} +5 -5
  338. package/dist/{monitor-identity-MOXISYNG.js → monitor-identity-GLFZSEAH.js} +2 -2
  339. package/dist/notification-ledger-SZEPGJQ7.js +409 -0
  340. package/dist/{notifications-KONB3C62.js → notifications-4UT53CDG.js} +25 -23
  341. package/dist/{orchestration-events-5SIJOE4H.js → orchestration-events-WV4NWKZH.js} +5 -5
  342. package/dist/{orchestration-phase-CXRCBCK7.js → orchestration-phase-AWBXPO52.js} +3 -3
  343. package/dist/orchestrator-UAC3RW2T.js +47 -0
  344. package/dist/{pipeline-router-O6HU7DKH.js → pipeline-router-LM53NMWJ.js} +5 -5
  345. package/dist/{plan-limits-GRNBOBB3.js → plan-limits-2FEY2GOS.js} +7 -7
  346. package/dist/platform-procedures-X5DFJFV7.js +13 -0
  347. package/dist/{preferences-TYTGDXQZ.js → preferences-TWIXZBKS.js} +2 -2
  348. package/dist/{project-boot-SD7GM24K.js → project-boot-4NUH5FRU.js} +2 -2
  349. package/dist/{projection-worker-ZVOFHTXT.js → projection-worker-FZ7YSN3G.js} +5 -5
  350. package/dist/{prospective-memory-W6S67LZZ.js → prospective-memory-6D2ASWM3.js} +4 -4
  351. package/dist/{push-notifications-W5JRXLKJ.js → push-notifications-U6FIBQRW.js} +3 -3
  352. package/dist/{reranker-QATGTAPC.js → reranker-GYYRPANK.js} +3 -3
  353. package/dist/{retrieval-health-TWHKYCRK.js → retrieval-health-4Z242P3B.js} +1 -1
  354. package/dist/{review-polling-PCMD5BFN.js → review-polling-HXAFJZDA.js} +26 -24
  355. package/dist/runtime/index.js +37 -35
  356. package/dist/{session-events-3LCVQEL7.js → session-events-O3BV56ZX.js} +26 -24
  357. package/dist/{session-kill-telemetry-CZSPN5V6.js → session-kill-telemetry-AELE4JDK.js} +26 -24
  358. package/dist/session-mcp-config-YKNXG5DW.js +50 -0
  359. package/dist/{session-scope-CFHVSVAQ.js → session-scope-5EAPUT45.js} +25 -23
  360. package/dist/setup-wizard-NB6R4QVS.js +14 -0
  361. package/dist/{shard-manager-MBWQEYNG.js → shard-manager-35PWFR3B.js} +3 -3
  362. package/dist/{skill-refinement-74T6VDFM.js → skill-refinement-DVSYXBBP.js} +5 -5
  363. package/dist/stack-promote-RSOWO6EY.js +130 -0
  364. package/dist/{stack-release-XXMV7SPX.js → stack-release-HGFFFCGC.js} +112 -22
  365. package/dist/{stack-update-E2TKHHSQ.js → stack-update-ATCJFOEK.js} +7 -5
  366. package/dist/{steward-gate-WT7WXQIE.js → steward-gate-3GQ5XKMJ.js} +5 -5
  367. package/dist/support-inbox-4L62P4EP.js +33 -0
  368. package/dist/support-outbox-WHGPUYL2.js +16 -0
  369. package/dist/task-enforcement-IPIZX2MM.js +90 -0
  370. package/dist/{task-scope-CQEG5SSJ.js → task-scope-FOIW25HR.js} +27 -23
  371. package/dist/{tasks-crud-UGK5A25L.js → tasks-crud-HBDKE6C5.js} +35 -23
  372. package/dist/tasks-notify-G2U2U2YA.js +53 -0
  373. package/dist/{tasks-review-JKBRACII.js → tasks-review-27SFX5XN.js} +27 -23
  374. package/dist/{telemetry-upload-7LBYGPCB.js → telemetry-upload-ZOXHRWR5.js} +9 -9
  375. package/dist/tmux-command-guard-KSJKIX3C.js +117 -0
  376. package/dist/{token-budget-QBRJR4M5.js → token-budget-5Y4YPDO3.js} +5 -5
  377. package/dist/{tool-capability-index-Q6YQDL7I.js → tool-capability-index-VYF5GNJ2.js} +1 -1
  378. package/dist/{tool-telemetry-ULIDUK3P.js → tool-telemetry-KBXSBDTK.js} +1 -1
  379. package/dist/tui/App.js +40 -38
  380. package/dist/{tui-data-NPTGKT37.js → tui-data-NLFMBIQI.js} +25 -23
  381. package/dist/{update-check-HFO4VHO4.js → update-check-3FHAWIG2.js} +7 -3
  382. package/dist/update-support-UVUSZG7R.js +355 -0
  383. package/dist/{whatsapp-accounts-BWRZUY23.js → whatsapp-accounts-BFIOXYW5.js} +1 -1
  384. package/dist/{whatsapp-config-GOSELKTE.js → whatsapp-config-FAX6EA5K.js} +20 -13
  385. package/dist/{worker-gate-MXUQUG4M.js → worker-gate-3KUBAU32.js} +3 -3
  386. package/dist/{workflow-engine-EWCOLD47.js → workflow-engine-YITHXZR5.js} +2 -2
  387. package/dist/{working-memory-PY4AG577.js → working-memory-NUVB5SFV.js} +1 -1
  388. package/dist/worktree-LL62PLQB.js +47 -0
  389. package/dist/{worktree-sweep-ZAG3V24E.js → worktree-sweep-WTK3MTKH.js} +7 -7
  390. package/package.json +3 -2
  391. package/release-notes.json +86 -76
  392. package/dist/branch-hygiene-R5NVTRAY.js +0 -138
  393. package/dist/chunk-6IRVGOUL.js +0 -30
  394. package/dist/chunk-HMP5VT6A.js +0 -118
  395. package/dist/chunk-PVYR4FCQ.js +0 -113
  396. package/dist/chunk-UFAXZ2PY.js +0 -138
  397. package/dist/chunk-Y25OJWOQ.js +0 -45
  398. package/dist/chunk-YGAAZN3E.js +0 -47
  399. package/dist/cto-delegation-gate-DXNF5HVW.js +0 -290
  400. package/dist/dispatch-ack-4S44HBWB.js +0 -15
  401. package/dist/dreaming-OMFUEUCQ.js +0 -44
  402. package/dist/orchestrator-DUUX7FQV.js +0 -45
  403. package/dist/setup-wizard-TOFEJPLF.js +0 -13
  404. package/dist/tasks-notify-SMLDFBWM.js +0 -50
  405. package/dist/worktree-GVF2I5FP.js +0 -31
  406. /package/dist/{chunk-FLNSJ2TC.js → chunk-GIBYNT6W.js} +0 -0
  407. /package/dist/{chunk-NQBRGXYR.js → chunk-JRM4TAGS.js} +0 -0
  408. /package/dist/{chunk-WHRTDN5J.js → chunk-MGGOSFCR.js} +0 -0
  409. /package/dist/{chunk-D3QASX2W.js → chunk-QIFYLIUF.js} +0 -0
  410. /package/dist/{chunk-OADURIIN.js → chunk-WTH4CSAP.js} +0 -0
  411. /package/dist/{core-memory-VO5ZIBKH.js → core-memory-GAC6EWOQ.js} +0 -0
  412. /package/dist/{entity-boost-DNI4A5I7.js → entity-boost-NT6UO2Z3.js} +0 -0
  413. /package/dist/{message-queue-client-Q5BW3O5W.js → message-queue-client-4EOQRUXW.js} +0 -0
  414. /package/dist/{oauth-server-ROQFOEMM.js → oauth-server-67YBDP32.js} +0 -0
  415. /package/dist/{webhook-pipe-FZYLO6RR.js → webhook-pipe-LEXMUQ5B.js} +0 -0
  416. /package/dist/{wiki-acl-JA5UCQZ4.js → wiki-acl-74BLWG6J.js} +0 -0
  417. /package/dist/{wiki-client-VNDOBK63.js → wiki-client-EAN7F5LV.js} +0 -0
@@ -1,118 +1,124 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  computeMcpSurfaceHash
4
- } from "./chunk-TALWBVZE.js";
4
+ } from "./chunk-BUCXNV32.js";
5
5
  import "./chunk-WCGNCH3Q.js";
6
- import "./chunk-G7WO77Z2.js";
7
- import "./chunk-XJI7Z6LZ.js";
6
+ import "./chunk-YTCFACP4.js";
7
+ import "./chunk-TLT7NZCW.js";
8
+ import "./chunk-UUQBZPJJ.js";
9
+ import "./chunk-HV4KESRY.js";
8
10
  import "./chunk-557C2IGL.js";
9
- import "./chunk-QZLIZAS7.js";
10
- import "./chunk-AOO77BDE.js";
11
- import "./chunk-6M36JFFD.js";
12
- import "./chunk-DRCRZIIJ.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";
13
16
  import "./chunk-CRCB5S7I.js";
14
- import "./chunk-W7DHFGCB.js";
15
- import "./chunk-PVYR4FCQ.js";
16
- import "./chunk-VJHUVFIW.js";
17
- import "./chunk-XCTGRD4S.js";
18
- import "./chunk-QFPTDSY2.js";
19
- import "./chunk-DADMPMYX.js";
20
- import "./chunk-NQBRGXYR.js";
21
- import "./chunk-WHRTDN5J.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";
22
25
  import "./chunk-E6ORBQHP.js";
23
- import "./chunk-32SXNM3G.js";
24
- import "./chunk-LMZISHSJ.js";
25
- import "./chunk-MQRFKSLI.js";
26
- import "./chunk-LTVCRHHD.js";
27
- import "./chunk-6IRVGOUL.js";
28
- import "./chunk-BU2QQWBQ.js";
29
- import "./chunk-PAEXYFMY.js";
30
- import "./chunk-2SG2UGCH.js";
31
- import "./chunk-KMBEL7VB.js";
32
- import "./chunk-WYLV4S6A.js";
33
- import "./chunk-XUKPALWT.js";
34
- import "./chunk-Q7L6G6KV.js";
35
- import "./chunk-DILD54TU.js";
36
- import "./chunk-HMP5VT6A.js";
37
- import "./chunk-T4KZ2Z2N.js";
38
- import "./chunk-GN45PBWI.js";
39
- import "./chunk-OJTJYEMX.js";
40
- import "./chunk-BPC5LZ6Y.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";
41
43
  import "./chunk-3OEVDGIY.js";
42
- import "./chunk-KCC5A7YL.js";
43
- import "./chunk-IYB2NIW3.js";
44
+ import "./chunk-QQ4E2RYW.js";
45
+ import "./chunk-2KZNGDSW.js";
44
46
  import "./chunk-KQ4Z2G24.js";
45
47
  import "./chunk-L3TB7CC3.js";
46
- import "./chunk-EIF2LQHZ.js";
47
- import "./chunk-AVKXCSBI.js";
48
- import "./chunk-X2FHTDIU.js";
48
+ import "./chunk-PDWS3E22.js";
49
+ import "./chunk-GG5NDQNN.js";
50
+ import "./chunk-IBYL4DHM.js";
49
51
  import "./chunk-SSC7EKY2.js";
50
- import "./chunk-X7H3HMFH.js";
52
+ import "./chunk-VRAQTFD6.js";
53
+ import "./chunk-KWZMQACA.js";
51
54
  import "./chunk-75H4R62K.js";
52
- import "./chunk-6HBURYON.js";
55
+ import "./chunk-OTF44GXL.js";
53
56
  import "./chunk-MMRUBN3I.js";
54
57
  import "./chunk-2XZ6X3PJ.js";
55
- import "./chunk-UXBD22CD.js";
56
- import "./chunk-I3XKO3KQ.js";
57
- import "./chunk-A47MXY2I.js";
58
- import "./chunk-7WPOJDTA.js";
59
- import "./chunk-B75BOKEI.js";
60
- import "./chunk-QLFRCA6I.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";
61
64
  import "./chunk-X2Z5GT3V.js";
62
- import "./chunk-UPWE5NOG.js";
63
- import "./chunk-TLYAEISW.js";
64
- import "./chunk-R44Z32O2.js";
65
+ import "./chunk-QDGZJ653.js";
66
+ import "./chunk-KW2SD2FL.js";
67
+ import "./chunk-6CH3TPHR.js";
65
68
  import "./chunk-A4DVMPYB.js";
66
69
  import "./chunk-GUMRIUI5.js";
67
70
  import "./chunk-Z6BZQHP5.js";
68
71
  import "./chunk-VGMACSEV.js";
69
- import "./chunk-RNAYCUNM.js";
70
- import "./chunk-JCBKARSK.js";
71
- import "./chunk-UCQITDLM.js";
72
- import "./chunk-3QDSCJ3F.js";
73
- 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";
74
77
  import "./chunk-QGGH7LOU.js";
75
- import "./chunk-542EWGY3.js";
76
- import "./chunk-I7Z6KTGF.js";
77
- import "./chunk-UFAXZ2PY.js";
78
- import "./chunk-N5I7RL3I.js";
79
- import "./chunk-ZREGOV2Q.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";
80
84
  import "./chunk-AB4PAQYK.js";
81
- import "./chunk-H37HHX3E.js";
85
+ import "./chunk-VSRPS3J7.js";
82
86
  import "./chunk-CHCA3ZM2.js";
83
87
  import "./chunk-OTVEIJUQ.js";
84
- import "./chunk-HHIBOU3P.js";
85
- import "./chunk-DZ6OQM67.js";
86
- import "./chunk-Y25OJWOQ.js";
87
- import "./chunk-PLRIJALF.js";
88
- import "./chunk-OFX5B2S7.js";
89
- import "./chunk-B76TSEP3.js";
90
- import "./chunk-RLRT2BVM.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";
96
+ import "./chunk-E23LNUWJ.js";
91
97
  import "./chunk-4JERP7NT.js";
92
98
  import "./chunk-EIKATSE4.js";
93
- import "./chunk-E23LNUWJ.js";
94
- import "./chunk-UIV2WPBT.js";
95
- import "./chunk-SSTLTIF3.js";
96
- import "./chunk-RMOBQ6A5.js";
97
- import "./chunk-54QCG45Y.js";
98
- import "./chunk-FUIIVSW6.js";
99
- import "./chunk-65SVQELL.js";
100
- import "./chunk-NGP6LSV2.js";
101
- import "./chunk-MW2GJJ53.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";
102
108
  import "./chunk-CVYC6DUW.js";
103
- import "./chunk-2233TQCA.js";
104
- import "./chunk-HCJCW7X4.js";
109
+ import "./chunk-JLZ4RYSD.js";
110
+ import "./chunk-H7I47RS5.js";
105
111
  import "./chunk-OPU3NYOO.js";
106
- import "./chunk-7TS64TBG.js";
112
+ import "./chunk-G4RGKBCA.js";
107
113
  import {
108
114
  requestDeployRestart
109
115
  } from "./chunk-AFNRE2RV.js";
110
- import "./chunk-3NGZ4PL7.js";
116
+ import "./chunk-X2Q5NLUL.js";
111
117
  import "./chunk-NLEW62VC.js";
112
118
  import "./chunk-HYZV25LY.js";
113
119
  import "./chunk-GJV3WDWM.js";
114
- import "./chunk-YGAAZN3E.js";
115
- import "./chunk-KTPG4XKI.js";
120
+ import "./chunk-GL57PO3K.js";
121
+ import "./chunk-KP3U5QGJ.js";
116
122
  import "./chunk-ML4S5SHZ.js";
117
123
  import "./chunk-MP2AFCGL.js";
118
124
  import {
@@ -120,11 +126,11 @@ import {
120
126
  ensureSchema,
121
127
  getClient,
122
128
  initDatabase
123
- } from "./chunk-HEPR6QTL.js";
129
+ } from "./chunk-AOHXREB7.js";
124
130
  import {
125
131
  assertValidDbPath
126
132
  } from "./chunk-2I23RPSI.js";
127
- import "./chunk-ATOU6CYR.js";
133
+ import "./chunk-OLMQ4UOF.js";
128
134
  import "./chunk-PNQDP3OA.js";
129
135
  import "./chunk-H73TUI4Y.js";
130
136
  import "./chunk-7HLWBYH7.js";
@@ -135,14 +141,15 @@ import {
135
141
  getMasterKey,
136
142
  importMnemonic,
137
143
  setMasterKey
138
- } from "./chunk-Z42MXYWW.js";
139
- import "./chunk-XQNNB5GY.js";
140
- import "./chunk-XACL67CS.js";
141
- import "./chunk-5Z5NATNS.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";
142
149
  import {
143
150
  loadConfig
144
- } from "./chunk-7Y5UDEVM.js";
145
- import "./chunk-SHIICYJW.js";
151
+ } from "./chunk-WZHZCDDO.js";
152
+ import "./chunk-BYTDMAGB.js";
146
153
  import {
147
154
  isMainModule
148
155
  } from "./chunk-6Y4B3QF6.js";
@@ -231,7 +238,7 @@ async function keyStatus() {
231
238
  console.log(`Storage: ${storage.kind} \u2014 ${storage.note}`);
232
239
  console.log(`Key length: ${key.length} bytes`);
233
240
  try {
234
- const { getKeyBackupStatus, keyBackupMarkerPath } = await import("./key-backup-status-TNEHXA2X.js");
241
+ const { getKeyBackupStatus, keyBackupMarkerPath } = await import("./key-backup-status-LOSMVATJ.js");
235
242
  const backup = getKeyBackupStatus();
236
243
  if (backup.exists) {
237
244
  const when = backup.confirmedAt ? ` at ${backup.confirmedAt}` : "";
@@ -410,149 +417,157 @@ async function rotateWizard(argv) {
410
417
  const newKeyTempPath = path.join(baseDir, "NEW_KEY_DO_NOT_SHARE.base64");
411
418
  writeFileSync(newKeyTempPath, `${newKey.toString("base64")}
412
419
  `, { mode: 384 });
413
- console.log(`Rotation workspace: ${baseDir}`);
414
- console.log("Stopping daemon...");
415
- await stopDaemonIfAlive();
416
- console.log("Backing up encrypted DB/WAL/SHM...");
417
- const dbDir = path.dirname(pf.dbPath);
418
- for (const name of ["memories.db", "memories.db-wal", "memories.db-shm"]) {
419
- const src = path.join(dbDir, name);
420
- if (existsSync(src)) copyFileSync(src, path.join(backupDir, name));
421
- }
422
- console.log("Creating fresh encrypted DB with new key...");
423
- await initDatabase({ dbPath: newDbPath, encryptionKey: newKey.toString("hex") });
424
- await ensureSchema();
425
- const target = getClient();
426
- await target.execute("PRAGMA foreign_keys=OFF");
427
- assertValidDbPath(pf.dbPath, "exe-key rotate source");
428
- const source = createClient({ url: `file:${pf.dbPath}`, encryptionKey: pf.key.toString("hex") });
429
- await source.execute("PRAGMA busy_timeout = 30000");
430
- const tables = await getTableNames(source);
431
- const copiedTables = [];
432
- for (const table of tables) {
433
- const copied = await copyTable(source, target, table);
434
- copiedTables.push({ table, count: copied });
435
- console.log(`\u2713 copied ${table}: ${copied}`);
436
- }
437
- const generationId = crypto.randomUUID();
438
- await target.execute({ sql: "INSERT OR REPLACE INTO sync_meta (key, value) VALUES (?, ?)", args: ["key_rotation_at", (/* @__PURE__ */ new Date()).toISOString()] });
439
- await target.execute({ sql: "INSERT OR REPLACE INTO sync_meta (key, value) VALUES (?, ?)", args: ["key_rotation_generation_id", generationId] });
440
- await target.execute({ sql: "INSERT OR REPLACE INTO sync_meta (key, value) VALUES (?, ?)", args: ["cloud_reupload_required", pf.cloudConfigured ? "1" : "0"] });
441
- await target.execute("DELETE FROM sync_meta WHERE key IN ('last_cloud_pull_version', 'last_cloud_push_version')");
442
- const verifyMem = await target.execute("SELECT COUNT(*) as cnt FROM memories");
443
- const verifyTasks = await target.execute("SELECT COUNT(*) as cnt FROM tasks");
444
- const expectedMemories = Number(verifyMem.rows[0]?.cnt ?? 0);
445
- const expectedTasks = Number(verifyTasks.rows[0]?.cnt ?? 0);
446
- console.log(`Verified new DB: ${expectedMemories} memories, ${expectedTasks} tasks`);
447
- await target.execute("PRAGMA wal_checkpoint(TRUNCATE)");
448
420
  try {
449
- source.close();
450
- } catch {
451
- }
452
- try {
453
- target.close();
454
- } catch {
455
- }
456
- console.log("Swapping DB files...");
457
- for (const name of ["memories.db", "memories.db-wal", "memories.db-shm"]) {
458
- const current = path.join(dbDir, name);
459
- if (existsSync(current)) renameSync(current, path.join(backupDir, `moved-${name}`));
460
- }
461
- copyFileSync(newDbPath, pf.dbPath);
462
- rmSync(path.join(dbDir, "memories.db-wal"), { force: true });
463
- rmSync(path.join(dbDir, "memories.db-shm"), { force: true });
464
- console.log("Installing new key into OS keychain...");
465
- await setMasterKey(newKey);
466
- await initDatabase({ dbPath: pf.dbPath, encryptionKey: newKey.toString("hex") });
467
- const finalClient = getClient();
468
- const finalMem = await finalClient.execute("SELECT COUNT(*) as cnt FROM memories");
469
- const finalTasks = await finalClient.execute("SELECT COUNT(*) as cnt FROM tasks");
470
- const finalMemoryCount = Number(finalMem.rows[0]?.cnt ?? 0);
471
- const finalTaskCount = Number(finalTasks.rows[0]?.cnt ?? 0);
472
- if (finalMemoryCount !== expectedMemories || finalTaskCount !== expectedTasks) {
473
- throw new Error(`Post-swap verification mismatch: expected ${expectedMemories}/${expectedTasks}, got ${finalMemoryCount}/${finalTaskCount}. Backup kept at ${backupDir}`);
474
- }
475
- rmSync(newKeyTempPath, { force: true });
476
- writeFileSync(path.join(baseDir, "rotation-manifest.json"), JSON.stringify({
477
- rotationId,
478
- createdAt: (/* @__PURE__ */ new Date()).toISOString(),
479
- backupDir,
480
- generationId,
481
- cloudReuploadRequired: pf.cloudConfigured,
482
- finalCounts: { memories: finalMemoryCount, tasks: finalTaskCount },
483
- copiedTables
484
- }, null, 2) + "\n", { mode: 384 });
485
- console.log("Restarting daemon and verifying daemon DB access...");
486
- try {
487
- const { connectEmbedDaemon, sendDaemonRequest, isClientConnected, disconnectClient } = await import("./lib/exe-daemon-client.js");
488
- await connectEmbedDaemon();
489
- const resp = await sendDaemonRequest({ type: "db-execute", sql: "SELECT COUNT(*) as cnt FROM memories", args: [] });
490
- if (resp.error) throw new Error(String(resp.error));
491
- console.log(`\u2713 Daemon connected: ${isClientConnected()} (${resp.db?.rows?.[0]?.cnt ?? "?"} memories)`);
492
- disconnectClient();
493
- } catch (err) {
494
- console.log(`\u26A0 Daemon restart/verify failed: ${err instanceof Error ? err.message : String(err)}`);
495
- console.log(" You can retry by running any exe-os command that starts the daemon.");
496
- }
497
- console.log("");
498
- console.log("Key rotation complete.");
499
- console.log(`Backup kept at: ${backupDir}`);
500
- console.log(`New DB verified: ${finalMemoryCount} memories, ${finalTaskCount} tasks`);
501
- if (pf.cloudConfigured) {
502
- console.log("Local key rotation is complete.");
503
- console.log("Cloud sync is paused until your newly encrypted cloud backup is re-uploaded.");
504
- console.log("");
505
- }
506
- const newRecoveryPhrase = await exportMnemonic(newKey);
507
- 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");
508
- console.log(" REQUIRED: SAVE YOUR NEW RECOVERY PHRASE");
509
- 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");
510
- console.log("Write these 24 words down now. They will not be uploaded to Exe Cloud.");
511
- console.log("");
512
- console.log(newRecoveryPhrase);
513
- console.log("");
514
- console.log("If you need to reveal it again later from this trusted local Terminal, run:");
515
- console.log(" exe-os cloud link --show-full");
516
- console.log("");
517
- console.log("Do not continue to cloud re-upload until the NEW phrase is saved.");
518
- if (pf.cloudConfigured) {
519
- 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)");
520
456
  try {
521
- const saved = await ask(rl2, 'After saving the 24 words, type exactly "I SAVED MY NEW RECOVERY PHRASE" to continue: ');
522
- if (saved !== "I SAVED MY NEW RECOVERY PHRASE") {
523
- console.log("Cloud re-upload skipped. Save the phrase with:");
524
- console.log(" exe-os cloud link --show-full");
525
- console.log("Then run:");
526
- console.log(" exe-os cloud reupload");
527
- return 0;
528
- }
529
- } finally {
530
- rl2.close();
457
+ source.close();
458
+ } catch {
531
459
  }
532
- console.log("Starting automatic cloud re-upload now...");
533
460
  try {
534
- const { main: runCloud } = await import("./bin/exe-cloud.js");
535
- 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 });
536
532
  try {
537
- process.argv = [process.argv[0], process.argv[1], "reupload", "--local-db-is-source-of-truth"];
538
- 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
+ }
539
541
  } finally {
540
- 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");
541
560
  }
542
- console.log("\u2713 Cloud re-upload finished. Main device rotation is complete.");
543
- } catch (err) {
544
- console.log(`\u26A0 Cloud re-upload did not finish: ${err instanceof Error ? err.message : String(err)}`);
545
- console.log("Your local key rotation succeeded, but normal cloud sync remains blocked.");
546
- console.log("Retry with the support fallback command:");
547
- console.log(" exe-os cloud reupload");
548
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 });
549
570
  }
550
- console.log("");
551
- console.log("Cleanup guidance:");
552
- console.log(" 1. Verify the new recovery phrase opens this DB on another local terminal/device.");
553
- console.log(" 2. Keep the old-key encrypted backup until verification is complete.");
554
- console.log(` 3. After verification, manually review/remove the sensitive rotation workspace: ${baseDir}`);
555
- return 0;
556
571
  }
557
572
  async function acceptRotationWizard(argv) {
558
573
  const dryRun = argv.includes("--dry-run");
@@ -745,7 +760,7 @@ async function confirmBackupWizard(argv) {
745
760
  rl.close();
746
761
  }
747
762
  }
748
- const { markKeyBackupConfirmed, keyBackupMarkerPath } = await import("./key-backup-status-TNEHXA2X.js");
763
+ const { markKeyBackupConfirmed, keyBackupMarkerPath } = await import("./key-backup-status-LOSMVATJ.js");
749
764
  markKeyBackupConfirmed("exe-os key confirm-backup");
750
765
  console.log("");
751
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