@askexenow/exe-os 0.9.390 → 0.9.392

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 (439) hide show
  1. package/deploy/compose/.env.customer.example +5 -0
  2. package/deploy/compose/.env.example +5 -0
  3. package/deploy/compose/docker-compose.yml +6 -2
  4. package/deploy/compose/generate-env.ts +10 -0
  5. package/deploy/stack-manifests/v0.9.json +550 -1
  6. package/dist/.dist-verified.json +3 -3
  7. package/dist/{active-agent-YWSWPIEA.js → active-agent-KMGOYJTP.js} +5 -5
  8. package/dist/{active-agent-RZ24KSJN.js → active-agent-UT74X3HB.js} +5 -5
  9. package/dist/{agent-defs-generator-GY3UBREJ.js → agent-defs-generator-DUPDVGXT.js} +4 -4
  10. package/dist/{agent-loop-HPNCH3HK.js → agent-loop-32B6KOGH.js} +1 -1
  11. package/dist/{agentic-ontology-RHYNXEKE.js → agentic-ontology-RXYOTUGP.js} +1 -1
  12. package/dist/{artifact-backup-HGUFSIJH.js → artifact-backup-H5V445KT.js} +3 -3
  13. package/dist/{backfill-metadata-XLFASEOD.js → backfill-metadata-WS4INVAK.js} +9 -9
  14. package/dist/{backup-verify-TUQEICWA.js → backup-verify-ES6KZRMX.js} +1 -1
  15. package/dist/{behavior-injection-GXO7ERGN.js → behavior-injection-FKOYK7NA.js} +15 -15
  16. package/dist/{behavior-promotion-V63WIZ4N.js → behavior-promotion-ORK3QA4O.js} +14 -14
  17. package/dist/{behaviors-RMLDPLOF.js → behaviors-PIXMFSU4.js} +13 -13
  18. package/dist/bin/agentic-ontology-backfill.js +10 -10
  19. package/dist/bin/agentic-reflection-backfill.js +11 -11
  20. package/dist/bin/agentic-semantic-label.js +10 -10
  21. package/dist/bin/backfill-conversations.js +11 -11
  22. package/dist/bin/backfill-responses.js +11 -11
  23. package/dist/bin/backfill-vectors.js +12 -12
  24. package/dist/bin/bulk-sync-postgres.js +21 -21
  25. package/dist/bin/cc-doctor.js +11 -11
  26. package/dist/bin/cleanup-stale-review-tasks.js +52 -29
  27. package/dist/bin/cli.js +33 -27
  28. package/dist/bin/deferred-daemon-restart.js +116 -112
  29. package/dist/bin/exe-actions.js +2 -2
  30. package/dist/bin/exe-agent-config.js +4 -4
  31. package/dist/bin/exe-agent.js +12 -7
  32. package/dist/bin/exe-assign.js +13 -13
  33. package/dist/bin/exe-boot.js +67 -46
  34. package/dist/bin/exe-call.js +11 -6
  35. package/dist/bin/exe-cloud.js +24 -24
  36. package/dist/bin/exe-config-dump.js +4 -4
  37. package/dist/bin/exe-dispatch.js +23 -23
  38. package/dist/bin/exe-doctor.js +10 -10
  39. package/dist/bin/exe-export-behaviors.js +17 -17
  40. package/dist/bin/exe-forget.js +13 -12
  41. package/dist/bin/exe-gateway.js +10 -10
  42. package/dist/bin/exe-grant.js +6 -6
  43. package/dist/bin/exe-healthcheck.js +11 -11
  44. package/dist/bin/exe-heartbeat.js +28 -28
  45. package/dist/bin/exe-kill.js +28 -28
  46. package/dist/bin/exe-launch-agent.js +92 -42
  47. package/dist/bin/exe-mcp.js +6 -6
  48. package/dist/bin/exe-memory-reads.js +9 -9
  49. package/dist/bin/exe-new-employee.js +11 -10
  50. package/dist/bin/exe-os-mcp-proxy.js +6 -6
  51. package/dist/bin/exe-pending-messages.js +23 -23
  52. package/dist/bin/exe-pending-notifications.js +22 -22
  53. package/dist/bin/exe-pending-reviews.js +27 -32
  54. package/dist/bin/exe-rename.js +7 -6
  55. package/dist/bin/exe-review.js +27 -27
  56. package/dist/bin/exe-search.js +12 -11
  57. package/dist/bin/exe-session-cleanup.js +29 -29
  58. package/dist/bin/exe-settings.js +21 -21
  59. package/dist/bin/exe-start-codex.js +23 -23
  60. package/dist/bin/exe-start-opencode.js +21 -21
  61. package/dist/bin/exe-status.js +24 -24
  62. package/dist/bin/exe-support.js +3 -3
  63. package/dist/bin/exe-team.js +6 -6
  64. package/dist/bin/git-sweep.js +24 -24
  65. package/dist/bin/graph-backfill.js +10 -10
  66. package/dist/bin/graph-export.js +10 -10
  67. package/dist/bin/hooks-cli.js +1 -1
  68. package/dist/bin/import-history.js +13 -13
  69. package/dist/bin/install.js +117 -113
  70. package/dist/bin/intercom-check.js +5 -5
  71. package/dist/bin/mcp-sessions.js +2 -2
  72. package/dist/bin/orchestration-metrics.js +6 -6
  73. package/dist/bin/postgres-agentic-reflection-backfill.js +4 -4
  74. package/dist/bin/postgres-agentic-semantic-backfill.js +4 -4
  75. package/dist/bin/reconcile-backlog.js +2 -2
  76. package/dist/bin/registry-proxy.js +1 -1
  77. package/dist/bin/repair-document-chunks.js +9 -9
  78. package/dist/bin/scan-tasks.js +23 -23
  79. package/dist/bin/setup.js +2 -2
  80. package/dist/bin/shard-migrate.js +10 -10
  81. package/dist/bin/stack-update.js +78 -12
  82. package/dist/bin/vps-health-gate.js +1 -1
  83. package/dist/{boot-generation-VCQXVYGT.js → boot-generation-VDJ5HMEJ.js} +5 -5
  84. package/dist/{boot-review-sections-3QO6Q7MP.js → boot-review-sections-AJYGE43M.js} +21 -21
  85. package/dist/bug-census-BF72BPTL.js +25 -0
  86. package/dist/{bug-landed-reconciler-TQVNOUCU.js → bug-landed-reconciler-GIMANSER.js} +8 -8
  87. package/dist/build-manifest.json +1067 -1017
  88. package/dist/{capability-cards-XPDLT6LU.js → capability-cards-W3RKKTLM.js} +4 -4
  89. package/dist/{capacity-monitor-N3AW242L.js → capacity-monitor-FLJUGKD4.js} +23 -23
  90. package/dist/{catchup-brief-3PKX7FUP.js → catchup-brief-63VXMIPM.js} +29 -29
  91. package/dist/{chunk-WQN2XK4V.js → chunk-33CHRORT.js} +1 -1
  92. package/dist/{chunk-NVTG66CK.js → chunk-37IIJJZ7.js} +1 -1
  93. package/dist/{chunk-CL3AB7Z2.js → chunk-3K7KNYMN.js} +1 -1
  94. package/dist/{chunk-QLXEQRHD.js → chunk-3L4RETZK.js} +4 -4
  95. package/dist/{chunk-ZZWFZ46U.js → chunk-3Q6OSNBD.js} +1 -1
  96. package/dist/{chunk-DZPSBA4B.js → chunk-3SXU7KLW.js} +750 -45
  97. package/dist/{chunk-CUDNRHHT.js → chunk-3WZAKZ6D.js} +15 -15
  98. package/dist/{chunk-TQS2YHLB.js → chunk-44PSPDMC.js} +1 -1
  99. package/dist/{key-backup-status-6U7D5GOD.js → chunk-4PHQAHX2.js} +13 -7
  100. package/dist/{chunk-SQA7XCYI.js → chunk-4QRDD467.js} +3 -3
  101. package/dist/{chunk-XCAKYVKI.js → chunk-4VAZPPTM.js} +1 -1
  102. package/dist/{chunk-ZD6FZ3WL.js → chunk-5FLWJLQ3.js} +69 -14
  103. package/dist/{chunk-IVE7H6KA.js → chunk-5M7DUOBQ.js} +1 -1
  104. package/dist/{chunk-DPYZW42H.js → chunk-653YQ65D.js} +1 -1
  105. package/dist/{chunk-IWY2OGQG.js → chunk-77EIMVAX.js} +1 -1
  106. package/dist/{chunk-RBQUXHYK.js → chunk-7FE43JRU.js} +23 -9
  107. package/dist/{chunk-IPTUKX3N.js → chunk-7LASHAEY.js} +1 -1
  108. package/dist/{chunk-E5CKRHIZ.js → chunk-7M3PFO3L.js} +8 -3
  109. package/dist/{chunk-5BJBTFFQ.js → chunk-7TUABMZL.js} +8 -6
  110. package/dist/{chunk-AIB2EWO2.js → chunk-7WWJKWVN.js} +51 -53
  111. package/dist/{chunk-MWKXQSF6.js → chunk-7ZJER2TU.js} +1 -1
  112. package/dist/{chunk-RDMBSHGG.js → chunk-AEZYWXG7.js} +3 -3
  113. package/dist/{chunk-H3YF7X4J.js → chunk-AID2665C.js} +2 -2
  114. package/dist/{chunk-IG2ISRTF.js → chunk-APBENPN6.js} +1 -1
  115. package/dist/{chunk-3GL3E4TD.js → chunk-ATUA7B5P.js} +3 -3
  116. package/dist/{chunk-OHZSTZXN.js → chunk-AY7DPYVY.js} +3 -3
  117. package/dist/{chunk-7FZG7WP4.js → chunk-AZ75N5Y3.js} +4 -4
  118. package/dist/{chunk-3ZL4MDQ6.js → chunk-BBDFCBGU.js} +23 -9
  119. package/dist/{chunk-4GAKF7KR.js → chunk-BJ4Y3OLH.js} +65 -19
  120. package/dist/{chunk-ATNV3BVZ.js → chunk-BOMLUVIQ.js} +1 -1
  121. package/dist/{chunk-S2V272KJ.js → chunk-BPCUOXSR.js} +3 -3
  122. package/dist/{chunk-4FLLIQRQ.js → chunk-BTQ3VK4R.js} +2 -2
  123. package/dist/{chunk-5TYJYGS5.js → chunk-BWTQEGQV.js} +1 -1
  124. package/dist/{chunk-YMRQIENV.js → chunk-C6USRUMK.js} +2 -2
  125. package/dist/{chunk-AEIOFFFX.js → chunk-C7X2BXJW.js} +4 -4
  126. package/dist/{chunk-SJP57MQM.js → chunk-CKREHJ7G.js} +1 -1
  127. package/dist/{chunk-PAFLR7WD.js → chunk-CUHEZVKU.js} +3 -3
  128. package/dist/chunk-DK2O22S7.js +226 -0
  129. package/dist/{chunk-SGYEM2PD.js → chunk-DKQXLTL7.js} +1 -1
  130. package/dist/{chunk-QPTSA4PP.js → chunk-DNH6MFQE.js} +1 -1
  131. package/dist/{chunk-BGVP5RMT.js → chunk-DOF5CI6P.js} +2 -2
  132. package/dist/{chunk-TLSFGXXE.js → chunk-E3YEG4LM.js} +1 -1
  133. package/dist/{chunk-NSXJOSH7.js → chunk-ECTLDHVD.js} +1 -1
  134. package/dist/{chunk-RYNT3HB7.js → chunk-EDSUVHOE.js} +8 -8
  135. package/dist/{chunk-2CUQHG6H.js → chunk-EKMVFIAF.js} +440 -420
  136. package/dist/{chunk-E54SPUYJ.js → chunk-EPEIBL7R.js} +3 -3
  137. package/dist/{chunk-HRNM3N4Y.js → chunk-EQGGZV7I.js} +27 -1
  138. package/dist/{chunk-M5XHN4OM.js → chunk-EZKQJTR3.js} +3 -3
  139. package/dist/{chunk-V6F4I2XY.js → chunk-F546SXKC.js} +176 -11
  140. package/dist/{chunk-AP2C4OGS.js → chunk-F5WE6QDP.js} +3 -3
  141. package/dist/{chunk-BNI4LIU5.js → chunk-FO5WBZ6F.js} +3 -3
  142. package/dist/{chunk-DDYFNBYV.js → chunk-FST36GJK.js} +2 -2
  143. package/dist/{chunk-GP7CTIUK.js → chunk-GACDJ54Z.js} +2 -2
  144. package/dist/{chunk-4S3A52AV.js → chunk-GMVLOPF4.js} +7 -7
  145. package/dist/{chunk-GL57PO3K.js → chunk-H5V5N3Q4.js} +49 -30
  146. package/dist/{chunk-B5EGDNG6.js → chunk-HKARWJRT.js} +12 -4
  147. package/dist/{chunk-BU5JRLZT.js → chunk-HPKUKHS7.js} +1 -1
  148. package/dist/{chunk-QUZYLDNJ.js → chunk-HYJJFZ5Q.js} +5 -5
  149. package/dist/{chunk-B4XJQBQB.js → chunk-I2RKHNBD.js} +1 -1
  150. package/dist/{chunk-N32DVIKY.js → chunk-I3IFG3FB.js} +1 -1
  151. package/dist/{chunk-D4C57S2H.js → chunk-ISOHTBFP.js} +4 -4
  152. package/dist/{chunk-LW3JCBXP.js → chunk-IVJ7ZA6Z.js} +1 -1
  153. package/dist/{chunk-U44Y7RC7.js → chunk-J2SIJM4Q.js} +1 -1
  154. package/dist/{chunk-V4WH3FV7.js → chunk-JSBCYPLI.js} +1 -1
  155. package/dist/{chunk-KZLKE7I3.js → chunk-K6NJ7FAZ.js} +253 -7
  156. package/dist/{chunk-5ONMHTNI.js → chunk-KI33NJR6.js} +63 -16
  157. package/dist/{chunk-EIOGV75A.js → chunk-KX3UFYQH.js} +1 -1
  158. package/dist/{chunk-B7FDRN7G.js → chunk-KZ5K3BWO.js} +1 -1
  159. package/dist/{chunk-T4P2G3PO.js → chunk-L4P4S5HJ.js} +1 -1
  160. package/dist/chunk-L6DCLZG7.js +200 -0
  161. package/dist/{chunk-E2PRXEZK.js → chunk-LIQLDYPG.js} +2 -2
  162. package/dist/{chunk-5QQJUO3F.js → chunk-LK2VQORU.js} +86 -32
  163. package/dist/{chunk-3UD3OF3X.js → chunk-LOEY2UVH.js} +15 -21
  164. package/dist/{chunk-GDLB6BPM.js → chunk-LST32VPY.js} +1 -1
  165. package/dist/chunk-MA447ZGE.js +167 -0
  166. package/dist/{chunk-H6PLIFUE.js → chunk-MAEZYPAD.js} +2 -2
  167. package/dist/{chunk-CP7XUSOF.js → chunk-MGOXVPP3.js} +1 -1
  168. package/dist/{chunk-UKBPEEEQ.js → chunk-MPUHXQVT.js} +2 -2
  169. package/dist/{chunk-JQN3QGSF.js → chunk-MSQDY5BD.js} +1 -1
  170. package/dist/{chunk-XW2FW6LS.js → chunk-N3ILKX76.js} +2 -2
  171. package/dist/{chunk-637FL62O.js → chunk-NID7DKGB.js} +15 -1
  172. package/dist/{chunk-XTCXGWTV.js → chunk-NKPPPX6I.js} +3 -3
  173. package/dist/{chunk-5U6EOTZV.js → chunk-NMX2HIO4.js} +2 -2
  174. package/dist/{chunk-2Q2GGYBX.js → chunk-O42JKBMU.js} +1 -1
  175. package/dist/{chunk-VBKUESIW.js → chunk-OAXUXLD5.js} +1 -1
  176. package/dist/{chunk-TYD4F4XU.js → chunk-OJKFGGQY.js} +7 -7
  177. package/dist/{chunk-SSFS4NCH.js → chunk-ONMKHJJL.js} +15 -4
  178. package/dist/{chunk-TU4M757W.js → chunk-OOTE6P4W.js} +11 -11
  179. package/dist/{chunk-FWRPDSO3.js → chunk-OYAWTVLD.js} +104 -23
  180. package/dist/{chunk-XMX5J52Z.js → chunk-OZ2N27QP.js} +1 -1
  181. package/dist/{chunk-SL4JWAMQ.js → chunk-P6WC6Z5G.js} +1 -0
  182. package/dist/{chunk-MQHUJLCA.js → chunk-PAE7AYA7.js} +1 -1
  183. package/dist/{chunk-3DCBDG4T.js → chunk-PC2FZP4I.js} +2 -2
  184. package/dist/{chunk-36LMIOVU.js → chunk-PIAQ2IVK.js} +9 -9
  185. package/dist/{chunk-YI4D6E75.js → chunk-PRCJG3PK.js} +2 -2
  186. package/dist/{chunk-VBPYYJPC.js → chunk-PYS43F2X.js} +1 -1
  187. package/dist/{chunk-RGUM474V.js → chunk-Q5QJKTFE.js} +7 -7
  188. package/dist/{chunk-5RK75SWH.js → chunk-Q73L2DD2.js} +18 -20
  189. package/dist/{chunk-GOVGG7HU.js → chunk-Q7NPGKYQ.js} +2 -2
  190. package/dist/{chunk-3X74IQBU.js → chunk-QAHGK2PI.js} +1 -1
  191. package/dist/{chunk-OSIS7ZQW.js → chunk-QJCTRPZI.js} +4 -4
  192. package/dist/{chunk-4VQ3QR6B.js → chunk-QMEEQQGH.js} +1 -1
  193. package/dist/{chunk-QNPDXV5V.js → chunk-QU6NDZC4.js} +3 -3
  194. package/dist/{chunk-RWKAHHIX.js → chunk-QXHWGVRH.js} +3 -3
  195. package/dist/{chunk-LUA4SLJY.js → chunk-RANDR43T.js} +2 -2
  196. package/dist/{chunk-WUCUDHKR.js → chunk-RIUNBWZ3.js} +1 -1
  197. package/dist/{chunk-FDWI3T6I.js → chunk-S25T3NVU.js} +28 -11
  198. package/dist/{chunk-MCWEW2SG.js → chunk-SPHTQJG4.js} +6 -1
  199. package/dist/{chunk-QDBKMEYY.js → chunk-SZUVV7YN.js} +9 -9
  200. package/dist/{chunk-ZUGQPYUY.js → chunk-T4IDLAZM.js} +44 -1
  201. package/dist/{chunk-Z3LXWCB7.js → chunk-TI2O3BGI.js} +1 -1
  202. package/dist/{chunk-JOF4HQDF.js → chunk-TIR6CDYS.js} +5 -5
  203. package/dist/{chunk-O45GBJEH.js → chunk-TVAY6SLO.js} +6 -6
  204. package/dist/{chunk-HJNQAEZV.js → chunk-TVSIS36M.js} +1 -1
  205. package/dist/{chunk-MDTWARSF.js → chunk-UDMD6THV.js} +3 -2
  206. package/dist/{chunk-FNJTCJGY.js → chunk-UGMG5OF5.js} +4 -4
  207. package/dist/chunk-UHILXFV4.js +53 -0
  208. package/dist/{chunk-TEWWBVQP.js → chunk-UIFL3ACI.js} +3 -3
  209. package/dist/{chunk-RWG7DLOG.js → chunk-UJHNO55B.js} +4 -4
  210. package/dist/{chunk-X7HZHKY4.js → chunk-USZHUBHT.js} +1 -1
  211. package/dist/{chunk-P22VFGFK.js → chunk-UV3IZRR3.js} +21 -9
  212. package/dist/{chunk-TA3B4N24.js → chunk-VPM27HI6.js} +1 -1
  213. package/dist/{chunk-754P2UXM.js → chunk-W3TOKCLE.js} +1 -1
  214. package/dist/{chunk-7NEBFB3L.js → chunk-WFEADHAK.js} +4 -4
  215. package/dist/{chunk-L3GXMYBK.js → chunk-WLB7DHTH.js} +1 -1
  216. package/dist/{chunk-CL2MU3OX.js → chunk-WWUOHSEO.js} +1 -1
  217. package/dist/{chunk-ZB4FS2EG.js → chunk-XL5XSSBD.js} +1 -1
  218. package/dist/{chunk-YA5LK6KB.js → chunk-XT5PYWRZ.js} +3 -3
  219. package/dist/{chunk-VIP4LKLO.js → chunk-XVCWPHV3.js} +11 -11
  220. package/dist/{chunk-QDVLVLXP.js → chunk-Y3PPEY4I.js} +46 -33
  221. package/dist/{chunk-ANVHWV2X.js → chunk-YNPZKL4B.js} +1 -1
  222. package/dist/{chunk-JWYIH5DR.js → chunk-YTM3JLNP.js} +3 -3
  223. package/dist/{chunk-Z7I6NQMA.js → chunk-YXKKUUUP.js} +29 -1
  224. package/dist/{chunk-B7WVYLAQ.js → chunk-YYRI2AGK.js} +21 -1
  225. package/dist/{chunk-XWVHUDEK.js → chunk-ZP3KBVBM.js} +43 -17
  226. package/dist/{chunk-WC7AE3PT.js → chunk-ZPKCMYRR.js} +4 -4
  227. package/dist/{chunk-4ESNDGMB.js → chunk-ZRSTH4DW.js} +3 -3
  228. package/dist/{cleanup-graph-garbage-HFUD5ZQT.js → cleanup-graph-garbage-MN5P3TGG.js} +10 -10
  229. package/dist/cli-shutdown-U52YNEZS.js +11 -0
  230. package/dist/{cloud-sync-command-3JHJJKPN.js → cloud-sync-command-FGPNYCFZ.js} +2 -2
  231. package/dist/{cloud-sync-db-init-2LHIQOSF.js → cloud-sync-db-init-2XNKOECM.js} +1 -1
  232. package/dist/{cloud-sync-shutdown-ZXAXA3Z7.js → cloud-sync-shutdown-VAW7NSXD.js} +4 -4
  233. package/dist/{co-activation-NX4EH4AP.js → co-activation-2IHH6VMX.js} +4 -4
  234. package/dist/{co-occurrence-5LBYCW3U.js → co-occurrence-L23O2V65.js} +8 -8
  235. package/dist/{code-context-index-WFLLZBVB.js → code-context-index-FXUP6WC2.js} +3 -3
  236. package/dist/{code-context-watcher-3QAPHO7N.js → code-context-watcher-56RIWDPU.js} +3 -3
  237. package/dist/{consent-passphrase-65W3DJIJ.js → consent-passphrase-UD7F3JRP.js} +2 -2
  238. package/dist/{content-extractor-OGXETBOX.js → content-extractor-XCS6QGM4.js} +2 -2
  239. package/dist/{conversation-entity-extractor-FQCOAH4F.js → conversation-entity-extractor-V4YSZ6RD.js} +5 -5
  240. package/dist/{crdt-sync-7TDUBTLH.js → crdt-sync-OQRCCGOY.js} +4 -4
  241. package/dist/{crm-webhook-776JTY55.js → crm-webhook-EKZ2HSJB.js} +2 -2
  242. package/dist/{cto-delegation-gate-ZNUWVYCN.js → cto-delegation-gate-OS4OPWVH.js} +21 -21
  243. package/dist/{daemon-orchestration-76BOFDEP.js → daemon-orchestration-34W7VHSG.js} +30 -26
  244. package/dist/{daemon-ready-VZ6ZHA2C.js → daemon-ready-JYP5N2ME.js} +1 -1
  245. package/dist/{doc-graph-extractor-F724KZJX.js → doc-graph-extractor-LO7UXL3O.js} +8 -8
  246. package/dist/{documents-Q24V4GRD.js → documents-6Y4YCT47.js} +13 -13
  247. package/dist/{dreaming-IY6NQTSP.js → dreaming-MVBNJ5YE.js} +27 -27
  248. package/dist/{employee-boot-brief-CCTXO5DQ.js → employee-boot-brief-BIUUEIU5.js} +32 -32
  249. package/dist/{entity-boost-XGOB7HDM.js → entity-boost-LIFYO4UU.js} +1 -1
  250. package/dist/{exe-drift-NEPXLNGP.js → exe-drift-6OZ65RLN.js} +5 -5
  251. package/dist/{exe-export-ZHJQFKR2.js → exe-export-VNGOHPVK.js} +14 -14
  252. package/dist/{exe-import-7SVNI4FW.js → exe-import-SJNB7UAO.js} +14 -14
  253. package/dist/{exe-key-QJKU56WZ.js → exe-key-2FQQSVBO.js} +118 -114
  254. package/dist/{exe-org-SJXHLV6K.js → exe-org-KSKYB7TS.js} +186 -36
  255. package/dist/{exe-snapshot-EFWPXTXE.js → exe-snapshot-MLBUKN5R.js} +31 -31
  256. package/dist/{fast-db-init-BQZOQNT3.js → fast-db-init-OWDRZWT4.js} +1 -1
  257. package/dist/{founder-context-KG2ZAOXY.js → founder-context-APXY36SA.js} +2 -2
  258. package/dist/{founder-monitor-envelope-NYB5LLU4.js → founder-monitor-envelope-SWRFXDDG.js} +4 -4
  259. package/dist/gateway/index.js +18 -18
  260. package/dist/{gateway-client-ODMUXUL3.js → gateway-client-5OIJTYZB.js} +1 -1
  261. package/dist/{git-staleness-OPGEAJA7.js → git-staleness-7J6TNKET.js} +4 -4
  262. package/dist/{global-procedures-3KXY4LL6.js → global-procedures-QOQVH5BL.js} +10 -5
  263. package/dist/{graph-auto-extract-I7H2F5NJ.js → graph-auto-extract-37R5XL2A.js} +8 -8
  264. package/dist/{graph-query-E7JBSNY5.js → graph-query-R5Q6YMDO.js} +1 -1
  265. package/dist/{graph-rag-H24CMFP2.js → graph-rag-RCPXFGNJ.js} +5 -5
  266. package/dist/{hook-integrity-PGQ3OX4S.js → hook-integrity-S736NJBE.js} +1 -1
  267. package/dist/{hook-prefetch-7AZJER6Z.js → hook-prefetch-SYU6L5Z5.js} +22 -22
  268. package/dist/hooks/bug-report-worker.js +26 -26
  269. package/dist/hooks/codex-stop-task-finalizer.js +28 -28
  270. package/dist/hooks/commit-complete.js +26 -26
  271. package/dist/hooks/error-recall.js +13 -13
  272. package/dist/hooks/exe-heartbeat-hook.js +6 -6
  273. package/dist/hooks/ingest-worker.js +13 -13
  274. package/dist/hooks/ingest.js +15 -15
  275. package/dist/hooks/instructions-loaded.js +8 -8
  276. package/dist/hooks/manifest.json +20 -20
  277. package/dist/hooks/notification.js +7 -7
  278. package/dist/hooks/post-compact.js +6 -6
  279. package/dist/hooks/post-tool-combined.js +15 -15
  280. package/dist/hooks/pre-compact.js +25 -25
  281. package/dist/hooks/pre-tool-use.js +2 -2
  282. package/dist/hooks/prompt-submit.js +45 -45
  283. package/dist/hooks/session-end.js +31 -31
  284. package/dist/hooks/session-start.js +19 -19
  285. package/dist/hooks/stop.js +31 -31
  286. package/dist/hooks/subagent-stop.js +27 -27
  287. package/dist/hooks/summary-worker.js +30 -30
  288. package/dist/index.js +36 -36
  289. package/dist/{installer-2ZS3LHCU.js → installer-AHTTOQNF.js} +8 -8
  290. package/dist/{installer-UJ73PGRD.js → installer-GVTTIG4Y.js} +8 -8
  291. package/dist/{installer-NH3A3HWC.js → installer-TSREHGS2.js} +8 -8
  292. package/dist/{intercom-queue-OE25GJF2.js → intercom-queue-EWFIRXL5.js} +21 -21
  293. package/dist/key-backup-status-RF5XSENH.js +17 -0
  294. package/dist/lib/cloud-sync.js +21 -21
  295. package/dist/lib/consolidation.js +11 -11
  296. package/dist/lib/crypto.js +3 -3
  297. package/dist/lib/database.js +4 -4
  298. package/dist/lib/db-backup.js +1 -1
  299. package/dist/lib/db-daemon-client.js +3 -3
  300. package/dist/lib/db-write-worker.js +4 -4
  301. package/dist/lib/db.js +4 -4
  302. package/dist/lib/delivery-infra.js +199 -0
  303. package/dist/lib/device-registry.js +1 -1
  304. package/dist/lib/embedder.js +3 -3
  305. package/dist/lib/employee-templates.js +7 -6
  306. package/dist/lib/employees.js +4 -4
  307. package/dist/lib/exe-daemon-client.js +2 -2
  308. package/dist/lib/exe-daemon.js +122 -103
  309. package/dist/lib/hybrid-search.js +16 -11
  310. package/dist/lib/identity.js +4 -4
  311. package/dist/lib/keychain.js +1 -1
  312. package/dist/lib/license.js +8 -2
  313. package/dist/lib/messaging.js +22 -22
  314. package/dist/lib/post-tool-memory.js +8 -8
  315. package/dist/lib/registry-proxy.js +1 -1
  316. package/dist/lib/reminders.js +5 -5
  317. package/dist/lib/schedules.js +10 -10
  318. package/dist/lib/session-registry.js +8 -6
  319. package/dist/lib/skill-learning.js +14 -14
  320. package/dist/lib/status-brief.js +2 -2
  321. package/dist/lib/store.js +9 -9
  322. package/dist/lib/task-router.js +5 -5
  323. package/dist/lib/tasks.js +23 -23
  324. package/dist/lib/tmux-routing.js +21 -21
  325. package/dist/lib/token-spend.js +5 -5
  326. package/dist/lib/ws-client.js +1 -1
  327. package/dist/{license-gate-XQ2KN5I5.js → license-gate-7IH7T5S6.js} +3 -3
  328. package/dist/{license-recheck-IIBKR2V5.js → license-recheck-KLO6H3OQ.js} +1 -1
  329. package/dist/{license-sync-76JVI2M5.js → license-sync-FSHOBKJR.js} +2 -2
  330. package/dist/{local-secret-inventory-MJT7NJLY.js → local-secret-inventory-2DVUEFKD.js} +2 -2
  331. package/dist/mcp/register-tools.js +114 -110
  332. package/dist/mcp/server.js +117 -113
  333. package/dist/mcp/tools/complete-reminder.js +6 -6
  334. package/dist/mcp/tools/create-reminder.js +6 -6
  335. package/dist/mcp/tools/create-task.js +25 -25
  336. package/dist/mcp/tools/deactivate-behavior.js +15 -15
  337. package/dist/mcp/tools/list-reminders.js +6 -6
  338. package/dist/mcp/tools/list-tasks.js +25 -25
  339. package/dist/mcp/tools/send-message.js +24 -24
  340. package/dist/mcp/tools/update-task.js +24 -24
  341. package/dist/{mcp-http-config-SKXESWHA.js → mcp-http-config-2BZE3EZR.js} +6 -6
  342. package/dist/{mcp-session-identity-HYMLJXXA.js → mcp-session-identity-33I5F7SM.js} +21 -21
  343. package/dist/{memory-cards-PAZDUQ3B.js → memory-cards-ENNR4TRQ.js} +9 -9
  344. package/dist/{memory-graph-extractor-BC6QKBY6.js → memory-graph-extractor-VSTOYFSH.js} +9 -9
  345. package/dist/memory-maintenance-TNV2ZDB2.js +145 -0
  346. package/dist/{memory-poisoning-defense-BRGIHF6J.js → memory-poisoning-defense-L75RDOZX.js} +4 -4
  347. package/dist/{memory-pressure-watchdog-HR6TPOMT.js → memory-pressure-watchdog-MPFEBBZL.js} +22 -22
  348. package/dist/{memory-queue-client-4G7HVRSX.js → memory-queue-client-U3VT4UD3.js} +3 -3
  349. package/dist/{memory-reflection-LO7VFBL3.js → memory-reflection-LA7IXACD.js} +9 -9
  350. package/dist/{memory-write-repository-J25USX63.js → memory-write-repository-NSTLFDNR.js} +2 -2
  351. package/dist/{monitor-grants-YQTO6NWR.js → monitor-grants-NG2CGCE6.js} +3 -3
  352. package/dist/{monitor-identity-POVTG76Y.js → monitor-identity-JDZRCLD3.js} +2 -2
  353. package/dist/{notification-ledger-KLD6GZTG.js → notification-ledger-FF76BDB7.js} +22 -22
  354. package/dist/{notifications-3R6HNHDR.js → notifications-KQHWJIDO.js} +21 -21
  355. package/dist/{orchestration-events-CHY3GOJD.js → orchestration-events-RAIRNVKM.js} +5 -5
  356. package/dist/{orchestrator-GAL3HOAD.js → orchestrator-SKR36QJB.js} +23 -23
  357. package/dist/{org-brief-session-LQ2DBYVF.js → org-brief-session-DIFVCTTA.js} +16 -15
  358. package/dist/{org-consent-policy-KFUP7QPG.js → org-consent-policy-ODBB7WYN.js} +5 -5
  359. package/dist/{org-join-MXZCIQWX.js → org-join-VX6W7N65.js} +10 -9
  360. package/dist/{org-key-admin-4UK6QUT7.js → org-key-admin-YAGROJQO.js} +11 -9
  361. package/dist/org-key-epoch-CQMFPXAQ.js +36 -0
  362. package/dist/{org-key-pin-ZOX4OM3O.js → org-key-pin-B5XUWF7X.js} +7 -3
  363. package/dist/{org-membership-D5TPN45F.js → org-membership-OQ5AQNXQ.js} +4 -4
  364. package/dist/{org-partner-config-3FXSYPQA.js → org-partner-config-DP7DGWDT.js} +8 -7
  365. package/dist/{org-partner-runtime-TH3LMPII.js → org-partner-runtime-QHXEJWIZ.js} +18 -15
  366. package/dist/{org-row-visibility-Y5R33C5U.js → org-row-visibility-NUGG77ZJ.js} +1 -1
  367. package/dist/{pipeline-router-E2JZLDK6.js → pipeline-router-45VPRLQO.js} +5 -5
  368. package/dist/{plan-limits-NYI6R4IK.js → plan-limits-SMVLXRNK.js} +7 -7
  369. package/dist/{pre-tool-use-impl-LT4FRXBP.js → pre-tool-use-impl-TRPFAMI2.js} +45 -40
  370. package/dist/{project-name-V62GWALX.js → project-name-OZWVCHIV.js} +5 -5
  371. package/dist/{projection-worker-KLE3IZQ2.js → projection-worker-EISUJSII.js} +2 -2
  372. package/dist/{prospective-memory-HRN7JFT2.js → prospective-memory-VMDEY3GO.js} +4 -4
  373. package/dist/{push-notifications-XC6EQEXF.js → push-notifications-J2B46KSV.js} +22 -22
  374. package/dist/{reproject-worktree-memories-4CAVZSFE.js → reproject-worktree-memories-KACKK2ZQ.js} +21 -21
  375. package/dist/{reranker-2RU6IIX2.js → reranker-GHTIDASD.js} +1 -1
  376. package/dist/{retrieval-health-4Q5TOV2S.js → retrieval-health-N7FYXQ3B.js} +1 -1
  377. package/dist/{review-polling-WOWIMBCL.js → review-polling-NOLCYNRW.js} +22 -22
  378. package/dist/runtime/index.js +26 -26
  379. package/dist/{session-events-OPMS2C5F.js → session-events-HSCKOD5E.js} +22 -22
  380. package/dist/{session-kill-telemetry-3GWATSIX.js → session-kill-telemetry-BRJINE6Z.js} +22 -22
  381. package/dist/{session-scope-TIRGR4MH.js → session-scope-RYLSMEVI.js} +21 -21
  382. package/dist/{setup-wizard-B2JBVGNH.js → setup-wizard-2PJ2HVPM.js} +2 -2
  383. package/dist/{shard-manager-C7LYX6E4.js → shard-manager-WVQLME3X.js} +3 -3
  384. package/dist/{skill-refinement-FWQFYNBI.js → skill-refinement-VFITLKOI.js} +5 -5
  385. package/dist/{skill-retrieval-PPLFC5RY.js → skill-retrieval-X2VAHLGM.js} +16 -16
  386. package/dist/{skill-usage-NDB67PU2.js → skill-usage-3X5ZHX7M.js} +5 -5
  387. package/dist/{stack-generate-manifest-VWNDIMZ2.js → stack-generate-manifest-QWU7Q4MJ.js} +5 -5
  388. package/dist/{stack-promote-DFXJDHVA.js → stack-promote-26RFMNSB.js} +5 -5
  389. package/dist/{stack-release-RQ2DYYD5.js → stack-release-7YHSLY7J.js} +6 -6
  390. package/dist/{stack-update-MVGCN3C4.js → stack-update-DTMW7GMW.js} +32 -4
  391. package/dist/{steward-gate-TUA3QCN7.js → steward-gate-PXKR7QQI.js} +5 -5
  392. package/dist/{subagent-brief-injection-N52RWYFZ.js → subagent-brief-injection-KFGRW66W.js} +34 -34
  393. package/dist/{support-bug-actions-XWCJI6S5.js → support-bug-actions-QDUNCY2U.js} +4 -4
  394. package/dist/{support-inbox-MMVTCXRX.js → support-inbox-QHNI5BDM.js} +19 -19
  395. package/dist/{support-outbox-2TG2UV6J.js → support-outbox-6AE2NQTA.js} +2 -2
  396. package/dist/{task-enforcement-JDMBAAOY.js → task-enforcement-FPGGHNPW.js} +22 -22
  397. package/dist/{task-request-inbox-PKJCYKJV.js → task-request-inbox-QOLOLSCL.js} +5 -5
  398. package/dist/{task-scope-32HQEV6W.js → task-scope-HE7WKTHG.js} +23 -21
  399. package/dist/{tasks-crud-CYKUKS3F.js → tasks-crud-7VWK7VWF.js} +23 -21
  400. package/dist/{tasks-notify-YND5MKWJ.js → tasks-notify-ZB7DCV25.js} +22 -22
  401. package/dist/{tasks-review-CG2A5GM3.js → tasks-review-VLBBRAXU.js} +21 -21
  402. package/dist/{telemetry-upload-WLUMEFAB.js → telemetry-upload-R7UL5WCV.js} +9 -9
  403. package/dist/{token-budget-3YHAY5LL.js → token-budget-5Y2S4U4O.js} +5 -5
  404. package/dist/{tool-capability-index-2ADOWH43.js → tool-capability-index-4JVWF2Y2.js} +1 -1
  405. package/dist/{tool-gates-EKJTLVGN.js → tool-gates-UJBIJIGL.js} +1 -1
  406. package/dist/{tool-gates-7ENOOYMR.js → tool-gates-X4SDEEV7.js} +1 -1
  407. package/dist/{tool-telemetry-VUP7S6HC.js → tool-telemetry-FBRBSKWP.js} +1 -1
  408. package/dist/tui/App.js +32 -31
  409. package/dist/{tui-data-BOQTOW2G.js → tui-data-4KWOQVEF.js} +25 -25
  410. package/dist/{update-support-WT3S3AQ4.js → update-support-4CQT5QLA.js} +17 -17
  411. package/dist/{whatsapp-OZGIF2EM.js → whatsapp-MQLVSJD2.js} +2 -2
  412. package/dist/{whatsapp-accounts-BFIOXYW5.js → whatsapp-accounts-P4YEMS5R.js} +3 -1
  413. package/dist/{whatsapp-config-GLG4DDXT.js → whatsapp-config-3JM6RMIT.js} +76 -17
  414. package/dist/{wiki-acl-LTEQJVDA.js → wiki-acl-WCKSR4XN.js} +1 -1
  415. package/dist/{work-claims-CMV2GWIW.js → work-claims-3XNWDLAW.js} +5 -5
  416. package/dist/{work-state-heartbeat-S45TXK4M.js → work-state-heartbeat-H3AK2G2L.js} +1 -1
  417. package/dist/{workflow-engine-ZSQDXZQ7.js → workflow-engine-VQOKQTAD.js} +2 -2
  418. package/dist/{worktree-NMWDVT6N.js → worktree-UC6CTML6.js} +6 -6
  419. package/dist/{worktree-ownership-guard-ZVIWJAOP.js → worktree-ownership-guard-XEYU6M2R.js} +3 -1
  420. package/dist/{worktree-sweep-Q62ZIT3U.js → worktree-sweep-MP3XYB47.js} +7 -7
  421. package/package.json +10 -2
  422. package/release-notes.json +50 -8
  423. package/stack.release.json +3 -3
  424. package/dist/{chunk-CP7Z35MJ.js → chunk-2W3Z4JCR.js} +0 -0
  425. package/dist/{chunk-Q46NYJ77.js → chunk-6IZYJAFA.js} +0 -0
  426. package/dist/{chunk-KBBWALJV.js → chunk-7NM4MTQA.js} +0 -0
  427. package/dist/{chunk-65G7ZTGE.js → chunk-AUGX2SRD.js} +0 -0
  428. package/dist/{chunk-OSVTH3SG.js → chunk-CHQTJSE5.js} +0 -0
  429. package/dist/{chunk-LZXYPTY4.js → chunk-FZXXGS7O.js} +0 -0
  430. package/dist/{chunk-MFAOAIUE.js → chunk-JK7SDSPK.js} +3 -3
  431. /package/dist/{chunk-O53LTOXK.js → chunk-NLKV5O5T.js} +0 -0
  432. /package/dist/{chunk-QXXEXGX3.js → chunk-P72UDXOB.js} +0 -0
  433. /package/dist/{chunk-ZPA4R2UI.js → chunk-VXGUG6WA.js} +0 -0
  434. /package/dist/{chunk-WC5HF2FN.js → chunk-WPTIHQ6M.js} +0 -0
  435. /package/dist/{chunk-SFWNTO2F.js → chunk-ZGKPAQ6K.js} +0 -0
  436. /package/dist/{core-memory-MMMW3TF3.js → core-memory-6VE2U4JF.js} +0 -0
  437. /package/dist/{memory-isolation-67ACKQ2M.js → memory-isolation-JOJNCWMO.js} +0 -0
  438. /package/dist/{oauth-server-OILIKR7D.js → oauth-server-O46XYTI3.js} +0 -0
  439. /package/dist/{project-boot-LIMXQKAF.js → project-boot-ST4MNM5Y.js} +0 -0
@@ -127,6 +127,11 @@ EXE_ORG_WORKSPACE_ID=
127
127
  CRM_IMAGE_TAG=update.askexe.com/askexe/exe-crm:v0.9.59@sha256:40619dce57540f86dc7c8b71f1da57f44600a288f75a28850a9a9b425d0b92a6
128
128
  CRM_SERVER_URL=https://crm.CHANGEME_DOMAIN
129
129
  CRM_APP_SECRET=CHANGEME_CRM_APP_SECRET
130
+ # Public DEMO is opt-in after a separate synthetic-data workspace is
131
+ # bootstrapped. Set both values together: GoTrue API base must be HTTPS.
132
+ # The auth SPA root is not the GoTrue API; on Exe's auth gateway it is /api.
133
+ EXE_CRM_GOTRUE_URL=
134
+ EXE_DEMO_WORKSPACE_ID=
130
135
  # The CRM's first admin — seeded at boot by WorkspaceBootstrapService, which is
131
136
  # what makes that person an EXISTING user whose sign-in is allowed while every
132
137
  # other unmanaged first login is refused (e51ca54c §10.6b). Must be a real
@@ -161,6 +161,11 @@ EXE_ORG_WORKSPACE_ID=
161
161
  CRM_IMAGE_TAG=ghcr.io/askexe/exe-crm:v0.9.59@sha256:40619dce57540f86dc7c8b71f1da57f44600a288f75a28850a9a9b425d0b92a6
162
162
  CRM_SERVER_URL=https://crm.CHANGEME_DOMAIN
163
163
  CRM_APP_SECRET=CHANGEME_CRM_APP_SECRET
164
+ # Public DEMO is opt-in after a separate synthetic-data workspace is
165
+ # bootstrapped. Set both values together: GoTrue API base must be HTTPS.
166
+ # The auth SPA root is not the GoTrue API; on Exe's auth gateway it is /api.
167
+ EXE_CRM_GOTRUE_URL=
168
+ EXE_DEMO_WORKSPACE_ID=
164
169
  EXE_CRM_ADMIN_TOKEN=CHANGEME_EXE_CRM_ADMIN_TOKEN
165
170
  # The CRM's first admin — seeded at boot by WorkspaceBootstrapService, which
166
171
  # is what makes that person an EXISTING user whose sign-in is allowed while
@@ -442,8 +442,12 @@ services:
442
442
  # so its id is unknowable at install time. Bootstrap first, then adopt.
443
443
  EXE_ORG_ID: ${EXE_ORG_ID:-}
444
444
  EXE_ORG_WORKSPACE_ID: ${EXE_ORG_WORKSPACE_ID:-}
445
- GOTRUE_URL: http://gotrue:9999
446
- # Bug 51086951: the EXPECTED JWT issuer. GOTRUE_URL above is the INTERNAL
445
+ # Public DEMO admission needs an HTTPS GoTrue API endpoint for fresh
446
+ # authenticated identity checks. Keep the private-stack internal default
447
+ # until the operator explicitly configures the HTTPS API proxy.
448
+ GOTRUE_URL: ${EXE_CRM_GOTRUE_URL:-http://gotrue:9999}
449
+ EXE_DEMO_WORKSPACE_ID: ${EXE_DEMO_WORKSPACE_ID:-}
450
+ # Bug 51086951: the EXPECTED JWT issuer. GOTRUE_URL above is the API
447
451
  # address used to call GoTrue, but browser tokens are signed with the PUBLIC
448
452
  # auth-url issuer (pinned as GOTRUE_JWT_ISSUER on the gotrue service). Hand the
449
453
  # SAME public value here so issuer validation accepts real browser sessions
@@ -367,6 +367,11 @@ export function generateEnv(options: GenerateEnvOptions): string {
367
367
  `CRM_IMAGE_TAG=${CRM_IMAGE_TAG}`,
368
368
  `CRM_SERVER_URL=https://crm.${normalizedDomain}`,
369
369
  `CRM_APP_SECRET=${randomSecret(RANDOM_SECRET_48)}`,
370
+ "# Keep DEMO disabled by default. After bootstrapping a separate synthetic-data",
371
+ "# DEMO workspace, set its exact ID and an HTTPS GoTrue API base. The auth SPA",
372
+ "# root is not the API; on Exe's auth gateway the API base is /api.",
373
+ "EXE_CRM_GOTRUE_URL=",
374
+ "EXE_DEMO_WORKSPACE_ID=",
370
375
  `EXE_CRM_ADMIN_TOKEN=${randomSecret(RANDOM_SECRET_48)}`,
371
376
  // The CRM's first admin. Seeded into core."user" at boot by
372
377
  // WorkspaceBootstrapService, which is what makes that person an EXISTING
@@ -706,6 +711,11 @@ export function generateExampleEnv(): string {
706
711
  `CRM_IMAGE_TAG=${CRM_IMAGE_TAG}`,
707
712
  "CRM_SERVER_URL=https://crm.CHANGEME_DOMAIN",
708
713
  "CRM_APP_SECRET=CHANGEME_CRM_APP_SECRET",
714
+ "# Public DEMO is opt-in after a separate synthetic-data workspace is",
715
+ "# bootstrapped. Set both values together: GoTrue API base must be HTTPS.",
716
+ "# The auth SPA root is not the GoTrue API; on Exe's auth gateway it is /api.",
717
+ "EXE_CRM_GOTRUE_URL=",
718
+ "EXE_DEMO_WORKSPACE_ID=",
709
719
  "EXE_CRM_ADMIN_TOKEN=CHANGEME_EXE_CRM_ADMIN_TOKEN",
710
720
  "# The CRM's first admin — seeded at boot by WorkspaceBootstrapService, which",
711
721
  "# is what makes that person an EXISTING user whose sign-in is allowed while",
@@ -4360,11 +4360,560 @@
4360
4360
  "cloudflared/config.yml.example": "c60e28c67d8c13e54d4d15f4a79ed3f4ad8723f6345138b084a1925c871b529a"
4361
4361
  }
4362
4362
  }
4363
+ },
4364
+ "0.9.49": {
4365
+ "version": "0.9.49",
4366
+ "releasedAt": "2026-09-23T01:05:10.332Z",
4367
+ "npmVersion": "0.9.390",
4368
+ "notes": "Exe dogfood signed targeted SSO edge asset delivery from live stack 0.9.47. Replace only the mounted sso-redirect.conf after verifying its exact live base hash; recreate only exe-sso-edge with no image pull or build. Preserve live compose, env, service topology, all image pins and unrelated assets. Require verified npm updater v0.9.390, authenticated audit, backup, strict health and rollback. Stack 0.9.46 and 0.9.48 remain unapplied; latest remains 0.9.38.",
4369
+ "services": {
4370
+ "exe-db": {
4371
+ "image": "update.askexe.com/askexe/pgvector:0.8.0-pg16@sha256:a132765ec351c65111b5b675928a3a0515a466a40f97277329db8b8209ad8bc9",
4372
+ "env": "EXE_DB_IMAGE",
4373
+ "composeService": "exe-db",
4374
+ "required": true,
4375
+ "category": "core",
4376
+ "description": "Postgres (pgvector) — digest-pinned (bug 32d6e02f; was tag-only in 0.9.25, regressed from 0.9.24)"
4377
+ },
4378
+ "exe-os": {
4379
+ "image": "update.askexe.com/askexe/exe-os:v0.9.382@sha256:266a59a482865eab9f79497999acb33c1fe1868ec54ea5cd1ce971c492f11bd6",
4380
+ "env": "EXE_OS_IMAGE_TAG",
4381
+ "composeService": "exe-os",
4382
+ "healthUrl": "http://127.0.0.1:8765/health",
4383
+ "required": true,
4384
+ "category": "core",
4385
+ "description": "exe-os daemon + MCP server"
4386
+ },
4387
+ "crm": {
4388
+ "image": "update.askexe.com/askexe/exe-crm:v0.9.62@sha256:584113f88ce09f5ea3b93b7b5e8960ebb8a00e34adaa205c92d964b46525b7a8",
4389
+ "env": "CRM_IMAGE_TAG",
4390
+ "composeService": "exe-crm",
4391
+ "healthUrl": "http://127.0.0.1:3000/healthz",
4392
+ "category": "app",
4393
+ "gitSha": "60f8f08faa5d8fe86b92a87eda93eb0d051a6353",
4394
+ "description": "Central authentication and recovery with server-validated shared sessions for CRM web and worker."
4395
+ },
4396
+ "wiki": {
4397
+ "image": "update.askexe.com/askexe/exe-wiki:v0.9.37@sha256:8fa22e77c0742fbb690f7b4c8431a186692a20ebd335fb141782df4289dc337f",
4398
+ "env": "WIKI_IMAGE_TAG",
4399
+ "composeService": "exe-wiki",
4400
+ "healthUrl": "http://127.0.0.1:3001/api/ping",
4401
+ "category": "app",
4402
+ "description": "Central hosted authentication and recovery with server-validated shared sessions, membership enforcement, and no product-local credential form.",
4403
+ "gitSha": "713a4370c2b641b8f8b07fd1e7390afa79a9c931"
4404
+ },
4405
+ "gateway": {
4406
+ "image": "update.askexe.com/askexe/exe-gateway:v2026.08.07-c15f093-stamped@sha256:1bc11a2a0ad1f3929d59d2685696f22a72042b9fca9c75e15c02dc7d3c640105",
4407
+ "env": "GATEWAY_IMAGE_TAG",
4408
+ "composeService": "exe-gateway",
4409
+ "healthUrl": "http://127.0.0.1:3100/health",
4410
+ "category": "app",
4411
+ "description": "WhatsApp/messaging gateway — provenance-stamped rebuild of main (outbound message persistence fix); pinned by digest, dated immutable tag.",
4412
+ "gitSha": "c15f093a0f59730bd5c2c73791ff77059dfa7cc1"
4413
+ },
4414
+ "monitorAgent": {
4415
+ "image": "update.askexe.com/askexe/exe-monitor-agent:v2026.08.09-10660eb4-stamped@sha256:29fbd445f79484df04f000603e4ff445e76f0380f86d687a0033e3a0ef7d1b7a",
4416
+ "env": "MONITOR_AGENT_IMAGE_TAG",
4417
+ "composeService": "exe-monitor-agent",
4418
+ "category": "monitoring",
4419
+ "gitSha": "10660eb4abdeffbcba2aad13549aa58e208ac7a3"
4420
+ },
4421
+ "monitorHub": {
4422
+ "image": "update.askexe.com/askexe/exe-monitor-hub:v2026.08.09-10660eb4-stamped@sha256:c9a9218c2713b8dffea7e1cf8c0702a614657d311a7a4e821c6a543bab29bb97",
4423
+ "env": "MONITOR_HUB_IMAGE_TAG",
4424
+ "composeService": "exe-monitor-hub",
4425
+ "healthUrl": "http://127.0.0.1:8090/api/health",
4426
+ "category": "monitoring",
4427
+ "gitSha": "10660eb4abdeffbcba2aad13549aa58e208ac7a3"
4428
+ },
4429
+ "auth": {
4430
+ "image": "update.askexe.com/askexe/exe-auth:v0.6.10@sha256:0260349962d087cd3c33fed1d362029416e82ae9cc60abca7969beac2cb8639f",
4431
+ "env": "AUTH_IMAGE_TAG",
4432
+ "composeService": "exe-auth",
4433
+ "healthUrl": "http://127.0.0.1:3300/",
4434
+ "category": "auth",
4435
+ "description": "GoTrue SSO and privileged license authority bridge; stateless auth proxy.",
4436
+ "gitSha": "29fe7015d90b80c94db3a1e3904852b934071711"
4437
+ },
4438
+ "erp": {
4439
+ "image": "update.askexe.com/askexe/exe-erp:v0.3.17@sha256:ef61b59d94c04189fe2975045a3816d2fecc8efe3027e0ee8c17d0fa2efdbc3b",
4440
+ "env": "ERP_IMAGE_TAG",
4441
+ "composeService": "exe-erp",
4442
+ "healthUrl": "http://127.0.0.1:8069/api/method/ping",
4443
+ "healthHost": "localhost",
4444
+ "required": false,
4445
+ "category": "app",
4446
+ "description": "Enterprise Resource Planning with central hosted authentication and subject-bound organization admission.",
4447
+ "gitSha": "a769ec5e0ae53bc5944715845869715ebbffd63a"
4448
+ },
4449
+ "gotrue": {
4450
+ "image": "update.askexe.com/askexe/gotrue:v2.172.1@sha256:b0dd7aa28dd1f9a8bd31f136c8b912661f701d9b863171e5843cb08f18f49de4",
4451
+ "composeService": "gotrue",
4452
+ "healthUrl": "http://127.0.0.1:9999/health",
4453
+ "category": "infra"
4454
+ },
4455
+ "redis": {
4456
+ "image": "update.askexe.com/askexe/redis:7.4-alpine@sha256:6ab0b6e7381779332f97b8ca76193e45b0756f38d4c0dcda72dbb3c32061ab99",
4457
+ "composeService": "redis",
4458
+ "category": "infra"
4459
+ },
4460
+ "clickhouse": {
4461
+ "image": "update.askexe.com/askexe/clickhouse-server:24.8.4.13-alpine@sha256:88a45f9e328549b2579256c46ee38e5c0e25ae58303d9eb6d9c7ed8d6d2bbf3c",
4462
+ "composeService": "clickhouse",
4463
+ "category": "infra"
4464
+ },
4465
+ "cloudflared": {
4466
+ "image": "update.askexe.com/askexe/cloudflared:2026-07@sha256:ba461b8aa9c042156dbd39c38657fe7431bafa063220eab8d5330a523863da9f",
4467
+ "composeService": "cloudflared",
4468
+ "category": "infra"
4469
+ },
4470
+ "exe-sso-edge": {
4471
+ "image": "update.askexe.com/askexe/nginx:alpine@sha256:20316569d8f81a160065d7d2a5eeffc7ca97d79022462ee255fd23fa103a6b5c",
4472
+ "composeService": "exe-sso-edge",
4473
+ "category": "infra"
4474
+ },
4475
+ "exe-otel-collector": {
4476
+ "image": "update.askexe.com/askexe/otel-collector-contrib:0.114.0@sha256:37fa87091cfaaec7234a27e4e395a40c31c2bfaea97a349a4afef6d9e9681197",
4477
+ "composeService": "exe-otel-collector",
4478
+ "category": "infra"
4479
+ },
4480
+ "dashboard": {
4481
+ "image": "update.askexe.com/askexe/exe-dashboard:v0.9.391@sha256:272f3440fa0f93bd19b3a0b53983c488d90b9731f252a1fb9120c9516566b4a5",
4482
+ "env": "DASHBOARD_IMAGE_TAG",
4483
+ "composeService": "exe-dashboard",
4484
+ "healthUrl": "http://127.0.0.1:3301/health",
4485
+ "required": false,
4486
+ "category": "optional",
4487
+ "description": "Customer dashboard at dashboard.<apex> — credits, usage, API keys, billing",
4488
+ "gitSha": "ce76474b7af9476846549a5ae2eb272dc182e9cf"
4489
+ }
4490
+ },
4491
+ "rolloutStage": "canary",
4492
+ "config": {
4493
+ "assetPatches": {
4494
+ "sso-edge/sso-redirect.conf": {
4495
+ "fromSha256": "b6b4ed60ddece4ed960c827300af0660c70ee5aeb79ed26f7d796c3da509ddff",
4496
+ "toSha256": "d9e1036ba2129450372caff3f09d5ad8894b3b774ab50fe0807322e0f8896d7b",
4497
+ "consumers": [
4498
+ "exe-sso-edge"
4499
+ ],
4500
+ "mode": 420
4501
+ }
4502
+ }
4503
+ }
4504
+ },
4505
+ "0.9.50": {
4506
+ "version": "0.9.50",
4507
+ "releasedAt": "2026-09-23T16:04:13.000Z",
4508
+ "npmVersion": "0.9.391",
4509
+ "notes": "Targeted Exe dogfood canary from signed live stack 0.9.47: update CRM web and worker to v0.9.66 with verified-email read-only DEMO admission and GoTrue-authoritative owner bootstrap. CRM image source a3d107483304d10b05c9f1ee5e1b0182c4628e65 passed exact-source CI and release run 35882310879, including provenance and mandatory Trivy. Preserve every other live image pin. exe-os npm 0.9.391 provides the signed compose template and packaged assets for normal config delivery; public DEMO remains disabled until the separate synthetic workspace is bootstrapped and CRM is configured with an HTTPS GoTrue API base.",
4510
+ "services": {
4511
+ "exe-db": {
4512
+ "image": "update.askexe.com/askexe/pgvector:0.8.0-pg16@sha256:a132765ec351c65111b5b675928a3a0515a466a40f97277329db8b8209ad8bc9",
4513
+ "env": "EXE_DB_IMAGE",
4514
+ "composeService": "exe-db",
4515
+ "required": true,
4516
+ "category": "core",
4517
+ "description": "Postgres (pgvector) — digest-pinned (bug 32d6e02f; was tag-only in 0.9.25, regressed from 0.9.24)"
4518
+ },
4519
+ "exe-os": {
4520
+ "image": "update.askexe.com/askexe/exe-os:v0.9.382@sha256:266a59a482865eab9f79497999acb33c1fe1868ec54ea5cd1ce971c492f11bd6",
4521
+ "env": "EXE_OS_IMAGE_TAG",
4522
+ "composeService": "exe-os",
4523
+ "healthUrl": "http://127.0.0.1:8765/health",
4524
+ "required": true,
4525
+ "category": "core",
4526
+ "description": "exe-os daemon + MCP server"
4527
+ },
4528
+ "crm": {
4529
+ "image": "update.askexe.com/askexe/exe-crm:v0.9.66@sha256:38bbae74ddd33dbbd62175a46ad0d3f99ef6c671b0c2187e35398ca9c504c3eb",
4530
+ "env": "CRM_IMAGE_TAG",
4531
+ "composeService": "exe-crm",
4532
+ "healthUrl": "http://127.0.0.1:3000/healthz",
4533
+ "category": "app",
4534
+ "gitSha": "a3d107483304d10b05c9f1ee5e1b0182c4628e65",
4535
+ "description": "Central authentication and recovery with server-validated shared sessions for CRM web and worker."
4536
+ },
4537
+ "wiki": {
4538
+ "image": "update.askexe.com/askexe/exe-wiki:v0.9.37@sha256:8fa22e77c0742fbb690f7b4c8431a186692a20ebd335fb141782df4289dc337f",
4539
+ "env": "WIKI_IMAGE_TAG",
4540
+ "composeService": "exe-wiki",
4541
+ "healthUrl": "http://127.0.0.1:3001/api/ping",
4542
+ "category": "app",
4543
+ "description": "Central hosted authentication and recovery with server-validated shared sessions, membership enforcement, and no product-local credential form.",
4544
+ "gitSha": "713a4370c2b641b8f8b07fd1e7390afa79a9c931"
4545
+ },
4546
+ "gateway": {
4547
+ "image": "update.askexe.com/askexe/exe-gateway:v2026.08.07-c15f093-stamped@sha256:1bc11a2a0ad1f3929d59d2685696f22a72042b9fca9c75e15c02dc7d3c640105",
4548
+ "env": "GATEWAY_IMAGE_TAG",
4549
+ "composeService": "exe-gateway",
4550
+ "healthUrl": "http://127.0.0.1:3100/health",
4551
+ "category": "app",
4552
+ "description": "WhatsApp/messaging gateway — provenance-stamped rebuild of main (outbound message persistence fix); pinned by digest, dated immutable tag.",
4553
+ "gitSha": "c15f093a0f59730bd5c2c73791ff77059dfa7cc1"
4554
+ },
4555
+ "monitorAgent": {
4556
+ "image": "update.askexe.com/askexe/exe-monitor-agent:v2026.08.09-10660eb4-stamped@sha256:29fbd445f79484df04f000603e4ff445e76f0380f86d687a0033e3a0ef7d1b7a",
4557
+ "env": "MONITOR_AGENT_IMAGE_TAG",
4558
+ "composeService": "exe-monitor-agent",
4559
+ "category": "monitoring",
4560
+ "gitSha": "10660eb4abdeffbcba2aad13549aa58e208ac7a3"
4561
+ },
4562
+ "monitorHub": {
4563
+ "image": "update.askexe.com/askexe/exe-monitor-hub:v2026.08.09-10660eb4-stamped@sha256:c9a9218c2713b8dffea7e1cf8c0702a614657d311a7a4e821c6a543bab29bb97",
4564
+ "env": "MONITOR_HUB_IMAGE_TAG",
4565
+ "composeService": "exe-monitor-hub",
4566
+ "healthUrl": "http://127.0.0.1:8090/api/health",
4567
+ "category": "monitoring",
4568
+ "gitSha": "10660eb4abdeffbcba2aad13549aa58e208ac7a3"
4569
+ },
4570
+ "auth": {
4571
+ "image": "update.askexe.com/askexe/exe-auth:v0.6.10@sha256:0260349962d087cd3c33fed1d362029416e82ae9cc60abca7969beac2cb8639f",
4572
+ "env": "AUTH_IMAGE_TAG",
4573
+ "composeService": "exe-auth",
4574
+ "healthUrl": "http://127.0.0.1:3300/",
4575
+ "category": "auth",
4576
+ "description": "GoTrue SSO and privileged license authority bridge; stateless auth proxy.",
4577
+ "gitSha": "29fe7015d90b80c94db3a1e3904852b934071711"
4578
+ },
4579
+ "erp": {
4580
+ "image": "update.askexe.com/askexe/exe-erp:v0.3.17@sha256:ef61b59d94c04189fe2975045a3816d2fecc8efe3027e0ee8c17d0fa2efdbc3b",
4581
+ "env": "ERP_IMAGE_TAG",
4582
+ "composeService": "exe-erp",
4583
+ "healthUrl": "http://127.0.0.1:8069/api/method/ping",
4584
+ "healthHost": "localhost",
4585
+ "required": false,
4586
+ "category": "app",
4587
+ "description": "Enterprise Resource Planning with central hosted authentication and subject-bound organization admission.",
4588
+ "gitSha": "a769ec5e0ae53bc5944715845869715ebbffd63a"
4589
+ },
4590
+ "gotrue": {
4591
+ "image": "update.askexe.com/askexe/gotrue:v2.172.1@sha256:b0dd7aa28dd1f9a8bd31f136c8b912661f701d9b863171e5843cb08f18f49de4",
4592
+ "composeService": "gotrue",
4593
+ "healthUrl": "http://127.0.0.1:9999/health",
4594
+ "category": "infra"
4595
+ },
4596
+ "redis": {
4597
+ "image": "update.askexe.com/askexe/redis:7.4-alpine@sha256:6ab0b6e7381779332f97b8ca76193e45b0756f38d4c0dcda72dbb3c32061ab99",
4598
+ "composeService": "redis",
4599
+ "category": "infra"
4600
+ },
4601
+ "clickhouse": {
4602
+ "image": "update.askexe.com/askexe/clickhouse-server:24.8.4.13-alpine@sha256:88a45f9e328549b2579256c46ee38e5c0e25ae58303d9eb6d9c7ed8d6d2bbf3c",
4603
+ "composeService": "clickhouse",
4604
+ "category": "infra"
4605
+ },
4606
+ "cloudflared": {
4607
+ "image": "update.askexe.com/askexe/cloudflared:2026-07@sha256:ba461b8aa9c042156dbd39c38657fe7431bafa063220eab8d5330a523863da9f",
4608
+ "composeService": "cloudflared",
4609
+ "category": "infra"
4610
+ },
4611
+ "exe-sso-edge": {
4612
+ "image": "update.askexe.com/askexe/nginx:alpine@sha256:20316569d8f81a160065d7d2a5eeffc7ca97d79022462ee255fd23fa103a6b5c",
4613
+ "composeService": "exe-sso-edge",
4614
+ "category": "infra"
4615
+ },
4616
+ "exe-otel-collector": {
4617
+ "image": "update.askexe.com/askexe/otel-collector-contrib:0.114.0@sha256:37fa87091cfaaec7234a27e4e395a40c31c2bfaea97a349a4afef6d9e9681197",
4618
+ "composeService": "exe-otel-collector",
4619
+ "category": "infra"
4620
+ },
4621
+ "dashboard": {
4622
+ "image": "update.askexe.com/askexe/exe-dashboard:v0.9.391@sha256:272f3440fa0f93bd19b3a0b53983c488d90b9731f252a1fb9120c9516566b4a5",
4623
+ "env": "DASHBOARD_IMAGE_TAG",
4624
+ "composeService": "exe-dashboard",
4625
+ "healthUrl": "http://127.0.0.1:3301/health",
4626
+ "required": false,
4627
+ "category": "optional",
4628
+ "description": "Customer dashboard at dashboard.<apex> — credits, usage, API keys, billing",
4629
+ "gitSha": "ce76474b7af9476846549a5ae2eb272dc182e9cf"
4630
+ }
4631
+ },
4632
+ "rolloutStage": "canary",
4633
+ "config": {
4634
+ "composeSha256": "c793630a000b86a3f6790305ef28e2637b172b7186117a115503a83716874e96",
4635
+ "assets": {
4636
+ "sso-edge/default.conf.template": "fac3627a51989bbb62b8cba1f2dfd4aab69555b998fd48c0a1a67deb5889f29f",
4637
+ "sso-edge/entrypoint.sh": "2281fc9382ee1f80dbf306a380d165d0afe1fcc37f5b752925e34f5a06419ce9",
4638
+ "sso-edge/error-pages/404.html": "d9a163356479204cf0c200d1cf483a986d3ef4c46c53e02d97bfe128d25e833f",
4639
+ "sso-edge/error-pages/500.html": "82972c5fbb237047f532c95d8757a2bcc696ca9466e70c73debf64e8b58689a7",
4640
+ "sso-edge/error-pages/503.html": "58f73f74cabff1a8faa63b11af36aa643c78ac740c9a31378f8a8ee6aa572cf8",
4641
+ "sso-edge/sso-redirect.conf": "d9e1036ba2129450372caff3f09d5ad8894b3b774ab50fe0807322e0f8896d7b",
4642
+ "erp-nginx/nginx.conf": "918d3e3b9c854c3c2bfefaab48ea4e41c4430dd92429e9f035676783d7136ab7",
4643
+ "observability/otel-collector-config.yaml": "01fcd1192e695455fdf85029e60074bee96ff9565da05f4c01b3428b264fe4d5",
4644
+ "cloudflared/config.yml.example": "c60e28c67d8c13e54d4d15f4a79ed3f4ad8723f6345138b084a1925c871b529a"
4645
+ }
4646
+ }
4647
+ },
4648
+ "0.9.51": {
4649
+ "version": "0.9.51",
4650
+ "releasedAt": "2026-09-23T20:11:25.583Z",
4651
+ "npmVersion": "0.9.391",
4652
+ "notes": "Dashboard-only Exe dogfood canary from signed stack 0.9.50: update Dashboard to v0.9.392 (source e11b25ad567389440da8ed5e566a9c59bce24123; release run 35818775745, enforced G2 provenance). Preserve CRM v0.9.66 and every other service pin. Sign the post-0.9.50 live compose hash and deliver no config assets so npm 0.9.391 retain-compose changes only the Dashboard image pin. Public DEMO remains disabled pending the separate CRM routing fix and bootstrap.",
4653
+ "services": {
4654
+ "exe-db": {
4655
+ "image": "update.askexe.com/askexe/pgvector:0.8.0-pg16@sha256:a132765ec351c65111b5b675928a3a0515a466a40f97277329db8b8209ad8bc9",
4656
+ "env": "EXE_DB_IMAGE",
4657
+ "composeService": "exe-db",
4658
+ "required": true,
4659
+ "category": "core",
4660
+ "description": "Postgres (pgvector) — digest-pinned (bug 32d6e02f; was tag-only in 0.9.25, regressed from 0.9.24)"
4661
+ },
4662
+ "exe-os": {
4663
+ "image": "update.askexe.com/askexe/exe-os:v0.9.382@sha256:266a59a482865eab9f79497999acb33c1fe1868ec54ea5cd1ce971c492f11bd6",
4664
+ "env": "EXE_OS_IMAGE_TAG",
4665
+ "composeService": "exe-os",
4666
+ "healthUrl": "http://127.0.0.1:8765/health",
4667
+ "required": true,
4668
+ "category": "core",
4669
+ "description": "exe-os daemon + MCP server"
4670
+ },
4671
+ "crm": {
4672
+ "image": "update.askexe.com/askexe/exe-crm:v0.9.66@sha256:38bbae74ddd33dbbd62175a46ad0d3f99ef6c671b0c2187e35398ca9c504c3eb",
4673
+ "env": "CRM_IMAGE_TAG",
4674
+ "composeService": "exe-crm",
4675
+ "healthUrl": "http://127.0.0.1:3000/healthz",
4676
+ "category": "app",
4677
+ "gitSha": "a3d107483304d10b05c9f1ee5e1b0182c4628e65",
4678
+ "description": "Central authentication and recovery with server-validated shared sessions for CRM web and worker."
4679
+ },
4680
+ "wiki": {
4681
+ "image": "update.askexe.com/askexe/exe-wiki:v0.9.37@sha256:8fa22e77c0742fbb690f7b4c8431a186692a20ebd335fb141782df4289dc337f",
4682
+ "env": "WIKI_IMAGE_TAG",
4683
+ "composeService": "exe-wiki",
4684
+ "healthUrl": "http://127.0.0.1:3001/api/ping",
4685
+ "category": "app",
4686
+ "description": "Central hosted authentication and recovery with server-validated shared sessions, membership enforcement, and no product-local credential form.",
4687
+ "gitSha": "713a4370c2b641b8f8b07fd1e7390afa79a9c931"
4688
+ },
4689
+ "gateway": {
4690
+ "image": "update.askexe.com/askexe/exe-gateway:v2026.08.07-c15f093-stamped@sha256:1bc11a2a0ad1f3929d59d2685696f22a72042b9fca9c75e15c02dc7d3c640105",
4691
+ "env": "GATEWAY_IMAGE_TAG",
4692
+ "composeService": "exe-gateway",
4693
+ "healthUrl": "http://127.0.0.1:3100/health",
4694
+ "category": "app",
4695
+ "description": "WhatsApp/messaging gateway — provenance-stamped rebuild of main (outbound message persistence fix); pinned by digest, dated immutable tag.",
4696
+ "gitSha": "c15f093a0f59730bd5c2c73791ff77059dfa7cc1"
4697
+ },
4698
+ "monitorAgent": {
4699
+ "image": "update.askexe.com/askexe/exe-monitor-agent:v2026.08.09-10660eb4-stamped@sha256:29fbd445f79484df04f000603e4ff445e76f0380f86d687a0033e3a0ef7d1b7a",
4700
+ "env": "MONITOR_AGENT_IMAGE_TAG",
4701
+ "composeService": "exe-monitor-agent",
4702
+ "category": "monitoring",
4703
+ "gitSha": "10660eb4abdeffbcba2aad13549aa58e208ac7a3"
4704
+ },
4705
+ "monitorHub": {
4706
+ "image": "update.askexe.com/askexe/exe-monitor-hub:v2026.08.09-10660eb4-stamped@sha256:c9a9218c2713b8dffea7e1cf8c0702a614657d311a7a4e821c6a543bab29bb97",
4707
+ "env": "MONITOR_HUB_IMAGE_TAG",
4708
+ "composeService": "exe-monitor-hub",
4709
+ "healthUrl": "http://127.0.0.1:8090/api/health",
4710
+ "category": "monitoring",
4711
+ "gitSha": "10660eb4abdeffbcba2aad13549aa58e208ac7a3"
4712
+ },
4713
+ "auth": {
4714
+ "image": "update.askexe.com/askexe/exe-auth:v0.6.10@sha256:0260349962d087cd3c33fed1d362029416e82ae9cc60abca7969beac2cb8639f",
4715
+ "env": "AUTH_IMAGE_TAG",
4716
+ "composeService": "exe-auth",
4717
+ "healthUrl": "http://127.0.0.1:3300/",
4718
+ "category": "auth",
4719
+ "description": "GoTrue SSO and privileged license authority bridge; stateless auth proxy.",
4720
+ "gitSha": "29fe7015d90b80c94db3a1e3904852b934071711"
4721
+ },
4722
+ "erp": {
4723
+ "image": "update.askexe.com/askexe/exe-erp:v0.3.17@sha256:ef61b59d94c04189fe2975045a3816d2fecc8efe3027e0ee8c17d0fa2efdbc3b",
4724
+ "env": "ERP_IMAGE_TAG",
4725
+ "composeService": "exe-erp",
4726
+ "healthUrl": "http://127.0.0.1:8069/api/method/ping",
4727
+ "healthHost": "localhost",
4728
+ "required": false,
4729
+ "category": "app",
4730
+ "description": "Enterprise Resource Planning with central hosted authentication and subject-bound organization admission.",
4731
+ "gitSha": "a769ec5e0ae53bc5944715845869715ebbffd63a"
4732
+ },
4733
+ "gotrue": {
4734
+ "image": "update.askexe.com/askexe/gotrue:v2.172.1@sha256:b0dd7aa28dd1f9a8bd31f136c8b912661f701d9b863171e5843cb08f18f49de4",
4735
+ "composeService": "gotrue",
4736
+ "healthUrl": "http://127.0.0.1:9999/health",
4737
+ "category": "infra"
4738
+ },
4739
+ "redis": {
4740
+ "image": "update.askexe.com/askexe/redis:7.4-alpine@sha256:6ab0b6e7381779332f97b8ca76193e45b0756f38d4c0dcda72dbb3c32061ab99",
4741
+ "composeService": "redis",
4742
+ "category": "infra"
4743
+ },
4744
+ "clickhouse": {
4745
+ "image": "update.askexe.com/askexe/clickhouse-server:24.8.4.13-alpine@sha256:88a45f9e328549b2579256c46ee38e5c0e25ae58303d9eb6d9c7ed8d6d2bbf3c",
4746
+ "composeService": "clickhouse",
4747
+ "category": "infra"
4748
+ },
4749
+ "cloudflared": {
4750
+ "image": "update.askexe.com/askexe/cloudflared:2026-07@sha256:ba461b8aa9c042156dbd39c38657fe7431bafa063220eab8d5330a523863da9f",
4751
+ "composeService": "cloudflared",
4752
+ "category": "infra"
4753
+ },
4754
+ "exe-sso-edge": {
4755
+ "image": "update.askexe.com/askexe/nginx:alpine@sha256:20316569d8f81a160065d7d2a5eeffc7ca97d79022462ee255fd23fa103a6b5c",
4756
+ "composeService": "exe-sso-edge",
4757
+ "category": "infra"
4758
+ },
4759
+ "exe-otel-collector": {
4760
+ "image": "update.askexe.com/askexe/otel-collector-contrib:0.114.0@sha256:37fa87091cfaaec7234a27e4e395a40c31c2bfaea97a349a4afef6d9e9681197",
4761
+ "composeService": "exe-otel-collector",
4762
+ "category": "infra"
4763
+ },
4764
+ "dashboard": {
4765
+ "image": "update.askexe.com/askexe/exe-dashboard:v0.9.392@sha256:d151441554c00e216084bd1caf2278e8c41fde188c039e0f167e158a511cbeec",
4766
+ "env": "DASHBOARD_IMAGE_TAG",
4767
+ "composeService": "exe-dashboard",
4768
+ "healthUrl": "http://127.0.0.1:3301/health",
4769
+ "required": false,
4770
+ "category": "optional",
4771
+ "description": "Customer dashboard at dashboard.<apex> — credits, usage, API keys, billing",
4772
+ "gitSha": "e11b25ad567389440da8ed5e566a9c59bce24123"
4773
+ }
4774
+ },
4775
+ "rolloutStage": "canary",
4776
+ "config": {
4777
+ "composeSha256": "220b251375f372107e8d8d54a9c3e4ceab1f57aae80f4babf2933c3887532263"
4778
+ }
4779
+ },
4780
+ "0.9.52": {
4781
+ "version": "0.9.52",
4782
+ "releasedAt": "2026-09-23T20:39:06.000Z",
4783
+ "npmVersion": "0.9.392",
4784
+ "notes": "Dashboard-only Exe dogfood canary replacing unapplied 0.9.51: npm 0.9.392 validates the exact signed live base and override Compose bytes and updates only the Dashboard image pin to v0.9.392. Preserve CRM v0.9.66 and every other service pin. No config assets or Compose files are delivered. Public DEMO remains disabled pending separate CRM routing and bootstrap.",
4785
+ "services": {
4786
+ "exe-db": {
4787
+ "image": "update.askexe.com/askexe/pgvector:0.8.0-pg16@sha256:a132765ec351c65111b5b675928a3a0515a466a40f97277329db8b8209ad8bc9",
4788
+ "env": "EXE_DB_IMAGE",
4789
+ "composeService": "exe-db",
4790
+ "required": true,
4791
+ "category": "core",
4792
+ "description": "Postgres (pgvector) — digest-pinned (bug 32d6e02f; was tag-only in 0.9.25, regressed from 0.9.24)"
4793
+ },
4794
+ "exe-os": {
4795
+ "image": "update.askexe.com/askexe/exe-os:v0.9.382@sha256:266a59a482865eab9f79497999acb33c1fe1868ec54ea5cd1ce971c492f11bd6",
4796
+ "env": "EXE_OS_IMAGE_TAG",
4797
+ "composeService": "exe-os",
4798
+ "healthUrl": "http://127.0.0.1:8765/health",
4799
+ "required": true,
4800
+ "category": "core",
4801
+ "description": "exe-os daemon + MCP server"
4802
+ },
4803
+ "crm": {
4804
+ "image": "update.askexe.com/askexe/exe-crm:v0.9.66@sha256:38bbae74ddd33dbbd62175a46ad0d3f99ef6c671b0c2187e35398ca9c504c3eb",
4805
+ "env": "CRM_IMAGE_TAG",
4806
+ "composeService": "exe-crm",
4807
+ "healthUrl": "http://127.0.0.1:3000/healthz",
4808
+ "category": "app",
4809
+ "gitSha": "a3d107483304d10b05c9f1ee5e1b0182c4628e65",
4810
+ "description": "Central authentication and recovery with server-validated shared sessions for CRM web and worker."
4811
+ },
4812
+ "wiki": {
4813
+ "image": "update.askexe.com/askexe/exe-wiki:v0.9.37@sha256:8fa22e77c0742fbb690f7b4c8431a186692a20ebd335fb141782df4289dc337f",
4814
+ "env": "WIKI_IMAGE_TAG",
4815
+ "composeService": "exe-wiki",
4816
+ "healthUrl": "http://127.0.0.1:3001/api/ping",
4817
+ "category": "app",
4818
+ "description": "Central hosted authentication and recovery with server-validated shared sessions, membership enforcement, and no product-local credential form.",
4819
+ "gitSha": "713a4370c2b641b8f8b07fd1e7390afa79a9c931"
4820
+ },
4821
+ "gateway": {
4822
+ "image": "update.askexe.com/askexe/exe-gateway:v2026.08.07-c15f093-stamped@sha256:1bc11a2a0ad1f3929d59d2685696f22a72042b9fca9c75e15c02dc7d3c640105",
4823
+ "env": "GATEWAY_IMAGE_TAG",
4824
+ "composeService": "exe-gateway",
4825
+ "healthUrl": "http://127.0.0.1:3100/health",
4826
+ "category": "app",
4827
+ "description": "WhatsApp/messaging gateway — provenance-stamped rebuild of main (outbound message persistence fix); pinned by digest, dated immutable tag.",
4828
+ "gitSha": "c15f093a0f59730bd5c2c73791ff77059dfa7cc1"
4829
+ },
4830
+ "monitorAgent": {
4831
+ "image": "update.askexe.com/askexe/exe-monitor-agent:v2026.08.09-10660eb4-stamped@sha256:29fbd445f79484df04f000603e4ff445e76f0380f86d687a0033e3a0ef7d1b7a",
4832
+ "env": "MONITOR_AGENT_IMAGE_TAG",
4833
+ "composeService": "exe-monitor-agent",
4834
+ "category": "monitoring",
4835
+ "gitSha": "10660eb4abdeffbcba2aad13549aa58e208ac7a3"
4836
+ },
4837
+ "monitorHub": {
4838
+ "image": "update.askexe.com/askexe/exe-monitor-hub:v2026.08.09-10660eb4-stamped@sha256:c9a9218c2713b8dffea7e1cf8c0702a614657d311a7a4e821c6a543bab29bb97",
4839
+ "env": "MONITOR_HUB_IMAGE_TAG",
4840
+ "composeService": "exe-monitor-hub",
4841
+ "healthUrl": "http://127.0.0.1:8090/api/health",
4842
+ "category": "monitoring",
4843
+ "gitSha": "10660eb4abdeffbcba2aad13549aa58e208ac7a3"
4844
+ },
4845
+ "auth": {
4846
+ "image": "update.askexe.com/askexe/exe-auth:v0.6.10@sha256:0260349962d087cd3c33fed1d362029416e82ae9cc60abca7969beac2cb8639f",
4847
+ "env": "AUTH_IMAGE_TAG",
4848
+ "composeService": "exe-auth",
4849
+ "healthUrl": "http://127.0.0.1:3300/",
4850
+ "category": "auth",
4851
+ "description": "GoTrue SSO and privileged license authority bridge; stateless auth proxy.",
4852
+ "gitSha": "29fe7015d90b80c94db3a1e3904852b934071711"
4853
+ },
4854
+ "erp": {
4855
+ "image": "update.askexe.com/askexe/exe-erp:v0.3.17@sha256:ef61b59d94c04189fe2975045a3816d2fecc8efe3027e0ee8c17d0fa2efdbc3b",
4856
+ "env": "ERP_IMAGE_TAG",
4857
+ "composeService": "exe-erp",
4858
+ "healthUrl": "http://127.0.0.1:8069/api/method/ping",
4859
+ "healthHost": "localhost",
4860
+ "required": false,
4861
+ "category": "app",
4862
+ "description": "Enterprise Resource Planning with central hosted authentication and subject-bound organization admission.",
4863
+ "gitSha": "a769ec5e0ae53bc5944715845869715ebbffd63a"
4864
+ },
4865
+ "gotrue": {
4866
+ "image": "update.askexe.com/askexe/gotrue:v2.172.1@sha256:b0dd7aa28dd1f9a8bd31f136c8b912661f701d9b863171e5843cb08f18f49de4",
4867
+ "composeService": "gotrue",
4868
+ "healthUrl": "http://127.0.0.1:9999/health",
4869
+ "category": "infra"
4870
+ },
4871
+ "redis": {
4872
+ "image": "update.askexe.com/askexe/redis:7.4-alpine@sha256:6ab0b6e7381779332f97b8ca76193e45b0756f38d4c0dcda72dbb3c32061ab99",
4873
+ "composeService": "redis",
4874
+ "category": "infra"
4875
+ },
4876
+ "clickhouse": {
4877
+ "image": "update.askexe.com/askexe/clickhouse-server:24.8.4.13-alpine@sha256:88a45f9e328549b2579256c46ee38e5c0e25ae58303d9eb6d9c7ed8d6d2bbf3c",
4878
+ "composeService": "clickhouse",
4879
+ "category": "infra"
4880
+ },
4881
+ "cloudflared": {
4882
+ "image": "update.askexe.com/askexe/cloudflared:2026-07@sha256:ba461b8aa9c042156dbd39c38657fe7431bafa063220eab8d5330a523863da9f",
4883
+ "composeService": "cloudflared",
4884
+ "category": "infra"
4885
+ },
4886
+ "exe-sso-edge": {
4887
+ "image": "update.askexe.com/askexe/nginx:alpine@sha256:20316569d8f81a160065d7d2a5eeffc7ca97d79022462ee255fd23fa103a6b5c",
4888
+ "composeService": "exe-sso-edge",
4889
+ "category": "infra"
4890
+ },
4891
+ "exe-otel-collector": {
4892
+ "image": "update.askexe.com/askexe/otel-collector-contrib:0.114.0@sha256:37fa87091cfaaec7234a27e4e395a40c31c2bfaea97a349a4afef6d9e9681197",
4893
+ "composeService": "exe-otel-collector",
4894
+ "category": "infra"
4895
+ },
4896
+ "dashboard": {
4897
+ "image": "update.askexe.com/askexe/exe-dashboard:v0.9.392@sha256:d151441554c00e216084bd1caf2278e8c41fde188c039e0f167e158a511cbeec",
4898
+ "env": "DASHBOARD_IMAGE_TAG",
4899
+ "composeService": "exe-dashboard",
4900
+ "healthUrl": "http://127.0.0.1:3301/health",
4901
+ "required": false,
4902
+ "category": "optional",
4903
+ "description": "Customer dashboard at dashboard.<apex> — credits, usage, API keys, billing",
4904
+ "gitSha": "e11b25ad567389440da8ed5e566a9c59bce24123"
4905
+ }
4906
+ },
4907
+ "rolloutStage": "canary",
4908
+ "config": {
4909
+ "composeSha256": "220b251375f372107e8d8d54a9c3e4ceab1f57aae80f4babf2933c3887532263",
4910
+ "composeOverrideSha256": "af295ca2f75b85788416e4df51cab86d8b773bf4cafe6cf6df9c7c26b9a42d6d"
4911
+ }
4363
4912
  }
4364
4913
  },
4365
4914
  "signature": {
4366
4915
  "keyId": "exe-stack-1",
4367
4916
  "alg": "ed25519",
4368
- "signature": "tyRpYIwHzjT4eixgdAqouFG/9rNSBi9QG0lwOkDgCYlxlr7FHePfIW/2s/DiR35f4eUsIJjJWUJltbhe8Nv8Dw=="
4917
+ "signature": "xdgiq8L3up4Mr/AAKup4KFb0istz4Mw80ACvfp1K69hy5NXCou/JX3/eyCfgp0ZP20nbzjjEDfYvHATXQ36XCQ=="
4369
4918
  }
4370
4919
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 1,
3
- "verified_at": "2026-09-23T01:55:53.298Z",
4
- "manifest_sha256": "adc75c50c1588490f5f4f0fdeadc2197fe248394ad1dd56f5a4766693ad7af93",
5
- "package_version": "0.9.390"
3
+ "verified_at": "2026-09-23T21:11:44.589Z",
4
+ "manifest_sha256": "7001b01788ede1ea0aca7f3688cacaa8a618cac6faf6aa49894111e38765e4c5",
5
+ "package_version": "0.9.392"
6
6
  }