@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
@@ -1,225 +1,15 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ checkCRM,
4
+ checkGateway,
5
+ checkGoTrue,
6
+ checkPostgres,
7
+ checkRawEvents,
8
+ logResult,
9
+ main,
10
+ runHealthGate
11
+ } from "../chunk-UIRWDGMB.js";
2
12
  import "../chunk-MLKGABMK.js";
3
-
4
- // src/bin/vps-health-gate.ts
5
- import { spawnSync } from "child_process";
6
- import { appendFileSync, existsSync, mkdirSync, readdirSync } from "fs";
7
- import http from "http";
8
- import path from "path";
9
- var DEPLOY_LOG = "/opt/exe-stack/deploy-log.jsonl";
10
- var BACKUP_DIR = "/opt/exe-stack/backups";
11
- async function checkCRM() {
12
- const start = Date.now();
13
- try {
14
- const status = await httpGet("http://localhost:3000/api");
15
- return {
16
- check: "crm",
17
- status: status >= 200 && status < 400 ? "pass" : "fail",
18
- message: status >= 200 && status < 400 ? `CRM healthy (HTTP ${status})` : `CRM unhealthy (HTTP ${status})`,
19
- durationMs: Date.now() - start
20
- };
21
- } catch (err) {
22
- return {
23
- check: "crm",
24
- status: "fail",
25
- message: `CRM unreachable: ${err instanceof Error ? err.message : err}`,
26
- durationMs: Date.now() - start
27
- };
28
- }
29
- }
30
- async function checkGateway() {
31
- const start = Date.now();
32
- try {
33
- const status = await httpGet("http://localhost:3100/health");
34
- return {
35
- check: "gateway",
36
- status: status >= 200 && status < 300 ? "pass" : "fail",
37
- message: status >= 200 && status < 300 ? `Gateway healthy (HTTP ${status})` : `Gateway unhealthy (HTTP ${status})`,
38
- durationMs: Date.now() - start
39
- };
40
- } catch (err) {
41
- return {
42
- check: "gateway",
43
- status: "fail",
44
- message: `Gateway unreachable: ${err instanceof Error ? err.message : err}`,
45
- durationMs: Date.now() - start
46
- };
47
- }
48
- }
49
- function checkPostgres() {
50
- const start = Date.now();
51
- const databaseUrl = process.env.DATABASE_URL || "postgres://exe@localhost:5432/exedb";
52
- const result = spawnSync("psql", [databaseUrl, "-c", "SELECT 1"], {
53
- encoding: "utf8",
54
- stdio: ["pipe", "pipe", "pipe"],
55
- timeout: 1e4
56
- });
57
- return {
58
- check: "postgres",
59
- status: result.status === 0 ? "pass" : "fail",
60
- message: result.status === 0 ? "Postgres responding" : `Postgres failed: ${result.stderr?.trim() || `exit ${result.status}`}`,
61
- durationMs: Date.now() - start
62
- };
63
- }
64
- function checkRawEvents() {
65
- const start = Date.now();
66
- const databaseUrl = process.env.DATABASE_URL || "postgres://exe@localhost:5432/exedb";
67
- const result = spawnSync(
68
- "psql",
69
- [databaseUrl, "-t", "-c", "SELECT count(*) FROM raw.raw_events"],
70
- {
71
- encoding: "utf8",
72
- stdio: ["pipe", "pipe", "pipe"],
73
- timeout: 1e4
74
- }
75
- );
76
- if (result.status !== 0) {
77
- return {
78
- check: "raw_events",
79
- status: "fail",
80
- message: `raw.raw_events query failed: ${result.stderr?.trim() || `exit ${result.status}`}`,
81
- durationMs: Date.now() - start
82
- };
83
- }
84
- const count = parseInt(result.stdout?.trim() || "0", 10);
85
- return {
86
- check: "raw_events",
87
- status: count > 0 ? "pass" : "fail",
88
- message: count > 0 ? `raw.raw_events has ${count} rows` : "raw.raw_events is empty",
89
- durationMs: Date.now() - start
90
- };
91
- }
92
- async function checkGoTrue() {
93
- const start = Date.now();
94
- try {
95
- const status = await httpGet("http://localhost:9999/health");
96
- return {
97
- check: "gotrue",
98
- status: status >= 200 && status < 300 ? "pass" : "fail",
99
- message: status >= 200 && status < 300 ? `GoTrue healthy (HTTP ${status})` : `GoTrue unhealthy (HTTP ${status})`,
100
- durationMs: Date.now() - start
101
- };
102
- } catch (err) {
103
- return {
104
- check: "gotrue",
105
- status: "fail",
106
- message: `GoTrue unreachable: ${err instanceof Error ? err.message : err}`,
107
- durationMs: Date.now() - start
108
- };
109
- }
110
- }
111
- async function runHealthGate() {
112
- console.log("[health-gate] Running post-deploy health checks...\n");
113
- const results = [];
114
- results.push(checkPostgres());
115
- results.push(checkRawEvents());
116
- results.push(await checkCRM());
117
- results.push(await checkGateway());
118
- results.push(await checkGoTrue());
119
- const passed = results.every((r) => r.status === "pass");
120
- for (const r of results) {
121
- const icon = r.status === "pass" ? "\u2713" : "\u2717";
122
- const color = r.status === "pass" ? "\x1B[32m" : "\x1B[31m";
123
- console.log(` ${color}${icon}\x1B[0m ${r.check.padEnd(12)} ${r.message} (${r.durationMs}ms)`);
124
- }
125
- console.log("");
126
- const result = {
127
- passed,
128
- results,
129
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
130
- };
131
- return result;
132
- }
133
- function logResult(result) {
134
- mkdirSync(path.dirname(DEPLOY_LOG), { recursive: true });
135
- const line = JSON.stringify({
136
- ...result,
137
- type: "health_gate"
138
- }) + "\n";
139
- try {
140
- appendFileSync(DEPLOY_LOG, line);
141
- console.log(`[health-gate] Result logged to ${DEPLOY_LOG}`);
142
- } catch (err) {
143
- console.warn(`[health-gate] Failed to write deploy log: ${err instanceof Error ? err.message : err}`);
144
- }
145
- }
146
- function restorePreDeployBackup() {
147
- if (!existsSync(BACKUP_DIR)) return false;
148
- const backups = readdirSync(BACKUP_DIR).filter((f) => f.startsWith("pg-pre-deploy-") && f.endsWith(".dump")).sort().reverse();
149
- if (backups.length === 0) {
150
- console.warn("[health-gate] No pre-deploy backup found to restore");
151
- return false;
152
- }
153
- const latest = backups[0];
154
- const filepath = path.join(BACKUP_DIR, latest);
155
- const databaseUrl = process.env.DATABASE_URL || "postgres://exe@localhost:5432/exedb";
156
- console.log(`[health-gate] Restoring pre-deploy backup: ${latest}`);
157
- const result = spawnSync("pg_restore", ["-d", databaseUrl, "--clean", "--if-exists", filepath], {
158
- encoding: "utf8",
159
- stdio: ["pipe", "pipe", "pipe"],
160
- timeout: 3e5
161
- });
162
- if (result.status !== 0) {
163
- console.error(`[health-gate] pg_restore failed: ${result.stderr?.trim() || `exit ${result.status}`}`);
164
- return false;
165
- }
166
- console.log("[health-gate] \u2713 Pre-deploy backup restored");
167
- return true;
168
- }
169
- function httpGet(url) {
170
- return new Promise((resolve, reject) => {
171
- const req = http.request(url, { method: "GET", timeout: 1e4 }, (res) => {
172
- res.resume();
173
- resolve(res.statusCode ?? 0);
174
- });
175
- req.on("timeout", () => req.destroy(new Error("timeout")));
176
- req.on("error", reject);
177
- req.end();
178
- });
179
- }
180
- async function main(args) {
181
- if (args.includes("--help") || args.includes("-h")) {
182
- console.log(`
183
- exe-os vps-health-gate \u2014 Post-deploy health checks
184
-
185
- Runs 5 checks: Postgres, raw_events, CRM, Gateway, GoTrue.
186
- If any check fails, triggers rollback and exits with code 1.
187
-
188
- Usage:
189
- exe-os vps-health-gate Run health gate
190
- exe-os vps-health-gate --check-only Run checks without rollback on failure
191
- `);
192
- return;
193
- }
194
- const checkOnly = args.includes("--check-only");
195
- const result = await runHealthGate();
196
- logResult(result);
197
- if (result.passed) {
198
- console.log("[health-gate] \u2713 All checks passed \u2014 deploy is healthy");
199
- return;
200
- }
201
- const failed = result.results.filter((r) => r.status === "fail");
202
- console.error(`[health-gate] \u2717 ${failed.length} check(s) failed`);
203
- if (checkOnly) {
204
- process.exitCode = 1;
205
- return;
206
- }
207
- console.log("[health-gate] Starting rollback...");
208
- restorePreDeployBackup();
209
- try {
210
- const { rollbackStackUpdate, defaultStackPaths } = await import("../stack-update-NO5MNARG.js");
211
- const paths = defaultStackPaths();
212
- await rollbackStackUpdate({
213
- manifestRef: paths.manifestRef,
214
- composeFile: paths.composeFile,
215
- envFile: paths.envFile
216
- });
217
- console.log("[health-gate] \u2713 Stack rolled back to previous version");
218
- } catch (err) {
219
- console.error(`[health-gate] Stack rollback failed: ${err instanceof Error ? err.message : err}`);
220
- }
221
- process.exitCode = 1;
222
- }
223
13
  export {
224
14
  checkCRM,
225
15
  checkGateway,
@@ -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 "./chunk-LYH5HE24.js";
5
5
  import "./chunk-MLKGABMK.js";
6
6
 
@@ -8,31 +8,31 @@ import {
8
8
  isAtCapacity,
9
9
  isWithinRelaunchCooldown,
10
10
  pollCapacityDead
11
- } from "./chunk-7PVUUC3O.js";
12
- import "./chunk-5KDROSDV.js";
13
- import "./chunk-ENWFSMOS.js";
14
- import "./chunk-G67R75DG.js";
15
- import "./chunk-QI4IXJN7.js";
11
+ } from "./chunk-GHT4REOS.js";
12
+ import "./chunk-VRIMTCX2.js";
13
+ import "./chunk-F7JLZXHC.js";
14
+ import "./chunk-ZKFPHJIJ.js";
15
+ import "./chunk-5CHYEKMH.js";
16
16
  import "./chunk-4JERP7NT.js";
17
- import "./chunk-NJS4GRIR.js";
17
+ import "./chunk-GHEWRYMY.js";
18
18
  import "./chunk-MVW62NIZ.js";
19
19
  import "./chunk-OYNKIAVW.js";
20
20
  import "./chunk-CX6GL3ZJ.js";
21
- import "./chunk-2O5GJFYQ.js";
22
- import "./chunk-6OJJF4WP.js";
21
+ import "./chunk-HCBMPZDT.js";
22
+ import "./chunk-XJUUWHVN.js";
23
23
  import "./chunk-NGP6LSV2.js";
24
- import "./chunk-LXP6VRFH.js";
24
+ import "./chunk-I5PIBL56.js";
25
25
  import "./chunk-CVYC6DUW.js";
26
26
  import "./chunk-OPU3NYOO.js";
27
27
  import "./chunk-GJV3WDWM.js";
28
28
  import "./chunk-MP2AFCGL.js";
29
- import "./chunk-WQCSGDRG.js";
29
+ import "./chunk-JLNXKG3K.js";
30
30
  import "./chunk-HYZV25LY.js";
31
- import "./chunk-2LYJTK47.js";
32
- import "./chunk-NNEYTOUS.js";
31
+ import "./chunk-CEJO7244.js";
32
+ import "./chunk-AWRL5FGM.js";
33
33
  import "./chunk-FXU7JOXK.js";
34
- import "./chunk-D5C56WO3.js";
35
- import "./chunk-TRZ5KA2R.js";
34
+ import "./chunk-MOZ2YQ54.js";
35
+ import "./chunk-VXIMSRTO.js";
36
36
  import "./chunk-LYH5HE24.js";
37
37
  import "./chunk-MLKGABMK.js";
38
38
  export {
@@ -1,39 +1,39 @@
1
1
  import {
2
2
  lightweightSearch
3
- } from "./chunk-U3XMIHPD.js";
4
- import "./chunk-NQU2RTCP.js";
3
+ } from "./chunk-DLZYAYVM.js";
4
+ import "./chunk-222SI7QC.js";
5
5
  import "./chunk-CHCA3ZM2.js";
6
- import "./chunk-IAPFFVYR.js";
7
- import "./chunk-F7LU65PQ.js";
6
+ import "./chunk-IZVKWBIP.js";
7
+ import "./chunk-Y25OJWOQ.js";
8
8
  import {
9
9
  sessionScopeFilter,
10
10
  strictSessionScopeFilter
11
- } from "./chunk-ENWFSMOS.js";
12
- import "./chunk-G67R75DG.js";
13
- import "./chunk-QI4IXJN7.js";
11
+ } from "./chunk-F7JLZXHC.js";
12
+ import "./chunk-ZKFPHJIJ.js";
13
+ import "./chunk-5CHYEKMH.js";
14
14
  import "./chunk-4JERP7NT.js";
15
- import "./chunk-NJS4GRIR.js";
15
+ import "./chunk-GHEWRYMY.js";
16
16
  import "./chunk-MVW62NIZ.js";
17
17
  import "./chunk-OYNKIAVW.js";
18
18
  import "./chunk-CX6GL3ZJ.js";
19
- import "./chunk-2O5GJFYQ.js";
20
- import "./chunk-6OJJF4WP.js";
19
+ import "./chunk-HCBMPZDT.js";
20
+ import "./chunk-XJUUWHVN.js";
21
21
  import "./chunk-NGP6LSV2.js";
22
- import "./chunk-LXP6VRFH.js";
22
+ import "./chunk-I5PIBL56.js";
23
23
  import "./chunk-CVYC6DUW.js";
24
24
  import "./chunk-OPU3NYOO.js";
25
25
  import "./chunk-GJV3WDWM.js";
26
26
  import "./chunk-MP2AFCGL.js";
27
- import "./chunk-WQCSGDRG.js";
27
+ import "./chunk-JLNXKG3K.js";
28
28
  import "./chunk-HYZV25LY.js";
29
29
  import {
30
30
  getClient
31
- } from "./chunk-2LYJTK47.js";
32
- import "./chunk-NNEYTOUS.js";
31
+ } from "./chunk-CEJO7244.js";
32
+ import "./chunk-AWRL5FGM.js";
33
33
  import "./chunk-FXU7JOXK.js";
34
- import "./chunk-KDJRFJDL.js";
35
- import "./chunk-D5C56WO3.js";
36
- import "./chunk-TRZ5KA2R.js";
34
+ import "./chunk-K333WOW4.js";
35
+ import "./chunk-MOZ2YQ54.js";
36
+ import "./chunk-VXIMSRTO.js";
37
37
  import "./chunk-LYH5HE24.js";
38
38
  import "./chunk-MLKGABMK.js";
39
39
 
@@ -6,7 +6,7 @@ import {
6
6
  findScopedDuplicate,
7
7
  governMemoryRecord,
8
8
  schedulePostWriteMemoryHygiene
9
- } from "./chunk-IAPFFVYR.js";
9
+ } from "./chunk-IZVKWBIP.js";
10
10
  import {
11
11
  orgBus
12
12
  } from "./chunk-MP2AFCGL.js";
@@ -15,16 +15,16 @@ import {
15
15
  ensureSchema,
16
16
  getClient,
17
17
  initTurso
18
- } from "./chunk-2LYJTK47.js";
18
+ } from "./chunk-CEJO7244.js";
19
19
  import {
20
20
  EMBEDDING_DIM
21
21
  } from "./chunk-FXU7JOXK.js";
22
22
  import {
23
23
  getMasterKey
24
- } from "./chunk-KDJRFJDL.js";
24
+ } from "./chunk-K333WOW4.js";
25
25
  import {
26
26
  loadConfig
27
- } from "./chunk-TRZ5KA2R.js";
27
+ } from "./chunk-VXIMSRTO.js";
28
28
 
29
29
  // src/lib/store.ts
30
30
  var _debugStore = process.env.EXE_DEBUG === "1";
@@ -65,7 +65,7 @@ function recordShardFailure(project, error) {
65
65
  `[store] Shard circuit OPEN for "${project}" after ${state.failures} consecutive failures. Will retry in ${SHARD_CB_COOLDOWN_MS / 6e4}min. Last error: ${error}
66
66
  `
67
67
  );
68
- void import("./orchestration-events-TEYCD6GO.js").then(({ recordOrchestrationEventBestEffort }) => {
68
+ void import("./orchestration-events-25WEKUKH.js").then(({ recordOrchestrationEventBestEffort }) => {
69
69
  recordOrchestrationEventBestEffort({
70
70
  eventType: "shard.circuit_open",
71
71
  source: "store.recordShardFailure",
@@ -149,7 +149,7 @@ async function initStore(options) {
149
149
  if (!options?.lightweight) {
150
150
  try {
151
151
  if (process.env.EXE_DISABLE_SHARDING !== "1") {
152
- const { initShardManager } = await import("./shard-manager-G6MHCO7X.js");
152
+ const { initShardManager } = await import("./shard-manager-VGA2TYHM.js");
153
153
  initShardManager(hexKey);
154
154
  }
155
155
  } catch (e) {
@@ -162,7 +162,7 @@ async function initStore(options) {
162
162
  );
163
163
  _nextVersion = (Number(vResult.rows[0]?.max_v) || 0) + 1;
164
164
  try {
165
- const { loadGlobalProcedures } = await import("./global-procedures-W4U257TI.js");
165
+ const { loadGlobalProcedures } = await import("./global-procedures-HCHEHKY2.js");
166
166
  await loadGlobalProcedures();
167
167
  } catch (e) {
168
168
  logStoreWarn("catch", e);
@@ -290,7 +290,7 @@ async function writeMemory(record) {
290
290
  founder_id: record.founder_id ?? null
291
291
  };
292
292
  try {
293
- const { checkMemoryPoisoning } = await import("./memory-poisoning-defense-P6GL2RMF.js");
293
+ const { checkMemoryPoisoning } = await import("./memory-poisoning-defense-UVU67DGJ.js");
294
294
  const poisonResult = await checkMemoryPoisoning({
295
295
  memoryId: dbRow.id,
296
296
  vector: Array.isArray(dbRow.vector) ? dbRow.vector : void 0,
@@ -478,19 +478,19 @@ async function flushBatch() {
478
478
  }
479
479
  _nextVersion = baseVersion;
480
480
  try {
481
- const { insertMemoryCardsForBatch } = await import("./memory-cards-3FBGRV6J.js");
481
+ const { insertMemoryCardsForBatch } = await import("./memory-cards-H4BJJ5OK.js");
482
482
  await insertMemoryCardsForBatch(batch);
483
483
  } catch (e) {
484
484
  logStoreWarn("catch", e);
485
485
  }
486
486
  try {
487
- const { insertOntologyForBatch } = await import("./agentic-ontology-NBU3FHEX.js");
487
+ const { insertOntologyForBatch } = await import("./agentic-ontology-DXE5J6I5.js");
488
488
  await insertOntologyForBatch(batch);
489
489
  } catch (e) {
490
490
  logStoreWarn("catch", e);
491
491
  }
492
492
  try {
493
- const { extractGraphForBatch } = await import("./memory-graph-extractor-5D3FU5N5.js");
493
+ const { extractGraphForBatch } = await import("./memory-graph-extractor-SDGM3GVR.js");
494
494
  await extractGraphForBatch(batch);
495
495
  } catch (e) {
496
496
  logStoreWarn("catch", e);
@@ -498,7 +498,7 @@ async function flushBatch() {
498
498
  schedulePostWriteMemoryHygiene(batch.map((row) => row.id));
499
499
  _pendingRecords.splice(0, batch.length);
500
500
  try {
501
- const { isShardingEnabled, getReadyShardClient } = await import("./shard-manager-G6MHCO7X.js");
501
+ const { isShardingEnabled, getReadyShardClient } = await import("./shard-manager-VGA2TYHM.js");
502
502
  if (process.env.EXE_DISABLE_SHARDING !== "1" && isShardingEnabled()) {
503
503
  const byProject = /* @__PURE__ */ new Map();
504
504
  let skippedUnknown = 0;
@@ -575,7 +575,7 @@ function buildRawVisibilityFilter(options, columnPrefix) {
575
575
  async function searchMemories(queryVector, agentId, options) {
576
576
  let client;
577
577
  try {
578
- const { isShardingEnabled, shardExists, getReadyShardClient } = await import("./shard-manager-G6MHCO7X.js");
578
+ const { isShardingEnabled, shardExists, getReadyShardClient } = await import("./shard-manager-VGA2TYHM.js");
579
579
  if (isShardingEnabled() && options?.projectName && shardExists(options.projectName)) {
580
580
  client = await getReadyShardClient(options.projectName);
581
581
  } else {
@@ -603,7 +603,7 @@ async function searchMemories(queryVector, agentId, options) {
603
603
  AND COALESCE(confidence, 0.7) >= 0.3`;
604
604
  const args = [agentId];
605
605
  try {
606
- const { founderScopeFilter } = await import("./founder-context-BQ5NBDUV.js");
606
+ const { founderScopeFilter } = await import("./founder-context-Q2HUCZX4.js");
607
607
  const founderFilter = founderScopeFilter(options?.founderId);
608
608
  sql += founderFilter.sql;
609
609
  args.push(...founderFilter.args.filter((a) => a !== null));
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  checkLicense,
3
3
  loadLicense
4
- } from "./chunk-D5C56WO3.js";
4
+ } from "./chunk-MOZ2YQ54.js";
5
5
 
6
6
  // src/lib/license-gate.ts
7
7
  var _cachedLicense = null;
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  updateTask
3
- } from "./chunk-VK5IBXXT.js";
3
+ } from "./chunk-NBY6R37W.js";
4
4
  import {
5
5
  TASK_ALREADY_CLAIMED_PREFIX
6
- } from "./chunk-ENWFSMOS.js";
6
+ } from "./chunk-F7JLZXHC.js";
7
7
 
8
8
  // src/mcp/tools/update-task.ts
9
9
  import { z } from "zod";
@@ -39,7 +39,7 @@ function registerUpdateTask(server) {
39
39
  const status = rawStatus;
40
40
  let callerAgentId;
41
41
  try {
42
- const { getActiveAgent: getAgent } = await import("./active-agent-6WX7GZBH.js");
42
+ const { getActiveAgent: getAgent } = await import("./active-agent-KP2O52HA.js");
43
43
  callerAgentId = getAgent().agentId;
44
44
  } catch {
45
45
  }
@@ -82,7 +82,7 @@ File: ${task.taskFile}`;
82
82
  if (isTerminal && task.assignedBy) {
83
83
  try {
84
84
  const { notifyCoordinatorTaskCompletion, resolveExeSession } = await import("./lib/tmux-routing.js");
85
- const coordinatorSession = resolveExeSession();
85
+ const coordinatorSession = task.sessionScope ?? resolveExeSession();
86
86
  if (coordinatorSession) {
87
87
  notifyCoordinatorTaskCompletion(coordinatorSession, callerAgentId ?? "agent", task.title);
88
88
  }
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  storeBehavior
3
- } from "./chunk-JHFXCYZP.js";
3
+ } from "./chunk-ONAQAL3O.js";
4
4
  import {
5
5
  getClient
6
- } from "./chunk-2LYJTK47.js";
6
+ } from "./chunk-CEJO7244.js";
7
7
  import {
8
8
  loadConfig
9
- } from "./chunk-TRZ5KA2R.js";
9
+ } from "./chunk-VXIMSRTO.js";
10
10
 
11
11
  // src/lib/skill-learning.ts
12
12
  import crypto from "crypto";
@@ -23,19 +23,21 @@ function writeQueue(queue) {
23
23
  writeFileSync(tmp, JSON.stringify(queue, null, 2), { mode: 384 });
24
24
  renameSync(tmp, QUEUE_PATH);
25
25
  }
26
- function queueIntercom(targetSession, reason) {
26
+ function queueIntercom(targetSession, reason, intercomReason = "nudge") {
27
27
  const queue = readQueue();
28
28
  const existing = queue.find((q) => q.targetSession === targetSession);
29
29
  if (existing) {
30
30
  existing.attempts++;
31
31
  existing.queuedAt = (/* @__PURE__ */ new Date()).toISOString();
32
32
  existing.reason = reason;
33
+ existing.intercomReason = intercomReason;
33
34
  } else {
34
35
  queue.push({
35
36
  targetSession,
36
37
  queuedAt: (/* @__PURE__ */ new Date()).toISOString(),
37
38
  attempts: 0,
38
- reason
39
+ reason,
40
+ intercomReason
39
41
  });
40
42
  }
41
43
  writeQueue(queue);
@@ -62,7 +64,7 @@ function drainQueue(isSessionBusy, sendKeys) {
62
64
  }
63
65
  try {
64
66
  if (!isSessionBusy(item.targetSession)) {
65
- const success = sendKeys(item.targetSession);
67
+ const success = sendKeys(item.targetSession, item);
66
68
  if (success) {
67
69
  logQueue(`DRAINED \u2192 ${item.targetSession} (after ${item.attempts} retries)`);
68
70
  drained++;
@@ -89,7 +91,8 @@ function drainForSession(targetSession, sendKeys) {
89
91
  const queue = readQueue();
90
92
  const match = queue.findIndex((q) => q.targetSession === targetSession);
91
93
  if (match < 0) return false;
92
- const success = sendKeys(targetSession);
94
+ const item = queue[match];
95
+ const success = sendKeys(targetSession, item);
93
96
  if (success) {
94
97
  queue.splice(match, 1);
95
98
  writeQueue(queue);