@askexenow/exe-os 0.9.316 → 0.9.319

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 (335) hide show
  1. package/deploy/compose/docker-compose.yml +27 -15
  2. package/deploy/compose/generate-env.ts +6 -6
  3. package/deploy/compose/init-db.sql +56 -6
  4. package/deploy/stack-manifests/signing-key.pub +3 -0
  5. package/deploy/stack-manifests/v0.9.json +262 -41
  6. package/dist/{active-agent-GP7MDJW6.js → active-agent-EA2Q3KYR.js} +4 -4
  7. package/dist/{active-agent-2LE7G3QI.js → active-agent-XIPGXSQA.js} +4 -4
  8. package/dist/{agent-loop-LSERMRQN.js → agent-loop-E7RZCFDB.js} +1 -1
  9. package/dist/{agentic-ontology-SEWXYYJG.js → agentic-ontology-7ZUMZC2O.js} +1 -1
  10. package/dist/{backfill-metadata-UHBD4GZO.js → backfill-metadata-7RO5PSMN.js} +5 -5
  11. package/dist/{background-jobs-2QZ5IQKE.js → background-jobs-STURKDCS.js} +2 -2
  12. package/dist/{behaviors-VNWMEWDT.js → behaviors-OEGZD5DH.js} +6 -6
  13. package/dist/bin/age-ontology-load.js +2 -2
  14. package/dist/bin/agentic-ontology-backfill.js +7 -7
  15. package/dist/bin/agentic-reflection-backfill.js +8 -8
  16. package/dist/bin/agentic-semantic-label.js +7 -7
  17. package/dist/bin/backfill-conversations.js +9 -9
  18. package/dist/bin/backfill-responses.js +9 -9
  19. package/dist/bin/backfill-vectors.js +12 -12
  20. package/dist/bin/bulk-sync-postgres.js +15 -15
  21. package/dist/bin/cc-doctor.js +8 -8
  22. package/dist/bin/cleanup-stale-review-tasks.js +15 -15
  23. package/dist/bin/cli.js +25 -21
  24. package/dist/bin/codex-reviewd-cli.js +264 -0
  25. package/dist/bin/deferred-daemon-restart.js +123 -2
  26. package/dist/bin/exe-agent-config.js +4 -4
  27. package/dist/bin/exe-agent.js +17 -17
  28. package/dist/bin/exe-assign.js +15 -15
  29. package/dist/bin/exe-boot.js +27 -26
  30. package/dist/bin/exe-call.js +6 -6
  31. package/dist/bin/exe-cloud.js +16 -16
  32. package/dist/bin/exe-config-dump.js +9 -9
  33. package/dist/bin/exe-dispatch.js +15 -15
  34. package/dist/bin/exe-doctor.js +6 -6
  35. package/dist/bin/exe-export-behaviors.js +8 -8
  36. package/dist/bin/exe-forget.js +7 -7
  37. package/dist/bin/exe-gateway.js +8 -8
  38. package/dist/bin/exe-healthcheck.js +8 -8
  39. package/dist/bin/exe-heartbeat.js +15 -15
  40. package/dist/bin/exe-kill.js +18 -18
  41. package/dist/bin/exe-launch-agent.js +33 -40
  42. package/dist/bin/exe-new-employee.js +13 -13
  43. package/dist/bin/exe-pending-messages.js +16 -16
  44. package/dist/bin/exe-pending-notifications.js +15 -15
  45. package/dist/bin/exe-pending-reviews.js +15 -15
  46. package/dist/bin/exe-preflight.js +3 -1
  47. package/dist/bin/exe-rename.js +6 -6
  48. package/dist/bin/exe-review.js +17 -17
  49. package/dist/bin/exe-search.js +6 -6
  50. package/dist/bin/exe-session-cleanup.js +21 -21
  51. package/dist/bin/exe-settings.js +20 -20
  52. package/dist/bin/exe-start-codex.js +13 -13
  53. package/dist/bin/exe-start-opencode.js +9 -9
  54. package/dist/bin/exe-status.js +16 -16
  55. package/dist/bin/exe-support.js +4 -4
  56. package/dist/bin/exe-team.js +4 -4
  57. package/dist/bin/git-sweep.js +16 -16
  58. package/dist/bin/graph-backfill.js +8 -8
  59. package/dist/bin/graph-export.js +6 -6
  60. package/dist/bin/import-history.js +10 -10
  61. package/dist/bin/install.js +117 -10
  62. package/dist/bin/intercom-check.js +4 -4
  63. package/dist/bin/mcp-sessions.js +2 -2
  64. package/dist/bin/orchestration-metrics.js +5 -5
  65. package/dist/bin/postgres-agentic-reflection-backfill.js +6 -6
  66. package/dist/bin/postgres-agentic-semantic-backfill.js +6 -6
  67. package/dist/bin/pre-publish.js +1 -1
  68. package/dist/bin/scan-tasks.js +15 -15
  69. package/dist/bin/setup.js +5 -2
  70. package/dist/bin/shard-migrate.js +6 -6
  71. package/dist/bin/stack-update.js +31 -11
  72. package/dist/bin/vps-health-gate.js +1 -1
  73. package/dist/branding-JTEOF4ZV.js +25 -0
  74. package/dist/{capability-cards-OZXICB3V.js → capability-cards-4BONYCI4.js} +3 -3
  75. package/dist/{capacity-monitor-JTF7ZZPC.js → capacity-monitor-SV2Q7CMC.js} +16 -16
  76. package/dist/{catchup-brief-C6G6R2RT.js → catchup-brief-5ULTVKSE.js} +18 -18
  77. package/dist/{cc-binary-detect-B5JDCJ5J.js → cc-binary-detect-6TNIY5JX.js} +5 -3
  78. package/dist/{chunk-ISJZPE7B.js → chunk-2OOCPANV.js} +91 -11
  79. package/dist/{chunk-KH6BCYLC.js → chunk-32SXNM3G.js} +1 -1
  80. package/dist/{chunk-AMJJKRCI.js → chunk-36CFV3ZF.js} +3 -3
  81. package/dist/{chunk-V4UFR4F2.js → chunk-36SS3TE7.js} +90 -11
  82. package/dist/{chunk-GE446QIE.js → chunk-3EZQSPTG.js} +3 -3
  83. package/dist/{chunk-V2CZVZUO.js → chunk-3NGZ4PL7.js} +1 -1
  84. package/dist/{chunk-3LGID56M.js → chunk-3QWOO74G.js} +61 -0
  85. package/dist/{chunk-IPH447PI.js → chunk-3ZOWUUKR.js} +1 -1
  86. package/dist/{chunk-GN7E7TDA.js → chunk-4AHV3QBI.js} +1 -1
  87. package/dist/{chunk-3CFPJUVC.js → chunk-4XAYC77M.js} +1 -1
  88. package/dist/{chunk-QP56D3RP.js → chunk-53ARJV2L.js} +11 -3
  89. package/dist/{chunk-YYMD7MOG.js → chunk-5L62XXNH.js} +1 -1
  90. package/dist/{chunk-P4X3L5J6.js → chunk-6DTSAEDS.js} +140 -68
  91. package/dist/{chunk-FRNXQSB4.js → chunk-75H4R62K.js} +62 -0
  92. package/dist/{chunk-EZIUN4MM.js → chunk-7I4HQYPL.js} +1 -1
  93. package/dist/{chunk-KUTQWGIZ.js → chunk-7NG77I33.js} +1 -1
  94. package/dist/{chunk-4VKUCAOT.js → chunk-7PUNIH6G.js} +2 -2
  95. package/dist/{chunk-YBKKZN4F.js → chunk-7S3SRDPQ.js} +2 -2
  96. package/dist/{chunk-FF5DA4XP.js → chunk-7UMCQQWS.js} +190 -2
  97. package/dist/{chunk-WCES22KG.js → chunk-7Y5UDEVM.js} +17 -0
  98. package/dist/{chunk-UEG2Z3YC.js → chunk-AFNRE2RV.js} +3 -17
  99. package/dist/{chunk-2WQ6MBGW.js → chunk-AKD6IKYS.js} +3 -3
  100. package/dist/{chunk-IJXYK4UM.js → chunk-B2FUBD6Z.js} +20 -9
  101. package/dist/{chunk-4MOZBAX6.js → chunk-B3SFW4LY.js} +340 -155
  102. package/dist/{chunk-R5IPZ5ZC.js → chunk-BVV6NHKQ.js} +1 -1
  103. package/dist/{chunk-RGLFCNV4.js → chunk-C2DFOF7O.js} +1 -1
  104. package/dist/{chunk-T4J67IXJ.js → chunk-C54QKE4O.js} +1 -1
  105. package/dist/{chunk-URXMLRJ2.js → chunk-C5SALMKH.js} +11 -11
  106. package/dist/{chunk-GQLSLEV3.js → chunk-C7QYH2YN.js} +5 -5
  107. package/dist/{chunk-NUIDN3LJ.js → chunk-CNFUVZLM.js} +2 -2
  108. package/dist/{chunk-FHXDVI4U.js → chunk-CQ2T4A2D.js} +3 -3
  109. package/dist/{chunk-WOTKNUKK.js → chunk-CWQAXO3O.js} +1 -1
  110. package/dist/{chunk-VUH67PT4.js → chunk-DDKDN4HV.js} +14 -0
  111. package/dist/{chunk-XGZTUU4P.js → chunk-DFSR3UUL.js} +2 -2
  112. package/dist/{chunk-5HKBM7FX.js → chunk-DRA2FYUQ.js} +3 -3
  113. package/dist/{chunk-S47GC6PA.js → chunk-DTP4HXM3.js} +6 -6
  114. package/dist/{chunk-XABWXML7.js → chunk-DZJZAHTB.js} +2 -2
  115. package/dist/{chunk-NUS3257U.js → chunk-E3WZA2WU.js} +1 -1
  116. package/dist/{chunk-ZDEYKUB2.js → chunk-EPZWVXKI.js} +1 -1
  117. package/dist/{chunk-WWVUQQNO.js → chunk-F3P34OHU.js} +1 -1
  118. package/dist/{chunk-6JJWDA47.js → chunk-GBUFDCLX.js} +3 -3
  119. package/dist/{chunk-MKB7N4S3.js → chunk-GRB44WRN.js} +9 -9
  120. package/dist/{chunk-OXTZEKVA.js → chunk-HCJCW7X4.js} +1 -1
  121. package/dist/{chunk-CVA6VFIP.js → chunk-HFDFQ7CB.js} +1 -1
  122. package/dist/{chunk-RV634O2W.js → chunk-I5RLNOFK.js} +17 -1
  123. package/dist/{chunk-RZUGEM2F.js → chunk-IDMIGP53.js} +3 -3
  124. package/dist/{chunk-2ZTSFGUR.js → chunk-IPD5ZSOK.js} +3 -3
  125. package/dist/{chunk-7A72CAIB.js → chunk-JJ2FFUFV.js} +1 -1
  126. package/dist/{chunk-DH26GE7W.js → chunk-JNUYJRQX.js} +4 -4
  127. package/dist/{chunk-BYMHWDPW.js → chunk-JPTBLJLS.js} +1 -1
  128. package/dist/{chunk-IEDCQRGG.js → chunk-JSKBHUR7.js} +1 -1
  129. package/dist/{chunk-NSQGHSDA.js → chunk-K6GZMAIA.js} +2 -2
  130. package/dist/{chunk-7FV3ISXX.js → chunk-KF6NBYV4.js} +2 -2
  131. package/dist/{chunk-JUFEAOP4.js → chunk-KHM3TKOM.js} +2 -2
  132. package/dist/{chunk-UAMWGUBX.js → chunk-KSVLBATT.js} +17 -5
  133. package/dist/{chunk-6JLUKBO4.js → chunk-LJTXVAG4.js} +3 -3
  134. package/dist/{chunk-ISHAQCWZ.js → chunk-LQWCIW4K.js} +1 -1
  135. package/dist/{chunk-ASDVZOV3.js → chunk-LRWB35MD.js} +1 -1
  136. package/dist/{chunk-NJQV77A2.js → chunk-LWBOSHSS.js} +122 -37
  137. package/dist/{chunk-KY4J7MFS.js → chunk-MM7EYJJ3.js} +2 -2
  138. package/dist/{chunk-25J47PBK.js → chunk-MNUFLCHT.js} +3 -3
  139. package/dist/{chunk-NQQIJNKJ.js → chunk-MRB2BXIB.js} +10 -10
  140. package/dist/{chunk-FXS5OFGH.js → chunk-MWZFF3Q7.js} +1 -1
  141. package/dist/{chunk-RDHG4GXP.js → chunk-N3ZLLKBN.js} +3 -3
  142. package/dist/chunk-NODTWD7N.js +19 -0
  143. package/dist/{chunk-7ECB5J5T.js → chunk-OC222BAQ.js} +3 -3
  144. package/dist/{chunk-J2A7M2EI.js → chunk-OXGNFT3L.js} +8 -8
  145. package/dist/{chunk-ATNWYUOB.js → chunk-PHUKD7VK.js} +13 -13
  146. package/dist/{chunk-RFT6HYL7.js → chunk-PJH7JUWD.js} +3 -3
  147. package/dist/{chunk-KRXSWIL4.js → chunk-PM6XSS6R.js} +1 -1
  148. package/dist/chunk-PVYR4FCQ.js +113 -0
  149. package/dist/{chunk-2PI6JBJL.js → chunk-Q26VSIXA.js} +1 -1
  150. package/dist/{chunk-EMFUEPNV.js → chunk-Q774HAGE.js} +1 -1
  151. package/dist/{chunk-MN3QPAWI.js → chunk-QLVMJGUQ.js} +2 -2
  152. package/dist/{chunk-HKGV4PAX.js → chunk-RAKFEXCN.js} +4 -4
  153. package/dist/{chunk-W2GYU3BK.js → chunk-RJHOFX72.js} +2 -2
  154. package/dist/{chunk-36E33I34.js → chunk-RREJ2QQ4.js} +1 -1
  155. package/dist/{chunk-3ETYUWBL.js → chunk-RVF6JBHW.js} +1 -1
  156. package/dist/{chunk-ANRR27BX.js → chunk-T5O2EBHU.js} +351 -96
  157. package/dist/{chunk-7BGP7NAD.js → chunk-TDV3XEGQ.js} +1 -1
  158. package/dist/{branding-EDUC7TUP.js → chunk-TPHCZDE3.js} +33 -6
  159. package/dist/{chunk-5PK6Q2KC.js → chunk-TRXBT24O.js} +5 -5
  160. package/dist/{chunk-XFQQ6OUA.js → chunk-TWPYSILC.js} +1 -1
  161. package/dist/{chunk-NLFGISYC.js → chunk-UQOCHKPX.js} +1 -1
  162. package/dist/{chunk-5EK7GDWT.js → chunk-UWVAG35C.js} +1 -1
  163. package/dist/{chunk-R4HXLRPL.js → chunk-V2GI2MJJ.js} +5 -189
  164. package/dist/{chunk-A5CLSXXE.js → chunk-VTHR4DPE.js} +5 -1
  165. package/dist/{chunk-ADJOAIXT.js → chunk-VUZRAEF3.js} +24 -10
  166. package/dist/{chunk-TGU5PX7Q.js → chunk-WG4PRZGT.js} +11 -11
  167. package/dist/{chunk-PCLGFMGY.js → chunk-WL5K3R7W.js} +2 -2
  168. package/dist/{chunk-6EZMJRYW.js → chunk-WUF5MYA5.js} +8 -8
  169. package/dist/{chunk-NNOI5UZ2.js → chunk-WXQVFMNV.js} +5 -5
  170. package/dist/{chunk-SFC2CPD5.js → chunk-XLQH263A.js} +7 -49
  171. package/dist/{chunk-DJCZ3ZND.js → chunk-YJYE6MMJ.js} +3 -3
  172. package/dist/{chunk-27RVY5RG.js → chunk-YSSJOTVN.js} +2 -2
  173. package/dist/{chunk-RI3BSVDO.js → chunk-YTHZTDXH.js} +1 -1
  174. package/dist/{chunk-FKAG7BPC.js → chunk-YZTOGIV7.js} +1 -1
  175. package/dist/{chunk-I7AW4237.js → chunk-Z6BZQHP5.js} +29 -22
  176. package/dist/{chunk-W3DNCR3Y.js → chunk-ZOCW4TGA.js} +2 -2
  177. package/dist/cleanup-graph-garbage-IXYSUIUH.js +156 -0
  178. package/dist/{co-activation-I6PSET5O.js → co-activation-BQRXOZN2.js} +3 -3
  179. package/dist/{co-occurrence-DYYQF2UT.js → co-occurrence-QPLSUQ4O.js} +5 -5
  180. package/dist/{code-context-index-F5FGNHTL.js → code-context-index-NQFP6ED5.js} +6 -6
  181. package/dist/{conversation-entity-extractor-KYOBXNID.js → conversation-entity-extractor-FPAMTL3C.js} +2 -2
  182. package/dist/{conversation-wiki-populator-SK233TL4.js → conversation-wiki-populator-WU4HEQ7C.js} +1 -1
  183. package/dist/{crdt-sync-ESQ3O5RV.js → crdt-sync-VLSJH6LL.js} +1 -1
  184. package/dist/{crm-webhook-JISH5NHO.js → crm-webhook-IZYJXHSK.js} +2 -2
  185. package/dist/{cto-delegation-gate-FXPXYY46.js → cto-delegation-gate-FU4HGNSN.js} +14 -14
  186. package/dist/{daemon-auth-5FCYVQIZ.js → daemon-auth-7IFSV5FG.js} +2 -2
  187. package/dist/{daemon-orchestration-3U7HSLIT.js → daemon-orchestration-IXSMZXGO.js} +20 -18
  188. package/dist/{daemon-ready-signal-KXLL6ZFL.js → daemon-ready-signal-E7VMIQ6I.js} +3 -1
  189. package/dist/{db-backup-C3242WM6.js → db-backup-7GJYDSXA.js} +2 -2
  190. package/dist/{db-restore-events-3A57GMLW.js → db-restore-events-JVEEP52Z.js} +1 -1
  191. package/dist/{doc-graph-extractor-3M2LURSL.js → doc-graph-extractor-U7XGZQ7T.js} +5 -5
  192. package/dist/{documents-UX3ETGTL.js → documents-U47VG24Q.js} +11 -11
  193. package/dist/{dreaming-S72BKTA5.js → dreaming-VBI4BI6R.js} +15 -15
  194. package/dist/{exe-drift-GP67ZRQ3.js → exe-drift-BMSRHAT6.js} +4 -4
  195. package/dist/{exe-export-44Z3U5ON.js → exe-export-CIRE2HZA.js} +8 -8
  196. package/dist/{exe-import-SBVWC27B.js → exe-import-X6U6VG7Q.js} +8 -8
  197. package/dist/{exe-key-QPJENTXC.js → exe-key-7VXVXX4Q.js} +118 -7
  198. package/dist/{exe-org-KCOOLUTW.js → exe-org-BGZNNE4H.js} +2 -2
  199. package/dist/{exe-snapshot-B3CWH2PS.js → exe-snapshot-P5BLEXQJ.js} +18 -18
  200. package/dist/{fast-db-init-OUF6YAR4.js → fast-db-init-SMBGFVXM.js} +1 -1
  201. package/dist/{founder-context-PWTEV4D7.js → founder-context-AMMO53S7.js} +3 -3
  202. package/dist/gateway/index.js +18 -18
  203. package/dist/{git-staleness-4PO2G35T.js → git-staleness-AJDPXQJF.js} +3 -3
  204. package/dist/{git-task-sweep-5RY34LYN.js → git-task-sweep-EJ3HEH4Y.js} +15 -15
  205. package/dist/{global-procedures-LJCTXZX5.js → global-procedures-KV2SVX43.js} +5 -5
  206. package/dist/{graph-auto-extract-5IUDWRD2.js → graph-auto-extract-HFXDXJC3.js} +5 -5
  207. package/dist/{graph-rag-HITZZ63L.js → graph-rag-WAK2BRJH.js} +2 -2
  208. package/dist/{hook-integrity-XNPNCMAS.js → hook-integrity-WURH6DS3.js} +1 -1
  209. package/dist/hooks/bug-report-worker.js +19 -19
  210. package/dist/hooks/codex-stop-task-finalizer.js +19 -19
  211. package/dist/hooks/commit-complete.js +18 -18
  212. package/dist/hooks/error-recall.js +13 -13
  213. package/dist/hooks/exe-heartbeat-hook.js +5 -5
  214. package/dist/hooks/ingest-worker.js +10 -10
  215. package/dist/hooks/ingest.js +41 -35
  216. package/dist/hooks/instructions-loaded.js +6 -6
  217. package/dist/hooks/manifest.json +20 -20
  218. package/dist/hooks/notification.js +6 -6
  219. package/dist/hooks/post-compact.js +17 -17
  220. package/dist/hooks/post-tool-combined.js +28 -25
  221. package/dist/hooks/pre-compact.js +24 -24
  222. package/dist/hooks/pre-tool-use.js +21 -21
  223. package/dist/hooks/prompt-submit.js +64 -62
  224. package/dist/hooks/session-end.js +29 -29
  225. package/dist/hooks/session-start.js +15 -15
  226. package/dist/hooks/stop.js +24 -24
  227. package/dist/hooks/subagent-stop.js +17 -17
  228. package/dist/hooks/summary-worker.js +28 -28
  229. package/dist/index.js +35 -35
  230. package/dist/{installer-D3O26L66.js → installer-2SY3BEHJ.js} +6 -6
  231. package/dist/{installer-UF3XD42O.js → installer-MWRZB3RT.js} +6 -6
  232. package/dist/{installer-XMAQDHCD.js → installer-XLP5MIRG.js} +6 -6
  233. package/dist/{key-backup-status-ZNGDSPLT.js → key-backup-status-TNEHXA2X.js} +1 -1
  234. package/dist/lib/agent-config.js +2 -2
  235. package/dist/lib/cloud-sync.js +17 -15
  236. package/dist/lib/config.js +1 -1
  237. package/dist/lib/consolidation.js +8 -8
  238. package/dist/lib/database.js +3 -3
  239. package/dist/lib/db-daemon-client.js +5 -5
  240. package/dist/lib/db.js +3 -3
  241. package/dist/lib/device-registry.js +2 -2
  242. package/dist/lib/embed-worker.js +3 -20
  243. package/dist/lib/embedder.js +5 -5
  244. package/dist/lib/employee-templates.js +6 -6
  245. package/dist/lib/employees.js +3 -3
  246. package/dist/lib/exe-daemon-client.js +4 -4
  247. package/dist/lib/exe-daemon.js +209 -108
  248. package/dist/lib/hybrid-search.js +6 -6
  249. package/dist/lib/identity.js +3 -3
  250. package/dist/lib/license.js +3 -3
  251. package/dist/lib/messaging.js +15 -15
  252. package/dist/lib/post-tool-memory.js +1 -1
  253. package/dist/lib/reminders.js +4 -4
  254. package/dist/lib/schedules.js +7 -6
  255. package/dist/lib/session-registry.js +5 -5
  256. package/dist/lib/skill-learning.js +7 -7
  257. package/dist/lib/status-brief.js +4 -1
  258. package/dist/lib/store.js +5 -5
  259. package/dist/lib/task-router.js +4 -4
  260. package/dist/lib/tasks.js +16 -16
  261. package/dist/lib/tmux-routing.js +16 -14
  262. package/dist/lib/token-spend.js +4 -4
  263. package/dist/{license-gate-ZEIWKM6X.js → license-gate-PHJLO2G6.js} +4 -4
  264. package/dist/mcp/register-tools.js +80 -79
  265. package/dist/mcp/server.js +82 -81
  266. package/dist/mcp/tools/complete-reminder.js +5 -5
  267. package/dist/mcp/tools/create-reminder.js +5 -5
  268. package/dist/mcp/tools/create-task.js +18 -18
  269. package/dist/mcp/tools/deactivate-behavior.js +8 -8
  270. package/dist/mcp/tools/list-reminders.js +5 -5
  271. package/dist/mcp/tools/list-tasks.js +18 -18
  272. package/dist/mcp/tools/send-message.js +17 -17
  273. package/dist/mcp/tools/update-task.js +17 -17
  274. package/dist/{mcp-http-config-O2EDZ3LH.js → mcp-http-config-6Q7SYJFY.js} +4 -4
  275. package/dist/{memory-cards-2A4XOW3I.js → memory-cards-IG3K6T7M.js} +18 -5
  276. package/dist/{memory-graph-extractor-NJRYH3C3.js → memory-graph-extractor-WZ77ITZ3.js} +11 -10
  277. package/dist/{memory-poisoning-defense-CJEHDWSP.js → memory-poisoning-defense-YQW6WVPL.js} +3 -3
  278. package/dist/memory-pressure-watchdog-JPCLJAXH.js +193 -0
  279. package/dist/{memory-queue-3Q5P43AM.js → memory-queue-X2CSEAKE.js} +2 -2
  280. package/dist/{memory-queue-client-IQJVT2D2.js → memory-queue-client-W24ZZ6ZF.js} +6 -6
  281. package/dist/{memory-reflection-33RJVLNA.js → memory-reflection-UGK2I2T7.js} +3 -3
  282. package/dist/{notifications-4SHQ55RU.js → notifications-3MO6HVJM.js} +14 -14
  283. package/dist/{orchestration-events-LVUZLYSH.js → orchestration-events-SKESCF4F.js} +4 -4
  284. package/dist/{orchestration-phase-U45T4VG3.js → orchestration-phase-CXRCBCK7.js} +2 -2
  285. package/dist/{orchestrator-Y7BHFM6L.js → orchestrator-SM65YFE2.js} +16 -16
  286. package/dist/{pipeline-router-QBIP2F5T.js → pipeline-router-UGCC5XSO.js} +4 -4
  287. package/dist/{plan-limits-HV2CBKQE.js → plan-limits-RUCNKVRH.js} +6 -6
  288. package/dist/{project-boot-QH5MFMCC.js → project-boot-3UP6ETJY.js} +1 -1
  289. package/dist/{projection-worker-324SNDNS.js → projection-worker-FBFQ232A.js} +4 -4
  290. package/dist/{prospective-memory-OZLHU6JE.js → prospective-memory-X4UQTUC2.js} +3 -3
  291. package/dist/{push-notifications-PAFNP3EC.js → push-notifications-W5JRXLKJ.js} +2 -2
  292. package/dist/{reranker-WIFQZNFQ.js → reranker-FIRW3XMW.js} +2 -2
  293. package/dist/{retrieval-health-7U3S2CQZ.js → retrieval-health-NWYJEIZS.js} +1 -1
  294. package/dist/{review-polling-EDE7FADS.js → review-polling-HUJMBGUY.js} +15 -15
  295. package/dist/runtime/index.js +19 -19
  296. package/dist/{session-events-HKHD6UZJ.js → session-events-UNCFJIK7.js} +15 -15
  297. package/dist/{session-kill-telemetry-QT4E5ZWG.js → session-kill-telemetry-VQ4JWWTI.js} +15 -15
  298. package/dist/{session-scope-AM3VI57I.js → session-scope-OLSNZJ24.js} +14 -14
  299. package/dist/{setup-wizard-H2IA3GLT.js → setup-wizard-X72EV5E2.js} +3 -2
  300. package/dist/{shard-manager-RASGFMGS.js → shard-manager-MBWQEYNG.js} +2 -2
  301. package/dist/{skill-refinement-X2A5HL7Q.js → skill-refinement-OJRBB3LD.js} +3 -3
  302. package/dist/{stack-release-TOCCJQOF.js → stack-release-3AF7TQ5N.js} +30 -3
  303. package/dist/{stack-update-J52JVJTQ.js → stack-update-PK2OYYR3.js} +8 -4
  304. package/dist/{steward-gate-EZQLRWXR.js → steward-gate-5ZWUVNGD.js} +4 -4
  305. package/dist/{task-enforcement-P65T5DML.js → task-enforcement-VFFLCP3N.js} +32 -14
  306. package/dist/{task-scope-3V64BHRV.js → task-scope-75JK27V5.js} +20 -14
  307. package/dist/{tasks-crud-MCOTWW4Y.js → tasks-crud-ADVXVR7D.js} +14 -14
  308. package/dist/{tasks-notify-6O2V7POZ.js → tasks-notify-NAA6IHHW.js} +15 -15
  309. package/dist/{tasks-review-7U7NPDL3.js → tasks-review-5A3JJR6R.js} +14 -14
  310. package/dist/{telemetry-upload-HC7QQG3B.js → telemetry-upload-HSXQYSVJ.js} +8 -8
  311. package/dist/{token-budget-7QLXKC4F.js → token-budget-GD2VU7N4.js} +4 -4
  312. package/dist/{tool-capability-index-6WWUMBSX.js → tool-capability-index-KA2HQ7A4.js} +1 -1
  313. package/dist/{tool-telemetry-44J6V65F.js → tool-telemetry-UQY7GDGE.js} +1 -1
  314. package/dist/tui/App.js +29 -29
  315. package/dist/{tui-data-WDYHYZ6P.js → tui-data-VYSH7F2K.js} +14 -14
  316. package/dist/{worker-gate-MJT55OYW.js → worker-gate-DRSX2SOW.js} +2 -2
  317. package/dist/{workflow-engine-R7BHF4ZX.js → workflow-engine-WFDIVYWP.js} +2 -2
  318. package/dist/{worktree-Q4IW3MI2.js → worktree-LWVPNZ4L.js} +5 -5
  319. package/dist/{worktree-sweep-4UTS72M7.js → worktree-sweep-3IZLGYYH.js} +6 -6
  320. package/package.json +2 -2
  321. package/release-notes.json +56 -59
  322. package/stack.release.json +2 -1
  323. /package/dist/{chunk-B5QFWOZL.js → chunk-3YKA5BKT.js} +0 -0
  324. /package/dist/{chunk-ZEIM2OSX.js → chunk-HJSMIHEY.js} +0 -0
  325. /package/dist/{chunk-WUBDPGXQ.js → chunk-NOPDNOGQ.js} +0 -0
  326. /package/dist/{chunk-W556IOF4.js → chunk-S6N7DLKL.js} +0 -0
  327. /package/dist/{chunk-5R7RRCFS.js → chunk-SOIHGU5I.js} +0 -0
  328. /package/dist/{chunk-LI6IWU56.js → chunk-XRJ3EFEF.js} +0 -0
  329. /package/dist/{core-memory-HHU3IYS6.js → core-memory-5HNI2YLS.js} +0 -0
  330. /package/dist/{entity-boost-2X6DCDNC.js → entity-boost-AQBUEMJK.js} +0 -0
  331. /package/dist/{message-queue-client-JEH524M4.js → message-queue-client-JGOK7POW.js} +0 -0
  332. /package/dist/{oauth-server-DWLQQ3SA.js → oauth-server-NZTPAFQ7.js} +0 -0
  333. /package/dist/{webhook-pipe-S4CWK6H5.js → webhook-pipe-FZYLO6RR.js} +0 -0
  334. /package/dist/{wiki-acl-LEPTGJPV.js → wiki-acl-4W4CSCFO.js} +0 -0
  335. /package/dist/{wiki-client-CIJXRMKL.js → wiki-client-VNDOBK63.js} +0 -0
@@ -1330,7 +1330,9 @@ services:
1330
1330
  # http://exe-otel-collector:4318 (HTTP) on the backend network.
1331
1331
 
1332
1332
  exe-otel-collector:
1333
- image: ${OTEL_COLLECTOR_IMAGE:-otel/opentelemetry-collector-contrib:0.114.0}
1333
+ # bug 32d6e02f: digest-pinned default (was tag-only) — matches the
1334
+ # stack manifest pin for otel/opentelemetry-collector-contrib:0.114.0.
1335
+ image: ${OTEL_COLLECTOR_IMAGE:-otel/opentelemetry-collector-contrib:0.114.0@sha256:37fa87091cfaaec7234a27e4e395a40c31c2bfaea97a349a4afef6d9e9681197}
1334
1336
  container_name: exe-otel-collector
1335
1337
  restart: unless-stopped
1336
1338
  command: ["--config=/etc/otelcol-contrib/config.yaml"]
@@ -1343,23 +1345,33 @@ services:
1343
1345
  - "127.0.0.1:${OTEL_HEALTH_PORT:-13133}:13133" # Health check
1344
1346
  networks:
1345
1347
  - backend
1346
- # Bug 2e8ef511: otel-contrib is a distroless image — only the /otelcol-contrib
1347
- # binary is present (no shell/wget/curl/nc, and the binary has no probe
1348
- # subcommand), so a Docker `healthcheck.test` CMD that runs INSIDE the
1349
- # container cannot be implemented for this upstream, pull-only image. The old
1350
- # `test: ["NONE"]` actively DISABLED health, so a broken collector still
1351
- # reported "running" a silent observability gap.
1348
+ # Bug 2e8ef511 / 32d6e02f: otel-contrib is a distroless image — only the
1349
+ # /otelcol-contrib binary is present (no shell/wget/curl/nc), so the usual
1350
+ # `curl -f .../health` in-container probe is impossible. The binary DOES,
1351
+ # however, ship the offline `validate` subcommand (since collector v0.99,
1352
+ # present in 0.114.0), which exec-runs with no shell and exits 0 only when
1353
+ # the binary is runnable AND the mounted config parses. We use that as the
1354
+ # in-container Docker healthcheck below: it catches a missing binary, a
1355
+ # corrupt image layer, or a bad config mount (the common failure modes for a
1356
+ # pull-only image) without needing any HTTP client.
1352
1357
  #
1353
- # The collector's health_check extension serves HTTP 200 on :13133, and that
1354
- # port is published to 127.0.0.1 above. Health is therefore verified
1355
- # EXTERNALLY: status.sh now probes http://127.0.0.1:${OTEL_HEALTH_PORT}/
1356
- # alongside every other service endpoint, so a down/unhealthy collector is
1357
- # surfaced by the stack health tooling instead of hiding behind "running".
1358
+ # `validate` is a config/binary sanity check, NOT a full runtime-liveness
1359
+ # probe (a hung collector with a valid config could still pass it). TRUE
1360
+ # runtime liveness that receivers are actually listening — is verified
1361
+ # EXTERNALLY: the collector's health_check extension serves HTTP 200 on
1362
+ # :13133 (published to 127.0.0.1 above) and status.sh probes
1363
+ # http://127.0.0.1:${OTEL_HEALTH_PORT}/ alongside every other service.
1358
1364
  # Keep that probe in lockstep with the OTEL_HEALTH_PORT mapping above.
1359
1365
  #
1360
- # NOTE: we intentionally do NOT set `test: ["NONE"]`. Leaving healthcheck
1361
- # unset inherits the upstream image's own HEALTHCHECK if one is ever added,
1362
- # whereas ["NONE"] would permanently suppress it.
1366
+ # Nothing `depends_on` this service with `condition: service_healthy`, and
1367
+ # `restart: unless-stopped` does not restart on `unhealthy`, so the
1368
+ # healthcheck only surfaces status it can never block or crash-loop the stack.
1369
+ healthcheck:
1370
+ test: ["CMD", "/otelcol-contrib", "validate", "--config=/etc/otelcol-contrib/config.yaml"]
1371
+ interval: 30s
1372
+ timeout: 10s
1373
+ retries: 3
1374
+ start_period: 10s
1363
1375
  deploy:
1364
1376
  resources:
1365
1377
  limits:
@@ -8,12 +8,12 @@ const AUTH_REGISTRY = "update.askexe.com/askexe";
8
8
  // Keep these defaults in sync with deploy/stack-manifests/v0.9.json latest.
9
9
  // deploy/compose/.env.example intentionally uses GHCR fallbacks so local
10
10
  // simulation can run without private update.askexe.com registry credentials.
11
- const CRM_RELEASE_TAG = "v0.9.47";
12
- const WIKI_RELEASE_TAG = "v0.9.21";
13
- const EXED_RELEASE_TAG = "v0.9.258";
14
- const GATEWAY_RELEASE_TAG = "v0.9.17";
15
- const MONITOR_RELEASE_TAG = "v0.9.4";
16
- const ERP_RELEASE_TAG = "v0.2.0-final8";
11
+ const CRM_RELEASE_TAG = "v0.9.51";
12
+ const WIKI_RELEASE_TAG = "v0.9.26";
13
+ const EXED_RELEASE_TAG = "v0.9.311";
14
+ const GATEWAY_RELEASE_TAG = "v0.9.24";
15
+ const MONITOR_RELEASE_TAG = "v0.9.5";
16
+ const ERP_RELEASE_TAG = "v0.2.2";
17
17
  const EXE_BUILD_RELEASE_TAG = "v0.1.0";
18
18
  // Bug 58840873: pin exe-auth to the manifest-pinned tag so a generated .env never
19
19
  // lets compose fall back to its (stale) hardcoded default image. MUST equal the
@@ -164,12 +164,62 @@ DO $$ DECLARE s text; BEGIN
164
164
  END LOOP;
165
165
  END $$;
166
166
 
167
- -- raw.raw_events — SCHEMA OWNER: exe-db Prisma migrations (bug dc149875).
168
- -- DO NOT create this table here. exe-db owns the raw_events schema via Prisma
169
- -- migrations (20260504083822_add_raw_landing_pad + subsequent ALTERs). Creating
170
- -- the table here with different column types (UUID vs TEXT id, TIMESTAMPTZ vs
171
- -- TIMESTAMP) caused conflicts when Prisma migrations ran afterwards.
172
- -- The projection-worker self-heals missing columns via ADD COLUMN IF NOT EXISTS.
167
+ -- ---------------------------------------------------------------------------
168
+ -- raw.raw_events the immutable landing pad (audit dd214d82 P0, dc149875 P1).
169
+ --
170
+ -- init-db.sql (docker-initdb) and exe-db Prisma migrations are TWO INDEPENDENT
171
+ -- bootstrap paths for the SAME database; only one runs per DB and they must
172
+ -- CONVERGE on an identical schema. The canonical exe-db RawEvent model
173
+ -- (prisma/schema.prisma) is the source of truth and explicitly names this file
174
+ -- as the matching docker-initdb shape, including the full non-partial dedup
175
+ -- index uq_raw_events_dedup (audit dd214d82). Omitting the table here broke that
176
+ -- convergence and left a Prisma-only DB without the bootstrap shape.
177
+ --
178
+ -- Column TYPES mirror the Prisma model exactly to avoid the dc149875 drift that
179
+ -- caused failures: id is TEXT (NOT uuid) and all timestamps are TIMESTAMPTZ —
180
+ -- matching Prisma's `id String` + `@db.Timestamptz(3)`. The writers (gateway,
181
+ -- cloud-sync) supply id explicitly; the default below is only for direct inserts.
182
+ --
183
+ -- The bare gateway/cloud-sync arbiter `ON CONFLICT (source, source_id,
184
+ -- event_type)` requires a FULL (non-partial) unique index to be inferable — a
185
+ -- partial index raises 42P10 and silently drops inbound events/media. That full
186
+ -- index (uq_raw_events_dedup) is created below; NULLs are DISTINCT by default so
187
+ -- multiple NULL-source_id events for the same (source, event_type) stay allowed.
188
+ CREATE TABLE IF NOT EXISTS raw.raw_events (
189
+ id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
190
+ source TEXT NOT NULL,
191
+ source_id TEXT,
192
+ event_type TEXT NOT NULL,
193
+ payload JSONB NOT NULL,
194
+ metadata JSONB,
195
+ timestamp TIMESTAMPTZ NOT NULL DEFAULT now(),
196
+ created_at TIMESTAMPTZ DEFAULT now(),
197
+ processed_at TIMESTAMPTZ,
198
+ projections JSONB,
199
+ retry_count INT NOT NULL DEFAULT 0,
200
+ error TEXT,
201
+ failed_at TIMESTAMPTZ
202
+ );
203
+
204
+ SELECT pg_temp.exe_add_column_if_missing('raw', 'raw_events', 'created_at', 'created_at TIMESTAMPTZ DEFAULT now()');
205
+ SELECT pg_temp.exe_add_column_if_missing('raw', 'raw_events', 'processed_at', 'processed_at TIMESTAMPTZ');
206
+ SELECT pg_temp.exe_add_column_if_missing('raw', 'raw_events', 'projections', 'projections JSONB');
207
+ SELECT pg_temp.exe_add_column_if_missing('raw', 'raw_events', 'retry_count', 'retry_count INT NOT NULL DEFAULT 0');
208
+ SELECT pg_temp.exe_add_column_if_missing('raw', 'raw_events', 'error', 'error TEXT');
209
+ SELECT pg_temp.exe_add_column_if_missing('raw', 'raw_events', 'failed_at', 'failed_at TIMESTAMPTZ');
210
+
211
+ -- Plain secondary indexes (match Prisma @@index declarations).
212
+ SELECT pg_temp.exe_create_index_if_columns_exist('raw_events_source_event_type_idx', 'raw', 'raw_events', ARRAY['source', 'event_type'], 'CREATE INDEX IF NOT EXISTS raw_events_source_event_type_idx ON raw.raw_events (source, event_type)');
213
+ SELECT pg_temp.exe_create_index_if_columns_exist('raw_events_processed_at_idx', 'raw', 'raw_events', ARRAY['processed_at'], 'CREATE INDEX IF NOT EXISTS raw_events_processed_at_idx ON raw.raw_events (processed_at)');
214
+ SELECT pg_temp.exe_create_index_if_columns_exist('raw_events_timestamp_idx', 'raw', 'raw_events', ARRAY['timestamp'], 'CREATE INDEX IF NOT EXISTS raw_events_timestamp_idx ON raw.raw_events ("timestamp")');
215
+ -- Partial functional indexes — same names + predicates as exe-db migration
216
+ -- 20260623000000_raw_events_created_at_canonical (audit dc149875).
217
+ SELECT pg_temp.exe_create_index_if_columns_exist('idx_raw_events_unprocessed', 'raw', 'raw_events', ARRAY['created_at', 'processed_at'], 'CREATE INDEX IF NOT EXISTS idx_raw_events_unprocessed ON raw.raw_events (created_at) WHERE processed_at IS NULL');
218
+ SELECT pg_temp.exe_create_index_if_columns_exist('idx_raw_events_retryable', 'raw', 'raw_events', ARRAY['failed_at', 'processed_at', 'retry_count'], 'CREATE INDEX IF NOT EXISTS idx_raw_events_retryable ON raw.raw_events (failed_at) WHERE processed_at IS NULL AND failed_at IS NOT NULL AND retry_count < 5');
219
+ -- Canonical FULL (non-partial) dedup arbiter for the bare ON CONFLICT. Name +
220
+ -- columns match exe-db migration 20260620000000_raw_events_dedup_canonical_unique
221
+ -- and prisma/schema.prisma's @@unique(map: "uq_raw_events_dedup") (audit dd214d82).
222
+ SELECT pg_temp.exe_create_index_if_columns_exist('uq_raw_events_dedup', 'raw', 'raw_events', ARRAY['source', 'source_id', 'event_type'], 'CREATE UNIQUE INDEX IF NOT EXISTS uq_raw_events_dedup ON raw.raw_events (source, source_id, event_type)');
173
223
 
174
224
  -- ---------------------------------------------------------------------------
175
225
  -- Graph schema — Company Brain memory + GraphRAG projection targets.
@@ -0,0 +1,3 @@
1
+ -----BEGIN PUBLIC KEY-----
2
+ MCowBQYDK2VwAyEA9jWntop9h4lBttod7yfeFcXQXKqqaGOOjvaKswNJdqs=
3
+ -----END PUBLIC KEY-----