@askexenow/exe-os 0.9.339 → 0.9.341

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 (312) hide show
  1. package/dist/{active-agent-EC6M7KTX.js → active-agent-AIQP4DFL.js} +3 -3
  2. package/dist/{active-agent-WHIUCHLA.js → active-agent-LW45DSJ4.js} +3 -3
  3. package/dist/{agentic-ontology-RNSXGXW4.js → agentic-ontology-RVUNRCQY.js} +1 -1
  4. package/dist/{backfill-metadata-MFY6BHKE.js → backfill-metadata-ZSDJ4O2T.js} +5 -5
  5. package/dist/backup-verify-ZAJLEL4X.js +425 -0
  6. package/dist/{behaviors-HLZUJSMP.js → behaviors-EO7KCP3H.js} +6 -6
  7. package/dist/bin/agentic-ontology-backfill.js +6 -6
  8. package/dist/bin/agentic-reflection-backfill.js +7 -7
  9. package/dist/bin/agentic-semantic-label.js +6 -6
  10. package/dist/bin/backfill-conversations.js +6 -6
  11. package/dist/bin/backfill-responses.js +6 -6
  12. package/dist/bin/backfill-vectors.js +8 -8
  13. package/dist/bin/bulk-sync-postgres.js +12 -12
  14. package/dist/bin/cc-doctor.js +4 -4
  15. package/dist/bin/cleanup-stale-review-tasks.js +17 -17
  16. package/dist/bin/cli.js +50 -18
  17. package/dist/bin/deferred-daemon-restart.js +74 -73
  18. package/dist/bin/exe-agent-config.js +3 -3
  19. package/dist/bin/exe-agent.js +10 -10
  20. package/dist/bin/exe-assign.js +8 -8
  21. package/dist/bin/exe-boot.js +26 -26
  22. package/dist/bin/exe-call.js +4 -4
  23. package/dist/bin/exe-cloud.js +12 -12
  24. package/dist/bin/exe-config-dump.js +3 -3
  25. package/dist/bin/exe-dispatch.js +17 -17
  26. package/dist/bin/exe-doctor.js +4 -4
  27. package/dist/bin/exe-export-behaviors.js +8 -8
  28. package/dist/bin/exe-forget.js +7 -7
  29. package/dist/bin/exe-gateway.js +7 -7
  30. package/dist/bin/exe-healthcheck.js +4 -4
  31. package/dist/bin/exe-heartbeat.js +17 -17
  32. package/dist/bin/exe-kill.js +21 -21
  33. package/dist/bin/exe-launch-agent.js +27 -27
  34. package/dist/bin/exe-new-employee.js +8 -8
  35. package/dist/bin/exe-pending-messages.js +18 -18
  36. package/dist/bin/exe-pending-notifications.js +17 -17
  37. package/dist/bin/exe-pending-reviews.js +17 -17
  38. package/dist/bin/exe-rename.js +4 -4
  39. package/dist/bin/exe-review.js +20 -20
  40. package/dist/bin/exe-search.js +6 -6
  41. package/dist/bin/exe-session-cleanup.js +22 -22
  42. package/dist/bin/exe-settings.js +13 -13
  43. package/dist/bin/exe-start-codex.js +13 -13
  44. package/dist/bin/exe-start-opencode.js +9 -9
  45. package/dist/bin/exe-status.js +18 -18
  46. package/dist/bin/exe-support.js +3 -3
  47. package/dist/bin/exe-team.js +3 -3
  48. package/dist/bin/git-sweep.js +18 -18
  49. package/dist/bin/graph-backfill.js +7 -7
  50. package/dist/bin/graph-export.js +6 -6
  51. package/dist/bin/import-history.js +10 -10
  52. package/dist/bin/install.js +76 -75
  53. package/dist/bin/intercom-check.js +4 -4
  54. package/dist/bin/mcp-sessions.js +2 -2
  55. package/dist/bin/orchestration-metrics.js +4 -4
  56. package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
  57. package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
  58. package/dist/bin/reconcile-backlog.js +484 -0
  59. package/dist/bin/registry-proxy.js +1 -1
  60. package/dist/bin/scan-tasks.js +17 -17
  61. package/dist/bin/setup.js +1 -1
  62. package/dist/bin/shard-migrate.js +5 -5
  63. package/dist/bin/stack-update.js +13 -7
  64. package/dist/bin/vps-health-gate.js +1 -1
  65. package/dist/boot-generation-GSMPJOWM.js +22 -0
  66. package/dist/{capability-cards-YOKVMMOL.js → capability-cards-OBYQNAKZ.js} +2 -2
  67. package/dist/{capacity-monitor-S54IOWRL.js → capacity-monitor-MG3FTUD5.js} +18 -18
  68. package/dist/{catchup-brief-DIOMTEW5.js → catchup-brief-BVJOF3GL.js} +21 -21
  69. package/dist/{chunk-X425OEYF.js → chunk-2C455MU3.js} +2 -2
  70. package/dist/{chunk-N5I7RL3I.js → chunk-2IWBY7XK.js} +1 -1
  71. package/dist/{chunk-X7H3HMFH.js → chunk-2P4WJNN5.js} +3 -3
  72. package/dist/{chunk-MW2GJJ53.js → chunk-2UGGBIDL.js} +2 -2
  73. package/dist/{chunk-BPC5LZ6Y.js → chunk-2WMTTIAZ.js} +1 -1
  74. package/dist/{chunk-BU2QQWBQ.js → chunk-2YCFNBC4.js} +1 -1
  75. package/dist/{chunk-RRWDYOQS.js → chunk-32YHCHWW.js} +1 -1
  76. package/dist/{chunk-I5RLNOFK.js → chunk-3BRVLPPA.js} +8 -4
  77. package/dist/{chunk-KTY7I7UH.js → chunk-4FJZ6SO7.js} +1 -1
  78. package/dist/{chunk-XWHE4LZK.js → chunk-4LWV633D.js} +21 -2
  79. package/dist/{chunk-AVKXCSBI.js → chunk-4QSJVMMT.js} +1 -1
  80. package/dist/{chunk-I3XKO3KQ.js → chunk-6BQG7EKO.js} +1 -1
  81. package/dist/{chunk-RLRT2BVM.js → chunk-6D2PI4QD.js} +1 -1
  82. package/dist/{chunk-7EA7LYW4.js → chunk-6MVC43X7.js} +4 -4
  83. package/dist/chunk-6QW6JHRE.js +368 -0
  84. package/dist/{chunk-HHIBOU3P.js → chunk-7LF5DS3A.js} +1 -1
  85. package/dist/{chunk-XACL67CS.js → chunk-7SEC2AG5.js} +1 -1
  86. package/dist/{chunk-UFAXZ2PY.js → chunk-7YORGTXC.js} +1 -1
  87. package/dist/{chunk-3QDSCJ3F.js → chunk-AP455LBW.js} +1 -1
  88. package/dist/{chunk-OFX5B2S7.js → chunk-ATKW3SYL.js} +1 -1
  89. package/dist/{chunk-3OBWSCJN.js → chunk-B7CUBLF7.js} +10 -10
  90. package/dist/{chunk-UCQITDLM.js → chunk-BJ23BNED.js} +1 -1
  91. package/dist/{chunk-B76TSEP3.js → chunk-BJOBR6P2.js} +1 -1
  92. package/dist/{chunk-XCTGRD4S.js → chunk-BMHQPIJ2.js} +12 -12
  93. package/dist/{chunk-ZIVEA3NB.js → chunk-BR4423AS.js} +1 -1
  94. package/dist/{chunk-ATOU6CYR.js → chunk-BV6GBSRP.js} +16 -2
  95. package/dist/{chunk-DZ6OQM67.js → chunk-C445WRUX.js} +1 -1
  96. package/dist/{chunk-YE7NH53A.js → chunk-CCIEIRV2.js} +1 -1
  97. package/dist/{chunk-6IRVGOUL.js → chunk-CCPHEPLU.js} +1 -1
  98. package/dist/{chunk-2HZY3ECT.js → chunk-CMR64RYM.js} +18 -18
  99. package/dist/{chunk-MQRFKSLI.js → chunk-CYA5S5OD.js} +3 -3
  100. package/dist/{chunk-FNZR3B7U.js → chunk-DGGDUKH6.js} +1 -1
  101. package/dist/{chunk-QXSBB26A.js → chunk-DNVFWFYF.js} +1 -1
  102. package/dist/{chunk-QZLIZAS7.js → chunk-DPFQ2WQX.js} +2 -2
  103. package/dist/{chunk-H37HHX3E.js → chunk-EDH54E5A.js} +9 -9
  104. package/dist/{chunk-JD5S5AAV.js → chunk-EDOO23B2.js} +2 -2
  105. package/dist/{chunk-GQQHDEEM.js → chunk-FOV57K47.js} +10 -10
  106. package/dist/{chunk-65SVQELL.js → chunk-GFDGDFBF.js} +9 -0
  107. package/dist/{chunk-DILD54TU.js → chunk-GOGSWXNZ.js} +9 -9
  108. package/dist/{chunk-UPWE5NOG.js → chunk-GPW32HVB.js} +2 -2
  109. package/dist/{chunk-4IYSBPX3.js → chunk-HAZO7TRD.js} +1 -1
  110. package/dist/{chunk-52KNOQMK.js → chunk-HJX6NCJF.js} +3 -3
  111. package/dist/{chunk-UIV2WPBT.js → chunk-HNLXMD2V.js} +1 -1
  112. package/dist/{chunk-Z7OZP3ET.js → chunk-HSYJ6DZ2.js} +1 -1
  113. package/dist/{chunk-LTVCRHHD.js → chunk-HUSVERE6.js} +4 -4
  114. package/dist/{chunk-I7Z6KTGF.js → chunk-I7ECEP3W.js} +5 -5
  115. package/dist/{chunk-T4KZ2Z2N.js → chunk-IELUDZAA.js} +3 -3
  116. package/dist/{chunk-XUKPALWT.js → chunk-ITMEE7PQ.js} +3 -3
  117. package/dist/{chunk-KCC5A7YL.js → chunk-IXBIVKWZ.js} +6 -6
  118. package/dist/{chunk-GN45PBWI.js → chunk-J6SEDDOR.js} +2 -2
  119. package/dist/{chunk-UXBD22CD.js → chunk-K6KRBXQP.js} +1 -1
  120. package/dist/{chunk-PLRIJALF.js → chunk-KKOLHBNC.js} +33 -25
  121. package/dist/{chunk-OJTJYEMX.js → chunk-KP4PY2Z2.js} +3 -3
  122. package/dist/{chunk-VJHUVFIW.js → chunk-L2YGXJGF.js} +3 -3
  123. package/dist/{chunk-6MRWJMI5.js → chunk-LA2Z6RMS.js} +1 -1
  124. package/dist/{chunk-DEPZOCYD.js → chunk-LEJ25726.js} +321 -621
  125. package/dist/{chunk-2233TQCA.js → chunk-LLU6WZLK.js} +1 -1
  126. package/dist/{chunk-6M36JFFD.js → chunk-LOBCQXV5.js} +4 -4
  127. package/dist/{chunk-LMZISHSJ.js → chunk-MC4ATFJV.js} +5 -5
  128. package/dist/{chunk-EIF2LQHZ.js → chunk-MJB5ZFQM.js} +1 -1
  129. package/dist/{chunk-PAEXYFMY.js → chunk-N7A5D25S.js} +1 -1
  130. package/dist/{chunk-DADMPMYX.js → chunk-NDSNM5OH.js} +1 -1
  131. package/dist/{chunk-H2L4PHGH.js → chunk-NFBW7N4D.js} +2 -2
  132. package/dist/{chunk-VYRYY7TE.js → chunk-NTI22F3R.js} +1 -1
  133. package/dist/{chunk-TLYAEISW.js → chunk-OUEFW4RK.js} +2 -2
  134. package/dist/{chunk-K5WFKEXQ.js → chunk-PTJBWC77.js} +1 -1
  135. package/dist/{chunk-KMBEL7VB.js → chunk-PVIH3ZGV.js} +1 -1
  136. package/dist/{support-outbox-MGUVVGHT.js → chunk-Q5AIPSSC.js} +19 -7
  137. package/dist/chunk-RP5GETX5.js +140 -0
  138. package/dist/{chunk-HEPR6QTL.js → chunk-RWSLVYTE.js} +45 -5
  139. package/dist/{chunk-XJI7Z6LZ.js → chunk-T2PYVVZ5.js} +1 -1
  140. package/dist/{chunk-WYLV4S6A.js → chunk-TIXTHUVJ.js} +3 -3
  141. package/dist/{chunk-7WDXEKUL.js → chunk-TWXZM34M.js} +3 -3
  142. package/dist/{chunk-W7DHFGCB.js → chunk-U2MREVXQ.js} +1 -1
  143. package/dist/{chunk-6HBURYON.js → chunk-UIU2DGRV.js} +3 -3
  144. package/dist/{chunk-7TS64TBG.js → chunk-UU4UINUX.js} +6 -1
  145. package/dist/chunk-W6K4XB6G.js +40 -0
  146. package/dist/{chunk-R44Z32O2.js → chunk-WD55PEBM.js} +3 -3
  147. package/dist/{chunk-FUIIVSW6.js → chunk-WH7XN5ER.js} +1 -1
  148. package/dist/{chunk-Q7L6G6KV.js → chunk-WWNQFOSP.js} +2 -2
  149. package/dist/{chunk-542EWGY3.js → chunk-XSMRR4IW.js} +7 -7
  150. package/dist/{chunk-TNJRWUCE.js → chunk-Y3S4H77G.js} +1 -1
  151. package/dist/{chunk-AOO77BDE.js → chunk-YHUNDGVV.js} +1 -1
  152. package/dist/{chunk-JBSCL2XT.js → chunk-YIIME2OW.js} +1 -1
  153. package/dist/{chunk-QFPTDSY2.js → chunk-YLQXP7T7.js} +1 -1
  154. package/dist/{chunk-RDTZTLVQ.js → chunk-YWQMWFYR.js} +30 -14
  155. package/dist/{chunk-2SG2UGCH.js → chunk-ZNE6H2JO.js} +4 -4
  156. package/dist/{cleanup-graph-garbage-KUABW6LS.js → cleanup-graph-garbage-MXQ4Q2MA.js} +6 -6
  157. package/dist/{co-activation-XMPHKGHR.js → co-activation-QI5BK4RT.js} +2 -2
  158. package/dist/{co-occurrence-SHKSJ6CV.js → co-occurrence-BYSQNZSV.js} +4 -4
  159. package/dist/{code-context-index-EXXDY3QZ.js → code-context-index-BNBHDXHW.js} +2 -2
  160. package/dist/{content-extractor-RHITF2KM.js → content-extractor-JRJDNIHP.js} +2 -2
  161. package/dist/{conversation-entity-extractor-D3EFTLT4.js → conversation-entity-extractor-FPAMTL3C.js} +2 -2
  162. package/dist/{crdt-sync-UJELKSNX.js → crdt-sync-ETPKNBCU.js} +1 -1
  163. package/dist/{crm-webhook-HHNBS7LY.js → crm-webhook-M566ZMZS.js} +2 -2
  164. package/dist/{cto-delegation-gate-DXNF5HVW.js → cto-delegation-gate-S734XDXT.js} +16 -16
  165. package/dist/{daemon-orchestration-7QB6QOXT.js → daemon-orchestration-XV5GN73R.js} +20 -20
  166. package/dist/{daemon-ready-5XI5BIJD.js → daemon-ready-RKKB4P6K.js} +1 -1
  167. package/dist/{daemon-ready-signal-E7VMIQ6I.js → daemon-ready-signal-WKEJQNRA.js} +3 -1
  168. package/dist/{db-backup-DLD4QZBO.js → db-backup-MX2G3CEK.js} +1 -1
  169. package/dist/{doc-graph-extractor-3TRLGD7M.js → doc-graph-extractor-LR5KMPH7.js} +4 -4
  170. package/dist/{documents-FHIBU7KJ.js → documents-FA6N7QDA.js} +8 -8
  171. package/dist/{dreaming-OMFUEUCQ.js → dreaming-UKGTQT6I.js} +17 -17
  172. package/dist/{exe-drift-KY2KHZEL.js → exe-drift-TUKTCXZE.js} +3 -3
  173. package/dist/{exe-export-SP6G3QF6.js → exe-export-ZLHBXMZC.js} +7 -7
  174. package/dist/{exe-import-KJU7FBVQ.js → exe-import-VVKBZWSA.js} +7 -7
  175. package/dist/{exe-key-5RLFQMYP.js → exe-key-QJXFBF6G.js} +74 -73
  176. package/dist/{exe-snapshot-ZNPGUKRZ.js → exe-snapshot-JRLUO645.js} +21 -21
  177. package/dist/{fast-db-init-QQB6IVWV.js → fast-db-init-JKJEEHUI.js} +1 -1
  178. package/dist/{founder-context-PQR3BUS7.js → founder-context-HWPLMZVR.js} +2 -2
  179. package/dist/gateway/index.js +24 -24
  180. package/dist/{git-staleness-UGB5J3K7.js → git-staleness-X5XZONX3.js} +2 -2
  181. package/dist/{global-procedures-R7KRREEK.js → global-procedures-VIIVWB6R.js} +3 -3
  182. package/dist/{graph-auto-extract-LKIQ57PL.js → graph-auto-extract-HCQQF5AG.js} +4 -4
  183. package/dist/{graph-rag-JZZAB7PC.js → graph-rag-WAK2BRJH.js} +2 -2
  184. package/dist/hooks/bug-report-worker.js +19 -19
  185. package/dist/hooks/codex-stop-task-finalizer.js +19 -19
  186. package/dist/hooks/commit-complete.js +19 -19
  187. package/dist/hooks/error-recall.js +7 -7
  188. package/dist/hooks/exe-heartbeat-hook.js +3 -3
  189. package/dist/hooks/ingest-worker.js +5 -5
  190. package/dist/hooks/ingest.js +9 -9
  191. package/dist/hooks/instructions-loaded.js +4 -4
  192. package/dist/hooks/manifest.json +20 -20
  193. package/dist/hooks/notification.js +4 -4
  194. package/dist/hooks/post-compact.js +18 -18
  195. package/dist/hooks/post-tool-combined.js +9 -9
  196. package/dist/hooks/pre-compact.js +19 -19
  197. package/dist/hooks/pre-tool-use.js +22 -22
  198. package/dist/hooks/prompt-submit.js +36 -36
  199. package/dist/hooks/session-end.js +24 -24
  200. package/dist/hooks/session-start.js +14 -14
  201. package/dist/hooks/stop.js +25 -25
  202. package/dist/hooks/subagent-stop.js +18 -18
  203. package/dist/hooks/summary-worker.js +23 -23
  204. package/dist/index.js +29 -29
  205. package/dist/{installer-SB2N5NKH.js → installer-6IFVEQI4.js} +5 -5
  206. package/dist/{installer-MZWWBXM6.js → installer-NX2CLNV5.js} +5 -5
  207. package/dist/{installer-MNPXDLGG.js → installer-T2LGHZKL.js} +5 -5
  208. package/dist/{intercom-queue-VU2G6F5R.js → intercom-queue-KYHXXZCQ.js} +16 -16
  209. package/dist/lib/agent-config.js +1 -1
  210. package/dist/lib/cloud-sync.js +12 -12
  211. package/dist/lib/consolidation.js +8 -8
  212. package/dist/lib/database.js +2 -2
  213. package/dist/lib/db-daemon-client.js +2 -2
  214. package/dist/lib/db.js +2 -2
  215. package/dist/lib/device-registry.js +1 -1
  216. package/dist/lib/embedder.js +2 -2
  217. package/dist/lib/employee-templates.js +4 -4
  218. package/dist/lib/employees.js +2 -2
  219. package/dist/lib/exe-daemon-client.js +1 -1
  220. package/dist/lib/exe-daemon.js +123 -54
  221. package/dist/lib/hybrid-search.js +6 -6
  222. package/dist/lib/identity.js +2 -2
  223. package/dist/lib/license.js +2 -2
  224. package/dist/lib/messaging.js +17 -17
  225. package/dist/lib/post-tool-memory.js +3 -3
  226. package/dist/lib/registry-proxy.js +1 -1
  227. package/dist/lib/reminders.js +3 -3
  228. package/dist/lib/schedules.js +6 -6
  229. package/dist/lib/session-registry.js +4 -4
  230. package/dist/lib/skill-learning.js +7 -7
  231. package/dist/lib/store.js +5 -5
  232. package/dist/lib/task-router.js +3 -3
  233. package/dist/lib/tasks.js +18 -18
  234. package/dist/lib/tmux-routing.js +16 -16
  235. package/dist/lib/token-spend.js +3 -3
  236. package/dist/{license-gate-BYDMFMFT.js → license-gate-MGDR4YNI.js} +3 -3
  237. package/dist/{license-sync-N3RNYVP2.js → license-sync-UWE6GEB4.js} +2 -2
  238. package/dist/mcp/register-tools.js +73 -72
  239. package/dist/mcp/server.js +74 -73
  240. package/dist/mcp/tools/complete-reminder.js +4 -4
  241. package/dist/mcp/tools/create-reminder.js +4 -4
  242. package/dist/mcp/tools/create-task.js +20 -20
  243. package/dist/mcp/tools/deactivate-behavior.js +8 -8
  244. package/dist/mcp/tools/list-reminders.js +4 -4
  245. package/dist/mcp/tools/list-tasks.js +20 -20
  246. package/dist/mcp/tools/send-message.js +19 -19
  247. package/dist/mcp/tools/update-task.js +19 -19
  248. package/dist/{mcp-http-config-EMAVS2JI.js → mcp-http-config-RQLYEPTL.js} +3 -3
  249. package/dist/{memory-cards-TQRLZI4D.js → memory-cards-VYQ5DPMR.js} +5 -5
  250. package/dist/{memory-graph-extractor-IWGNVAFU.js → memory-graph-extractor-GX2HNYLU.js} +5 -5
  251. package/dist/{memory-poisoning-defense-T4ITBGSG.js → memory-poisoning-defense-TX7627BD.js} +2 -2
  252. package/dist/{memory-pressure-watchdog-RRIAXPXQ.js → memory-pressure-watchdog-MLNNH26B.js} +17 -17
  253. package/dist/{memory-queue-client-BKQHTYTH.js → memory-queue-client-YRL6XTGU.js} +2 -2
  254. package/dist/{memory-reflection-6N4J2FL7.js → memory-reflection-KIGEFSI4.js} +2 -2
  255. package/dist/notification-ledger-B6AVEGMV.js +407 -0
  256. package/dist/{notifications-KONB3C62.js → notifications-DWXV7SVL.js} +16 -16
  257. package/dist/{orchestration-events-5SIJOE4H.js → orchestration-events-ZG7O4HRY.js} +3 -3
  258. package/dist/{orchestrator-DUUX7FQV.js → orchestrator-PGHJDUUT.js} +18 -18
  259. package/dist/{pipeline-router-O6HU7DKH.js → pipeline-router-RTLAGZTA.js} +3 -3
  260. package/dist/{plan-limits-GRNBOBB3.js → plan-limits-WLQZTCSF.js} +5 -5
  261. package/dist/{projection-worker-ZVOFHTXT.js → projection-worker-44SEKTZ5.js} +2 -2
  262. package/dist/{prospective-memory-W6S67LZZ.js → prospective-memory-UACFTYXK.js} +2 -2
  263. package/dist/{reranker-SSFBRWWD.js → reranker-NL4YAV6R.js} +1 -1
  264. package/dist/{retrieval-health-TWHKYCRK.js → retrieval-health-4C2PO6HH.js} +1 -1
  265. package/dist/{review-polling-PCMD5BFN.js → review-polling-W5AMHNLT.js} +17 -17
  266. package/dist/runtime/index.js +24 -24
  267. package/dist/{session-events-3LCVQEL7.js → session-events-PGL5GJEB.js} +17 -17
  268. package/dist/{session-kill-telemetry-CZSPN5V6.js → session-kill-telemetry-6YDGEF27.js} +17 -17
  269. package/dist/{session-scope-CFHVSVAQ.js → session-scope-3MEOO557.js} +16 -16
  270. package/dist/{setup-wizard-CJZMM43G.js → setup-wizard-CJIYDSSP.js} +1 -1
  271. package/dist/{skill-refinement-74T6VDFM.js → skill-refinement-EOROTBPX.js} +3 -3
  272. package/dist/stack-promote-RSOWO6EY.js +130 -0
  273. package/dist/{stack-release-XXMV7SPX.js → stack-release-PR2XKJ4Q.js} +24 -9
  274. package/dist/{stack-update-E2TKHHSQ.js → stack-update-LMDM27ZW.js} +5 -3
  275. package/dist/{steward-gate-WT7WXQIE.js → steward-gate-4A2XHYFD.js} +3 -3
  276. package/dist/support-inbox-Z77ACQUY.js +32 -0
  277. package/dist/support-outbox-GB5SQFRJ.js +16 -0
  278. package/dist/{task-enforcement-VI7L43DC.js → task-enforcement-X5QVL6RE.js} +17 -17
  279. package/dist/{task-scope-CQEG5SSJ.js → task-scope-EKYDCVUF.js} +16 -16
  280. package/dist/{tasks-crud-UGK5A25L.js → tasks-crud-6LBNU43G.js} +16 -16
  281. package/dist/{tasks-notify-SMLDFBWM.js → tasks-notify-TFJLSQ3B.js} +17 -17
  282. package/dist/{tasks-review-JKBRACII.js → tasks-review-PBIUYXAL.js} +16 -16
  283. package/dist/{telemetry-upload-7LBYGPCB.js → telemetry-upload-WQDFABTF.js} +7 -7
  284. package/dist/{token-budget-QBRJR4M5.js → token-budget-KWGL5DY7.js} +3 -3
  285. package/dist/{tool-capability-index-Q6YQDL7I.js → tool-capability-index-EH3HQVHU.js} +1 -1
  286. package/dist/{tool-telemetry-ULIDUK3P.js → tool-telemetry-UC55LSIH.js} +1 -1
  287. package/dist/tui/App.js +24 -24
  288. package/dist/{tui-data-NPTGKT37.js → tui-data-M3RBSJL3.js} +16 -16
  289. package/dist/update-support-VPBD5SD2.js +355 -0
  290. package/dist/{worker-gate-MXUQUG4M.js → worker-gate-4QLLMXZM.js} +1 -1
  291. package/dist/{workflow-engine-EWCOLD47.js → workflow-engine-MMEHKUN4.js} +2 -2
  292. package/dist/{worktree-GVF2I5FP.js → worktree-YXBDRYOC.js} +4 -4
  293. package/dist/{worktree-sweep-ZAG3V24E.js → worktree-sweep-5WKBU7E6.js} +5 -5
  294. package/package.json +2 -2
  295. package/release-notes.json +35 -60
  296. package/dist/chunk-Y25OJWOQ.js +0 -45
  297. package/dist/{chunk-FLNSJ2TC.js → chunk-2KLAYDFB.js} +0 -0
  298. package/dist/{chunk-WHRTDN5J.js → chunk-3NCZKWPO.js} +0 -0
  299. package/dist/{chunk-IYB2NIW3.js → chunk-6MVI4QH2.js} +0 -0
  300. package/dist/{chunk-A4DVMPYB.js → chunk-7UMCQQWS.js} +3 -3
  301. /package/dist/{chunk-QLFRCA6I.js → chunk-AYLNJGCS.js} +0 -0
  302. /package/dist/{chunk-D3QASX2W.js → chunk-C2SRRCRK.js} +0 -0
  303. /package/dist/{chunk-KTPG4XKI.js → chunk-IB336P52.js} +0 -0
  304. /package/dist/{chunk-NQBRGXYR.js → chunk-MC6VPZKS.js} +0 -0
  305. /package/dist/{chunk-5Z5NATNS.js → chunk-PPZOWQHP.js} +0 -0
  306. /package/dist/{chunk-C2UO2I6K.js → chunk-WNKVKNOM.js} +0 -0
  307. /package/dist/{core-memory-VO5ZIBKH.js → core-memory-3IBWM4WR.js} +0 -0
  308. /package/dist/{entity-boost-DNI4A5I7.js → entity-boost-DWAWXFKN.js} +0 -0
  309. /package/dist/{message-queue-client-Q5BW3O5W.js → message-queue-client-3PTHPG5Q.js} +0 -0
  310. /package/dist/{oauth-server-ROQFOEMM.js → oauth-server-M5TGXT6D.js} +0 -0
  311. /package/dist/{project-boot-SD7GM24K.js → project-boot-6CGQ3EAH.js} +0 -0
  312. /package/dist/{wiki-acl-JA5UCQZ4.js → wiki-acl-7CROE3MJ.js} +0 -0
@@ -5,10 +5,10 @@ import {
5
5
  inferOutcome,
6
6
  inferSemanticLabel,
7
7
  ontologyPayload
8
- } from "./chunk-D3QASX2W.js";
8
+ } from "./chunk-C2SRRCRK.js";
9
9
  import {
10
10
  processCRMEvent
11
- } from "./chunk-KTPG4XKI.js";
11
+ } from "./chunk-IB336P52.js";
12
12
  import {
13
13
  loadConfig
14
14
  } from "./chunk-7Y5UDEVM.js";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  getClient
3
- } from "./chunk-HEPR6QTL.js";
3
+ } from "./chunk-RWSLVYTE.js";
4
4
  import "./chunk-2I23RPSI.js";
5
- import "./chunk-ATOU6CYR.js";
5
+ import "./chunk-BV6GBSRP.js";
6
6
  import "./chunk-PNQDP3OA.js";
7
7
  import "./chunk-H73TUI4Y.js";
8
8
  import "./chunk-7HLWBYH7.js";
@@ -5,7 +5,7 @@ import {
5
5
  rerank,
6
6
  rerankWithContext,
7
7
  rerankWithScores
8
- } from "./chunk-C2UO2I6K.js";
8
+ } from "./chunk-WNKVKNOM.js";
9
9
  import "./chunk-7Y5UDEVM.js";
10
10
  import "./chunk-SHIICYJW.js";
11
11
  import "./chunk-MLKGABMK.js";
@@ -2,7 +2,7 @@ import {
2
2
  computeDegradations,
3
3
  formatDegradations,
4
4
  getRetrievalHealth
5
- } from "./chunk-IYB2NIW3.js";
5
+ } from "./chunk-6MVI4QH2.js";
6
6
  import "./chunk-VGMACSEV.js";
7
7
  import "./chunk-MLKGABMK.js";
8
8
  export {
@@ -1,26 +1,26 @@
1
1
  import {
2
2
  isExeSession,
3
3
  strictSessionScopeFilter
4
- } from "./chunk-PLRIJALF.js";
5
- import "./chunk-OFX5B2S7.js";
6
- import "./chunk-B76TSEP3.js";
7
- import "./chunk-RLRT2BVM.js";
4
+ } from "./chunk-KKOLHBNC.js";
5
+ import "./chunk-ATKW3SYL.js";
6
+ import "./chunk-BJOBR6P2.js";
7
+ import "./chunk-6D2PI4QD.js";
8
+ import "./chunk-E23LNUWJ.js";
8
9
  import "./chunk-4JERP7NT.js";
9
10
  import "./chunk-EIKATSE4.js";
10
- import "./chunk-E23LNUWJ.js";
11
- import "./chunk-UIV2WPBT.js";
12
- import "./chunk-SSTLTIF3.js";
11
+ import "./chunk-HNLXMD2V.js";
13
12
  import "./chunk-RMOBQ6A5.js";
14
13
  import "./chunk-54QCG45Y.js";
15
- import "./chunk-FUIIVSW6.js";
16
- import "./chunk-65SVQELL.js";
14
+ import "./chunk-SSTLTIF3.js";
15
+ import "./chunk-WH7XN5ER.js";
16
+ import "./chunk-GFDGDFBF.js";
17
17
  import "./chunk-NGP6LSV2.js";
18
- import "./chunk-MW2GJJ53.js";
18
+ import "./chunk-2UGGBIDL.js";
19
19
  import "./chunk-CVYC6DUW.js";
20
- import "./chunk-2233TQCA.js";
20
+ import "./chunk-LLU6WZLK.js";
21
21
  import "./chunk-HCJCW7X4.js";
22
22
  import "./chunk-OPU3NYOO.js";
23
- import "./chunk-7TS64TBG.js";
23
+ import "./chunk-UU4UINUX.js";
24
24
  import "./chunk-AFNRE2RV.js";
25
25
  import "./chunk-3NGZ4PL7.js";
26
26
  import "./chunk-NLEW62VC.js";
@@ -30,15 +30,15 @@ import "./chunk-MP2AFCGL.js";
30
30
  import {
31
31
  DEFAULT_COORDINATOR_TEMPLATE_NAME,
32
32
  getCoordinatorName
33
- } from "./chunk-HEPR6QTL.js";
33
+ } from "./chunk-RWSLVYTE.js";
34
34
  import "./chunk-2I23RPSI.js";
35
- import "./chunk-ATOU6CYR.js";
35
+ import "./chunk-BV6GBSRP.js";
36
36
  import "./chunk-PNQDP3OA.js";
37
37
  import "./chunk-H73TUI4Y.js";
38
38
  import "./chunk-7HLWBYH7.js";
39
39
  import "./chunk-FXU7JOXK.js";
40
- import "./chunk-XACL67CS.js";
41
- import "./chunk-5Z5NATNS.js";
40
+ import "./chunk-7SEC2AG5.js";
41
+ import "./chunk-PPZOWQHP.js";
42
42
  import "./chunk-7Y5UDEVM.js";
43
43
  import "./chunk-SHIICYJW.js";
44
44
  import "./chunk-MLKGABMK.js";
@@ -115,7 +115,7 @@ function createRealDeps(getClient) {
115
115
  return result.rows;
116
116
  },
117
117
  createReviewForOrphan: async (task) => {
118
- const { createReviewForCompletedTask } = await import("./tasks-review-JKBRACII.js");
118
+ const { createReviewForCompletedTask } = await import("./tasks-review-PBIUYXAL.js");
119
119
  const cwd = process.cwd();
120
120
  await createReviewForCompletedTask(
121
121
  task,
@@ -3,11 +3,11 @@ import {
3
3
  SessionManager,
4
4
  checkGitSafety,
5
5
  targetsMainBranch
6
- } from "../chunk-3OBWSCJN.js";
6
+ } from "../chunk-B7CUBLF7.js";
7
7
  import {
8
8
  MultiAgentOrchestrator
9
- } from "../chunk-52KNOQMK.js";
10
- import "../chunk-RRWDYOQS.js";
9
+ } from "../chunk-HJX6NCJF.js";
10
+ import "../chunk-32YHCHWW.js";
11
11
  import {
12
12
  createQuietRenderer,
13
13
  createTerminalRenderer,
@@ -22,6 +22,10 @@ import {
22
22
  checkReadPathSafety,
23
23
  containsPathTraversal
24
24
  } from "../chunk-NGVOA6ZQ.js";
25
+ import {
26
+ composeHooks,
27
+ createDefaultHooks
28
+ } from "../chunk-O377P7GM.js";
25
29
  import {
26
30
  ContextManager,
27
31
  agentLoop,
@@ -53,31 +57,27 @@ import {
53
57
  matchInputPattern,
54
58
  matchToolPattern
55
59
  } from "../chunk-HF25XPZE.js";
56
- import {
57
- composeHooks,
58
- createDefaultHooks
59
- } from "../chunk-O377P7GM.js";
60
- import "../chunk-4IYSBPX3.js";
61
- import "../chunk-PLRIJALF.js";
62
- import "../chunk-OFX5B2S7.js";
63
- import "../chunk-B76TSEP3.js";
64
- import "../chunk-RLRT2BVM.js";
60
+ import "../chunk-HAZO7TRD.js";
61
+ import "../chunk-KKOLHBNC.js";
62
+ import "../chunk-ATKW3SYL.js";
63
+ import "../chunk-BJOBR6P2.js";
64
+ import "../chunk-6D2PI4QD.js";
65
+ import "../chunk-E23LNUWJ.js";
65
66
  import "../chunk-4JERP7NT.js";
66
67
  import "../chunk-EIKATSE4.js";
67
- import "../chunk-E23LNUWJ.js";
68
- import "../chunk-UIV2WPBT.js";
69
- import "../chunk-SSTLTIF3.js";
68
+ import "../chunk-HNLXMD2V.js";
70
69
  import "../chunk-RMOBQ6A5.js";
71
70
  import "../chunk-54QCG45Y.js";
72
- import "../chunk-FUIIVSW6.js";
73
- import "../chunk-65SVQELL.js";
71
+ import "../chunk-SSTLTIF3.js";
72
+ import "../chunk-WH7XN5ER.js";
73
+ import "../chunk-GFDGDFBF.js";
74
74
  import "../chunk-NGP6LSV2.js";
75
- import "../chunk-MW2GJJ53.js";
75
+ import "../chunk-2UGGBIDL.js";
76
76
  import "../chunk-CVYC6DUW.js";
77
- import "../chunk-2233TQCA.js";
77
+ import "../chunk-LLU6WZLK.js";
78
78
  import "../chunk-HCJCW7X4.js";
79
79
  import "../chunk-OPU3NYOO.js";
80
- import "../chunk-7TS64TBG.js";
80
+ import "../chunk-UU4UINUX.js";
81
81
  import "../chunk-AFNRE2RV.js";
82
82
  import "../chunk-3NGZ4PL7.js";
83
83
  import "../chunk-NLEW62VC.js";
@@ -87,15 +87,15 @@ import {
87
87
  StateBus,
88
88
  orgBus
89
89
  } from "../chunk-MP2AFCGL.js";
90
- import "../chunk-HEPR6QTL.js";
90
+ import "../chunk-RWSLVYTE.js";
91
91
  import "../chunk-2I23RPSI.js";
92
- import "../chunk-ATOU6CYR.js";
92
+ import "../chunk-BV6GBSRP.js";
93
93
  import "../chunk-PNQDP3OA.js";
94
94
  import "../chunk-H73TUI4Y.js";
95
95
  import "../chunk-7HLWBYH7.js";
96
96
  import "../chunk-FXU7JOXK.js";
97
- import "../chunk-XACL67CS.js";
98
- import "../chunk-5Z5NATNS.js";
97
+ import "../chunk-7SEC2AG5.js";
98
+ import "../chunk-PPZOWQHP.js";
99
99
  import "../chunk-7Y5UDEVM.js";
100
100
  import "../chunk-SHIICYJW.js";
101
101
  import "../chunk-MLKGABMK.js";
@@ -4,42 +4,42 @@ import {
4
4
  listRecentSessionEvents,
5
5
  recordSessionEvent,
6
6
  sweepExpiredSessionEvents
7
- } from "./chunk-QFPTDSY2.js";
8
- import "./chunk-PLRIJALF.js";
9
- import "./chunk-OFX5B2S7.js";
10
- import "./chunk-B76TSEP3.js";
11
- import "./chunk-RLRT2BVM.js";
7
+ } from "./chunk-YLQXP7T7.js";
8
+ import "./chunk-KKOLHBNC.js";
9
+ import "./chunk-ATKW3SYL.js";
10
+ import "./chunk-BJOBR6P2.js";
11
+ import "./chunk-6D2PI4QD.js";
12
+ import "./chunk-E23LNUWJ.js";
12
13
  import "./chunk-4JERP7NT.js";
13
14
  import "./chunk-EIKATSE4.js";
14
- import "./chunk-E23LNUWJ.js";
15
- import "./chunk-UIV2WPBT.js";
16
- import "./chunk-SSTLTIF3.js";
15
+ import "./chunk-HNLXMD2V.js";
17
16
  import "./chunk-RMOBQ6A5.js";
18
17
  import "./chunk-54QCG45Y.js";
19
- import "./chunk-FUIIVSW6.js";
20
- import "./chunk-65SVQELL.js";
18
+ import "./chunk-SSTLTIF3.js";
19
+ import "./chunk-WH7XN5ER.js";
20
+ import "./chunk-GFDGDFBF.js";
21
21
  import "./chunk-NGP6LSV2.js";
22
- import "./chunk-MW2GJJ53.js";
22
+ import "./chunk-2UGGBIDL.js";
23
23
  import "./chunk-CVYC6DUW.js";
24
- import "./chunk-2233TQCA.js";
24
+ import "./chunk-LLU6WZLK.js";
25
25
  import "./chunk-HCJCW7X4.js";
26
26
  import "./chunk-OPU3NYOO.js";
27
- import "./chunk-7TS64TBG.js";
27
+ import "./chunk-UU4UINUX.js";
28
28
  import "./chunk-AFNRE2RV.js";
29
29
  import "./chunk-3NGZ4PL7.js";
30
30
  import "./chunk-NLEW62VC.js";
31
31
  import "./chunk-HYZV25LY.js";
32
32
  import "./chunk-GJV3WDWM.js";
33
33
  import "./chunk-MP2AFCGL.js";
34
- import "./chunk-HEPR6QTL.js";
34
+ import "./chunk-RWSLVYTE.js";
35
35
  import "./chunk-2I23RPSI.js";
36
- import "./chunk-ATOU6CYR.js";
36
+ import "./chunk-BV6GBSRP.js";
37
37
  import "./chunk-PNQDP3OA.js";
38
38
  import "./chunk-H73TUI4Y.js";
39
39
  import "./chunk-7HLWBYH7.js";
40
40
  import "./chunk-FXU7JOXK.js";
41
- import "./chunk-XACL67CS.js";
42
- import "./chunk-5Z5NATNS.js";
41
+ import "./chunk-7SEC2AG5.js";
42
+ import "./chunk-PPZOWQHP.js";
43
43
  import "./chunk-7Y5UDEVM.js";
44
44
  import "./chunk-SHIICYJW.js";
45
45
  import "./chunk-MLKGABMK.js";
@@ -13,42 +13,42 @@ import {
13
13
  parseStreakState,
14
14
  recordSessionKill,
15
15
  sumTokensSavedSince
16
- } from "./chunk-T4KZ2Z2N.js";
17
- import "./chunk-PLRIJALF.js";
18
- import "./chunk-OFX5B2S7.js";
19
- import "./chunk-B76TSEP3.js";
20
- import "./chunk-RLRT2BVM.js";
16
+ } from "./chunk-IELUDZAA.js";
17
+ import "./chunk-KKOLHBNC.js";
18
+ import "./chunk-ATKW3SYL.js";
19
+ import "./chunk-BJOBR6P2.js";
20
+ import "./chunk-6D2PI4QD.js";
21
+ import "./chunk-E23LNUWJ.js";
21
22
  import "./chunk-4JERP7NT.js";
22
23
  import "./chunk-EIKATSE4.js";
23
- import "./chunk-E23LNUWJ.js";
24
- import "./chunk-UIV2WPBT.js";
25
- import "./chunk-SSTLTIF3.js";
24
+ import "./chunk-HNLXMD2V.js";
26
25
  import "./chunk-RMOBQ6A5.js";
27
26
  import "./chunk-54QCG45Y.js";
28
- import "./chunk-FUIIVSW6.js";
29
- import "./chunk-65SVQELL.js";
27
+ import "./chunk-SSTLTIF3.js";
28
+ import "./chunk-WH7XN5ER.js";
29
+ import "./chunk-GFDGDFBF.js";
30
30
  import "./chunk-NGP6LSV2.js";
31
- import "./chunk-MW2GJJ53.js";
31
+ import "./chunk-2UGGBIDL.js";
32
32
  import "./chunk-CVYC6DUW.js";
33
- import "./chunk-2233TQCA.js";
33
+ import "./chunk-LLU6WZLK.js";
34
34
  import "./chunk-HCJCW7X4.js";
35
35
  import "./chunk-OPU3NYOO.js";
36
- import "./chunk-7TS64TBG.js";
36
+ import "./chunk-UU4UINUX.js";
37
37
  import "./chunk-AFNRE2RV.js";
38
38
  import "./chunk-3NGZ4PL7.js";
39
39
  import "./chunk-NLEW62VC.js";
40
40
  import "./chunk-HYZV25LY.js";
41
41
  import "./chunk-GJV3WDWM.js";
42
42
  import "./chunk-MP2AFCGL.js";
43
- import "./chunk-HEPR6QTL.js";
43
+ import "./chunk-RWSLVYTE.js";
44
44
  import "./chunk-2I23RPSI.js";
45
- import "./chunk-ATOU6CYR.js";
45
+ import "./chunk-BV6GBSRP.js";
46
46
  import "./chunk-PNQDP3OA.js";
47
47
  import "./chunk-H73TUI4Y.js";
48
48
  import "./chunk-7HLWBYH7.js";
49
49
  import "./chunk-FXU7JOXK.js";
50
- import "./chunk-XACL67CS.js";
51
- import "./chunk-5Z5NATNS.js";
50
+ import "./chunk-7SEC2AG5.js";
51
+ import "./chunk-PPZOWQHP.js";
52
52
  import "./chunk-7Y5UDEVM.js";
53
53
  import "./chunk-SHIICYJW.js";
54
54
  import "./chunk-MLKGABMK.js";
@@ -1,29 +1,29 @@
1
1
  import {
2
2
  resolveExeSession
3
- } from "./chunk-PLRIJALF.js";
4
- import "./chunk-OFX5B2S7.js";
5
- import "./chunk-B76TSEP3.js";
6
- import "./chunk-RLRT2BVM.js";
3
+ } from "./chunk-KKOLHBNC.js";
4
+ import "./chunk-ATKW3SYL.js";
5
+ import "./chunk-BJOBR6P2.js";
6
+ import "./chunk-6D2PI4QD.js";
7
+ import "./chunk-E23LNUWJ.js";
7
8
  import "./chunk-4JERP7NT.js";
8
9
  import "./chunk-EIKATSE4.js";
9
- import "./chunk-E23LNUWJ.js";
10
10
  import {
11
11
  listSessions
12
- } from "./chunk-UIV2WPBT.js";
13
- import "./chunk-SSTLTIF3.js";
12
+ } from "./chunk-HNLXMD2V.js";
14
13
  import "./chunk-RMOBQ6A5.js";
15
14
  import "./chunk-54QCG45Y.js";
16
- import "./chunk-FUIIVSW6.js";
17
- import "./chunk-65SVQELL.js";
15
+ import "./chunk-SSTLTIF3.js";
16
+ import "./chunk-WH7XN5ER.js";
17
+ import "./chunk-GFDGDFBF.js";
18
18
  import "./chunk-NGP6LSV2.js";
19
- import "./chunk-MW2GJJ53.js";
19
+ import "./chunk-2UGGBIDL.js";
20
20
  import "./chunk-CVYC6DUW.js";
21
- import "./chunk-2233TQCA.js";
21
+ import "./chunk-LLU6WZLK.js";
22
22
  import "./chunk-HCJCW7X4.js";
23
23
  import {
24
24
  getProjectName
25
25
  } from "./chunk-OPU3NYOO.js";
26
- import "./chunk-7TS64TBG.js";
26
+ import "./chunk-UU4UINUX.js";
27
27
  import "./chunk-AFNRE2RV.js";
28
28
  import "./chunk-3NGZ4PL7.js";
29
29
  import "./chunk-NLEW62VC.js";
@@ -32,15 +32,15 @@ import "./chunk-GJV3WDWM.js";
32
32
  import "./chunk-MP2AFCGL.js";
33
33
  import {
34
34
  isCoordinatorName
35
- } from "./chunk-HEPR6QTL.js";
35
+ } from "./chunk-RWSLVYTE.js";
36
36
  import "./chunk-2I23RPSI.js";
37
- import "./chunk-ATOU6CYR.js";
37
+ import "./chunk-BV6GBSRP.js";
38
38
  import "./chunk-PNQDP3OA.js";
39
39
  import "./chunk-H73TUI4Y.js";
40
40
  import "./chunk-7HLWBYH7.js";
41
41
  import "./chunk-FXU7JOXK.js";
42
- import "./chunk-XACL67CS.js";
43
- import "./chunk-5Z5NATNS.js";
42
+ import "./chunk-7SEC2AG5.js";
43
+ import "./chunk-PPZOWQHP.js";
44
44
  import "./chunk-7Y5UDEVM.js";
45
45
  import "./chunk-SHIICYJW.js";
46
46
  import "./chunk-MLKGABMK.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  runSetupWizard,
3
3
  validateModel
4
- } from "./chunk-Z7OZP3ET.js";
4
+ } from "./chunk-HSYJ6DZ2.js";
5
5
  import "./chunk-TPHCZDE3.js";
6
6
  import "./chunk-Z42MXYWW.js";
7
7
  import "./chunk-7Y5UDEVM.js";
@@ -2,10 +2,10 @@ import {
2
2
  incrementSkillSuccess,
3
3
  incrementSkillUsage,
4
4
  runSkillRefinement
5
- } from "./chunk-RLRT2BVM.js";
6
- import "./chunk-HEPR6QTL.js";
5
+ } from "./chunk-6D2PI4QD.js";
6
+ import "./chunk-RWSLVYTE.js";
7
7
  import "./chunk-2I23RPSI.js";
8
- import "./chunk-ATOU6CYR.js";
8
+ import "./chunk-BV6GBSRP.js";
9
9
  import "./chunk-PNQDP3OA.js";
10
10
  import "./chunk-H73TUI4Y.js";
11
11
  import "./chunk-7HLWBYH7.js";
@@ -0,0 +1,130 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ isMainModule
4
+ } from "./chunk-6Y4B3QF6.js";
5
+ import "./chunk-MLKGABMK.js";
6
+
7
+ // src/bin/stack-promote.ts
8
+ import { existsSync, readFileSync, writeFileSync } from "fs";
9
+ import path from "path";
10
+ function promoteCanaryStack(manifest, version) {
11
+ const entry = manifest.stacks[version];
12
+ if (!entry) {
13
+ throw new Error(`Stack version ${version} not found in manifest. Known versions: ${Object.keys(manifest.stacks).join(", ")}`);
14
+ }
15
+ if (manifest.latest === version) {
16
+ throw new Error(`Stack version ${version} is already manifest.latest \u2014 nothing to promote.`);
17
+ }
18
+ const stage = entry.rolloutStage ?? "ga";
19
+ if (stage !== "canary") {
20
+ throw new Error(
21
+ `Stack version ${version} has rolloutStage="${stage}", not "canary" \u2014 stack-promote only promotes canary releases to GA. To move the fleet to an older already-GA version, use "exe-os stack-update --target ${version} --yes" (or --rollback) instead.`
22
+ );
23
+ }
24
+ const previousLatest = manifest.latest;
25
+ entry.rolloutStage = "ga";
26
+ manifest.latest = version;
27
+ return { version, previousLatest };
28
+ }
29
+ function findDefaultManifestPath() {
30
+ let dir = path.dirname(new URL(import.meta.url).pathname);
31
+ for (let i = 0; i < 6; i++) {
32
+ const candidate = path.join(dir, "deploy", "stack-manifests", "v0.9.json");
33
+ if (existsSync(candidate)) return candidate;
34
+ dir = path.dirname(dir);
35
+ }
36
+ return path.join(process.cwd(), "deploy", "stack-manifests", "v0.9.json");
37
+ }
38
+ function parseArgs(args) {
39
+ const opts = { version: "", manifestPath: findDefaultManifestPath(), yes: false };
40
+ for (let i = 0; i < args.length; i++) {
41
+ const arg = args[i];
42
+ if (arg === "--version") opts.version = args[++i] ?? "";
43
+ else if (arg.startsWith("--version=")) opts.version = arg.slice("--version=".length);
44
+ else if (arg === "--manifest") opts.manifestPath = args[++i] ?? opts.manifestPath;
45
+ else if (arg.startsWith("--manifest=")) opts.manifestPath = arg.slice("--manifest=".length);
46
+ else if (arg === "--yes" || arg === "-y") opts.yes = true;
47
+ }
48
+ return opts;
49
+ }
50
+ function printUsage() {
51
+ console.log(`
52
+ Usage: exe-os stack-promote --version <version> [options]
53
+
54
+ Promote a CANARY stack version to general availability (GA): flips its
55
+ rolloutStage to "ga" and bumps manifest.latest so every customer running
56
+ plain "stack-update --yes" (no --target) will pick it up.
57
+
58
+ Run this ONLY after the canary host has been deployed and verified healthy
59
+ (vps-health-gate / verify-stack) for an appropriate soak period.
60
+
61
+ Options:
62
+ --version <version> Stack version to promote (must have rolloutStage: "canary")
63
+ --manifest <path> Path to the stack manifest JSON (default: deploy/stack-manifests/v0.9.json)
64
+ --yes, -y Skip the interactive confirmation prompt
65
+ --help Show this help message
66
+
67
+ This command edits the manifest file only \u2014 it does not commit, tag, or
68
+ push. Review the diff and commit/push yourself (or via CI), same as
69
+ "exe-os release --stack".
70
+ `);
71
+ }
72
+ async function runStackPromoteCli(args) {
73
+ if (args.includes("--help") || args.includes("-h")) {
74
+ printUsage();
75
+ return;
76
+ }
77
+ const opts = parseArgs(args);
78
+ if (!opts.version) {
79
+ console.error("[stack-promote] --version <version> is required.\n");
80
+ printUsage();
81
+ process.exitCode = 1;
82
+ return;
83
+ }
84
+ if (!existsSync(opts.manifestPath)) {
85
+ console.error(`[stack-promote] Manifest not found: ${opts.manifestPath}`);
86
+ process.exitCode = 1;
87
+ return;
88
+ }
89
+ const raw = readFileSync(opts.manifestPath, "utf8");
90
+ const manifest = JSON.parse(raw);
91
+ let result;
92
+ try {
93
+ result = promoteCanaryStack(manifest, opts.version);
94
+ } catch (err) {
95
+ console.error(`[stack-promote] ${err instanceof Error ? err.message : String(err)}`);
96
+ process.exitCode = 1;
97
+ return;
98
+ }
99
+ console.log(`[stack-promote] ${result.previousLatest} -> ${result.version}`);
100
+ console.log(`[stack-promote] Manifest: ${opts.manifestPath}`);
101
+ if (!opts.yes) {
102
+ const { createInterface } = await import("readline");
103
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
104
+ const answer = await new Promise((resolve) => {
105
+ rl.question(
106
+ `
107
+ Promote ${result.version} to GA (manifest.latest)? Confirm the canary host is verified healthy. [y/N] `,
108
+ resolve
109
+ );
110
+ });
111
+ rl.close();
112
+ if (answer.trim().toLowerCase() !== "y") {
113
+ console.log("[stack-promote] Aborted.");
114
+ process.exitCode = 1;
115
+ return;
116
+ }
117
+ }
118
+ writeFileSync(opts.manifestPath, JSON.stringify(manifest, null, 2) + "\n");
119
+ console.log(`[stack-promote] \u2713 Promoted ${result.version} to GA. Commit and push ${path.basename(opts.manifestPath)} to publish.`);
120
+ }
121
+ if (isMainModule(import.meta.url) && process.argv[1]?.includes("stack-promote")) {
122
+ runStackPromoteCli(process.argv.slice(2)).catch((err) => {
123
+ console.error(`[stack-promote] Fatal error: ${err instanceof Error ? err.message : String(err)}`);
124
+ process.exitCode = 1;
125
+ });
126
+ }
127
+ export {
128
+ promoteCanaryStack,
129
+ runStackPromoteCli
130
+ };
@@ -144,7 +144,8 @@ function parseReleaseArgs(argv) {
144
144
  skipImageVerify: false,
145
145
  allowRed: false,
146
146
  root: null,
147
- forceBuild: false
147
+ forceBuild: false,
148
+ canary: false
148
149
  };
149
150
  for (let i = 0; i < argv.length; i++) {
150
151
  const arg = argv[i];
@@ -155,6 +156,7 @@ function parseReleaseArgs(argv) {
155
156
  else if (arg === "--minor") flags.minor = true;
156
157
  else if (arg === "--skip-image-verify") flags.skipImageVerify = true;
157
158
  else if (arg === "--allow-red") flags.allowRed = true;
159
+ else if (arg === "--canary") flags.canary = true;
158
160
  else if (arg === "--repos" && argv[i + 1]) {
159
161
  flags.repos = argv[++i].split(",").map((s) => s.trim()).filter(Boolean);
160
162
  } else if (arg.startsWith("--repos=")) {
@@ -672,7 +674,7 @@ function printImageVerification(results) {
672
674
  }
673
675
  console.log("");
674
676
  }
675
- async function updateStackManifest(changes, ciStatuses, dryRun, imageResults) {
677
+ async function updateStackManifest(changes, ciStatuses, dryRun, imageResults, canary = false) {
676
678
  const manifest = JSON.parse(readFileSync(MANIFEST_PATH, "utf8"));
677
679
  const currentLatest = manifest.latest;
678
680
  const currentParts = currentLatest.split(".").map(Number);
@@ -724,17 +726,30 @@ async function updateStackManifest(changes, ciStatuses, dryRun, imageResults) {
724
726
  notes,
725
727
  npmVersion: exeOsVersion,
726
728
  breakingChanges: [],
727
- services
729
+ services,
730
+ // Staged rollout (release-safety canary hardening): "canary" entries are
731
+ // published (images pinned + pullable) but NOT promoted for implicit
732
+ // adoption — see assertRolloutStageAllowed in src/lib/stack-update.ts.
733
+ rolloutStage: canary ? "canary" : "ga"
728
734
  };
729
735
  if (dryRun) {
730
- log("dry", `Would create stack ${newStackVersion} in manifest`);
736
+ log("dry", `Would create stack ${newStackVersion} in manifest${canary ? " (CANARY \u2014 latest would NOT be bumped)" : ""}`);
731
737
  log("dry", `Notes: ${notes}`);
732
738
  return newStackVersion;
733
739
  }
734
- manifest.latest = newStackVersion;
735
740
  manifest.stacks[newStackVersion] = newEntry;
736
- writeFileSync(MANIFEST_PATH, JSON.stringify(manifest, null, 2) + "\n");
737
- log("ok", `Stack manifest updated: ${currentLatest} -> ${newStackVersion}`);
741
+ if (canary) {
742
+ writeFileSync(MANIFEST_PATH, JSON.stringify(manifest, null, 2) + "\n");
743
+ log("ok", `Stack manifest updated: added CANARY ${newStackVersion} (latest unchanged: ${currentLatest})`);
744
+ log("warn", `${newStackVersion} is a CANARY release. Deploy to a designated canary host with:`);
745
+ log("warn", ` exe-os stack-update --target ${newStackVersion} --yes`);
746
+ log("warn", `Then verify health (vps-health-gate / verify-stack) and promote with:`);
747
+ log("warn", ` exe-os stack-promote --version ${newStackVersion} --yes`);
748
+ } else {
749
+ manifest.latest = newStackVersion;
750
+ writeFileSync(MANIFEST_PATH, JSON.stringify(manifest, null, 2) + "\n");
751
+ log("ok", `Stack manifest updated: ${currentLatest} -> ${newStackVersion}`);
752
+ }
738
753
  return newStackVersion;
739
754
  }
740
755
  function gatePublishWithPreflight(newStackVersion, dryRun, allowRed) {
@@ -911,7 +926,7 @@ async function confirm(message) {
911
926
  }
912
927
  async function runStackRelease(flags) {
913
928
  if (!flags.stack) {
914
- console.error("Usage: exe-os release --stack [--dry-run] [--repos <list>] [--yes] [--skip-image-verify] [--allow-red] [--root <path>] [--force]");
929
+ console.error("Usage: exe-os release --stack [--dry-run] [--repos <list>] [--yes] [--skip-image-verify] [--allow-red] [--canary] [--root <path>] [--force]");
915
930
  process.exit(1);
916
931
  }
917
932
  if (flags.root) {
@@ -1021,7 +1036,7 @@ async function runStackRelease(flags) {
1021
1036
  printImageVerification(imageResults);
1022
1037
  }
1023
1038
  log("info", "Updating stack manifest...");
1024
- const newStackVersion = await updateStackManifest(changes, ciStatuses, flags.dryRun, imageResults);
1039
+ const newStackVersion = await updateStackManifest(changes, ciStatuses, flags.dryRun, imageResults, flags.canary);
1025
1040
  gatePublishWithPreflight(newStackVersion, flags.dryRun, flags.allowRed);
1026
1041
  const exeOsChange = changes.find((c) => c.repo.serviceKey === "exe-os");
1027
1042
  await commitAndTagExeOs(newStackVersion, exeOsChange, flags.dryRun);
@@ -6,6 +6,7 @@ import {
6
6
  assertDeploymentScopeAllowed,
7
7
  assertHostReadyForApply,
8
8
  assertProductionDeployGate,
9
+ assertRolloutStageAllowed,
9
10
  backupStackConfig,
10
11
  bootstrapStackHost,
11
12
  buildDefaultServiceSelection,
@@ -58,9 +59,9 @@ import {
58
59
  verifyReleaseHealth,
59
60
  verifyStackManifestSignature,
60
61
  waitForHttpOk
61
- } from "./chunk-XWHE4LZK.js";
62
- import "./chunk-XACL67CS.js";
63
- import "./chunk-5Z5NATNS.js";
62
+ } from "./chunk-4LWV633D.js";
63
+ import "./chunk-7SEC2AG5.js";
64
+ import "./chunk-PPZOWQHP.js";
64
65
  import "./chunk-7Y5UDEVM.js";
65
66
  import "./chunk-SHIICYJW.js";
66
67
  import "./chunk-MLKGABMK.js";
@@ -72,6 +73,7 @@ export {
72
73
  assertDeploymentScopeAllowed,
73
74
  assertHostReadyForApply,
74
75
  assertProductionDeployGate,
76
+ assertRolloutStageAllowed,
75
77
  backupStackConfig,
76
78
  bootstrapStackHost,
77
79
  buildDefaultServiceSelection,