@askexenow/exe-os 0.9.238 → 0.9.243

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 (316) hide show
  1. package/deploy/compose/.env.customer.example +12 -0
  2. package/deploy/compose/.env.example +13 -1
  3. package/deploy/compose/cloudflared/config.yml.example +23 -4
  4. package/deploy/compose/docker-compose.yml +27 -7
  5. package/deploy/compose/generate-env.ts +49 -1
  6. package/deploy/compose/init-db.sql +10 -2
  7. package/deploy/stack-manifests/v0.9.json +165 -9
  8. package/dist/{active-agent-X3GALNAR.js → active-agent-KO4ZWDXE.js} +4 -4
  9. package/dist/{active-agent-6WX7GZBH.js → active-agent-KP2O52HA.js} +4 -4
  10. package/dist/{agentic-ontology-NBU3FHEX.js → agentic-ontology-DXE5J6I5.js} +1 -1
  11. package/dist/{backfill-metadata-NG2L5GUP.js → backfill-metadata-DFTIGPXP.js} +7 -7
  12. package/dist/{background-jobs-RWL46VRD.js → background-jobs-CRXY7T4Y.js} +2 -2
  13. package/dist/{behaviors-DH7XFONJ.js → behaviors-BL3QCHBT.js} +4 -4
  14. package/dist/bin/age-ontology-load.js +2 -2
  15. package/dist/bin/agentic-ontology-backfill.js +9 -9
  16. package/dist/bin/agentic-reflection-backfill.js +10 -10
  17. package/dist/bin/agentic-semantic-label.js +9 -9
  18. package/dist/bin/backfill-conversations.js +9 -9
  19. package/dist/bin/backfill-responses.js +9 -9
  20. package/dist/bin/backfill-vectors.js +11 -11
  21. package/dist/bin/bulk-sync-postgres.js +10 -10
  22. package/dist/bin/cc-doctor.js +3 -3
  23. package/dist/bin/cleanup-stale-review-tasks.js +13 -13
  24. package/dist/bin/cli.js +27 -22
  25. package/dist/bin/exe-agent-config.js +4 -4
  26. package/dist/bin/exe-agent.js +8 -8
  27. package/dist/bin/exe-assign.js +11 -11
  28. package/dist/bin/exe-boot.js +22 -22
  29. package/dist/bin/exe-call.js +5 -5
  30. package/dist/bin/exe-cloud.js +8 -8
  31. package/dist/bin/exe-dispatch.js +13 -13
  32. package/dist/bin/exe-doctor.js +1 -1
  33. package/dist/bin/exe-export-behaviors.js +10 -10
  34. package/dist/bin/exe-forget.js +9 -9
  35. package/dist/bin/exe-gateway.js +8 -8
  36. package/dist/bin/exe-healthcheck.js +3 -3
  37. package/dist/bin/exe-heartbeat.js +13 -13
  38. package/dist/bin/exe-kill.js +18 -18
  39. package/dist/bin/exe-launch-agent.js +22 -22
  40. package/dist/bin/exe-new-employee.js +8 -8
  41. package/dist/bin/exe-pending-messages.js +14 -14
  42. package/dist/bin/exe-pending-notifications.js +13 -13
  43. package/dist/bin/exe-pending-reviews.js +13 -13
  44. package/dist/bin/exe-rename.js +5 -5
  45. package/dist/bin/exe-review.js +17 -17
  46. package/dist/bin/exe-search.js +8 -8
  47. package/dist/bin/exe-session-cleanup.js +20 -20
  48. package/dist/bin/exe-settings.js +7 -7
  49. package/dist/bin/exe-start-codex.js +14 -14
  50. package/dist/bin/exe-start-opencode.js +11 -11
  51. package/dist/bin/exe-status.js +14 -14
  52. package/dist/bin/exe-support.js +3 -3
  53. package/dist/bin/exe-team.js +4 -4
  54. package/dist/bin/git-sweep.js +13 -13
  55. package/dist/bin/graph-backfill.js +8 -8
  56. package/dist/bin/graph-export.js +8 -8
  57. package/dist/bin/import-history.js +10 -10
  58. package/dist/bin/install.js +7 -7
  59. package/dist/bin/intercom-check.js +4 -4
  60. package/dist/bin/mcp-sessions.js +2 -2
  61. package/dist/bin/orchestration-metrics.js +5 -5
  62. package/dist/bin/postgres-agentic-reflection-backfill.js +4 -4
  63. package/dist/bin/postgres-agentic-semantic-backfill.js +3 -3
  64. package/dist/bin/scan-tasks.js +13 -13
  65. package/dist/bin/setup.js +3 -3
  66. package/dist/bin/shard-migrate.js +8 -8
  67. package/dist/bin/stack-update.js +324 -20
  68. package/dist/bin/verify-stack.js +3 -383
  69. package/dist/bin/vps-backup.js +8 -160
  70. package/dist/bin/vps-health-gate.js +10 -220
  71. package/dist/{branding-I7YYX4FM.js → branding-XWMO5EDR.js} +1 -1
  72. package/dist/{capacity-monitor-KAKNWAA4.js → capacity-monitor-4CSBC7AP.js} +14 -14
  73. package/dist/{catchup-brief-ZB2OR45O.js → catchup-brief-LF5Z6Q6E.js} +17 -17
  74. package/dist/{chunk-NQU2RTCP.js → chunk-222SI7QC.js} +14 -14
  75. package/dist/{chunk-JZMVLAZ2.js → chunk-2WBBVEIB.js} +1 -1
  76. package/dist/{chunk-Q4MZN62R.js → chunk-3V53HH5T.js} +4 -4
  77. package/dist/{chunk-ES5JM6V2.js → chunk-57SULZJ2.js} +3 -3
  78. package/dist/{chunk-QI4IXJN7.js → chunk-5CHYEKMH.js} +7 -4
  79. package/dist/chunk-5DMAMQNU.js +168 -0
  80. package/dist/{chunk-MPG2FFQS.js → chunk-5JIG2FP2.js} +1 -1
  81. package/dist/{chunk-UWQ3XCDG.js → chunk-5WK7X5CF.js} +2 -2
  82. package/dist/{chunk-NS7FW3NG.js → chunk-6JAGJN77.js} +2 -2
  83. package/dist/{chunk-NCJNGQUZ.js → chunk-73UE2PHT.js} +1 -1
  84. package/dist/{chunk-JL3K5OTS.js → chunk-7IZWLMTP.js} +1 -1
  85. package/dist/{chunk-FQJWTRCB.js → chunk-A4K2ZT6N.js} +4 -4
  86. package/dist/{chunk-EAIZLNLP.js → chunk-AHXEU5XB.js} +1 -1
  87. package/dist/{chunk-NNEYTOUS.js → chunk-AWRL5FGM.js} +19 -78
  88. package/dist/{chunk-JBMZS5WO.js → chunk-BSPOEYAO.js} +1 -1
  89. package/dist/{chunk-M5TK7JET.js → chunk-CBDPEJOR.js} +5 -5
  90. package/dist/{chunk-2LYJTK47.js → chunk-CEJO7244.js} +2 -2
  91. package/dist/{chunk-JLHSEBNQ.js → chunk-CPXGLSIL.js} +3 -3
  92. package/dist/{chunk-WQXJIMBO.js → chunk-CWITU7DW.js} +2 -2
  93. package/dist/{chunk-T3ASODFG.js → chunk-DGBGIXCC.js} +4 -4
  94. package/dist/{chunk-U3XMIHPD.js → chunk-DLZYAYVM.js} +60 -14
  95. package/dist/{chunk-XCGJPZ6H.js → chunk-DR5BGWFR.js} +2 -2
  96. package/dist/{chunk-BZWKTFEB.js → chunk-ENVRFBTB.js} +2 -2
  97. package/dist/{chunk-KRLR26L2.js → chunk-F3GM6OOP.js} +4 -4
  98. package/dist/{chunk-ENWFSMOS.js → chunk-F7JLZXHC.js} +60 -26
  99. package/dist/{chunk-COMWI7SO.js → chunk-FFLILAG6.js} +1 -1
  100. package/dist/{chunk-NJS4GRIR.js → chunk-GHEWRYMY.js} +18 -2
  101. package/dist/{chunk-7PVUUC3O.js → chunk-GHT4REOS.js} +5 -5
  102. package/dist/{chunk-YDG343II.js → chunk-HANG6NLF.js} +4 -6
  103. package/dist/{chunk-2O5GJFYQ.js → chunk-HCBMPZDT.js} +1 -1
  104. package/dist/chunk-HOGTZLVU.js +244 -0
  105. package/dist/{chunk-LXP6VRFH.js → chunk-I5PIBL56.js} +3 -3
  106. package/dist/chunk-IRHNV4GY.js +388 -0
  107. package/dist/{chunk-F4TCKCKK.js → chunk-ITZVPCBQ.js} +33 -12
  108. package/dist/{chunk-IAPFFVYR.js → chunk-IZVKWBIP.js} +1 -1
  109. package/dist/{chunk-HFYCKIVJ.js → chunk-J7V7LPPX.js} +2 -2
  110. package/dist/{chunk-YUQ7GGAL.js → chunk-JLKUVK5J.js} +1 -1
  111. package/dist/{chunk-WQCSGDRG.js → chunk-JLNXKG3K.js} +1 -1
  112. package/dist/{chunk-ZZBOV6WA.js → chunk-K2BDE2B5.js} +4 -4
  113. package/dist/{chunk-KDJRFJDL.js → chunk-K333WOW4.js} +30 -2
  114. package/dist/{chunk-LUCHTCME.js → chunk-KEZXW3RP.js} +1 -1
  115. package/dist/{chunk-GXU3XRI5.js → chunk-KLQI7QY4.js} +3 -3
  116. package/dist/{chunk-UODVZGBQ.js → chunk-KN7LPTIB.js} +1 -1
  117. package/dist/{chunk-ESKBZN4Q.js → chunk-L4WRH3DL.js} +1 -1
  118. package/dist/{chunk-UISUGXJU.js → chunk-LAOB5BKV.js} +2 -2
  119. package/dist/{chunk-2VXHPSIJ.js → chunk-LQSFP2BV.js} +1 -1
  120. package/dist/{chunk-AYBC6AYP.js → chunk-LSFHEMVI.js} +9 -9
  121. package/dist/{chunk-IQNT6KAE.js → chunk-MCESA5UW.js} +2 -2
  122. package/dist/{chunk-UPMHG7ET.js → chunk-MEIHREPM.js} +1 -1
  123. package/dist/{chunk-D5C56WO3.js → chunk-MOZ2YQ54.js} +1 -1
  124. package/dist/{chunk-CLGB3FGL.js → chunk-MPX3TRMQ.js} +2 -2
  125. package/dist/{chunk-VK5IBXXT.js → chunk-NBY6R37W.js} +61 -232
  126. package/dist/{chunk-RXGTA6YQ.js → chunk-NEYQAEYU.js} +7 -7
  127. package/dist/{chunk-MBHZDXGN.js → chunk-NL35XNLI.js} +1 -1
  128. package/dist/{chunk-IDCJNL7C.js → chunk-NLGMHPEN.js} +1 -1
  129. package/dist/{chunk-N4IJWOIS.js → chunk-NRVV4Y5V.js} +4 -4
  130. package/dist/{chunk-PQBANSH6.js → chunk-NVZR7T4E.js} +1 -1
  131. package/dist/{chunk-BJOU5MBY.js → chunk-NWBHL5PI.js} +1 -1
  132. package/dist/{chunk-VEU6LVBR.js → chunk-OEMX65EA.js} +1 -1
  133. package/dist/{chunk-JHFXCYZP.js → chunk-ONAQAL3O.js} +1 -1
  134. package/dist/{chunk-NBV23TC4.js → chunk-OWQ3CCYJ.js} +12 -13
  135. package/dist/{chunk-4HMKJDPB.js → chunk-PI6V23GF.js} +5 -4
  136. package/dist/{chunk-CJEVAKKC.js → chunk-Q2OAQPWY.js} +1 -1
  137. package/dist/{chunk-C7BVANSU.js → chunk-QLDWASTX.js} +28 -32
  138. package/dist/{chunk-EPWDTS2Q.js → chunk-QMTGMCWB.js} +1 -1
  139. package/dist/{chunk-VI2FJY2M.js → chunk-QP4FHME2.js} +2 -2
  140. package/dist/{chunk-YUS7IS3I.js → chunk-QUNKPR6Y.js} +5 -5
  141. package/dist/{chunk-3NYRIK73.js → chunk-QUZVAHO7.js} +2 -2
  142. package/dist/{chunk-VHKL4S4T.js → chunk-RRHSONV5.js} +2 -2
  143. package/dist/{chunk-HUVSY6NF.js → chunk-RYDHEWYY.js} +2 -2
  144. package/dist/{chunk-QQFZID36.js → chunk-U7WOVXBB.js} +2 -2
  145. package/dist/chunk-UIRWDGMB.js +230 -0
  146. package/dist/{chunk-3JVO6X4W.js → chunk-V2GZMY6O.js} +1 -1
  147. package/dist/{chunk-JBUHOWIV.js → chunk-VHALWCUO.js} +1 -1
  148. package/dist/{chunk-7LIXU3TB.js → chunk-VQAP35DA.js} +20 -18
  149. package/dist/{chunk-5KDROSDV.js → chunk-VRIMTCX2.js} +1 -1
  150. package/dist/{chunk-SUNYJ6YE.js → chunk-VT2B5BHM.js} +1 -1
  151. package/dist/{chunk-UZIJDYDA.js → chunk-VWVJVQDH.js} +2 -2
  152. package/dist/{chunk-TRZ5KA2R.js → chunk-VXIMSRTO.js} +2 -2
  153. package/dist/{chunk-BTPXNV5W.js → chunk-WCXZF42W.js} +1 -1
  154. package/dist/{chunk-6OJJF4WP.js → chunk-XJUUWHVN.js} +1 -1
  155. package/dist/{chunk-F7LU65PQ.js → chunk-Y25OJWOQ.js} +14 -2
  156. package/dist/{chunk-2ORPA23Y.js → chunk-YMXXD2GW.js} +36 -8
  157. package/dist/{chunk-YENDNLAD.js → chunk-YMZHTTOQ.js} +1 -1
  158. package/dist/{chunk-EPLBVWIM.js → chunk-YRVW57UW.js} +139 -125
  159. package/dist/{chunk-BRFH5X7G.js → chunk-Z7VDUS6L.js} +1 -1
  160. package/dist/{chunk-G67R75DG.js → chunk-ZKFPHJIJ.js} +1 -1
  161. package/dist/{chunk-RM6PJ34R.js → chunk-ZVXJSQOR.js} +1 -1
  162. package/dist/{co-activation-OCQPRJ2I.js → co-activation-L6I2LSJO.js} +3 -3
  163. package/dist/{co-occurrence-S62AC2BR.js → co-occurrence-QARWYUAY.js} +3 -3
  164. package/dist/{code-context-index-FCQOPUEA.js → code-context-index-UIYQRDHD.js} +4 -4
  165. package/dist/{content-extractor-SPSH5X33.js → content-extractor-EYRVGD6O.js} +2 -2
  166. package/dist/{conversation-wiki-populator-YU35LNRK.js → conversation-wiki-populator-L7O6F3BB.js} +1 -1
  167. package/dist/{crdt-sync-VS254UOH.js → crdt-sync-R6YROKDH.js} +1 -1
  168. package/dist/{crm-webhook-CST5WBNY.js → crm-webhook-WK3PYJJK.js} +2 -2
  169. package/dist/{cto-delegation-gate-2PY563OA.js → cto-delegation-gate-5JZORQIT.js} +12 -12
  170. package/dist/{daemon-auth-2IZACWSG.js → daemon-auth-2HEOL6VG.js} +2 -2
  171. package/dist/{daemon-orchestration-P34RDHTM.js → daemon-orchestration-BJ3T5MMF.js} +16 -15
  172. package/dist/{db-backup-JEHRFLYW.js → db-backup-EWS52P2W.js} +2 -2
  173. package/dist/{dreaming-UF4LPNLV.js → dreaming-BOSBDRI3.js} +13 -13
  174. package/dist/{entity-boost-T5IYWWDZ.js → entity-boost-6ZVX7DFB.js} +26 -2
  175. package/dist/{exe-drift-DOWP33NY.js → exe-drift-WRE6RADZ.js} +4 -4
  176. package/dist/{exe-export-QCB5UOXQ.js → exe-export-7N5PBCMK.js} +8 -8
  177. package/dist/{exe-import-JHFIXRB5.js → exe-import-YOOE7S3H.js} +8 -8
  178. package/dist/{exe-key-ZVKBTZVI.js → exe-key-GXJSTCX2.js} +4 -4
  179. package/dist/{exe-org-3FNET2J7.js → exe-org-42YMQL75.js} +2 -2
  180. package/dist/{exe-snapshot-LBM3LL3I.js → exe-snapshot-ODUCFW7G.js} +18 -18
  181. package/dist/{fast-db-init-PTUUO2IO.js → fast-db-init-YSR7RMVZ.js} +1 -1
  182. package/dist/{founder-context-BQ5NBDUV.js → founder-context-Q2HUCZX4.js} +2 -2
  183. package/dist/gateway/index.js +9 -9
  184. package/dist/{gateway-client-YGSA5QMC.js → gateway-client-4QXHKN5C.js} +1 -1
  185. package/dist/{git-staleness-5SFBUMPC.js → git-staleness-BJDTCDPC.js} +3 -3
  186. package/dist/{git-task-sweep-XMK5IQXK.js → git-task-sweep-L3U3T5HM.js} +13 -13
  187. package/dist/{global-procedures-W4U257TI.js → global-procedures-HCHEHKY2.js} +4 -4
  188. package/dist/{graph-auto-extract-5ZD4AUSB.js → graph-auto-extract-FP5C76LS.js} +3 -3
  189. package/dist/{hook-integrity-SB53Y7UK.js → hook-integrity-2OU3T6UC.js} +1 -1
  190. package/dist/hooks/bug-report-worker.js +15 -14
  191. package/dist/hooks/codex-stop-task-finalizer.js +15 -14
  192. package/dist/hooks/commit-complete.js +16 -16
  193. package/dist/hooks/error-recall.js +10 -10
  194. package/dist/hooks/exe-heartbeat-hook.js +5 -5
  195. package/dist/hooks/ingest-worker.js +8 -8
  196. package/dist/hooks/ingest.js +13 -13
  197. package/dist/hooks/instructions-loaded.js +7 -7
  198. package/dist/hooks/manifest.json +20 -20
  199. package/dist/hooks/notification.js +6 -6
  200. package/dist/hooks/post-compact.js +15 -15
  201. package/dist/hooks/post-tool-combined.js +7 -7
  202. package/dist/hooks/pre-compact.js +20 -20
  203. package/dist/hooks/pre-tool-use.js +28 -25
  204. package/dist/hooks/prompt-submit.js +62 -31
  205. package/dist/hooks/session-end.js +26 -26
  206. package/dist/hooks/session-start.js +39 -15
  207. package/dist/hooks/stop.js +22 -22
  208. package/dist/hooks/subagent-stop.js +15 -15
  209. package/dist/hooks/summary-worker.js +32 -27
  210. package/dist/index.js +21 -21
  211. package/dist/{installer-2HULECDJ.js → installer-AWMUCRN4.js} +7 -7
  212. package/dist/{installer-BCOJG2SE.js → installer-HB3NH6FG.js} +9 -9
  213. package/dist/{installer-N5XZAFE4.js → installer-RU6EVOBL.js} +6 -6
  214. package/dist/{intercom-queue-RNM6EPGA.js → intercom-queue-A6UJEFIF.js} +1 -1
  215. package/dist/{key-backup-status-OZ2CXUDW.js → key-backup-status-4YKCV4ZV.js} +1 -1
  216. package/dist/lib/agent-config.js +2 -2
  217. package/dist/lib/cloud-sync.js +10 -8
  218. package/dist/lib/config.js +1 -1
  219. package/dist/lib/consolidation.js +8 -8
  220. package/dist/lib/database.js +3 -3
  221. package/dist/lib/db-daemon-client.js +5 -5
  222. package/dist/lib/db.js +3 -3
  223. package/dist/lib/device-registry.js +1 -1
  224. package/dist/lib/embedder.js +4 -4
  225. package/dist/lib/employee-templates.js +5 -5
  226. package/dist/lib/employees.js +3 -3
  227. package/dist/lib/exe-daemon-client.js +3 -3
  228. package/dist/lib/exe-daemon.js +109 -75
  229. package/dist/lib/hybrid-search.js +8 -8
  230. package/dist/lib/identity.js +3 -3
  231. package/dist/lib/keychain.js +1 -1
  232. package/dist/lib/license.js +2 -2
  233. package/dist/lib/messaging.js +13 -13
  234. package/dist/lib/post-tool-memory.js +3 -3
  235. package/dist/lib/reminders.js +4 -4
  236. package/dist/lib/schedules.js +8 -8
  237. package/dist/lib/session-registry.js +5 -5
  238. package/dist/lib/skill-learning.js +5 -5
  239. package/dist/lib/store.js +7 -7
  240. package/dist/lib/task-router.js +4 -4
  241. package/dist/lib/tasks.js +14 -13
  242. package/dist/lib/tmux-routing.js +12 -12
  243. package/dist/lib/token-spend.js +4 -4
  244. package/dist/lib/ws-client.js +1 -1
  245. package/dist/{license-gate-XJDIL6OZ.js → license-gate-6JQQFBHS.js} +3 -3
  246. package/dist/mcp/register-tools.js +68 -67
  247. package/dist/mcp/server.js +70 -69
  248. package/dist/mcp/tools/complete-reminder.js +5 -5
  249. package/dist/mcp/tools/create-reminder.js +5 -5
  250. package/dist/mcp/tools/create-task.js +16 -15
  251. package/dist/mcp/tools/deactivate-behavior.js +6 -6
  252. package/dist/mcp/tools/list-reminders.js +5 -5
  253. package/dist/mcp/tools/list-tasks.js +16 -15
  254. package/dist/mcp/tools/send-message.js +15 -15
  255. package/dist/mcp/tools/update-task.js +15 -14
  256. package/dist/{mcp-http-config-RTXPLRH5.js → mcp-http-config-XIJR5P2Z.js} +4 -4
  257. package/dist/{memory-cards-3FBGRV6J.js → memory-cards-H4BJJ5OK.js} +3 -3
  258. package/dist/{memory-graph-extractor-5D3FU5N5.js → memory-graph-extractor-SDGM3GVR.js} +4 -4
  259. package/dist/{memory-poisoning-defense-P6GL2RMF.js → memory-poisoning-defense-UVU67DGJ.js} +3 -3
  260. package/dist/{memory-queue-FTNBWLS4.js → memory-queue-FNT5WHXP.js} +2 -2
  261. package/dist/{memory-queue-client-DHSHEIHQ.js → memory-queue-client-JZCFYTWQ.js} +5 -5
  262. package/dist/{memory-reflection-5CVV2M3G.js → memory-reflection-GGB5K35L.js} +3 -3
  263. package/dist/{notifications-NV54INLG.js → notifications-P3XQZDTH.js} +12 -12
  264. package/dist/{orchestration-events-TEYCD6GO.js → orchestration-events-25WEKUKH.js} +4 -4
  265. package/dist/{orchestration-phase-SGA7PJ5G.js → orchestration-phase-C26XVKLZ.js} +2 -2
  266. package/dist/{orchestrator-JCNHGP6M.js → orchestrator-VIXTY4E4.js} +14 -14
  267. package/dist/{pipeline-router-IX635D3U.js → pipeline-router-S5PE5U6B.js} +4 -4
  268. package/dist/{plan-limits-H65VL6LC.js → plan-limits-DGIVM42H.js} +5 -5
  269. package/dist/{prediction-log-OMWHW7FL.js → prediction-log-DOEOHDHS.js} +1 -1
  270. package/dist/{project-boot-WMI6CWRX.js → project-boot-4ZL2W7DN.js} +12 -2
  271. package/dist/{projection-worker-JMGAPKH6.js → projection-worker-GG2W5OM3.js} +3 -3
  272. package/dist/{push-notifications-E2XXEWJZ.js → push-notifications-AMHVR6DF.js} +2 -2
  273. package/dist/{reranker-T4A2M7K2.js → reranker-UCPLQZE2.js} +2 -2
  274. package/dist/{review-polling-SAQ24T6L.js → review-polling-P2MWEXLR.js} +13 -13
  275. package/dist/runtime/index.js +15 -15
  276. package/dist/{session-events-JNUK47KH.js → session-events-5CD66R6U.js} +13 -13
  277. package/dist/{session-kill-telemetry-GLCDARKV.js → session-kill-telemetry-7FBHTEDN.js} +4 -4
  278. package/dist/{session-scope-UR7OFFOB.js → session-scope-VMIPAZU7.js} +12 -12
  279. package/dist/{setup-wizard-GQYG36KS.js → setup-wizard-BNR47URR.js} +3 -3
  280. package/dist/{shard-manager-G6MHCO7X.js → shard-manager-VGA2TYHM.js} +2 -2
  281. package/dist/{skill-refinement-WWWFGTUS.js → skill-refinement-NRG4WWRW.js} +3 -3
  282. package/dist/stack-release-PFZI22WC.js +521 -0
  283. package/dist/{stack-update-NO5MNARG.js → stack-update-JIWJGGLX.js} +3 -3
  284. package/dist/{steward-gate-TAD7GEVL.js → steward-gate-L7DJMF4C.js} +4 -4
  285. package/dist/{task-enforcement-2LI5KWFE.js → task-enforcement-XQL77PZH.js} +52 -12
  286. package/dist/{task-scope-AYK6BVC7.js → task-scope-R3XKBIHL.js} +12 -12
  287. package/dist/{tasks-crud-OD75EH2G.js → tasks-crud-DQOG2NPG.js} +12 -12
  288. package/dist/tasks-notify-4EQYG52H.js +37 -0
  289. package/dist/{tasks-review-CC2EGWBL.js → tasks-review-XPFJ4DSJ.js} +12 -12
  290. package/dist/{telemetry-upload-H6BU6QF7.js → telemetry-upload-OT5B5HUY.js} +7 -7
  291. package/dist/{token-budget-6TK55BBU.js → token-budget-D2LQKCAV.js} +3 -3
  292. package/dist/{tool-capability-index-WIV4K3FB.js → tool-capability-index-FAJ5ZHDF.js} +1 -1
  293. package/dist/{tool-telemetry-E7NWXX5R.js → tool-telemetry-QIF5BCLF.js} +1 -1
  294. package/dist/tui/App.js +26 -26
  295. package/dist/{tui-data-ROOXTJQ5.js → tui-data-UEV2QOR3.js} +108 -12
  296. package/dist/{whatsapp-config-W63RQ3AU.js → whatsapp-config-GOSELKTE.js} +7 -0
  297. package/dist/{worker-gate-MOQZ2D34.js → worker-gate-PRCKA23W.js} +2 -2
  298. package/dist/{workflow-engine-4MQJI5F2.js → workflow-engine-7X6LLH3M.js} +2 -2
  299. package/dist/{worktree-K2GDO4QX.js → worktree-RICSCT2S.js} +5 -5
  300. package/package.json +1 -1
  301. package/release-notes.json +144 -304
  302. package/stack.release.json +4 -3
  303. package/dist/preflight-EAH2MI76.js +0 -287
  304. /package/dist/{chunk-P2JDWX67.js → chunk-AQBEG33D.js} +0 -0
  305. /package/dist/{chunk-A4TPCHMA.js → chunk-B7JGEDVE.js} +0 -0
  306. /package/dist/{chunk-RX2KGETT.js → chunk-JXI4XUTV.js} +0 -0
  307. /package/dist/{chunk-SNYDRHV3.js → chunk-U3DUFHOT.js} +0 -0
  308. /package/dist/{chunk-YGJTKLGM.js → chunk-VBPC7IC7.js} +0 -0
  309. /package/dist/{chunk-HTUJBTBM.js → chunk-VUS6WXQ3.js} +0 -0
  310. /package/dist/{chunk-HFF6YG7R.js → chunk-XAYRZHLV.js} +0 -0
  311. /package/dist/{core-memory-67AVQ3Z7.js → core-memory-4KAIKQRQ.js} +0 -0
  312. /package/dist/{message-queue-client-KAJN6TIJ.js → message-queue-client-S6W5VMJV.js} +0 -0
  313. /package/dist/{oauth-server-QEXRSXEP.js → oauth-server-2ESBZB7F.js} +0 -0
  314. /package/dist/{webhook-pipe-LY4XEDL7.js → webhook-pipe-ZRUVOG5H.js} +0 -0
  315. /package/dist/{wiki-acl-AR7RIMRY.js → wiki-acl-MFLSS6DE.js} +0 -0
  316. /package/dist/{wiki-client-MAFYBXCQ.js → wiki-client-GBPR45BQ.js} +0 -0
@@ -0,0 +1,168 @@
1
+ // src/bin/vps-backup.ts
2
+ import { spawnSync } from "child_process";
3
+ import { existsSync, mkdirSync, readdirSync, statSync, unlinkSync } from "fs";
4
+ import path from "path";
5
+ var BACKUP_DIR = "/opt/exe-stack/backups";
6
+ var DEFAULT_DATABASE_URL = "postgres://exe@localhost:5432/exedb";
7
+ var MAX_SNAPSHOTS = 28;
8
+ var KEEP_DAYS = 7;
9
+ function runPgBackup(tag) {
10
+ mkdirSync(BACKUP_DIR, { recursive: true });
11
+ const timestamp = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
12
+ const filename = tag ? `pg-${tag}-${timestamp}.dump` : `pg-${timestamp}.dump`;
13
+ const filepath = path.join(BACKUP_DIR, filename);
14
+ const databaseUrl = process.env.DATABASE_URL || DEFAULT_DATABASE_URL;
15
+ const result = spawnSync("pg_dump", ["-Fc", "-d", databaseUrl, "-f", filepath], {
16
+ stdio: ["pipe", "pipe", "pipe"],
17
+ timeout: 3e5,
18
+ // 5 minutes max
19
+ env: { ...process.env }
20
+ });
21
+ if (result.status !== 0) {
22
+ const stderr = result.stderr?.toString() || "";
23
+ throw new Error(`pg_dump failed (exit ${result.status}): ${stderr}`);
24
+ }
25
+ const size = existsSync(filepath) ? statSync(filepath).size : 0;
26
+ console.log(`[vps-backup] \u2713 Backup created: ${filepath} (${formatBytes(size)})`);
27
+ return filepath;
28
+ }
29
+ function cleanOldBackups(keepDays = KEEP_DAYS) {
30
+ if (!existsSync(BACKUP_DIR)) return 0;
31
+ const files = readdirSync(BACKUP_DIR).filter((f) => f.startsWith("pg-") && f.endsWith(".dump")).map((f) => ({
32
+ name: f,
33
+ path: path.join(BACKUP_DIR, f),
34
+ mtime: statSync(path.join(BACKUP_DIR, f)).mtimeMs
35
+ })).sort((a, b) => b.mtime - a.mtime);
36
+ const cutoff = Date.now() - keepDays * 24 * 60 * 60 * 1e3;
37
+ let removed = 0;
38
+ for (let i = 0; i < files.length; i++) {
39
+ const file = files[i];
40
+ if (file.mtime >= cutoff && i < MAX_SNAPSHOTS) continue;
41
+ if (file.name.includes("pre-deploy-") && file.mtime >= cutoff) continue;
42
+ try {
43
+ unlinkSync(file.path);
44
+ removed++;
45
+ console.log(`[vps-backup] Removed old backup: ${file.name}`);
46
+ } catch (err) {
47
+ console.warn(`[vps-backup] Failed to remove ${file.name}: ${err instanceof Error ? err.message : err}`);
48
+ }
49
+ }
50
+ if (removed > 0) {
51
+ console.log(`[vps-backup] \u2713 Cleaned ${removed} old backup(s)`);
52
+ } else {
53
+ console.log("[vps-backup] \u2713 No old backups to clean");
54
+ }
55
+ return removed;
56
+ }
57
+ function preDeployBackup(version) {
58
+ const sanitized = version.replace(/[^a-zA-Z0-9._-]/g, "_");
59
+ console.log(`[vps-backup] Creating pre-deploy backup for version ${version}...`);
60
+ return runPgBackup(`pre-deploy-${sanitized}`);
61
+ }
62
+ function setupCron() {
63
+ const which = spawnSync("which", ["exe-os"], { encoding: "utf8", timeout: 5e3 });
64
+ const exeOsBin = which.stdout?.trim() || "/usr/local/bin/exe-os";
65
+ const cronLine = `0 */6 * * * ${exeOsBin} vps-backup --clean 2>&1 | tail -5 >> /var/log/exe-backup.log`;
66
+ const cronComment = "# exe-os automated postgres backup (every 6 hours)";
67
+ const current = spawnSync("crontab", ["-l"], {
68
+ encoding: "utf8",
69
+ stdio: ["pipe", "pipe", "pipe"]
70
+ });
71
+ const existingCron = current.status === 0 ? current.stdout : "";
72
+ if (existingCron.includes("exe-os vps-backup") || existingCron.includes("exe-os vps-backup")) {
73
+ console.log("[vps-backup] \u2713 Cron job already installed");
74
+ return;
75
+ }
76
+ const newCron = existingCron.trimEnd() + "\n\n" + cronComment + "\n" + cronLine + "\n";
77
+ const install = spawnSync("crontab", ["-"], {
78
+ input: newCron,
79
+ encoding: "utf8",
80
+ stdio: ["pipe", "pipe", "pipe"]
81
+ });
82
+ if (install.status !== 0) {
83
+ throw new Error(`Failed to install cron: ${install.stderr}`);
84
+ }
85
+ console.log("[vps-backup] \u2713 Cron job installed (every 6 hours)");
86
+ console.log(`[vps-backup] ${cronLine}`);
87
+ }
88
+ function listBackups() {
89
+ if (!existsSync(BACKUP_DIR)) {
90
+ console.log("[vps-backup] No backups directory found");
91
+ return;
92
+ }
93
+ const files = readdirSync(BACKUP_DIR).filter((f) => f.startsWith("pg-") && f.endsWith(".dump")).map((f) => {
94
+ const stat = statSync(path.join(BACKUP_DIR, f));
95
+ return { name: f, size: stat.size, mtime: stat.mtimeMs };
96
+ }).sort((a, b) => b.mtime - a.mtime);
97
+ if (files.length === 0) {
98
+ console.log("[vps-backup] No backups found");
99
+ return;
100
+ }
101
+ console.log(`
102
+ Backups in ${BACKUP_DIR} (${files.length} total):
103
+ `);
104
+ for (const f of files) {
105
+ const age = formatAge(Date.now() - f.mtime);
106
+ console.log(` ${f.name} ${formatBytes(f.size).padStart(10)} ${age} ago`);
107
+ }
108
+ console.log("");
109
+ }
110
+ function formatBytes(bytes) {
111
+ if (bytes < 1024) return `${bytes} B`;
112
+ if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
113
+ if (bytes < 1024 * 1024 * 1024) return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
114
+ return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;
115
+ }
116
+ function formatAge(ms) {
117
+ const hours = Math.floor(ms / (1e3 * 60 * 60));
118
+ if (hours < 1) return `${Math.floor(ms / (1e3 * 60))}m`;
119
+ if (hours < 48) return `${hours}h`;
120
+ return `${Math.floor(hours / 24)}d`;
121
+ }
122
+ async function main(args) {
123
+ if (args.includes("--help") || args.includes("-h")) {
124
+ console.log(`
125
+ exe-os vps-backup \u2014 Postgres backup manager
126
+
127
+ Usage:
128
+ exe-os vps-backup Run backup now
129
+ exe-os vps-backup --setup Install cron job (every 6 hours)
130
+ exe-os vps-backup --clean Run backup + clean old backups
131
+ exe-os vps-backup --list List current backups
132
+ exe-os vps-backup --pre-deploy <version> Pre-deploy snapshot
133
+ `);
134
+ return;
135
+ }
136
+ if (args.includes("--setup")) {
137
+ setupCron();
138
+ return;
139
+ }
140
+ if (args.includes("--list")) {
141
+ listBackups();
142
+ return;
143
+ }
144
+ const preDeployIdx = args.indexOf("--pre-deploy");
145
+ if (preDeployIdx !== -1) {
146
+ const version = args[preDeployIdx + 1];
147
+ if (!version) {
148
+ console.error("[vps-backup] --pre-deploy requires a version argument");
149
+ process.exitCode = 1;
150
+ return;
151
+ }
152
+ preDeployBackup(version);
153
+ return;
154
+ }
155
+ runPgBackup();
156
+ if (args.includes("--clean")) {
157
+ cleanOldBackups();
158
+ }
159
+ }
160
+
161
+ export {
162
+ runPgBackup,
163
+ cleanOldBackups,
164
+ preDeployBackup,
165
+ setupCron,
166
+ listBackups,
167
+ main
168
+ };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isCoordinatorRole
3
- } from "./chunk-2LYJTK47.js";
3
+ } from "./chunk-CEJO7244.js";
4
4
 
5
5
  // src/lib/task-router.ts
6
6
  import { randomUUID } from "crypto";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  readMcpHttpEvents,
3
3
  summarizeMcpTransport
4
- } from "./chunk-UODVZGBQ.js";
4
+ } from "./chunk-KN7LPTIB.js";
5
5
  import {
6
6
  EXE_AI_DIR
7
- } from "./chunk-TRZ5KA2R.js";
7
+ } from "./chunk-VXIMSRTO.js";
8
8
  import {
9
9
  isMainModule
10
10
  } from "./chunk-6Y4B3QF6.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  sendMessage
3
- } from "./chunk-T3ASODFG.js";
3
+ } from "./chunk-DGBGIXCC.js";
4
4
  import {
5
5
  getActiveAgent
6
- } from "./chunk-IQNT6KAE.js";
6
+ } from "./chunk-MCESA5UW.js";
7
7
 
8
8
  // src/mcp/tools/send-message.ts
9
9
  import { z } from "zod";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getClient
3
- } from "./chunk-2LYJTK47.js";
3
+ } from "./chunk-CEJO7244.js";
4
4
 
5
5
  // src/lib/token-spend.ts
6
6
  import { readdir, stat } from "fs/promises";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  EXE_AI_DIR
3
- } from "./chunk-TRZ5KA2R.js";
3
+ } from "./chunk-VXIMSRTO.js";
4
4
  import {
5
5
  enforcePrivateFileSync,
6
6
  ensurePrivateDirSync
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getClient
3
- } from "./chunk-2LYJTK47.js";
3
+ } from "./chunk-CEJO7244.js";
4
4
 
5
5
  // src/lib/pipeline-router.ts
6
6
  import crypto from "crypto";
@@ -116,12 +116,12 @@ async function sinkCRM(msg, agentResponse, agentName) {
116
116
  }
117
117
  async function sinkWiki(msg, agentResponse) {
118
118
  try {
119
- const { createWikiClient } = await import("./wiki-client-MAFYBXCQ.js");
119
+ const { createWikiClient } = await import("./wiki-client-GBPR45BQ.js");
120
120
  const client = await createWikiClient();
121
121
  if (!client) return false;
122
122
  const content = msg.text ?? "";
123
123
  if (content.length < 50) return false;
124
- const { chatInWorkspace } = await import("./wiki-client-MAFYBXCQ.js");
124
+ const { chatInWorkspace } = await import("./wiki-client-GBPR45BQ.js");
125
125
  const ingestText = [
126
126
  `[${msg.platform}] Message from ${msg.senderName ?? msg.senderId} (${msg.timestamp}):`,
127
127
  content,
@@ -149,7 +149,7 @@ async function sinkEntityExtraction(msg, agentResponse, agentName) {
149
149
  const client = getClient();
150
150
  const memoryId = `conv:${msg.messageId}`;
151
151
  await storeExtraction(client, extraction, memoryId, msg.timestamp);
152
- import("./conversation-wiki-populator-YU35LNRK.js").then(
152
+ import("./conversation-wiki-populator-L7O6F3BB.js").then(
153
153
  ({ populateWikiFromExtraction }) => populateWikiFromExtraction(extraction, msg, agentResponse, agentName)
154
154
  ).catch((err) => {
155
155
  process.stderr.write(
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  MODELS_DIR
3
- } from "./chunk-TRZ5KA2R.js";
3
+ } from "./chunk-VXIMSRTO.js";
4
4
 
5
5
  // src/lib/reranker.ts
6
6
  import path from "path";
@@ -1,11 +1,10 @@
1
1
  import {
2
2
  EXE_AI_DIR
3
- } from "./chunk-TRZ5KA2R.js";
3
+ } from "./chunk-VXIMSRTO.js";
4
4
 
5
5
  // src/lib/db-backup.ts
6
- import { copyFileSync, existsSync, mkdirSync, readdirSync, unlinkSync, statSync } from "fs";
6
+ import { existsSync, readdirSync, unlinkSync, statSync } from "fs";
7
7
  import { copyFile, mkdir, unlink } from "fs/promises";
8
- import { execFileSync } from "child_process";
9
8
  import path from "path";
10
9
  var BACKUP_DIR = path.join(EXE_AI_DIR, "backups");
11
10
  var DEFAULT_KEEP_DAYS = 3;
@@ -17,60 +16,8 @@ function findActiveDb() {
17
16
  }
18
17
  return null;
19
18
  }
20
- function createBackup(reason = "manual") {
21
- const dbPath = findActiveDb();
22
- if (!dbPath) return null;
23
- mkdirSync(BACKUP_DIR, { recursive: true });
24
- const dbName = path.basename(dbPath, ".db");
25
- const timestamp = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-").slice(0, 19);
26
- const backupName = `${dbName}-${reason}-${timestamp}.db`;
27
- const backupPath = path.join(BACKUP_DIR, backupName);
28
- try {
29
- execFileSync("sqlite3", [dbPath, "PRAGMA wal_checkpoint(TRUNCATE);"], {
30
- timeout: 3e4,
31
- stdio: ["pipe", "pipe", "pipe"]
32
- });
33
- } catch {
34
- process.stderr.write(`[db-backup] WAL checkpoint skipped (sqlite3 CLI unavailable or encrypted DB)
35
- `);
36
- }
37
- copyFileSync(dbPath, backupPath);
38
- try {
39
- const result = execFileSync("sqlite3", [backupPath, "PRAGMA quick_check;"], {
40
- encoding: "utf8",
41
- timeout: 1e4,
42
- stdio: ["pipe", "pipe", "pipe"]
43
- }).trim();
44
- if (result !== "ok") {
45
- process.stderr.write(`[db-backup] WARNING: backup failed quick_check (${reason}): ${result}
46
- `);
47
- try {
48
- unlinkSync(backupPath);
49
- } catch {
50
- }
51
- return null;
52
- }
53
- } catch (err) {
54
- process.stderr.write(
55
- `[db-backup] Backup validation skipped: ${err instanceof Error ? err.message : String(err)}
56
- `
57
- );
58
- }
59
- const walPath = dbPath + "-wal";
60
- if (existsSync(walPath)) {
61
- try {
62
- copyFileSync(walPath, backupPath + "-wal");
63
- } catch {
64
- }
65
- }
66
- const shmPath = dbPath + "-shm";
67
- if (existsSync(shmPath)) {
68
- try {
69
- copyFileSync(shmPath, backupPath + "-shm");
70
- } catch {
71
- }
72
- }
73
- return backupPath;
19
+ async function createBackup(reason = "manual") {
20
+ return createBackupAsync(reason);
74
21
  }
75
22
  async function createBackupAsync(reason = "manual") {
76
23
  const dbPath = findActiveDb();
@@ -97,16 +44,12 @@ async function createBackupAsync(reason = "manual") {
97
44
  }
98
45
  await copyFile(dbPath, backupPath);
99
46
  try {
100
- const { execFile } = await import("child_process");
101
- const { promisify } = await import("util");
102
- const execFileAsync = promisify(execFile);
103
- const { stdout } = await execFileAsync("sqlite3", [backupPath, "PRAGMA quick_check;"], {
104
- encoding: "utf8",
105
- timeout: 1e4
106
- });
107
- const result = String(stdout ?? "").trim();
108
- if (result !== "ok") {
109
- process.stderr.write(`[db-backup] WARNING: backup failed quick_check (${reason}): ${result}
47
+ const { getClient } = await import("./lib/database.js");
48
+ const client = getClient();
49
+ const chk = await client.execute("PRAGMA quick_check;");
50
+ const result = String(chk.rows[0]?.quick_check ?? chk.rows[0]?.[0] ?? "").trim();
51
+ if (result && result !== "ok") {
52
+ process.stderr.write(`[db-backup] WARNING: backup source failed quick_check (${reason}): ${result}
110
53
  `);
111
54
  try {
112
55
  await unlink(backupPath);
@@ -114,11 +57,9 @@ async function createBackupAsync(reason = "manual") {
114
57
  }
115
58
  return null;
116
59
  }
117
- } catch (err) {
118
- process.stderr.write(
119
- `[db-backup] Backup validation skipped: ${err instanceof Error ? err.message : String(err)}
120
- `
121
- );
60
+ } catch {
61
+ process.stderr.write(`[db-backup] Backup validation skipped (encrypted DB or CLI context) \u2014 proceeding with checkpoint-consistent copy.
62
+ `);
122
63
  }
123
64
  const walPath = dbPath + "-wal";
124
65
  if (existsSync(walPath)) {
@@ -180,25 +121,25 @@ function getLatestBackup() {
180
121
  const backups = listBackups();
181
122
  return backups.length > 0 ? backups[0].path : null;
182
123
  }
183
- function restoreBackup(backupPath) {
124
+ async function restoreBackup(backupPath) {
184
125
  const dbPath = findActiveDb();
185
126
  if (!dbPath) {
186
127
  const target = path.join(EXE_AI_DIR, DB_NAMES[0]);
187
128
  const source2 = backupPath ?? getLatestBackup();
188
129
  if (!source2 || !existsSync(source2)) return null;
189
- copyFileSync(source2, target);
130
+ await copyFile(source2, target);
190
131
  return { restored: path.basename(source2), preRestoreBackup: null };
191
132
  }
192
133
  const source = backupPath ?? getLatestBackup();
193
134
  if (!source || !existsSync(source)) return null;
194
135
  if (path.resolve(source) === path.resolve(dbPath)) return null;
195
- const preRestoreBackup = createBackup("pre-restore");
196
- copyFileSync(source, dbPath);
136
+ const preRestoreBackup = await createBackup("pre-restore");
137
+ await copyFile(source, dbPath);
197
138
  const walPath = source + "-wal";
198
139
  const shmPath = source + "-shm";
199
140
  if (existsSync(walPath)) {
200
141
  try {
201
- copyFileSync(walPath, dbPath + "-wal");
142
+ await copyFile(walPath, dbPath + "-wal");
202
143
  } catch {
203
144
  }
204
145
  } else {
@@ -209,7 +150,7 @@ function restoreBackup(backupPath) {
209
150
  }
210
151
  if (existsSync(shmPath)) {
211
152
  try {
212
- copyFileSync(shmPath, dbPath + "-shm");
153
+ await copyFile(shmPath, dbPath + "-shm");
213
154
  } catch {
214
155
  }
215
156
  } else {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  completeReminder
3
- } from "./chunk-YENDNLAD.js";
3
+ } from "./chunk-YMZHTTOQ.js";
4
4
 
5
5
  // src/mcp/tools/complete-reminder.ts
6
6
  import { z } from "zod";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  getMasterKey,
3
3
  setMasterKey
4
- } from "./chunk-KDJRFJDL.js";
4
+ } from "./chunk-K333WOW4.js";
5
5
  import {
6
6
  LEGACY_LANCE_PATH,
7
7
  MODELS_DIR,
8
8
  loadConfig,
9
9
  saveConfig
10
- } from "./chunk-TRZ5KA2R.js";
10
+ } from "./chunk-VXIMSRTO.js";
11
11
  import {
12
12
  atomicWriteJsonSync,
13
13
  atomicWriteSync
@@ -380,7 +380,7 @@ async function runSetupWizard(opts = {}) {
380
380
  "Setup cancelled: recovery phrase was not confirmed. Save the 24-word phrase before continuing \u2014 it is required to recover encrypted memories."
381
381
  );
382
382
  }
383
- const { markKeyBackupConfirmed } = await import("./key-backup-status-OZ2CXUDW.js");
383
+ const { markKeyBackupConfirmed } = await import("./key-backup-status-4YKCV4ZV.js");
384
384
  markKeyBackupConfirmed("setup-wizard");
385
385
  }
386
386
  state.completedSteps.push(1);
@@ -534,7 +534,7 @@ async function runSetupWizard(opts = {}) {
534
534
  if (cloudConfig) {
535
535
  config.cloud = cloudConfig;
536
536
  }
537
- const { applyDefaultOrchestrationPhase } = await import("./orchestration-phase-SGA7PJ5G.js");
537
+ const { applyDefaultOrchestrationPhase } = await import("./orchestration-phase-C26XVKLZ.js");
538
538
  applyDefaultOrchestrationPhase(config);
539
539
  await saveConfig(config);
540
540
  log("");
@@ -863,7 +863,7 @@ async function runSetupWizard(opts = {}) {
863
863
  log(" Phase 3: Parallel org \u2014 specialists execute in parallel with reviews");
864
864
  log("");
865
865
  const unlockExecutives = (await askOrEnv("Unlock Phase 2 executives now? (y/N): ", void 0, "n")).toLowerCase() === "y";
866
- const { setOrchestrationPhase } = await import("./orchestration-phase-SGA7PJ5G.js");
866
+ const { setOrchestrationPhase } = await import("./orchestration-phase-C26XVKLZ.js");
867
867
  if (!unlockExecutives) {
868
868
  await setOrchestrationPhase("phase_1_coo", "setup-wizard");
869
869
  log("");
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  listBackups
3
- } from "./chunk-NNEYTOUS.js";
3
+ } from "./chunk-AWRL5FGM.js";
4
4
  import {
5
5
  EMBEDDING_DIM
6
6
  } from "./chunk-FXU7JOXK.js";
7
7
  import {
8
8
  EXE_AI_DIR,
9
9
  loadConfigSync
10
- } from "./chunk-TRZ5KA2R.js";
10
+ } from "./chunk-VXIMSRTO.js";
11
11
  import {
12
12
  atomicWriteJson
13
13
  } from "./chunk-LYH5HE24.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  routeTask
3
- } from "./chunk-MPG2FFQS.js";
3
+ } from "./chunk-5JIG2FP2.js";
4
4
  import {
5
5
  createTaskCore,
6
6
  employeeSessionName,
@@ -9,11 +9,11 @@ import {
9
9
  isEmployeeAlive,
10
10
  sessionScopeFilter,
11
11
  updateTaskStatus
12
- } from "./chunk-ENWFSMOS.js";
12
+ } from "./chunk-F7JLZXHC.js";
13
13
  import {
14
14
  DEFAULT_COORDINATOR_TEMPLATE_NAME,
15
15
  getCoordinatorName
16
- } from "./chunk-2LYJTK47.js";
16
+ } from "./chunk-CEJO7244.js";
17
17
 
18
18
  // src/runtime/orchestrator.ts
19
19
  var STALE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  vectorToBlob
3
- } from "./chunk-NQU2RTCP.js";
3
+ } from "./chunk-222SI7QC.js";
4
4
  import {
5
5
  extractKeywords,
6
6
  keywordsToString
7
7
  } from "./chunk-CHCA3ZM2.js";
8
8
  import {
9
9
  isCoordinatorName
10
- } from "./chunk-2LYJTK47.js";
10
+ } from "./chunk-CEJO7244.js";
11
11
 
12
12
  // src/lib/consolidation.ts
13
13
  import { randomUUID } from "crypto";
@@ -4,17 +4,17 @@ import {
4
4
  resolveExeSession,
5
5
  sendIntercom,
6
6
  strictSessionScopeFilter
7
- } from "./chunk-ENWFSMOS.js";
7
+ } from "./chunk-F7JLZXHC.js";
8
8
  import {
9
9
  parseMessage,
10
10
  serializeMessage
11
11
  } from "./chunk-4JERP7NT.js";
12
12
  import {
13
13
  recordOrchestrationEventBestEffort
14
- } from "./chunk-2O5GJFYQ.js";
14
+ } from "./chunk-HCBMPZDT.js";
15
15
  import {
16
16
  getClient
17
- } from "./chunk-2LYJTK47.js";
17
+ } from "./chunk-CEJO7244.js";
18
18
 
19
19
  // src/lib/messaging.ts
20
20
  import crypto from "crypto";
@@ -153,7 +153,7 @@ async function deliverLocalMessage(messageId) {
153
153
  if (!isCOO && !isEmployeeAlive(sessionName)) {
154
154
  throw new Error("Session not running \u2014 message stays queued");
155
155
  }
156
- const intercomResult = sendIntercom(sessionName, { force: true });
156
+ const intercomResult = sendIntercom(sessionName, { force: true, reason: "message" });
157
157
  process.stderr.write(`[messaging] intercom result for ${sessionName}: ${intercomResult}
158
158
  `);
159
159
  await client.execute({