@askexenow/exe-os 0.9.384 → 0.9.389

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 (481) hide show
  1. package/deploy/compose/.env.askexe-control-plane.example +6 -0
  2. package/deploy/compose/.env.customer.example +1 -1
  3. package/deploy/compose/.env.example +1 -1
  4. package/deploy/compose/docker-compose.yml +16 -0
  5. package/deploy/compose/generate-env.ts +1 -1
  6. package/deploy/compose/sso-edge/sso-redirect.conf +18 -3
  7. package/deploy/stack-manifests/v0.9.json +1160 -1
  8. package/dist/.dist-verified.json +3 -3
  9. package/dist/{active-agent-F5V4E4UL.js → active-agent-RZ24KSJN.js} +8 -6
  10. package/dist/{active-agent-YTBB4ZQM.js → active-agent-YWSWPIEA.js} +8 -6
  11. package/dist/{agent-defs-generator-7TFISIJQ.js → agent-defs-generator-GY3UBREJ.js} +8 -6
  12. package/dist/{agent-heartbeat-CQPGJIFF.js → agent-heartbeat-GUVUUQVM.js} +1 -1
  13. package/dist/{agent-loop-EZ7LDAGD.js → agent-loop-HPNCH3HK.js} +1 -1
  14. package/dist/{agentic-ontology-XVTUVV7W.js → agentic-ontology-RHYNXEKE.js} +1 -1
  15. package/dist/{artifact-backup-TF6YWQT2.js → artifact-backup-HGUFSIJH.js} +19 -6
  16. package/dist/{backfill-metadata-J6MXIDCW.js → backfill-metadata-XLFASEOD.js} +11 -9
  17. package/dist/{backup-verify-6DVBQMDP.js → backup-verify-TUQEICWA.js} +1 -1
  18. package/dist/{behavior-injection-XDA7ZCYN.js → behavior-injection-GXO7ERGN.js} +14 -12
  19. package/dist/{behavior-promotion-4VLQ7LXK.js → behavior-promotion-V63WIZ4N.js} +13 -11
  20. package/dist/{behaviors-SCCZP7RZ.js → behaviors-RMLDPLOF.js} +18 -11
  21. package/dist/bin/agentic-ontology-backfill.js +12 -10
  22. package/dist/bin/agentic-reflection-backfill.js +13 -11
  23. package/dist/bin/agentic-semantic-label.js +12 -10
  24. package/dist/bin/backfill-conversations.js +11 -9
  25. package/dist/bin/backfill-responses.js +11 -9
  26. package/dist/bin/backfill-vectors.js +13 -11
  27. package/dist/bin/bulk-sync-postgres.js +20 -18
  28. package/dist/bin/cc-doctor.js +15 -13
  29. package/dist/bin/cleanup-stale-review-tasks.js +44 -32
  30. package/dist/bin/cli.js +109 -30
  31. package/dist/bin/customer-readiness.js +55 -25
  32. package/dist/bin/deferred-daemon-restart.js +111 -108
  33. package/dist/bin/exe-actions.js +7 -1
  34. package/dist/bin/exe-agent-config.js +8 -6
  35. package/dist/bin/exe-agent.js +18 -16
  36. package/dist/bin/exe-assign.js +13 -11
  37. package/dist/bin/exe-boot.js +49 -47
  38. package/dist/bin/exe-call.js +9 -7
  39. package/dist/bin/exe-cicd.js +19 -8
  40. package/dist/bin/exe-cloud.js +59 -25
  41. package/dist/bin/exe-config-dump.js +8 -6
  42. package/dist/bin/exe-dispatch.js +23 -21
  43. package/dist/bin/exe-doctor.js +11 -8
  44. package/dist/bin/exe-export-behaviors.js +16 -14
  45. package/dist/bin/exe-forget.js +14 -12
  46. package/dist/bin/exe-gateway.js +12 -10
  47. package/dist/bin/exe-grant.js +6 -6
  48. package/dist/bin/exe-healthcheck.js +15 -13
  49. package/dist/bin/exe-heartbeat.js +28 -26
  50. package/dist/bin/exe-kill.js +28 -26
  51. package/dist/bin/exe-launch-agent.js +35 -33
  52. package/dist/bin/exe-mcp.js +9 -7
  53. package/dist/bin/exe-memory-reads.js +11 -9
  54. package/dist/bin/exe-new-employee.js +13 -11
  55. package/dist/bin/exe-os-mcp-proxy.js +9 -7
  56. package/dist/bin/exe-pending-messages.js +23 -21
  57. package/dist/bin/exe-pending-notifications.js +22 -20
  58. package/dist/bin/exe-pending-reviews.js +23 -21
  59. package/dist/bin/exe-preflight.js +1 -1
  60. package/dist/bin/exe-rename.js +9 -7
  61. package/dist/bin/exe-review.js +59 -55
  62. package/dist/bin/exe-search-quality.js +16 -3
  63. package/dist/bin/exe-search.js +13 -11
  64. package/dist/bin/exe-session-cleanup.js +29 -27
  65. package/dist/bin/exe-settings.js +22 -20
  66. package/dist/bin/exe-start-codex.js +23 -21
  67. package/dist/bin/exe-start-opencode.js +21 -19
  68. package/dist/bin/exe-status.js +24 -22
  69. package/dist/bin/exe-support.js +3 -3
  70. package/dist/bin/exe-team.js +8 -6
  71. package/dist/bin/exe-verify-running-images.js +644 -17
  72. package/dist/bin/git-sweep.js +24 -22
  73. package/dist/bin/graph-backfill.js +12 -10
  74. package/dist/bin/graph-export.js +12 -10
  75. package/dist/bin/hooks-cli.js +4 -4
  76. package/dist/bin/import-history.js +16 -14
  77. package/dist/bin/install.js +113 -110
  78. package/dist/bin/intercom-check.js +5 -5
  79. package/dist/bin/mcp-sessions.js +2 -2
  80. package/dist/bin/orchestration-metrics.js +8 -6
  81. package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
  82. package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
  83. package/dist/bin/pre-build-guard.js +55 -16
  84. package/dist/bin/pre-publish.js +1 -1
  85. package/dist/bin/prune-orphan-chunks.js +154 -28
  86. package/dist/bin/reconcile-backlog.js +5 -3
  87. package/dist/bin/registry-proxy.js +1 -1
  88. package/dist/bin/repair-document-chunks.js +11 -9
  89. package/dist/bin/scan-tasks.js +23 -21
  90. package/dist/bin/setup.js +3 -3
  91. package/dist/bin/shard-migrate.js +12 -10
  92. package/dist/bin/stack-update.js +622 -43
  93. package/dist/bin/verify-stack.js +2 -2
  94. package/dist/bin/vps-health-gate.js +1 -1
  95. package/dist/{boot-generation-Q7LGQ3AO.js → boot-generation-VCQXVYGT.js} +7 -5
  96. package/dist/{boot-review-sections-G5774FR5.js → boot-review-sections-3QO6Q7MP.js} +21 -19
  97. package/dist/{branch-hygiene-44WLSOZR.js → branch-hygiene-DDXXI6ZA.js} +59 -21
  98. package/dist/bug-landed-reconciler-TQVNOUCU.js +353 -0
  99. package/dist/build-manifest.json +1269 -1194
  100. package/dist/{capability-cards-I3RHCF4F.js → capability-cards-XPDLT6LU.js} +6 -4
  101. package/dist/{capacity-monitor-7I7GDONU.js → capacity-monitor-N3AW242L.js} +23 -21
  102. package/dist/{catchup-brief-3T5PARIR.js → catchup-brief-3PKX7FUP.js} +29 -27
  103. package/dist/{chunk-C5ISP5FO.js → chunk-2BKJAOO4.js} +11 -1
  104. package/dist/{chunk-JJTPPAZY.js → chunk-2CUQHG6H.js} +1609 -1356
  105. package/dist/{chunk-HU3VD4MQ.js → chunk-2Q2GGYBX.js} +1 -1
  106. package/dist/{chunk-CHIUS5QB.js → chunk-36LMIOVU.js} +9 -9
  107. package/dist/{chunk-46VSBDUW.js → chunk-3DCBDG4T.js} +2 -2
  108. package/dist/{chunk-W3KPQE7H.js → chunk-3GL3E4TD.js} +3 -3
  109. package/dist/{chunk-GL47M7NY.js → chunk-3UD3OF3X.js} +202 -117
  110. package/dist/{chunk-WNBZJSQT.js → chunk-3VW5ZP2F.js} +1 -1
  111. package/dist/{chunk-JDDM6C57.js → chunk-3X74IQBU.js} +1 -1
  112. package/dist/{chunk-NVFNADTX.js → chunk-3ZL4MDQ6.js} +18 -4
  113. package/dist/{chunk-R5E7WNAC.js → chunk-4ESNDGMB.js} +3 -3
  114. package/dist/{chunk-CYCIX7AW.js → chunk-4FLLIQRQ.js} +2 -2
  115. package/dist/{chunk-3RGTLZNO.js → chunk-4GAKF7KR.js} +99 -74
  116. package/dist/{chunk-RVO5O5SR.js → chunk-4S3A52AV.js} +38 -10
  117. package/dist/{chunk-7J2ZQ4XN.js → chunk-4VQ3QR6B.js} +29 -28
  118. package/dist/{chunk-MROSARM5.js → chunk-5BJBTFFQ.js} +7 -1
  119. package/dist/chunk-5LQZABW5.js +6 -0
  120. package/dist/chunk-5ONMHTNI.js +236 -0
  121. package/dist/{chunk-APL7HUE3.js → chunk-5QQJUO3F.js} +200 -31
  122. package/dist/{chunk-UOPCVFVR.js → chunk-5RK75SWH.js} +205 -278
  123. package/dist/{chunk-T5FEAQES.js → chunk-5TYJYGS5.js} +1 -1
  124. package/dist/{chunk-P3QQ52QK.js → chunk-5U6EOTZV.js} +3 -3
  125. package/dist/{chunk-ALRHGEAJ.js → chunk-637FL62O.js} +1 -1
  126. package/dist/{chunk-PUBA5B4M.js → chunk-6L4VIYLZ.js} +33 -19
  127. package/dist/{chunk-VF2KRROX.js → chunk-754P2UXM.js} +1 -1
  128. package/dist/{chunk-CM7N5MBY.js → chunk-7FZG7WP4.js} +5 -5
  129. package/dist/{chunk-NYLJQ2M2.js → chunk-7NEBFB3L.js} +4 -4
  130. package/dist/{chunk-E7C2WNR5.js → chunk-AEIOFFFX.js} +5 -5
  131. package/dist/{chunk-VOVFUKEB.js → chunk-AIB2EWO2.js} +5 -5
  132. package/dist/{chunk-EGOEB42T.js → chunk-AP2C4OGS.js} +3 -3
  133. package/dist/{chunk-MPZ2AVNS.js → chunk-ATNV3BVZ.js} +1 -1
  134. package/dist/{chunk-F4BBMIPG.js → chunk-B4XJQBQB.js} +2 -2
  135. package/dist/{chunk-BPVFZ6Q4.js → chunk-B5EGDNG6.js} +2 -2
  136. package/dist/{chunk-AGC2V7JS.js → chunk-B6CBN6EF.js} +1 -1
  137. package/dist/{chunk-KTKIFXIP.js → chunk-B7FDRN7G.js} +1 -1
  138. package/dist/{chunk-C5HUMAA7.js → chunk-B7WVYLAQ.js} +67 -15
  139. package/dist/chunk-BGVP5RMT.js +185 -0
  140. package/dist/{chunk-FVLNNNH6.js → chunk-BNI4LIU5.js} +35 -4
  141. package/dist/{chunk-P4XLIPB7.js → chunk-BU5JRLZT.js} +1 -1
  142. package/dist/{chunk-PHUHIVD5.js → chunk-C6U7XWOC.js} +34 -5
  143. package/dist/chunk-C7GHNJPW.js +8 -0
  144. package/dist/{chunk-4AR5XKCH.js → chunk-CL2MU3OX.js} +1 -1
  145. package/dist/{chunk-ZPP63JSQ.js → chunk-CL3AB7Z2.js} +1 -1
  146. package/dist/{chunk-FHIFTSPL.js → chunk-CP7XUSOF.js} +8 -3
  147. package/dist/{chunk-3OX34OC3.js → chunk-CUDNRHHT.js} +30 -10
  148. package/dist/chunk-CYUUNIEL.js +21 -0
  149. package/dist/{chunk-P2UY34XE.js → chunk-D4C57S2H.js} +5 -5
  150. package/dist/{chunk-XSUALA32.js → chunk-DDYFNBYV.js} +3 -3
  151. package/dist/{chunk-LSNBTGW4.js → chunk-DPYZW42H.js} +1 -1
  152. package/dist/{chunk-FMIYFHLE.js → chunk-E2PRXEZK.js} +9 -3
  153. package/dist/{chunk-L63V25HS.js → chunk-E54SPUYJ.js} +3 -3
  154. package/dist/{chunk-DMUOTCDN.js → chunk-E5CKRHIZ.js} +1 -1
  155. package/dist/{chunk-BV2IET6B.js → chunk-EVMOKRBC.js} +15 -2
  156. package/dist/{chunk-YLFCH3VA.js → chunk-FDWI3T6I.js} +133 -31
  157. package/dist/{chunk-PWC3C5ME.js → chunk-FNJTCJGY.js} +4 -4
  158. package/dist/{chunk-TNS63ATU.js → chunk-FWRPDSO3.js} +350 -50
  159. package/dist/{chunk-JA3Y5TV6.js → chunk-GDLB6BPM.js} +141 -74
  160. package/dist/{chunk-IGJMS7C5.js → chunk-GOVGG7HU.js} +2 -2
  161. package/dist/{chunk-MB47DRF5.js → chunk-GP7CTIUK.js} +2 -2
  162. package/dist/{chunk-L5EPGGDP.js → chunk-GWAN2BDB.js} +4 -4
  163. package/dist/{chunk-YRQ26MNP.js → chunk-H3YF7X4J.js} +12 -5
  164. package/dist/{chunk-VLBHZ6TF.js → chunk-H6PLIFUE.js} +2 -2
  165. package/dist/{chunk-GSLFH4AI.js → chunk-HRNM3N4Y.js} +6 -15
  166. package/dist/chunk-IG2ISRTF.js +48 -0
  167. package/dist/{chunk-MWEIBVBS.js → chunk-IJCWBYA5.js} +14 -1
  168. package/dist/{chunk-NKEFYE4R.js → chunk-IPTUKX3N.js} +1 -1
  169. package/dist/{chunk-RB3J2WYQ.js → chunk-IVE7H6KA.js} +1 -1
  170. package/dist/{chunk-HA63SH5W.js → chunk-IWY2OGQG.js} +1 -1
  171. package/dist/{chunk-BQEZPRUC.js → chunk-IZWMWJZT.js} +64 -46
  172. package/dist/{chunk-AHESD3KW.js → chunk-J4UVI652.js} +1 -1
  173. package/dist/{chunk-PLII76NJ.js → chunk-JBUCA4OX.js} +33 -6
  174. package/dist/{chunk-2PZTMSMG.js → chunk-JOF4HQDF.js} +5 -5
  175. package/dist/{chunk-OBBO6EJR.js → chunk-JQN3QGSF.js} +1 -1
  176. package/dist/{chunk-P4PIZOL2.js → chunk-JWYIH5DR.js} +3 -3
  177. package/dist/{chunk-3XY57PKT.js → chunk-KZLKE7I3.js} +210 -48
  178. package/dist/{chunk-DYVLEMKS.js → chunk-L3GXMYBK.js} +1 -1
  179. package/dist/{chunk-72V3S44T.js → chunk-LUA4SLJY.js} +46 -19
  180. package/dist/{chunk-ZT4LFTUJ.js → chunk-LW3JCBXP.js} +20 -3
  181. package/dist/{chunk-YLB365YX.js → chunk-M5XHN4OM.js} +3 -3
  182. package/dist/{chunk-VHHX4UCP.js → chunk-MDTWARSF.js} +22 -93
  183. package/dist/{chunk-JFJP6ATJ.js → chunk-MWKXQSF6.js} +3 -2
  184. package/dist/{chunk-VJEJ7JNB.js → chunk-N32DVIKY.js} +1 -1
  185. package/dist/{chunk-MUCNYSJP.js → chunk-NRLJOV7M.js} +32 -4
  186. package/dist/{chunk-PL4CFSQ7.js → chunk-NSXJOSH7.js} +1 -1
  187. package/dist/{chunk-NF5FOSLD.js → chunk-NVTG66CK.js} +1 -1
  188. package/dist/chunk-O45GBJEH.js +1500 -0
  189. package/dist/{chunk-4AAMFWJT.js → chunk-OHZSTZXN.js} +4 -2
  190. package/dist/chunk-OSIS7ZQW.js +344 -0
  191. package/dist/{chunk-E3ZM32LF.js → chunk-P22VFGFK.js} +14 -5
  192. package/dist/{chunk-KILR4FBR.js → chunk-PAFLR7WD.js} +3 -3
  193. package/dist/{chunk-R3CZWFFC.js → chunk-PEYQ6MWO.js} +15 -3
  194. package/dist/{chunk-RDWIKDMY.js → chunk-PZR54BEI.js} +8 -20
  195. package/dist/{chunk-2FKU4ZEO.js → chunk-QDBKMEYY.js} +9 -9
  196. package/dist/{chunk-7UHZBVP3.js → chunk-QDVLVLXP.js} +97 -31
  197. package/dist/{chunk-PRDDPQLC.js → chunk-QLXEQRHD.js} +5 -5
  198. package/dist/{chunk-MUAWCFW6.js → chunk-QNPDXV5V.js} +5 -2
  199. package/dist/{chunk-LR5O2XWZ.js → chunk-QUZYLDNJ.js} +5 -5
  200. package/dist/chunk-RBQUXHYK.js +48 -0
  201. package/dist/{chunk-3SUPEE6H.js → chunk-RDMBSHGG.js} +3 -3
  202. package/dist/{chunk-I5XIW2BP.js → chunk-RGUM474V.js} +7 -7
  203. package/dist/{chunk-OAFENIHN.js → chunk-RJ67XAJU.js} +76 -28
  204. package/dist/{chunk-LFUBEHFW.js → chunk-RT57D7C4.js} +39 -1
  205. package/dist/{chunk-MKM6D7JM.js → chunk-RWG7DLOG.js} +42 -5
  206. package/dist/{chunk-P3UX5EH4.js → chunk-RWKAHHIX.js} +3 -3
  207. package/dist/{chunk-XEBKIWI7.js → chunk-RYNT3HB7.js} +12 -12
  208. package/dist/{chunk-EUGEFBGV.js → chunk-S2V272KJ.js} +3 -3
  209. package/dist/{chunk-W6BZ4UGA.js → chunk-SGYEM2PD.js} +1 -1
  210. package/dist/{chunk-VROK4X2L.js → chunk-SJP57MQM.js} +1 -1
  211. package/dist/{chunk-5MVKTNZP.js → chunk-SL4JWAMQ.js} +54 -4
  212. package/dist/{chunk-MOANZQXF.js → chunk-SLMKLEU6.js} +1 -1
  213. package/dist/{chunk-RZN2LEAK.js → chunk-SQA7XCYI.js} +3 -3
  214. package/dist/{chunk-4YNA3CM6.js → chunk-SSFS4NCH.js} +262 -56
  215. package/dist/{chunk-6FIC57PH.js → chunk-T4P2G3PO.js} +1 -1
  216. package/dist/{chunk-5U2IJBFV.js → chunk-TA3B4N24.js} +1 -1
  217. package/dist/{chunk-ZOTTYCP5.js → chunk-TEWWBVQP.js} +40 -4
  218. package/dist/{chunk-SDYWZRPN.js → chunk-TLSFGXXE.js} +1 -1
  219. package/dist/{chunk-L3VUW5M4.js → chunk-TQS2YHLB.js} +1 -1
  220. package/dist/{chunk-KXYKSLW4.js → chunk-TU4M757W.js} +399 -116
  221. package/dist/{chunk-MC4IM2CC.js → chunk-TYD4F4XU.js} +6 -6
  222. package/dist/{chunk-TKS5GMYA.js → chunk-U44Y7RC7.js} +2 -0
  223. package/dist/{chunk-B7AMNZTC.js → chunk-UKBPEEEQ.js} +2 -2
  224. package/dist/{chunk-ZBPZDADW.js → chunk-UWVXQEQQ.js} +467 -78
  225. package/dist/{chunk-P2VVMGMI.js → chunk-V4WH3FV7.js} +35 -16
  226. package/dist/{worktree-ownership-guard-O6JQF2CL.js → chunk-V6F4I2XY.js} +13 -14
  227. package/dist/{chunk-JFTUAV4J.js → chunk-VBKUESIW.js} +1 -1
  228. package/dist/{chunk-AZSTIAVL.js → chunk-VBPYYJPC.js} +1 -1
  229. package/dist/{chunk-LKTN22L6.js → chunk-VIP4LKLO.js} +57 -24
  230. package/dist/{chunk-L5CGXEZC.js → chunk-WAAGVFFN.js} +63 -71
  231. package/dist/{chunk-D3LXVAIQ.js → chunk-WC7AE3PT.js} +244 -103
  232. package/dist/{chunk-EOTZSAQL.js → chunk-WUCUDHKR.js} +1 -1
  233. package/dist/{chunk-VF3BZOZK.js → chunk-X7HZHKY4.js} +50 -3
  234. package/dist/{chunk-LFBLQE2P.js → chunk-XCAKYVKI.js} +1 -1
  235. package/dist/{chunk-UXN4BICC.js → chunk-XMX5J52Z.js} +1 -1
  236. package/dist/{chunk-6YDY6ZTD.js → chunk-XTCXGWTV.js} +9 -4
  237. package/dist/{chunk-XUZK23V7.js → chunk-XW2FW6LS.js} +2 -2
  238. package/dist/{chunk-CH7BUBP3.js → chunk-XWVHUDEK.js} +5 -4
  239. package/dist/{chunk-S26CV7BE.js → chunk-YA5LK6KB.js} +45 -8
  240. package/dist/{chunk-ELCRJGCH.js → chunk-YMRQIENV.js} +2 -2
  241. package/dist/{chunk-QNZ4562V.js → chunk-Z3LXWCB7.js} +1 -1
  242. package/dist/{chunk-EYMFVITZ.js → chunk-Z7I6NQMA.js} +2 -2
  243. package/dist/{chunk-6BJCDWSM.js → chunk-ZB4FS2EG.js} +1 -1
  244. package/dist/{chunk-ZAEUEDTN.js → chunk-ZD6FZ3WL.js} +1 -1
  245. package/dist/{chunk-FEU6QEEL.js → chunk-ZM6EZAVY.js} +1 -0
  246. package/dist/{chunk-2KY7WZZF.js → chunk-ZPA4R2UI.js} +1 -1
  247. package/dist/chunk-ZPPPHVSU.js +285 -0
  248. package/dist/{chunk-ELEGH4DX.js → chunk-ZUGQPYUY.js} +51 -4
  249. package/dist/{chunk-UX2EO653.js → chunk-ZZWFZ46U.js} +66 -8
  250. package/dist/{cleanup-graph-garbage-VQAJ2RBT.js → cleanup-graph-garbage-HFUD5ZQT.js} +12 -10
  251. package/dist/{cloud-sync-command-J7NEFUY7.js → cloud-sync-command-3JHJJKPN.js} +25 -3
  252. package/dist/{cloud-sync-db-init-KWEMNMGA.js → cloud-sync-db-init-2LHIQOSF.js} +1 -1
  253. package/dist/{cloud-sync-shutdown-P63AUTUI.js → cloud-sync-shutdown-ZXAXA3Z7.js} +6 -4
  254. package/dist/{cloud-sync-state-QF3TMMJ4.js → cloud-sync-state-VSQFGPP6.js} +1 -1
  255. package/dist/{co-activation-7IHRPBZN.js → co-activation-NX4EH4AP.js} +6 -4
  256. package/dist/{co-occurrence-R5AG4OAU.js → co-occurrence-5LBYCW3U.js} +10 -8
  257. package/dist/{consent-passphrase-5ZBDJ5G7.js → consent-passphrase-65W3DJIJ.js} +2 -2
  258. package/dist/{content-extractor-ZLXC6GNR.js → content-extractor-OGXETBOX.js} +2 -2
  259. package/dist/{conversation-entity-extractor-7FRKLLBD.js → conversation-entity-extractor-FQCOAH4F.js} +5 -4
  260. package/dist/conversations-retention-XTBFJBUM.js +166 -0
  261. package/dist/{crdt-sync-IFRZOEIS.js → crdt-sync-7TDUBTLH.js} +4 -4
  262. package/dist/{crm-webhook-L2S63ASV.js → crm-webhook-776JTY55.js} +2 -2
  263. package/dist/{cto-delegation-gate-3WU7OHX7.js → cto-delegation-gate-ZNUWVYCN.js} +25 -23
  264. package/dist/{daemon-orchestration-3VQYKLOR.js → daemon-orchestration-76BOFDEP.js} +30 -24
  265. package/dist/{doc-graph-extractor-YIR5E7OF.js → doc-graph-extractor-F724KZJX.js} +10 -8
  266. package/dist/{documents-QEHPTYIY.js → documents-Q24V4GRD.js} +13 -11
  267. package/dist/{dreaming-LNFE7DTN.js → dreaming-IY6NQTSP.js} +27 -25
  268. package/dist/{employee-boot-brief-ZTXDYNWM.js → employee-boot-brief-CCTXO5DQ.js} +35 -29
  269. package/dist/{entity-boost-R5N6JWXD.js → entity-boost-XGOB7HDM.js} +1 -1
  270. package/dist/{exe-drift-WYSJVZFO.js → exe-drift-NEPXLNGP.js} +7 -5
  271. package/dist/{exe-export-GOLNAEAV.js → exe-export-ZHJQFKR2.js} +14 -12
  272. package/dist/{exe-import-U4BSI6OH.js → exe-import-7SVNI4FW.js} +14 -12
  273. package/dist/{exe-key-V42G3NGO.js → exe-key-QJKU56WZ.js} +119 -108
  274. package/dist/{exe-org-U4GLQ6OP.js → exe-org-SJXHLV6K.js} +76 -51
  275. package/dist/{exe-snapshot-U7ONBYNY.js → exe-snapshot-EFWPXTXE.js} +45 -36
  276. package/dist/{fast-db-init-W3NGKAEU.js → fast-db-init-BQZOQNT3.js} +1 -1
  277. package/dist/{founder-context-ZSIBRVDM.js → founder-context-KG2ZAOXY.js} +2 -2
  278. package/dist/{founder-monitor-envelope-L3IWZLFY.js → founder-monitor-envelope-NYB5LLU4.js} +4 -4
  279. package/dist/gateway/index.js +20 -18
  280. package/dist/{gateway-client-DJFCVIPT.js → gateway-client-ODMUXUL3.js} +1 -1
  281. package/dist/{git-staleness-OF24QXFZ.js → git-staleness-OPGEAJA7.js} +6 -4
  282. package/dist/{global-procedures-WSIOWO43.js → global-procedures-3KXY4LL6.js} +8 -6
  283. package/dist/{graph-auto-extract-IEVVN3L3.js → graph-auto-extract-I7H2F5NJ.js} +10 -8
  284. package/dist/{graph-query-JDZWAVCU.js → graph-query-E7JBSNY5.js} +1 -1
  285. package/dist/{graph-rag-BKAD2XQA.js → graph-rag-H24CMFP2.js} +5 -4
  286. package/dist/{hook-integrity-TPWDGX2M.js → hook-integrity-PGQ3OX4S.js} +1 -1
  287. package/dist/{hook-prefetch-FD6VGJJA.js → hook-prefetch-7AZJER6Z.js} +23 -21
  288. package/dist/hook-registration-liveness-NGQRFKAA.js +11 -0
  289. package/dist/hooks/bug-report-worker.js +26 -24
  290. package/dist/hooks/codex-stop-task-finalizer.js +28 -26
  291. package/dist/hooks/commit-complete.js +26 -24
  292. package/dist/hooks/error-recall.js +16 -14
  293. package/dist/hooks/exe-heartbeat-hook.js +9 -7
  294. package/dist/hooks/ingest-worker.js +12 -10
  295. package/dist/hooks/ingest.js +22 -17
  296. package/dist/hooks/instructions-loaded.js +11 -9
  297. package/dist/hooks/manifest.json +20 -20
  298. package/dist/hooks/notification.js +10 -8
  299. package/dist/hooks/post-compact.js +9 -7
  300. package/dist/hooks/post-tool-combined.js +14 -14
  301. package/dist/hooks/pre-compact.js +26 -24
  302. package/dist/hooks/pre-tool-use.js +2 -2
  303. package/dist/hooks/prompt-submit.js +47 -41
  304. package/dist/hooks/session-end.js +38 -42
  305. package/dist/hooks/session-start.js +26 -18
  306. package/dist/hooks/stop.js +29 -27
  307. package/dist/hooks/subagent-stop.js +29 -27
  308. package/dist/hooks/summary-worker.js +32 -30
  309. package/dist/index.js +37 -35
  310. package/dist/{installer-OTI5SA43.js → installer-2ZS3LHCU.js} +12 -9
  311. package/dist/{installer-NMOBSEZ2.js → installer-NH3A3HWC.js} +14 -9
  312. package/dist/{installer-SRJGE4GU.js → installer-UJ73PGRD.js} +21 -9
  313. package/dist/{intercom-queue-4FFXCBHO.js → intercom-queue-OE25GJF2.js} +21 -19
  314. package/dist/lib/agent-config.js +2 -2
  315. package/dist/lib/cloud-sync.js +24 -18
  316. package/dist/lib/consolidation.js +13 -11
  317. package/dist/lib/crypto.js +3 -3
  318. package/dist/lib/database.js +6 -4
  319. package/dist/lib/db-backup.js +1 -1
  320. package/dist/lib/db-write-worker-client.js +3 -1
  321. package/dist/lib/db-write-worker.js +65 -89
  322. package/dist/lib/db.js +6 -4
  323. package/dist/lib/delivery-truth.js +5 -1
  324. package/dist/lib/device-registry.js +1 -1
  325. package/dist/lib/embedder.js +2 -2
  326. package/dist/lib/employee-templates.js +9 -7
  327. package/dist/lib/employees.js +6 -4
  328. package/dist/lib/exe-daemon.js +425 -314
  329. package/dist/lib/file-grep.js +15 -21
  330. package/dist/lib/hybrid-search.js +19 -13
  331. package/dist/lib/identity-templates.js +1 -1
  332. package/dist/lib/identity.js +6 -4
  333. package/dist/lib/keychain.js +1 -1
  334. package/dist/lib/license.js +22 -6
  335. package/dist/lib/messaging.js +22 -20
  336. package/dist/lib/post-tool-memory.js +10 -8
  337. package/dist/lib/registry-proxy.js +1 -1
  338. package/dist/lib/reminders.js +7 -5
  339. package/dist/lib/runtime-table.js +1 -1
  340. package/dist/lib/schedules.js +12 -10
  341. package/dist/lib/session-registry.js +8 -6
  342. package/dist/lib/skill-learning.js +13 -11
  343. package/dist/lib/status-brief.js +2 -2
  344. package/dist/lib/store.js +17 -9
  345. package/dist/lib/task-router.js +7 -5
  346. package/dist/lib/tasks.js +23 -21
  347. package/dist/lib/tmux-routing.js +21 -19
  348. package/dist/lib/tmux-status.js +4 -1
  349. package/dist/lib/token-spend.js +7 -5
  350. package/dist/lib/ws-client.js +1 -1
  351. package/dist/{license-gate-R4JWTWM4.js → license-gate-XQ2KN5I5.js} +3 -3
  352. package/dist/{license-recheck-3MBJ4IJX.js → license-recheck-IIBKR2V5.js} +1 -1
  353. package/dist/{license-sync-BVSG3WMW.js → license-sync-76JVI2M5.js} +151 -8
  354. package/dist/{local-secret-inventory-JWNBHZZ4.js → local-secret-inventory-MJT7NJLY.js} +2 -2
  355. package/dist/{mailbox-inbox-MTAT4MXX.js → mailbox-inbox-BPZP4GIZ.js} +1 -1
  356. package/dist/maintenance-worker-54VZTFIK.js +371 -0
  357. package/dist/mcp/register-tools.js +110 -107
  358. package/dist/mcp/server.js +113 -110
  359. package/dist/mcp/tools/complete-reminder.js +8 -6
  360. package/dist/mcp/tools/create-reminder.js +8 -6
  361. package/dist/mcp/tools/create-task.js +26 -24
  362. package/dist/mcp/tools/deactivate-behavior.js +15 -13
  363. package/dist/mcp/tools/list-reminders.js +8 -6
  364. package/dist/mcp/tools/list-tasks.js +26 -24
  365. package/dist/mcp/tools/send-message.js +25 -23
  366. package/dist/mcp/tools/update-task.js +24 -22
  367. package/dist/{mcp-child-registry-TIZERM7O.js → mcp-child-registry-5VUG5ATZ.js} +1 -1
  368. package/dist/{mcp-http-config-VUMSFWFH.js → mcp-http-config-SKXESWHA.js} +9 -7
  369. package/dist/{mcp-session-identity-DZHWEJRV.js → mcp-session-identity-HYMLJXXA.js} +21 -19
  370. package/dist/{memory-cards-JVXTMSAT.js → memory-cards-PAZDUQ3B.js} +16 -32
  371. package/dist/{memory-graph-extractor-PPBJMYFJ.js → memory-graph-extractor-BC6QKBY6.js} +11 -9
  372. package/dist/{memory-poisoning-defense-K5Q74XQ4.js → memory-poisoning-defense-BRGIHF6J.js} +9 -7
  373. package/dist/{memory-pressure-watchdog-YMJH5CSA.js → memory-pressure-watchdog-HR6TPOMT.js} +22 -20
  374. package/dist/{memory-reflection-7BZWIHRE.js → memory-reflection-LO7VFBL3.js} +38 -59
  375. package/dist/memory-write-repository-J25USX63.js +16 -0
  376. package/dist/{monitor-grants-Q7X3MYQP.js → monitor-grants-YQTO6NWR.js} +3 -3
  377. package/dist/{monitor-identity-ZQB4IXEE.js → monitor-identity-POVTG76Y.js} +2 -2
  378. package/dist/{notification-ledger-XRAXL5OI.js → notification-ledger-KLD6GZTG.js} +22 -20
  379. package/dist/{notifications-JE3PX55X.js → notifications-3R6HNHDR.js} +21 -19
  380. package/dist/{orchestration-events-JCQ5F5IJ.js → orchestration-events-CHY3GOJD.js} +7 -5
  381. package/dist/{orchestrator-X65INDTR.js → orchestrator-GAL3HOAD.js} +23 -21
  382. package/dist/{org-brief-session-3PQ22UIX.js → org-brief-session-LQ2DBYVF.js} +17 -15
  383. package/dist/{org-consent-policy-VGELJ7K7.js → org-consent-policy-KFUP7QPG.js} +5 -5
  384. package/dist/{org-join-6TO5ZYUZ.js → org-join-MXZCIQWX.js} +8 -8
  385. package/dist/{org-key-admin-XHYVRRAZ.js → org-key-admin-4UK6QUT7.js} +9 -9
  386. package/dist/{org-key-pin-TTTYGTQL.js → org-key-pin-ZOX4OM3O.js} +3 -3
  387. package/dist/{org-membership-Y7T2BS57.js → org-membership-D5TPN45F.js} +4 -4
  388. package/dist/{org-partner-config-OP4NEUNF.js → org-partner-config-3FXSYPQA.js} +7 -7
  389. package/dist/{org-partner-runtime-YNVUNT2R.js → org-partner-runtime-TH3LMPII.js} +20 -16
  390. package/dist/{org-row-visibility-JBBXNYXD.js → org-row-visibility-Y5R33C5U.js} +1 -1
  391. package/dist/{pipeline-router-EIBB7QNG.js → pipeline-router-E2JZLDK6.js} +7 -5
  392. package/dist/{plan-limits-MEWXYLEN.js → plan-limits-NYI6R4IK.js} +9 -7
  393. package/dist/{platform-procedures-Z7ZGBJWN.js → platform-procedures-RTD5E3BD.js} +5 -3
  394. package/dist/{pre-tool-use-impl-C6KJY22W.js → pre-tool-use-impl-LT4FRXBP.js} +127 -83
  395. package/dist/{project-boot-VEYFCCSL.js → project-boot-LIMXQKAF.js} +25 -17
  396. package/dist/{project-name-UYORSNGE.js → project-name-V62GWALX.js} +7 -5
  397. package/dist/{projection-worker-WYFDWS57.js → projection-worker-KLE3IZQ2.js} +5 -2
  398. package/dist/{prospective-memory-E6XBQFJA.js → prospective-memory-HRN7JFT2.js} +6 -4
  399. package/dist/{push-notifications-M7YU63FY.js → push-notifications-XC6EQEXF.js} +22 -20
  400. package/dist/{reproject-worktree-memories-B5XMGJSD.js → reproject-worktree-memories-4CAVZSFE.js} +21 -19
  401. package/dist/{reranker-SRA4BR7N.js → reranker-2RU6IIX2.js} +1 -1
  402. package/dist/{retrieval-health-P2JPZUPV.js → retrieval-health-4Q5TOV2S.js} +1 -1
  403. package/dist/{review-polling-KQPN7IQE.js → review-polling-WOWIMBCL.js} +22 -20
  404. package/dist/runtime/index.js +30 -28
  405. package/dist/{session-events-6LDDKKY3.js → session-events-OPMS2C5F.js} +22 -20
  406. package/dist/{session-kill-telemetry-5DSRGWCL.js → session-kill-telemetry-3GWATSIX.js} +22 -20
  407. package/dist/{session-scope-XG5R3P3D.js → session-scope-TIRGR4MH.js} +21 -19
  408. package/dist/{setup-wizard-7QFLZIKT.js → setup-wizard-B2JBVGNH.js} +3 -3
  409. package/dist/{shard-manager-HHHHV2KZ.js → shard-manager-C7LYX6E4.js} +5 -1
  410. package/dist/{skill-refinement-I5RMAHSC.js → skill-refinement-FWQFYNBI.js} +7 -5
  411. package/dist/skill-retrieval-PPLFC5RY.js +166 -0
  412. package/dist/skill-usage-NDB67PU2.js +25 -0
  413. package/dist/{stack-generate-manifest-AKMZ3AUX.js → stack-generate-manifest-AXI55MEQ.js} +6 -6
  414. package/dist/{stack-promote-34CE2HHF.js → stack-promote-6N23OGZY.js} +6 -6
  415. package/dist/stack-release-2CXFYVWM.js +2770 -0
  416. package/dist/{stack-update-ZQQ5YYPJ.js → stack-update-U53FBVCQ.js} +13 -5
  417. package/dist/{steward-gate-AQJ6KT2C.js → steward-gate-TUA3QCN7.js} +7 -5
  418. package/dist/{subagent-brief-injection-3GU7YAWY.js → subagent-brief-injection-N52RWYFZ.js} +34 -32
  419. package/dist/{subagent-spawn-ledger-52I66CLW.js → subagent-spawn-ledger-OI23OT4I.js} +1 -1
  420. package/dist/support-bug-actions-XWCJI6S5.js +30 -0
  421. package/dist/support-inbox-MMVTCXRX.js +77 -0
  422. package/dist/{support-outbox-KNI3FR3G.js → support-outbox-2TG2UV6J.js} +2 -2
  423. package/dist/{task-enforcement-CAA6D2MH.js → task-enforcement-JDMBAAOY.js} +22 -20
  424. package/dist/{task-request-inbox-QBZVU66E.js → task-request-inbox-PKJCYKJV.js} +9 -5
  425. package/dist/{task-scope-NHXB4ZRN.js → task-scope-32HQEV6W.js} +27 -19
  426. package/dist/{tasks-crud-JHSWL5NM.js → tasks-crud-CYKUKS3F.js} +21 -19
  427. package/dist/{tasks-notify-7PBE4U7T.js → tasks-notify-YND5MKWJ.js} +22 -20
  428. package/dist/{tasks-review-PPPVEE62.js → tasks-review-CG2A5GM3.js} +23 -19
  429. package/dist/{telemetry-upload-YU2VRNHX.js → telemetry-upload-WLUMEFAB.js} +11 -9
  430. package/dist/{token-budget-QCMWKG3K.js → token-budget-3YHAY5LL.js} +7 -5
  431. package/dist/{tool-capability-index-7AWQAJRP.js → tool-capability-index-2ADOWH43.js} +2 -2
  432. package/dist/{tool-gates-5Q3RSQEG.js → tool-gates-7ENOOYMR.js} +5 -3
  433. package/dist/{tool-gates-QD26D2NE.js → tool-gates-EKJTLVGN.js} +1 -1
  434. package/dist/{tool-telemetry-LTOIC64I.js → tool-telemetry-VUP7S6HC.js} +1 -1
  435. package/dist/tui/App.js +59 -35
  436. package/dist/{tui-data-NDBXD6U7.js → tui-data-BOQTOW2G.js} +25 -23
  437. package/dist/{update-support-BMJM4NG7.js → update-support-WT3S3AQ4.js} +21 -21
  438. package/dist/{whatsapp-QQLDAHUX.js → whatsapp-OZGIF2EM.js} +2 -2
  439. package/dist/{wiki-acl-W6WDCVCP.js → wiki-acl-LTEQJVDA.js} +1 -1
  440. package/dist/{work-claims-6DM32MGO.js → work-claims-CMV2GWIW.js} +8 -6
  441. package/dist/{work-state-heartbeat-HG7D4AWJ.js → work-state-heartbeat-S45TXK4M.js} +1 -1
  442. package/dist/{worker-gate-FTMW7GBB.js → worker-gate-7Z6NMM3G.js} +1 -1
  443. package/dist/{workflow-engine-ZWC6CCXE.js → workflow-engine-ZSQDXZQ7.js} +2 -2
  444. package/dist/{worktree-EMQCPGFE.js → worktree-NMWDVT6N.js} +8 -6
  445. package/dist/worktree-ownership-guard-ZVIWJAOP.js +35 -0
  446. package/dist/{worktree-sweep-XVUJZBXV.js → worktree-sweep-Q62ZIT3U.js} +9 -7
  447. package/package.json +14 -8
  448. package/release-notes.json +7 -41
  449. package/src/commands/exe/afk.md +6 -0
  450. package/src/commands/exe/call.md +6 -0
  451. package/src/commands/exe/employee-heartbeat.md +6 -0
  452. package/src/commands/exe/intercom.md +6 -0
  453. package/src/commands/exe/kill.md +6 -0
  454. package/src/commands/exe/launch.md +6 -0
  455. package/src/commands/exe/logs.md +1 -1
  456. package/src/commands/exe/sessions.md +6 -0
  457. package/src/commands/exe/setup.md +7 -3
  458. package/src/commands/exe/status.md +6 -0
  459. package/src/commands/exe-reference.md +25 -36
  460. package/src/commands/exe.md +19 -28
  461. package/stack.release.json +11 -11
  462. package/dist/chunk-3B6FLNLV.js +0 -30
  463. package/dist/chunk-FXU7JOXK.js +0 -6
  464. package/dist/chunk-QFAFKEB5.js +0 -820
  465. package/dist/conversations-retention-C4BLKFEL.js +0 -54
  466. package/dist/stack-release-5PGWV5D4.js +0 -1607
  467. package/dist/support-inbox-NY5TB3FN.js +0 -51
  468. /package/dist/{chunk-U2D6PJ5T.js → chunk-65G7ZTGE.js} +0 -0
  469. /package/dist/{chunk-DN3ZR3UE.js → chunk-CP7Z35MJ.js} +0 -0
  470. /package/dist/{chunk-XDVOGDBC.js → chunk-KBBWALJV.js} +0 -0
  471. /package/dist/{chunk-JRIH6I7D.js → chunk-LZXYPTY4.js} +0 -0
  472. /package/dist/{chunk-GIRD7O5X.js → chunk-MCWEW2SG.js} +0 -0
  473. /package/dist/{chunk-TKAU7IJ2.js → chunk-MQHUJLCA.js} +0 -0
  474. /package/dist/{chunk-M4XY4JRK.js → chunk-O53LTOXK.js} +0 -0
  475. /package/dist/{chunk-DZN7SDY2.js → chunk-OSVTH3SG.js} +0 -0
  476. /package/dist/{chunk-AJK2PVQW.js → chunk-QXXEXGX3.js} +0 -0
  477. /package/dist/{chunk-AWWDKF22.js → chunk-SFWNTO2F.js} +0 -0
  478. /package/dist/{chunk-2Q2CD6CD.js → chunk-WC5HF2FN.js} +0 -0
  479. /package/dist/{core-memory-O6D5UC3T.js → core-memory-MMMW3TF3.js} +0 -0
  480. /package/dist/{memory-isolation-EBFFC6HF.js → memory-isolation-67ACKQ2M.js} +0 -0
  481. /package/dist/{oauth-server-ZKBUHDFI.js → oauth-server-OILIKR7D.js} +0 -0
@@ -10,25 +10,25 @@ import {
10
10
  } from "../chunk-5IADGFGR.js";
11
11
  import {
12
12
  prepareEmbeddingText
13
- } from "../chunk-NKEFYE4R.js";
13
+ } from "../chunk-IPTUKX3N.js";
14
14
  import {
15
15
  initStore,
16
16
  vectorToBlob
17
- } from "../chunk-UOPCVFVR.js";
17
+ } from "../chunk-5RK75SWH.js";
18
18
  import {
19
19
  WORK_STATE_HEARTBEAT_TOOL
20
- } from "../chunk-AWWDKF22.js";
20
+ } from "../chunk-SFWNTO2F.js";
21
21
  import "../chunk-CHCA3ZM2.js";
22
22
  import "../chunk-OTVEIJUQ.js";
23
- import "../chunk-VHHX4UCP.js";
23
+ import "../chunk-MDTWARSF.js";
24
24
  import {
25
25
  cleanupWorkerPid,
26
26
  registerWorkerPid,
27
27
  releaseBackfillLock,
28
28
  tryAcquireBackfillLock
29
- } from "../chunk-OAFENIHN.js";
29
+ } from "../chunk-RJ67XAJU.js";
30
30
  import "../chunk-5MOYSU5A.js";
31
- import "../chunk-ELEGH4DX.js";
31
+ import "../chunk-ZUGQPYUY.js";
32
32
  import "../chunk-76CJBM36.js";
33
33
  import {
34
34
  connectEmbedDaemon,
@@ -46,17 +46,19 @@ import "../chunk-MP2AFCGL.js";
46
46
  import "../chunk-YRUZK2QA.js";
47
47
  import {
48
48
  getClient
49
- } from "../chunk-GL47M7NY.js";
49
+ } from "../chunk-3UD3OF3X.js";
50
50
  import "../chunk-BBMTVAE3.js";
51
51
  import "../chunk-TKDITWDN.js";
52
52
  import "../chunk-5YEUPUV4.js";
53
- import "../chunk-72V3S44T.js";
53
+ import "../chunk-LUA4SLJY.js";
54
+ import "../chunk-5ONMHTNI.js";
55
+ import "../chunk-RBQUXHYK.js";
54
56
  import "../chunk-YYB5PMTK.js";
55
- import "../chunk-L5CGXEZC.js";
57
+ import "../chunk-WAAGVFFN.js";
56
58
  import "../chunk-QH5ZQ5SJ.js";
57
59
  import "../chunk-ZQEJ4IX2.js";
58
- import "../chunk-FXU7JOXK.js";
59
- import "../chunk-5U2IJBFV.js";
60
+ import "../chunk-C7GHNJPW.js";
61
+ import "../chunk-TA3B4N24.js";
60
62
  import "../chunk-A7JYF4RG.js";
61
63
  import "../chunk-ARX6TAGN.js";
62
64
  import {
@@ -1,29 +1,29 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  pushToPostgres
4
- } from "../chunk-KXYKSLW4.js";
5
- import "../chunk-VROK4X2L.js";
4
+ } from "../chunk-TU4M757W.js";
5
+ import "../chunk-SJP57MQM.js";
6
6
  import "../chunk-NEHOQ3P2.js";
7
- import "../chunk-JA3Y5TV6.js";
8
- import "../chunk-HU3VD4MQ.js";
7
+ import "../chunk-GDLB6BPM.js";
8
+ import "../chunk-2Q2GGYBX.js";
9
9
  import "../chunk-NPXIS2RY.js";
10
10
  import "../chunk-SKTAZGFI.js";
11
- import "../chunk-S26CV7BE.js";
11
+ import "../chunk-YA5LK6KB.js";
12
12
  import "../chunk-EIOGV75A.js";
13
13
  import "../chunk-QGGH7LOU.js";
14
- import "../chunk-ZPP63JSQ.js";
14
+ import "../chunk-CL3AB7Z2.js";
15
15
  import "../chunk-TWMWHDOY.js";
16
- import "../chunk-4AR5XKCH.js";
16
+ import "../chunk-CL2MU3OX.js";
17
17
  import {
18
18
  disposeStore,
19
19
  initStore
20
- } from "../chunk-UOPCVFVR.js";
21
- import "../chunk-AWWDKF22.js";
20
+ } from "../chunk-5RK75SWH.js";
21
+ import "../chunk-SFWNTO2F.js";
22
22
  import "../chunk-CHCA3ZM2.js";
23
23
  import "../chunk-OTVEIJUQ.js";
24
- import "../chunk-VHHX4UCP.js";
24
+ import "../chunk-MDTWARSF.js";
25
25
  import "../chunk-5MOYSU5A.js";
26
- import "../chunk-ELEGH4DX.js";
26
+ import "../chunk-ZUGQPYUY.js";
27
27
  import "../chunk-76CJBM36.js";
28
28
  import "../chunk-MFAOAIUE.js";
29
29
  import "../chunk-PCV52RYM.js";
@@ -37,20 +37,22 @@ import "../chunk-MP2AFCGL.js";
37
37
  import "../chunk-YRUZK2QA.js";
38
38
  import {
39
39
  getClient
40
- } from "../chunk-GL47M7NY.js";
40
+ } from "../chunk-3UD3OF3X.js";
41
41
  import "../chunk-BBMTVAE3.js";
42
42
  import "../chunk-TKDITWDN.js";
43
43
  import "../chunk-5YEUPUV4.js";
44
- import "../chunk-72V3S44T.js";
44
+ import "../chunk-LUA4SLJY.js";
45
+ import "../chunk-5ONMHTNI.js";
46
+ import "../chunk-RBQUXHYK.js";
45
47
  import "../chunk-YYB5PMTK.js";
46
- import "../chunk-L5CGXEZC.js";
48
+ import "../chunk-WAAGVFFN.js";
47
49
  import "../chunk-QH5ZQ5SJ.js";
48
50
  import "../chunk-ZQEJ4IX2.js";
49
- import "../chunk-FXU7JOXK.js";
50
- import "../chunk-5U2IJBFV.js";
51
- import "../chunk-TNS63ATU.js";
51
+ import "../chunk-C7GHNJPW.js";
52
+ import "../chunk-TA3B4N24.js";
53
+ import "../chunk-FWRPDSO3.js";
52
54
  import "../chunk-A7XLR3K7.js";
53
- import "../chunk-DZN7SDY2.js";
55
+ import "../chunk-OSVTH3SG.js";
54
56
  import "../chunk-A7JYF4RG.js";
55
57
  import "../chunk-ARX6TAGN.js";
56
58
  import "../chunk-MMS2HBRT.js";
@@ -1,33 +1,35 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  checkClaudeCodeInstall
4
- } from "../chunk-MC4IM2CC.js";
4
+ } from "../chunk-TYD4F4XU.js";
5
5
  import "../chunk-SSC7EKY2.js";
6
- import "../chunk-MPZ2AVNS.js";
7
- import "../chunk-AZSTIAVL.js";
6
+ import "../chunk-ATNV3BVZ.js";
7
+ import "../chunk-VBPYYJPC.js";
8
8
  import "../chunk-U4GMOT4M.js";
9
9
  import "../chunk-CBPNZFSU.js";
10
10
  import "../chunk-PMVVUIHH.js";
11
11
  import "../chunk-VGMACSEV.js";
12
- import "../chunk-FEU6QEEL.js";
13
- import "../chunk-CYCIX7AW.js";
14
- import "../chunk-F4BBMIPG.js";
15
- import "../chunk-MUCNYSJP.js";
16
- import "../chunk-ELEGH4DX.js";
12
+ import "../chunk-ZM6EZAVY.js";
13
+ import "../chunk-4FLLIQRQ.js";
14
+ import "../chunk-B4XJQBQB.js";
15
+ import "../chunk-NRLJOV7M.js";
16
+ import "../chunk-ZUGQPYUY.js";
17
17
  import "../chunk-CVYC6DUW.js";
18
18
  import "../chunk-GJV3WDWM.js";
19
19
  import "../chunk-YRUZK2QA.js";
20
- import "../chunk-GL47M7NY.js";
20
+ import "../chunk-3UD3OF3X.js";
21
21
  import "../chunk-BBMTVAE3.js";
22
22
  import "../chunk-TKDITWDN.js";
23
23
  import "../chunk-5YEUPUV4.js";
24
- import "../chunk-72V3S44T.js";
24
+ import "../chunk-LUA4SLJY.js";
25
+ import "../chunk-5ONMHTNI.js";
26
+ import "../chunk-RBQUXHYK.js";
25
27
  import "../chunk-YYB5PMTK.js";
26
- import "../chunk-L5CGXEZC.js";
28
+ import "../chunk-WAAGVFFN.js";
27
29
  import "../chunk-QH5ZQ5SJ.js";
28
30
  import "../chunk-ZQEJ4IX2.js";
29
- import "../chunk-FXU7JOXK.js";
30
- import "../chunk-5U2IJBFV.js";
31
+ import "../chunk-C7GHNJPW.js";
32
+ import "../chunk-TA3B4N24.js";
31
33
  import "../chunk-B6TI3TZT.js";
32
34
  import "../chunk-FTZET5YX.js";
33
35
  import "../chunk-A7JYF4RG.js";
@@ -1,29 +1,30 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  fastDbInit
4
- } from "../chunk-XDVOGDBC.js";
4
+ } from "../chunk-KBBWALJV.js";
5
5
  import {
6
+ closeReviewRows,
6
7
  sessionScopeFilter
7
- } from "../chunk-7UHZBVP3.js";
8
- import "../chunk-6BJCDWSM.js";
9
- import "../chunk-JDDM6C57.js";
8
+ } from "../chunk-QDVLVLXP.js";
9
+ import "../chunk-ZB4FS2EG.js";
10
+ import "../chunk-Z3LXWCB7.js";
11
+ import "../chunk-3X74IQBU.js";
10
12
  import "../chunk-ZKGWHT56.js";
11
- import "../chunk-QNZ4562V.js";
12
13
  import "../chunk-WT4RI36X.js";
14
+ import "../chunk-EIKATSE4.js";
13
15
  import "../chunk-E23LNUWJ.js";
14
16
  import "../chunk-TDF2XKLK.js";
15
- import "../chunk-EIKATSE4.js";
16
17
  import "../chunk-MJCSEIFI.js";
17
- import "../chunk-ALRHGEAJ.js";
18
- import "../chunk-PUBA5B4M.js";
18
+ import "../chunk-637FL62O.js";
19
+ import "../chunk-6L4VIYLZ.js";
19
20
  import "../chunk-VI4ATC6I.js";
20
21
  import "../chunk-A27Q27CT.js";
21
- import "../chunk-LSNBTGW4.js";
22
+ import "../chunk-DPYZW42H.js";
22
23
  import "../chunk-T5SM4RXY.js";
23
- import "../chunk-VJEJ7JNB.js";
24
- import "../chunk-L5EPGGDP.js";
24
+ import "../chunk-N32DVIKY.js";
25
+ import "../chunk-GWAN2BDB.js";
25
26
  import "../chunk-AM7S2TY6.js";
26
- import "../chunk-BPVFZ6Q4.js";
27
+ import "../chunk-B5EGDNG6.js";
27
28
  import "../chunk-CVYC6DUW.js";
28
29
  import "../chunk-ANVHWV2X.js";
29
30
  import "../chunk-HME6ITKV.js";
@@ -35,27 +36,29 @@ import "../chunk-NLEW62VC.js";
35
36
  import "../chunk-IMYGYIAI.js";
36
37
  import "../chunk-3DAEZILW.js";
37
38
  import "../chunk-DRTJCG6B.js";
38
- import "../chunk-UX2EO653.js";
39
+ import "../chunk-ZZWFZ46U.js";
39
40
  import "../chunk-HYZV25LY.js";
40
41
  import "../chunk-GJV3WDWM.js";
41
42
  import "../chunk-MP2AFCGL.js";
42
43
  import "../chunk-YRUZK2QA.js";
43
44
  import {
44
45
  getClient
45
- } from "../chunk-GL47M7NY.js";
46
+ } from "../chunk-3UD3OF3X.js";
46
47
  import "../chunk-BBMTVAE3.js";
47
48
  import "../chunk-TKDITWDN.js";
48
49
  import "../chunk-5YEUPUV4.js";
49
- import "../chunk-72V3S44T.js";
50
+ import "../chunk-LUA4SLJY.js";
51
+ import "../chunk-5ONMHTNI.js";
52
+ import "../chunk-RBQUXHYK.js";
50
53
  import "../chunk-YYB5PMTK.js";
51
- import "../chunk-L5CGXEZC.js";
54
+ import "../chunk-WAAGVFFN.js";
52
55
  import "../chunk-QH5ZQ5SJ.js";
53
56
  import "../chunk-ZQEJ4IX2.js";
54
- import "../chunk-FXU7JOXK.js";
55
- import "../chunk-WNBZJSQT.js";
56
- import "../chunk-TNS63ATU.js";
57
+ import "../chunk-C7GHNJPW.js";
58
+ import "../chunk-3VW5ZP2F.js";
59
+ import "../chunk-FWRPDSO3.js";
57
60
  import "../chunk-A7XLR3K7.js";
58
- import "../chunk-DZN7SDY2.js";
61
+ import "../chunk-OSVTH3SG.js";
59
62
  import "../chunk-A7JYF4RG.js";
60
63
  import "../chunk-ARX6TAGN.js";
61
64
  import "../chunk-MMS2HBRT.js";
@@ -68,6 +71,7 @@ import "../chunk-JKKZGDLP.js";
68
71
  import "../chunk-MLKGABMK.js";
69
72
 
70
73
  // src/bin/cleanup-stale-review-tasks.ts
74
+ var ZOMBIE_FILTER = "((status IN ('open', 'in_progress') AND title LIKE 'Review:%') OR (status = 'needs_review' AND title LIKE 'RESUME:%'))";
71
75
  async function findZombies(beforeIso, assignedTo) {
72
76
  const client = getClient();
73
77
  const args = [];
@@ -83,10 +87,9 @@ async function findZombies(beforeIso, assignedTo) {
83
87
  }
84
88
  const csScope = sessionScopeFilter();
85
89
  const result = await client.execute({
86
- sql: `SELECT id, assigned_to, title, created_at
90
+ sql: `SELECT id, assigned_to, title, created_at, task_file, session_scope, reviewer, assigned_by, project_name
87
91
  FROM tasks
88
- WHERE status IN ('open', 'in_progress')
89
- AND title LIKE 'Review:%'
92
+ WHERE ${ZOMBIE_FILTER}
90
93
  ${beforeClause}
91
94
  ${assigneeClause}${csScope.sql}
92
95
  ORDER BY created_at ASC`,
@@ -96,7 +99,12 @@ async function findZombies(beforeIso, assignedTo) {
96
99
  id: String(r.id),
97
100
  assigned_to: String(r.assigned_to),
98
101
  title: String(r.title),
99
- created_at: String(r.created_at)
102
+ created_at: String(r.created_at),
103
+ task_file: r.task_file == null ? null : String(r.task_file),
104
+ session_scope: r.session_scope == null ? null : String(r.session_scope),
105
+ reviewer: r.reviewer == null ? null : String(r.reviewer),
106
+ assigned_by: r.assigned_by == null ? null : String(r.assigned_by),
107
+ project_name: r.project_name == null ? null : String(r.project_name)
100
108
  }));
101
109
  }
102
110
  async function statsByAssignee() {
@@ -105,7 +113,7 @@ async function statsByAssignee() {
105
113
  const r = await client.execute({
106
114
  sql: `SELECT assigned_to, COUNT(*) as n, MIN(created_at) as oldest, MAX(created_at) as newest
107
115
  FROM tasks
108
- WHERE status IN ('open','in_progress') AND title LIKE 'Review:%'${sbScope.sql}
116
+ WHERE ${ZOMBIE_FILTER}${sbScope.sql}
109
117
  GROUP BY assigned_to ORDER BY n DESC`,
110
118
  args: [...sbScope.args]
111
119
  });
@@ -128,8 +136,7 @@ async function cancelZombies(ids) {
128
136
  });
129
137
  return Number(result.rowsAffected ?? 0);
130
138
  }
131
- async function main() {
132
- const args = process.argv.slice(2);
139
+ async function main(args = process.argv.slice(2)) {
133
140
  const apply = args.includes("--apply");
134
141
  const stats = args.includes("--stats");
135
142
  const beforeIdx = args.indexOf("--before");
@@ -139,12 +146,12 @@ async function main() {
139
146
  await fastDbInit();
140
147
  if (stats) {
141
148
  await statsByAssignee();
142
- process.exit(0);
149
+ return;
143
150
  }
144
151
  const zombies = await findZombies(beforeIso, assignee);
145
152
  console.log(`Found ${zombies.length} zombie review task(s)${beforeIso ? ` created before ${beforeIso}` : ""}`);
146
153
  if (zombies.length === 0) {
147
- process.exit(0);
154
+ return;
148
155
  }
149
156
  const sample = zombies.slice(0, 10);
150
157
  console.log("Sample (oldest 10):");
@@ -156,16 +163,21 @@ async function main() {
156
163
  }
157
164
  if (!apply) {
158
165
  console.log("\nDRY RUN \u2014 pass --apply to cancel these tasks.");
159
- process.exit(0);
166
+ return;
160
167
  }
161
- const updated = await cancelZombies(zombies.map((z) => z.id));
168
+ const resumeRows = zombies.filter((z) => z.title.toUpperCase().startsWith("RESUME:"));
169
+ const reviewRows = zombies.filter((z) => !resumeRows.includes(z));
170
+ const updated = await cancelZombies(reviewRows.map((z) => z.id)) + await closeReviewRows(getClient(), resumeRows, "cancelled", (/* @__PURE__ */ new Date()).toISOString());
162
171
  console.log(`
163
172
  Cancelled ${updated} zombie review task(s).`);
164
173
  }
165
174
  if (isMainModule(import.meta.url)) {
166
- main().catch((err) => {
175
+ main().then(() => process.exit(0)).catch((err) => {
167
176
  process.stderr.write(`[cleanup-stale-review-tasks] FATAL: ${err instanceof Error ? err.message : String(err)}
168
177
  `);
169
178
  process.exit(1);
170
179
  });
171
180
  }
181
+ export {
182
+ main
183
+ };
package/dist/bin/cli.js CHANGED
@@ -127,7 +127,7 @@ if (args.includes("--global")) {
127
127
  );
128
128
  await runClaudeInstall();
129
129
  } else if (args.includes("--commands-only")) {
130
- const { copySlashCommands, resolvePackageRoot } = await import("../installer-NMOBSEZ2.js");
130
+ const { copySlashCommands, resolvePackageRoot } = await import("../installer-NH3A3HWC.js");
131
131
  try {
132
132
  const packageRoot = resolvePackageRoot();
133
133
  const result = await copySlashCommands(packageRoot);
@@ -193,13 +193,76 @@ if (args.includes("--global")) {
193
193
  const { runHooksCli } = await import("./hooks-cli.js");
194
194
  process.exitCode = await runHooksCli(args.slice(1));
195
195
  } else if (args[0] === "org") {
196
- const { main: runOrg } = await import("../exe-org-U4GLQ6OP.js");
196
+ const { main: runOrg } = await import("../exe-org-SJXHLV6K.js");
197
197
  await runOrg(args.slice(1));
198
198
  } else if (args[0] === "mcp") {
199
199
  const { main: runMcp } = await import("./exe-mcp.js");
200
200
  process.exitCode = await runMcp(args.slice(1));
201
201
  } else if (args[0] === "code-context") {
202
202
  await runCodeContext(args.slice(1));
203
+ } else if (args[0] === "bugs") {
204
+ const sub = args[1] ?? "reconcile";
205
+ if (sub === "reconcile") {
206
+ const { hasSupportAdminAccess } = await import("../support-bug-actions-XWCJI6S5.js");
207
+ if (!await hasSupportAdminAccess()) {
208
+ console.log("Bug-landed reconcile: no AskExe support admin token configured on this install \u2014 nothing to do (this is an AskExe-internal feature).");
209
+ process.exit(0);
210
+ }
211
+ const { getMasterKey } = await import("../lib/keychain.js");
212
+ const { loadConfig } = await import("../lib/config.js");
213
+ const { initDatabase, ensureSchema, disposeDatabase } = await import("../lib/database.js");
214
+ const masterKey = await getMasterKey();
215
+ if (!masterKey) {
216
+ console.log("Bug-landed reconcile: no local memory encryption key configured on this install \u2014 nothing to do (this is an AskExe-internal feature).");
217
+ process.exit(0);
218
+ }
219
+ const config = await loadConfig();
220
+ await initDatabase({ dbPath: config.dbPath, encryptionKey: masterKey.toString("hex") });
221
+ try {
222
+ await ensureSchema();
223
+ const { reconcileLandedBugs } = await import("../bug-landed-reconciler-TQVNOUCU.js");
224
+ const dryRun = args.includes("--dry-run");
225
+ const result = await reconcileLandedBugs({ dryRun });
226
+ let prsScanned = 0;
227
+ let triaged = 0;
228
+ let ambiguous = 0;
229
+ let errors = 0;
230
+ for (const repo of result.repos) {
231
+ prsScanned += repo.prsScanned;
232
+ triaged += repo.matched.filter((m) => m.action === "triaged").length;
233
+ ambiguous += repo.ambiguous.length;
234
+ if (!repo.ok) {
235
+ errors += 1;
236
+ console.error(` ${repo.product}: gh error \u2014 ${repo.error}`);
237
+ }
238
+ }
239
+ console.log(
240
+ `${dryRun ? "[dry-run] " : ""}Bug-landed reconcile: ${result.repos.length} repo(s) scanned, ${prsScanned} merged PR(s), ${triaged} bug(s) triaged, ${ambiguous} ambiguous skip(s), ${errors} repo error(s).`
241
+ );
242
+ if (errors > 0) process.exitCode = 1;
243
+ } catch (err) {
244
+ console.error(`Bug-landed reconcile failed: ${err instanceof Error ? err.message : String(err)}`);
245
+ process.exitCode = 1;
246
+ } finally {
247
+ await disposeDatabase();
248
+ }
249
+ } else if (sub === "backfill-clusters") {
250
+ const { hasSupportAdminAccess, backfillClusters } = await import("../support-bug-actions-XWCJI6S5.js");
251
+ if (!await hasSupportAdminAccess()) {
252
+ console.log("Bug cluster backfill: no AskExe support admin token configured on this install \u2014 nothing to do (this is an AskExe-internal feature).");
253
+ process.exit(0);
254
+ }
255
+ try {
256
+ const { scanned, updated, skipped } = await backfillClusters();
257
+ console.log(`Bug cluster backfill: ${scanned} candidate row(s) scanned, ${updated} row(s) set, ${skipped} skipped (malformed CLUSTER= prefix).`);
258
+ } catch (err) {
259
+ console.error(`Bug cluster backfill failed: ${err instanceof Error ? err.message : String(err)}`);
260
+ process.exitCode = 1;
261
+ }
262
+ } else {
263
+ console.error("Usage: exe-os bugs reconcile [--dry-run] | exe-os bugs backfill-clusters");
264
+ process.exit(1);
265
+ }
203
266
  } else if (args[0] === "jobs") {
204
267
  const { cancelBackgroundJob, formatJobs, listBackgroundJobs } = await import("../background-jobs-V3DZRFKU.js");
205
268
  const sub = args[1] ?? "status";
@@ -222,7 +285,7 @@ if (args.includes("--global")) {
222
285
  process.exit(1);
223
286
  }
224
287
  } else if (args[0] === "key") {
225
- const { main: runKey } = await import("../exe-key-V42G3NGO.js");
288
+ const { main: runKey } = await import("../exe-key-QJKU56WZ.js");
226
289
  await runKey(args.slice(1));
227
290
  } else if (args[0] === "grant") {
228
291
  const { main: runGrant } = await import("./exe-grant.js");
@@ -283,7 +346,7 @@ if (args.includes("--global")) {
283
346
  process.exit(1);
284
347
  }
285
348
  } else if (args[0] === "backfill-metadata") {
286
- const { backfillMetadata } = await import("../backfill-metadata-J6MXIDCW.js");
349
+ const { backfillMetadata } = await import("../backfill-metadata-XLFASEOD.js");
287
350
  let batchSize = 50;
288
351
  let limit = 0;
289
352
  let dryRun = false;
@@ -314,10 +377,10 @@ if (args.includes("--global")) {
314
377
  process.exit(1);
315
378
  }
316
379
  } else if (args[0] === "export") {
317
- const { runExeExport } = await import("../exe-export-GOLNAEAV.js");
380
+ const { runExeExport } = await import("../exe-export-ZHJQFKR2.js");
318
381
  await runExeExport(args.slice(1));
319
382
  } else if (args[0] === "import") {
320
- const { runExeImport } = await import("../exe-import-U4BSI6OH.js");
383
+ const { runExeImport } = await import("../exe-import-7SVNI4FW.js");
321
384
  await runExeImport(args.slice(1));
322
385
  } else if (args[0] === "import-history") {
323
386
  const { runImportHistory } = await import("./import-history.js");
@@ -342,7 +405,7 @@ if (args.includes("--global")) {
342
405
  const { initStore } = await import("../lib/store.js");
343
406
  await initStore();
344
407
  const { sendMessage } = await import("../lib/messaging.js");
345
- const { getActiveAgent } = await import("../active-agent-YTBB4ZQM.js");
408
+ const { getActiveAgent } = await import("../active-agent-YWSWPIEA.js");
346
409
  const { agentId } = getActiveAgent();
347
410
  const result = await sendMessage({
348
411
  fromAgent: agentId,
@@ -366,7 +429,7 @@ ID: ${result.id}`);
366
429
  process.exit(code);
367
430
  } else if (args[0] === "doctor") {
368
431
  if (args.includes("--drift")) {
369
- const { runDrift } = await import("../exe-drift-WYSJVZFO.js");
432
+ const { runDrift } = await import("../exe-drift-NEPXLNGP.js");
370
433
  await runDrift(args.slice(1));
371
434
  } else {
372
435
  const { runCcDoctor } = await import("./cc-doctor.js");
@@ -544,7 +607,18 @@ ${JSON.stringify(stormAlert, null, 2)}`);
544
607
  }
545
608
  } else if (args[0] === "backup") {
546
609
  const sub = args[1];
547
- const { listBackups, createBackup, restoreBackup } = await import("../lib/db-backup.js");
610
+ const { listBackups: listBackupsRaw, createBackup, restoreBackup } = await import("../lib/db-backup.js");
611
+ const listBackups = () => {
612
+ try {
613
+ return listBackupsRaw();
614
+ } catch (e) {
615
+ console.error(
616
+ `Could not read the backups directory: ${e instanceof Error ? e.message : String(e)}`
617
+ );
618
+ console.error("This is not the same as having no backups \u2014 the inventory could not be listed. Fix the permission/IO error and retry.");
619
+ process.exit(1);
620
+ }
621
+ };
548
622
  if (sub === "list" || !sub) {
549
623
  const backups = listBackups();
550
624
  if (backups.length === 0) {
@@ -565,7 +639,7 @@ ${JSON.stringify(stormAlert, null, 2)}`);
565
639
  const reason = args[2] || "manual";
566
640
  let encryptionKey;
567
641
  try {
568
- const { fastDbInit } = await import("../fast-db-init-W3NGKAEU.js");
642
+ const { fastDbInit } = await import("../fast-db-init-BQZOQNT3.js");
569
643
  await fastDbInit({ caller: "cli" });
570
644
  } catch {
571
645
  }
@@ -613,7 +687,7 @@ ${JSON.stringify(stormAlert, null, 2)}`);
613
687
  process.exit(1);
614
688
  }
615
689
  } else if (sub === "verify") {
616
- const { verifyBackup } = await import("../backup-verify-6DVBQMDP.js");
690
+ const { verifyBackup } = await import("../backup-verify-TUQEICWA.js");
617
691
  let target;
618
692
  const pathIdx = args.indexOf("--path");
619
693
  if (pathIdx >= 0 && args[pathIdx + 1]) {
@@ -695,7 +769,7 @@ ${JSON.stringify(stormAlert, null, 2)}`);
695
769
  process.exit(1);
696
770
  }
697
771
  } else if (args[0] === "setup" || args[0] === "-setup" || args[0] === "--setup") {
698
- const { runSetupWizard } = await import("../setup-wizard-7QFLZIKT.js");
772
+ const { runSetupWizard } = await import("../setup-wizard-B2JBVGNH.js");
699
773
  await runSetupWizard({
700
774
  skipModel: args.includes("--skip-model"),
701
775
  nonInteractive: args.includes("--non-interactive") || args.includes("-y") || args.includes("--yes"),
@@ -718,14 +792,14 @@ ${JSON.stringify(stormAlert, null, 2)}`);
718
792
  const { runStackUpdateCli } = await import("./stack-update.js");
719
793
  await runStackUpdateCli(args.slice(1));
720
794
  } else if (args[0] === "release") {
721
- const { parseReleaseArgs, runStackRelease } = await import("../stack-release-5PGWV5D4.js");
795
+ const { parseReleaseArgs, runStackRelease } = await import("../stack-release-2CXFYVWM.js");
722
796
  const releaseFlags = parseReleaseArgs(args.slice(1));
723
797
  await runStackRelease(releaseFlags);
724
798
  } else if (args[0] === "stack-promote") {
725
- const { runStackPromoteCli } = await import("../stack-promote-34CE2HHF.js");
799
+ const { runStackPromoteCli } = await import("../stack-promote-6N23OGZY.js");
726
800
  await runStackPromoteCli(args.slice(1));
727
801
  } else if (args[0] === "stack-generate-manifest") {
728
- const { runStackGenerateManifestCli } = await import("../stack-generate-manifest-AKMZ3AUX.js");
802
+ const { runStackGenerateManifestCli } = await import("../stack-generate-manifest-AXI55MEQ.js");
729
803
  process.exit(await runStackGenerateManifestCli(args.slice(1)));
730
804
  } else if (args[0] === "repo-truth") {
731
805
  const { runRepoTruthCli } = await import("./exe-repo-truth.js");
@@ -760,10 +834,10 @@ Post-deploy verification \u2014 8 runtime checks after stack-update.
760
834
  `);
761
835
  process.exit(report.failed > 0 ? 1 : 0);
762
836
  } else if (args[0] === "snapshot") {
763
- const { main: runSnapshot } = await import("../exe-snapshot-U7ONBYNY.js");
837
+ const { main: runSnapshot } = await import("../exe-snapshot-EFWPXTXE.js");
764
838
  await runSnapshot(args.slice(1));
765
839
  } else if (args[0] === "boot") {
766
- const { projectBoot, parseBootArgs } = await import("../project-boot-VEYFCCSL.js");
840
+ const { projectBoot, parseBootArgs } = await import("../project-boot-LIMXQKAF.js");
767
841
  const bootOpts = parseBootArgs(args.slice(1));
768
842
  console.log(await projectBoot(bootOpts));
769
843
  } else if (args[0] === "brand") {
@@ -960,7 +1034,7 @@ function numberAfter(args2, flag) {
960
1034
  return Number.isFinite(parsed) ? parsed : void 0;
961
1035
  }
962
1036
  async function runClaudeInstall() {
963
- const { runInstaller } = await import("../installer-NMOBSEZ2.js");
1037
+ const { runInstaller } = await import("../installer-NH3A3HWC.js");
964
1038
  try {
965
1039
  await runInstaller();
966
1040
  } catch (err) {
@@ -972,7 +1046,7 @@ async function runClaudeInstall() {
972
1046
  }
973
1047
  }
974
1048
  async function runOpenCodeInstall() {
975
- const { runOpenCodeInstaller } = await import("../installer-OTI5SA43.js");
1049
+ const { runOpenCodeInstaller } = await import("../installer-2ZS3LHCU.js");
976
1050
  try {
977
1051
  await runOpenCodeInstaller();
978
1052
  } catch (err) {
@@ -984,7 +1058,7 @@ async function runOpenCodeInstall() {
984
1058
  }
985
1059
  }
986
1060
  async function runCodexInstall() {
987
- const { runCodexInstaller } = await import("../installer-SRJGE4GU.js");
1061
+ const { runCodexInstaller } = await import("../installer-UJ73PGRD.js");
988
1062
  try {
989
1063
  await runCodexInstaller();
990
1064
  } catch (err) {
@@ -996,7 +1070,7 @@ async function runCodexInstall() {
996
1070
  }
997
1071
  }
998
1072
  async function runClaudeCheck() {
999
- const { detectMcpNameCollisions } = await import("../installer-NMOBSEZ2.js");
1073
+ const { detectMcpNameCollisions } = await import("../installer-NH3A3HWC.js");
1000
1074
  const claudeDir = path.join(os.homedir(), ".claude");
1001
1075
  const settingsPath = path.join(claudeDir, "settings.json");
1002
1076
  const claudeJsonPath = path.join(os.homedir(), ".claude.json");
@@ -1394,23 +1468,28 @@ async function runActivate(key) {
1394
1468
  process.stderr.write("Usage: exe-os --activate <license-key>\n");
1395
1469
  process.exit(1);
1396
1470
  }
1397
- const { saveLicense, mirrorLicenseKey, validateLicense } = await import("../lib/license.js");
1471
+ const { activateLicenseKey } = await import("../lib/license.js");
1398
1472
  const { loadEmployees, saveEmployees, addEmployee, registerBinSymlinks } = await import("../lib/employees.js");
1399
1473
  const { getTemplateByRole } = await import("../lib/employee-templates.js");
1400
1474
  const { getTemplate: getIdentityTemplate } = await import("../lib/identity-templates.js");
1401
1475
  const { identityPath } = await import("../lib/identity.js");
1402
1476
  const { createInterface } = await import("readline");
1403
1477
  const fs = await import("fs");
1404
- saveLicense(key);
1405
- mirrorLicenseKey(key);
1406
1478
  try {
1407
- const license = await validateLicense(key);
1408
- if (!license.valid && license.error === "offline") {
1409
- console.log("\u26A0 Activated in offline mode \u2014 will verify when connected");
1410
- } else if (!license.valid) {
1411
- process.stderr.write(`License invalid: ${license.plan || "unknown"}
1479
+ const { outcome, license, reasonText, persisted } = await activateLicenseKey(key);
1480
+ if (outcome === "unreachable") {
1481
+ console.log("\u26A0 Could not reach the license server \u2014 key kept, but NOT active yet.");
1482
+ console.log(" It activates automatically on the next successful check.");
1483
+ console.log(" Re-run `exe-os --activate` once you are online to finish setting up.");
1484
+ return;
1485
+ } else if (outcome === "rejected") {
1486
+ process.stderr.write(`Activation refused: ${reasonText ?? "the server refused this key."}
1412
1487
  `);
1488
+ process.stderr.write("The key was NOT saved.\n");
1413
1489
  process.exit(1);
1490
+ } else if (!persisted) {
1491
+ console.log("Key verified, but a newer activation is already in effect \u2014 not applied.");
1492
+ return;
1414
1493
  } else {
1415
1494
  const planLabel = license.plan === "pro" ? "Solopreneur" : license.plan.charAt(0).toUpperCase() + license.plan.slice(1);
1416
1495
  console.log(`Plan activated: ${planLabel}`);
@@ -1491,7 +1570,7 @@ async function runLicense(subArgs) {
1491
1570
  process.exit(1);
1492
1571
  }
1493
1572
  async function runCloudSync() {
1494
- const { runCloudSyncCli } = await import("../cloud-sync-command-J7NEFUY7.js");
1573
+ const { runCloudSyncCli } = await import("../cloud-sync-command-3JHJJKPN.js");
1495
1574
  await runCloudSyncCli();
1496
1575
  }
1497
1576
  async function runLogin(loginArgs) {