@askexenow/exe-os 0.9.382 → 0.9.384

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 (493) hide show
  1. package/delivery/catalog.json +1254 -0
  2. package/deploy/compose/.env.customer.example +5 -5
  3. package/deploy/compose/.env.example +3 -3
  4. package/deploy/compose/docker-compose.yml +1 -1
  5. package/deploy/compose/generate-env.ts +65 -9
  6. package/deploy/compose/setup.sh +205 -7
  7. package/deploy/compose/sso-edge/default.conf.template +45 -0
  8. package/deploy/compose/sso-edge/sso-redirect.conf +11 -2
  9. package/deploy/stack-manifests/v0.9.30-apps.json +1 -1
  10. package/deploy/stack-manifests/v0.9.json +254 -2
  11. package/dist/.dist-verified.json +3 -3
  12. package/dist/{active-agent-GFUUCFLD.js → active-agent-F5V4E4UL.js} +7 -7
  13. package/dist/{active-agent-LE6FE6SO.js → active-agent-YTBB4ZQM.js} +7 -7
  14. package/dist/{agent-defs-generator-EIUA3SH5.js → agent-defs-generator-7TFISIJQ.js} +6 -6
  15. package/dist/{agent-loop-7ZRH56EX.js → agent-loop-EZ7LDAGD.js} +1 -1
  16. package/dist/{agentic-ontology-67JGSP7G.js → agentic-ontology-XVTUVV7W.js} +1 -1
  17. package/dist/{artifact-backup-NYXAYASJ.js → artifact-backup-TF6YWQT2.js} +5 -5
  18. package/dist/{backfill-gate-KWJQ35YX.js → backfill-gate-FWYLCGNJ.js} +3 -3
  19. package/dist/{backfill-metadata-RQYG2WUJ.js → backfill-metadata-J6MXIDCW.js} +10 -10
  20. package/dist/{background-jobs-6VMD55PK.js → background-jobs-V3DZRFKU.js} +3 -3
  21. package/dist/{backup-verify-HC4YDSGN.js → backup-verify-6DVBQMDP.js} +67 -18
  22. package/dist/{behavior-injection-6HSXP43Q.js → behavior-injection-XDA7ZCYN.js} +21 -20
  23. package/dist/{behavior-promotion-SJDQ2Y3U.js → behavior-promotion-4VLQ7LXK.js} +20 -19
  24. package/dist/{behaviors-6ITLA2CK.js → behaviors-SCCZP7RZ.js} +19 -18
  25. package/dist/bin/age-ontology-load.js +3 -3
  26. package/dist/bin/agentic-ontology-backfill.js +12 -12
  27. package/dist/bin/agentic-reflection-backfill.js +13 -13
  28. package/dist/bin/agentic-semantic-label.js +12 -12
  29. package/dist/bin/backfill-conversations.js +17 -16
  30. package/dist/bin/backfill-responses.js +17 -16
  31. package/dist/bin/backfill-vectors.js +23 -22
  32. package/dist/bin/bulk-sync-postgres.js +28 -27
  33. package/dist/bin/cc-doctor.js +17 -16
  34. package/dist/bin/cleanup-stale-review-tasks.js +29 -28
  35. package/dist/bin/cli.js +35 -26
  36. package/dist/bin/deferred-daemon-restart.js +124 -123
  37. package/dist/bin/exe-actions.js +1 -1
  38. package/dist/bin/exe-agent-config.js +6 -6
  39. package/dist/bin/exe-agent.js +22 -22
  40. package/dist/bin/exe-assign.js +19 -18
  41. package/dist/bin/exe-boot.js +57 -56
  42. package/dist/bin/exe-call.js +7 -7
  43. package/dist/bin/exe-cicd.js +38 -8
  44. package/dist/bin/exe-cloud.js +30 -29
  45. package/dist/bin/exe-config-dump.js +6 -6
  46. package/dist/bin/exe-dispatch.js +30 -29
  47. package/dist/bin/exe-doctor.js +11 -11
  48. package/dist/bin/exe-export-behaviors.js +23 -22
  49. package/dist/bin/exe-forget.js +13 -13
  50. package/dist/bin/exe-gateway.js +47 -14
  51. package/dist/bin/exe-grant.js +6 -6
  52. package/dist/bin/exe-healthcheck.js +17 -16
  53. package/dist/bin/exe-heartbeat.js +41 -35
  54. package/dist/bin/exe-kill.js +35 -34
  55. package/dist/bin/exe-launch-agent.js +43 -42
  56. package/dist/bin/exe-mcp.js +9 -9
  57. package/dist/bin/exe-memory-reads.js +10 -10
  58. package/dist/bin/exe-new-employee.js +11 -11
  59. package/dist/bin/exe-os-mcp-proxy.js +9 -9
  60. package/dist/bin/exe-pending-messages.js +30 -29
  61. package/dist/bin/exe-pending-notifications.js +29 -28
  62. package/dist/bin/exe-pending-reviews.js +30 -29
  63. package/dist/bin/exe-preflight.js +1 -1
  64. package/dist/bin/exe-rename.js +9 -9
  65. package/dist/bin/exe-review.js +34 -33
  66. package/dist/bin/exe-search.js +12 -12
  67. package/dist/bin/exe-session-cleanup.js +35 -34
  68. package/dist/bin/exe-settings.js +29 -28
  69. package/dist/bin/exe-start-codex.js +30 -29
  70. package/dist/bin/exe-start-opencode.js +27 -26
  71. package/dist/bin/exe-status.js +31 -30
  72. package/dist/bin/exe-support.js +5 -5
  73. package/dist/bin/exe-team.js +7 -7
  74. package/dist/bin/exe-verify-running-images.js +1 -1
  75. package/dist/bin/exe-watchdog.js +8 -8
  76. package/dist/bin/generate-hook-manifest.js +7 -1
  77. package/dist/bin/git-sweep.js +30 -29
  78. package/dist/bin/graph-backfill.js +12 -12
  79. package/dist/bin/graph-export.js +11 -11
  80. package/dist/bin/hooks-cli.js +1 -1
  81. package/dist/bin/import-history.js +15 -15
  82. package/dist/bin/install.js +130 -129
  83. package/dist/bin/intercom-check.js +11 -7
  84. package/dist/bin/mcp-sessions.js +2 -2
  85. package/dist/bin/orchestration-metrics.js +7 -7
  86. package/dist/bin/postgres-agentic-reflection-backfill.js +5 -5
  87. package/dist/bin/postgres-agentic-semantic-backfill.js +4 -4
  88. package/dist/bin/reconcile-backlog.js +2 -2
  89. package/dist/bin/registry-proxy.js +1 -1
  90. package/dist/bin/repair-document-chunks.js +161 -0
  91. package/dist/bin/scan-tasks.js +30 -29
  92. package/dist/bin/setup.js +5 -5
  93. package/dist/bin/shard-migrate.js +11 -11
  94. package/dist/bin/stack-update.js +625 -33
  95. package/dist/bin/update.js +96 -22
  96. package/dist/bin/verify-stack.js +2 -2
  97. package/dist/bin/vps-health-gate.js +1 -1
  98. package/dist/{boot-generation-L55QANCX.js → boot-generation-Q7LGQ3AO.js} +6 -6
  99. package/dist/{boot-review-sections-AON5ZCR2.js → boot-review-sections-G5774FR5.js} +28 -27
  100. package/dist/{branch-hygiene-QLD77IMJ.js → branch-hygiene-44WLSOZR.js} +2 -2
  101. package/dist/{branding-I6KIMB7F.js → branding-KMWCY5HZ.js} +3 -3
  102. package/dist/build-manifest.json +1259 -1219
  103. package/dist/{capability-cards-WTOXY7O6.js → capability-cards-I3RHCF4F.js} +5 -5
  104. package/dist/{capacity-monitor-ZLG7FSWM.js → capacity-monitor-7I7GDONU.js} +30 -29
  105. package/dist/{catchup-brief-QHY7D7N2.js → catchup-brief-3T5PARIR.js} +39 -36
  106. package/dist/check-image-pullability-2AIVB4BX.js +338 -0
  107. package/dist/{chunk-CTCCYKOV.js → chunk-2FKU4ZEO.js} +55 -29
  108. package/dist/{chunk-M7O7TGGU.js → chunk-2NW4LRDU.js} +1 -1
  109. package/dist/{chunk-XTFM4KMW.js → chunk-2PZTMSMG.js} +6 -6
  110. package/dist/{chunk-UWX6MMCX.js → chunk-3B6FLNLV.js} +1 -1
  111. package/dist/{chunk-GPJIBLP4.js → chunk-3DAEZILW.js} +1 -1
  112. package/dist/{chunk-NY6SBR4O.js → chunk-3FGBBJYM.js} +15 -3
  113. package/dist/{chunk-C4OZVVSG.js → chunk-3OX34OC3.js} +50 -18
  114. package/dist/{chunk-TXTXC3QG.js → chunk-3RGTLZNO.js} +12 -12
  115. package/dist/{chunk-PYRO25A5.js → chunk-3SUPEE6H.js} +10 -11
  116. package/dist/{chunk-PPMGQFLJ.js → chunk-3XY57PKT.js} +2 -2
  117. package/dist/{chunk-CRHI5QTZ.js → chunk-46VSBDUW.js} +2 -2
  118. package/dist/{chunk-VZT66WWP.js → chunk-4AAMFWJT.js} +2 -2
  119. package/dist/{chunk-4GZTBLJG.js → chunk-4AR5XKCH.js} +1 -1
  120. package/dist/{chunk-IHXW4VUI.js → chunk-5IADGFGR.js} +1 -1
  121. package/dist/{chunk-GLQEJOXE.js → chunk-5MVKTNZP.js} +57 -0
  122. package/dist/{chunk-AVMLC2MR.js → chunk-5U2IJBFV.js} +290 -41
  123. package/dist/{chunk-JUKDL5MF.js → chunk-6BJCDWSM.js} +1 -1
  124. package/dist/{chunk-6WWNK7UX.js → chunk-6FIC57PH.js} +1 -1
  125. package/dist/{chunk-ASUICGPX.js → chunk-6YDY6ZTD.js} +4 -4
  126. package/dist/{chunk-FU5O2REK.js → chunk-72V3S44T.js} +108 -29
  127. package/dist/{chunk-LTIIZHNA.js → chunk-7J2ZQ4XN.js} +1 -1
  128. package/dist/{chunk-7RI2CNXJ.js → chunk-7OTR2OET.js} +1 -1
  129. package/dist/{chunk-ZVBVPX4W.js → chunk-7UHZBVP3.js} +82 -51
  130. package/dist/{chunk-PTY2N23C.js → chunk-AGC2V7JS.js} +26 -13
  131. package/dist/{chunk-44VR3PFW.js → chunk-AHESD3KW.js} +1 -1
  132. package/dist/{chunk-NPGV4MZ3.js → chunk-ALRHGEAJ.js} +1 -1
  133. package/dist/{chunk-WJC6AAJN.js → chunk-ANVHWV2X.js} +2 -2
  134. package/dist/{chunk-AGZSGAEN.js → chunk-APL7HUE3.js} +105 -32
  135. package/dist/{chunk-7UH2JWBF.js → chunk-AZSTIAVL.js} +176 -11
  136. package/dist/chunk-AZXMR25O.js +545 -0
  137. package/dist/{chunk-WPWEBZ37.js → chunk-B7AMNZTC.js} +2 -2
  138. package/dist/{chunk-4CF5KUWH.js → chunk-BPVFZ6Q4.js} +3 -3
  139. package/dist/{chunk-XTQ7R2PA.js → chunk-BV2IET6B.js} +73 -17
  140. package/dist/{chunk-4F5CNI65.js → chunk-C5ISP5FO.js} +2 -2
  141. package/dist/{chunk-NPWNXJ3U.js → chunk-CH7BUBP3.js} +7 -7
  142. package/dist/{chunk-X5Q66EOG.js → chunk-CHIUS5QB.js} +16 -16
  143. package/dist/{chunk-ZG62LIK3.js → chunk-CIPDQRFO.js} +1 -1
  144. package/dist/{chunk-4PYIRIU6.js → chunk-CM7N5MBY.js} +5 -5
  145. package/dist/{chunk-L5YDAFUH.js → chunk-CYCIX7AW.js} +5 -5
  146. package/dist/{chunk-76YRJKKF.js → chunk-D3LXVAIQ.js} +28 -16
  147. package/dist/{chunk-2GNAHBRD.js → chunk-DMUOTCDN.js} +1 -1
  148. package/dist/{chunk-QMUFSRQX.js → chunk-DN3ZR3UE.js} +1 -1
  149. package/dist/{chunk-V3WLC5TJ.js → chunk-DRTJCG6B.js} +1 -1
  150. package/dist/{chunk-275WHBEN.js → chunk-DYVLEMKS.js} +1 -1
  151. package/dist/{chunk-O34F5EP5.js → chunk-DZN7SDY2.js} +1 -1
  152. package/dist/{chunk-ZDIXMHY7.js → chunk-E3ZM32LF.js} +8 -8
  153. package/dist/{chunk-N2HXR5MB.js → chunk-E7C2WNR5.js} +4 -4
  154. package/dist/{chunk-VVGXWVZU.js → chunk-EGOEB42T.js} +3 -3
  155. package/dist/{chunk-QV5CQLQH.js → chunk-EIOGV75A.js} +2 -2
  156. package/dist/{chunk-ZY4IGUOS.js → chunk-ELCRJGCH.js} +3 -3
  157. package/dist/{chunk-5QCIWWFA.js → chunk-ELEGH4DX.js} +130 -14
  158. package/dist/{chunk-S7CTCPSW.js → chunk-EOTZSAQL.js} +1 -1
  159. package/dist/{chunk-PPLQ4ECD.js → chunk-EUGEFBGV.js} +3 -3
  160. package/dist/{chunk-UFNCL6MS.js → chunk-EYMFVITZ.js} +1 -1
  161. package/dist/{chunk-F6H7GP2O.js → chunk-F4BBMIPG.js} +3 -3
  162. package/dist/{chunk-FNEZ4BWT.js → chunk-FEU6QEEL.js} +1 -1
  163. package/dist/{chunk-JKOC2L6P.js → chunk-FHIFTSPL.js} +1 -1
  164. package/dist/{chunk-4RTKETV3.js → chunk-FMIYFHLE.js} +3 -3
  165. package/dist/{chunk-TK544DEW.js → chunk-FVLNNNH6.js} +3 -3
  166. package/dist/{chunk-AY2U4NZ5.js → chunk-GL47M7NY.js} +85 -17
  167. package/dist/{chunk-DN24VTS5.js → chunk-GSLFH4AI.js} +25 -13
  168. package/dist/{chunk-CHO5SNWR.js → chunk-HA63SH5W.js} +1 -1
  169. package/dist/{chunk-4IK2K3B3.js → chunk-HME6ITKV.js} +1 -1
  170. package/dist/{chunk-H2T6TFJZ.js → chunk-HU3VD4MQ.js} +2 -2
  171. package/dist/{chunk-ZW32RI66.js → chunk-I5XIW2BP.js} +49 -11
  172. package/dist/{chunk-3CL2I3RG.js → chunk-IGJMS7C5.js} +2 -2
  173. package/dist/{chunk-BRPO6GOH.js → chunk-JA3Y5TV6.js} +2 -2
  174. package/dist/{chunk-SFFXAPYK.js → chunk-JDDM6C57.js} +1 -1
  175. package/dist/{chunk-W4EGAQXW.js → chunk-JFJP6ATJ.js} +2 -2
  176. package/dist/{chunk-ENCUOZXX.js → chunk-JFTUAV4J.js} +1 -1
  177. package/dist/{chunk-3UOQH2DJ.js → chunk-JJTPPAZY.js} +2568 -345
  178. package/dist/{chunk-A6QBAUJH.js → chunk-KILR4FBR.js} +4 -4
  179. package/dist/{chunk-CGFGNHSP.js → chunk-KTKIFXIP.js} +1 -1
  180. package/dist/{chunk-NCJBPXGM.js → chunk-KXYKSLW4.js} +108 -24
  181. package/dist/{chunk-3MUARHPO.js → chunk-L3VUW5M4.js} +1 -1
  182. package/dist/{chunk-GZOG2MAX.js → chunk-L5EPGGDP.js} +1 -1
  183. package/dist/{chunk-T7VSKWES.js → chunk-L63V25HS.js} +6 -5
  184. package/dist/{chunk-R4VNGRKU.js → chunk-LFBLQE2P.js} +1 -1
  185. package/dist/{chunk-W5MCOZTW.js → chunk-LFUBEHFW.js} +12 -2
  186. package/dist/{chunk-AIBIEP4R.js → chunk-LKTN22L6.js} +61 -25
  187. package/dist/{chunk-3KFQCFQB.js → chunk-LR5O2XWZ.js} +5 -5
  188. package/dist/{chunk-VUOAPKPI.js → chunk-LSNBTGW4.js} +1 -1
  189. package/dist/{chunk-P5U3GAWU.js → chunk-MB47DRF5.js} +2 -2
  190. package/dist/{chunk-HZESME3B.js → chunk-MC4IM2CC.js} +16 -13
  191. package/dist/{chunk-ZKJ5S23O.js → chunk-MFAOAIUE.js} +12 -9
  192. package/dist/{chunk-62J64CHO.js → chunk-MKM6D7JM.js} +26 -7
  193. package/dist/{chunk-ZIG7VPJV.js → chunk-MMS2HBRT.js} +15 -3
  194. package/dist/{chunk-FHSV4BSW.js → chunk-MOANZQXF.js} +12 -4
  195. package/dist/{chunk-RTZZBWQC.js → chunk-MPZ2AVNS.js} +16 -5
  196. package/dist/{chunk-AZ6KLVDX.js → chunk-MROSARM5.js} +2 -2
  197. package/dist/{chunk-RV2FFCDS.js → chunk-MUAWCFW6.js} +6 -2
  198. package/dist/{chunk-K4ESASPL.js → chunk-MUCNYSJP.js} +1 -1
  199. package/dist/{chunk-5QGKMP6T.js → chunk-NF5FOSLD.js} +1 -1
  200. package/dist/{chunk-CKOJP7JI.js → chunk-NKEFYE4R.js} +2 -2
  201. package/dist/{chunk-3SXHEQ7X.js → chunk-NPXIS2RY.js} +1 -1
  202. package/dist/{chunk-A5USSF66.js → chunk-NVFNADTX.js} +12 -8
  203. package/dist/{chunk-VVUO3RJS.js → chunk-NYLJQ2M2.js} +4 -4
  204. package/dist/{chunk-HIVOLPLD.js → chunk-OAFENIHN.js} +1 -1
  205. package/dist/{chunk-PMZHZQ6K.js → chunk-OBBO6EJR.js} +1 -1
  206. package/dist/{chunk-SS6EMDLL.js → chunk-P2UY34XE.js} +6 -6
  207. package/dist/{chunk-Y4T5IUEP.js → chunk-P3QQ52QK.js} +2 -2
  208. package/dist/{chunk-GGEKMY6G.js → chunk-P3UX5EH4.js} +4 -4
  209. package/dist/{chunk-F7IRZU5G.js → chunk-P4PIZOL2.js} +3 -3
  210. package/dist/{chunk-GEPFKUUR.js → chunk-P4XLIPB7.js} +1 -1
  211. package/dist/{chunk-GPUOUUHA.js → chunk-PCV52RYM.js} +1 -1
  212. package/dist/{chunk-XR3773KZ.js → chunk-PL4CFSQ7.js} +1 -1
  213. package/dist/{chunk-LLZNPOGB.js → chunk-PLII76NJ.js} +58 -0
  214. package/dist/{chunk-FT5PPV2C.js → chunk-PRDDPQLC.js} +5 -5
  215. package/dist/{chunk-BZ546I4Q.js → chunk-PUBA5B4M.js} +24 -0
  216. package/dist/{chunk-2TGJ5XCV.js → chunk-PWC3C5ME.js} +4 -4
  217. package/dist/{chunk-A4YCLD3L.js → chunk-QFAFKEB5.js} +40 -4
  218. package/dist/{chunk-CL4J4757.js → chunk-QH5ZQ5SJ.js} +26 -0
  219. package/dist/{chunk-UJWZYK46.js → chunk-QNZ4562V.js} +1 -1
  220. package/dist/{chunk-IPHLUZ37.js → chunk-QPTSA4PP.js} +2 -2
  221. package/dist/{chunk-O3YJTHWI.js → chunk-R5E7WNAC.js} +3 -3
  222. package/dist/{chunk-V3M4LJRA.js → chunk-RB3J2WYQ.js} +1 -1
  223. package/dist/{chunk-IUCWOI4Y.js → chunk-RDWIKDMY.js} +237 -11
  224. package/dist/{chunk-ENN6DY4T.js → chunk-RVO5O5SR.js} +46 -21
  225. package/dist/{chunk-LY4AXCYJ.js → chunk-RZN2LEAK.js} +6 -6
  226. package/dist/{chunk-2YIB75UQ.js → chunk-S26CV7BE.js} +57 -13
  227. package/dist/{chunk-XC36HYP6.js → chunk-SDYWZRPN.js} +1 -1
  228. package/dist/{chunk-PHBU4LGO.js → chunk-SNHYZYGZ.js} +1 -1
  229. package/dist/{chunk-4KTTBKWQ.js → chunk-T5FEAQES.js} +1 -1
  230. package/dist/{chunk-XU57KFD6.js → chunk-T5SM4RXY.js} +5 -1
  231. package/dist/{chunk-KUV5VBAO.js → chunk-TKAU7IJ2.js} +1 -1
  232. package/dist/{chunk-KBR5LIWD.js → chunk-TKS5GMYA.js} +1 -1
  233. package/dist/{chunk-5DFE2NAF.js → chunk-TNS63ATU.js} +96 -22
  234. package/dist/{chunk-RFPMXR6B.js → chunk-U4GMOT4M.js} +1 -1
  235. package/dist/{chunk-CO5ZVE3D.js → chunk-UOPCVFVR.js} +17 -17
  236. package/dist/{chunk-22LNFCDF.js → chunk-UX2EO653.js} +1 -1
  237. package/dist/{chunk-LGC6TBA3.js → chunk-UXN4BICC.js} +2 -2
  238. package/dist/{chunk-7J5X4AK7.js → chunk-VF2KRROX.js} +1 -1
  239. package/dist/{chunk-7THUQU44.js → chunk-VF3BZOZK.js} +5 -2
  240. package/dist/{chunk-M2B35MUK.js → chunk-VHHX4UCP.js} +1 -1
  241. package/dist/{chunk-AZBJXATK.js → chunk-VJEJ7JNB.js} +1 -1
  242. package/dist/{chunk-4TRVALTR.js → chunk-VLBHZ6TF.js} +2 -2
  243. package/dist/{chunk-7BMSBACY.js → chunk-VOVFUKEB.js} +5 -5
  244. package/dist/{chunk-MDPGZS6C.js → chunk-VROK4X2L.js} +1 -1
  245. package/dist/{chunk-J6ABJDZ4.js → chunk-W3KPQE7H.js} +4 -4
  246. package/dist/{chunk-3Q7NEDHB.js → chunk-W6BZ4UGA.js} +48 -9
  247. package/dist/{chunk-IZ3IFLL2.js → chunk-XEBKIWI7.js} +14 -14
  248. package/dist/{chunk-UZDF6FLJ.js → chunk-XHU3KOKJ.js} +1 -1
  249. package/dist/{chunk-PA37MXV5.js → chunk-XSUALA32.js} +2 -2
  250. package/dist/{chunk-GR5WJPKF.js → chunk-XUZK23V7.js} +11 -6
  251. package/dist/{chunk-IDB3EZLW.js → chunk-YLB365YX.js} +148 -5
  252. package/dist/{chunk-JDQ7JU3A.js → chunk-YLFCH3VA.js} +24 -16
  253. package/dist/{chunk-ZJJL2Z23.js → chunk-YRQ26MNP.js} +4 -4
  254. package/dist/chunk-YRUZK2QA.js +35 -0
  255. package/dist/{chunk-7HLJ4BSF.js → chunk-ZAEUEDTN.js} +2 -2
  256. package/dist/{chunk-NY74W3S4.js → chunk-ZBPZDADW.js} +313 -43
  257. package/dist/{chunk-ZLPS3GR7.js → chunk-ZJQ56DZZ.js} +42 -1
  258. package/dist/{chunk-VMZZTFXT.js → chunk-ZOTTYCP5.js} +4 -4
  259. package/dist/{chunk-MP4ST7RO.js → chunk-ZPP63JSQ.js} +51 -11
  260. package/dist/{chunk-N4J5WHO2.js → chunk-ZT4LFTUJ.js} +1 -1
  261. package/dist/{cleanup-graph-garbage-GE2DYOTB.js → cleanup-graph-garbage-VQAJ2RBT.js} +11 -11
  262. package/dist/{cloud-sync-command-T6KF3ARK.js → cloud-sync-command-J7NEFUY7.js} +2 -2
  263. package/dist/{cloud-sync-db-init-RSHCCY74.js → cloud-sync-db-init-KWEMNMGA.js} +1 -1
  264. package/dist/{cloud-sync-shutdown-6IVCSLM5.js → cloud-sync-shutdown-P63AUTUI.js} +5 -5
  265. package/dist/{co-activation-AF7RCJPX.js → co-activation-7IHRPBZN.js} +5 -5
  266. package/dist/{co-occurrence-DMOOGBVV.js → co-occurrence-R5AG4OAU.js} +9 -9
  267. package/dist/{code-context-index-LIDOFKOR.js → code-context-index-WFLLZBVB.js} +10 -9
  268. package/dist/{code-context-watcher-4F7K2N3U.js → code-context-watcher-3QAPHO7N.js} +10 -9
  269. package/dist/{codex-consolidation-SH4UKFBQ.js → codex-consolidation-ONZ2AQFX.js} +2 -2
  270. package/dist/{consent-passphrase-WV7MZPMO.js → consent-passphrase-5ZBDJ5G7.js} +2 -2
  271. package/dist/{content-extractor-DJM5EUDA.js → content-extractor-ZLXC6GNR.js} +2 -2
  272. package/dist/{conversation-entity-extractor-4UG7BKWL.js → conversation-entity-extractor-7FRKLLBD.js} +4 -4
  273. package/dist/{conversation-wiki-populator-OS4C6W54.js → conversation-wiki-populator-YAOVCUGO.js} +1 -1
  274. package/dist/{crdt-sync-VL4KXZB7.js → crdt-sync-IFRZOEIS.js} +4 -4
  275. package/dist/{crm-webhook-IDBJ7X5Y.js → crm-webhook-L2S63ASV.js} +2 -2
  276. package/dist/{cto-delegation-gate-4FLSHSLO.js → cto-delegation-gate-3WU7OHX7.js} +29 -28
  277. package/dist/{daemon-auth-PNKHERLV.js → daemon-auth-OWLFYEFR.js} +3 -3
  278. package/dist/{daemon-orchestration-HFCB6OK4.js → daemon-orchestration-3VQYKLOR.js} +33 -32
  279. package/dist/{daemon-ready-BN6EZLTQ.js → daemon-ready-VZ6ZHA2C.js} +1 -1
  280. package/dist/{db-integrity-events-GYGANKZV.js → db-integrity-events-7NKWS5MT.js} +3 -3
  281. package/dist/{db-restore-events-G6NOQOVE.js → db-restore-events-XYL6CGPC.js} +2 -2
  282. package/dist/{destructive-data-guard-HHWUBIGS.js → destructive-data-guard-JDUJ2ULM.js} +58 -2
  283. package/dist/{dispatch-ack-X4DXUSKP.js → dispatch-ack-UYEAKON5.js} +2 -1
  284. package/dist/{doc-graph-extractor-E36PQUCS.js → doc-graph-extractor-YIR5E7OF.js} +9 -9
  285. package/dist/{documents-SCKKHDR7.js → documents-QEHPTYIY.js} +19 -18
  286. package/dist/{dreaming-Q26JBH56.js → dreaming-LNFE7DTN.js} +34 -33
  287. package/dist/{employee-boot-brief-XU6EI2EO.js → employee-boot-brief-ZTXDYNWM.js} +39 -38
  288. package/dist/{entity-boost-VNQLLR3Q.js → entity-boost-R5N6JWXD.js} +1 -1
  289. package/dist/{exe-drift-YZ6OIUAY.js → exe-drift-WYSJVZFO.js} +6 -6
  290. package/dist/{exe-export-HHRQMLSS.js → exe-export-GOLNAEAV.js} +20 -19
  291. package/dist/{exe-import-5XR4NQAB.js → exe-import-U4BSI6OH.js} +20 -19
  292. package/dist/{exe-key-5XOFVP3I.js → exe-key-V42G3NGO.js} +152 -130
  293. package/dist/{exe-org-TPAX4AAK.js → exe-org-U4GLQ6OP.js} +27 -27
  294. package/dist/{exe-snapshot-GIRP3XCJ.js → exe-snapshot-U7ONBYNY.js} +38 -37
  295. package/dist/{fast-db-init-MGY6VCLG.js → fast-db-init-W3NGKAEU.js} +1 -1
  296. package/dist/{founder-context-WD72OL2P.js → founder-context-ZSIBRVDM.js} +4 -4
  297. package/dist/{founder-monitor-envelope-XGYMHT4W.js → founder-monitor-envelope-L3IWZLFY.js} +7 -7
  298. package/dist/{fts-integrity-PLAL6NMG.js → fts-integrity-PHCKKOBC.js} +3 -3
  299. package/dist/gateway/index.js +23 -22
  300. package/dist/{gateway-client-VO3BRLV5.js → gateway-client-DJFCVIPT.js} +1 -1
  301. package/dist/{git-staleness-KGZABPP3.js → git-staleness-OF24QXFZ.js} +5 -5
  302. package/dist/{global-procedures-KOU6A5E5.js → global-procedures-WSIOWO43.js} +6 -6
  303. package/dist/{graph-auto-extract-OZNRDAHE.js → graph-auto-extract-IEVVN3L3.js} +9 -9
  304. package/dist/{graph-query-36K6VXFF.js → graph-query-JDZWAVCU.js} +1 -1
  305. package/dist/{graph-rag-TZLH3CTQ.js → graph-rag-BKAD2XQA.js} +4 -4
  306. package/dist/{hook-integrity-BWFFISJV.js → hook-integrity-TPWDGX2M.js} +3 -1
  307. package/dist/{hook-prefetch-MFUJRAIM.js → hook-prefetch-FD6VGJJA.js} +29 -28
  308. package/dist/hooks/bug-report-worker.js +34 -33
  309. package/dist/hooks/codex-stop-task-finalizer.js +36 -35
  310. package/dist/hooks/commit-complete.js +40 -36
  311. package/dist/hooks/error-recall.js +15 -15
  312. package/dist/hooks/exe-heartbeat-hook.js +8 -8
  313. package/dist/hooks/ingest-worker.js +21 -20
  314. package/dist/hooks/ingest.js +23 -23
  315. package/dist/hooks/instructions-loaded.js +10 -10
  316. package/dist/hooks/manifest.json +20 -20
  317. package/dist/hooks/notification.js +9 -9
  318. package/dist/hooks/post-compact.js +8 -8
  319. package/dist/hooks/post-tool-combined.js +15 -15
  320. package/dist/hooks/pre-compact.js +33 -32
  321. package/dist/hooks/pre-tool-use.js +2 -2
  322. package/dist/hooks/prompt-submit.js +52 -51
  323. package/dist/hooks/session-end.js +38 -37
  324. package/dist/hooks/session-start.js +25 -22
  325. package/dist/hooks/stop.js +40 -39
  326. package/dist/hooks/subagent-stop.js +36 -35
  327. package/dist/hooks/summary-worker.js +41 -40
  328. package/dist/index.js +43 -42
  329. package/dist/{inrun-inbox-DRKVDPLY.js → inrun-inbox-RGNFFGMU.js} +5 -0
  330. package/dist/{installer-RM4ASY7U.js → installer-NMOBSEZ2.js} +11 -11
  331. package/dist/{installer-IESPHXVH.js → installer-OTI5SA43.js} +11 -11
  332. package/dist/{installer-SQZRVD36.js → installer-SRJGE4GU.js} +11 -11
  333. package/dist/{intercom-queue-DGLAC224.js → intercom-queue-4FFXCBHO.js} +28 -27
  334. package/dist/{key-backup-status-LQPINQ3W.js → key-backup-status-6U7D5GOD.js} +2 -2
  335. package/dist/lib/agent-config.js +3 -3
  336. package/dist/lib/cloud-sync.js +28 -27
  337. package/dist/lib/config.js +4 -2
  338. package/dist/lib/consolidation.js +14 -12
  339. package/dist/lib/crypto.js +5 -3
  340. package/dist/lib/database.js +5 -5
  341. package/dist/lib/db-backup.js +11 -3
  342. package/dist/lib/db-daemon-client.js +11 -10
  343. package/dist/lib/db-write-worker.js +4 -4
  344. package/dist/lib/db.js +5 -5
  345. package/dist/lib/delivery-catalog.js +431 -0
  346. package/dist/lib/delivery-schemas.js +62 -0
  347. package/dist/lib/delivery-truth.js +1 -1
  348. package/dist/lib/device-registry.js +3 -3
  349. package/dist/lib/embed-worker.js +2 -2
  350. package/dist/lib/embedder.js +10 -9
  351. package/dist/lib/employee-templates.js +7 -7
  352. package/dist/lib/employees.js +5 -5
  353. package/dist/lib/exe-daemon-client.js +9 -8
  354. package/dist/lib/exe-daemon.js +186 -117
  355. package/dist/lib/hybrid-search.js +12 -12
  356. package/dist/lib/identity.js +5 -5
  357. package/dist/lib/keychain.js +13 -1
  358. package/dist/lib/license.js +8 -4
  359. package/dist/lib/messaging.js +39 -30
  360. package/dist/lib/post-tool-memory.js +9 -9
  361. package/dist/lib/registry-proxy.js +9 -1
  362. package/dist/lib/reminders.js +6 -6
  363. package/dist/lib/schedules.js +11 -11
  364. package/dist/lib/session-registry.js +7 -7
  365. package/dist/lib/skill-learning.js +20 -19
  366. package/dist/lib/status-brief.js +5 -4
  367. package/dist/lib/store.js +10 -10
  368. package/dist/lib/task-router.js +6 -6
  369. package/dist/lib/tasks.js +30 -29
  370. package/dist/lib/tmux-routing.js +28 -27
  371. package/dist/lib/tmux-status.js +3 -1
  372. package/dist/lib/token-spend.js +6 -6
  373. package/dist/lib/ws-client.js +1 -1
  374. package/dist/{license-gate-E6GTRYBA.js → license-gate-R4JWTWM4.js} +5 -5
  375. package/dist/{license-recheck-RBAO6Z2H.js → license-recheck-3MBJ4IJX.js} +1 -1
  376. package/dist/{license-sync-ZCZ2LIHK.js → license-sync-BVSG3WMW.js} +4 -4
  377. package/dist/local-secret-inventory-JWNBHZZ4.js +20 -0
  378. package/dist/mailbox-inbox-MTAT4MXX.js +13 -0
  379. package/dist/{mailbox-outbox-DNDDP2HW.js → mailbox-outbox-OY4IU6S4.js} +2 -1
  380. package/dist/mcp/register-tools.js +121 -120
  381. package/dist/mcp/server.js +123 -122
  382. package/dist/mcp/tools/complete-reminder.js +7 -7
  383. package/dist/mcp/tools/create-reminder.js +7 -7
  384. package/dist/mcp/tools/create-task.js +35 -32
  385. package/dist/mcp/tools/deactivate-behavior.js +22 -21
  386. package/dist/mcp/tools/list-reminders.js +7 -7
  387. package/dist/mcp/tools/list-tasks.js +33 -32
  388. package/dist/mcp/tools/send-message.js +32 -31
  389. package/dist/mcp/tools/update-task.js +31 -30
  390. package/dist/{mcp-child-registry-DVHYAHPW.js → mcp-child-registry-TIZERM7O.js} +5 -5
  391. package/dist/{mcp-health-B5EKRCZG.js → mcp-health-4ZHU67LM.js} +9 -3
  392. package/dist/{mcp-http-config-ME67QDOF.js → mcp-http-config-VUMSFWFH.js} +12 -12
  393. package/dist/{mcp-session-identity-DNG4ULAE.js → mcp-session-identity-DZHWEJRV.js} +28 -27
  394. package/dist/{memory-cards-WCISXY62.js → memory-cards-JVXTMSAT.js} +10 -10
  395. package/dist/{memory-graph-extractor-GXIK4QUF.js → memory-graph-extractor-PPBJMYFJ.js} +10 -10
  396. package/dist/{memory-poisoning-defense-25LZ5FJI.js → memory-poisoning-defense-K5Q74XQ4.js} +5 -5
  397. package/dist/{memory-pressure-watchdog-XGXI7WGE.js → memory-pressure-watchdog-YMJH5CSA.js} +29 -28
  398. package/dist/{memory-queue-YF7IDSFY.js → memory-queue-2MA67TAA.js} +3 -3
  399. package/dist/{memory-queue-client-QC2OTMJB.js → memory-queue-client-4G7HVRSX.js} +11 -10
  400. package/dist/{memory-reflection-GFGT44NT.js → memory-reflection-7BZWIHRE.js} +10 -10
  401. package/dist/{monitor-grants-Z2SEFE6E.js → monitor-grants-Q7X3MYQP.js} +6 -6
  402. package/dist/{monitor-identity-AEMHCVHV.js → monitor-identity-ZQB4IXEE.js} +2 -2
  403. package/dist/{notification-ledger-ETQBGRP7.js → notification-ledger-XRAXL5OI.js} +32 -29
  404. package/dist/{notifications-LPRCFJYY.js → notifications-JE3PX55X.js} +28 -27
  405. package/dist/{orchestration-events-T2GXV2NG.js → orchestration-events-JCQ5F5IJ.js} +6 -6
  406. package/dist/{orchestration-phase-T2WD45UA.js → orchestration-phase-QKTGQ2YT.js} +3 -3
  407. package/dist/{orchestrator-HY2IB3NA.js → orchestrator-X65INDTR.js} +30 -29
  408. package/dist/{org-brief-session-UWFCFEEB.js → org-brief-session-3PQ22UIX.js} +19 -18
  409. package/dist/{org-consent-policy-XXMST37J.js → org-consent-policy-VGELJ7K7.js} +7 -6
  410. package/dist/{org-join-72QKM7JR.js → org-join-6TO5ZYUZ.js} +12 -12
  411. package/dist/{org-key-admin-YCIAYP7V.js → org-key-admin-XHYVRRAZ.js} +12 -12
  412. package/dist/{org-key-pin-F7BQPI5P.js → org-key-pin-TTTYGTQL.js} +6 -6
  413. package/dist/{org-membership-JQSU4Z5P.js → org-membership-Y7T2BS57.js} +7 -7
  414. package/dist/{org-partner-config-PVJ45SLC.js → org-partner-config-OP4NEUNF.js} +10 -10
  415. package/dist/{org-partner-runtime-U4CTLWLC.js → org-partner-runtime-YNVUNT2R.js} +20 -19
  416. package/dist/{org-row-visibility-WUX4N3FX.js → org-row-visibility-JBBXNYXD.js} +1 -1
  417. package/dist/{pipeline-router-2RMBCBRM.js → pipeline-router-EIBB7QNG.js} +6 -6
  418. package/dist/{plan-limits-Z47XYEJR.js → plan-limits-MEWXYLEN.js} +8 -8
  419. package/dist/{postinstall-failure-O6TSSNJB.js → postinstall-failure-VETYYWEZ.js} +3 -3
  420. package/dist/{pre-tool-use-impl-JPE6XMRJ.js → pre-tool-use-impl-C6KJY22W.js} +60 -49
  421. package/dist/{project-boot-UFQDAFU5.js → project-boot-VEYFCCSL.js} +2 -2
  422. package/dist/{project-name-V4IREGHO.js → project-name-UYORSNGE.js} +6 -6
  423. package/dist/{projection-worker-HAD6H3VJ.js → projection-worker-WYFDWS57.js} +5 -5
  424. package/dist/{prospective-memory-KIF4JLFF.js → prospective-memory-E6XBQFJA.js} +5 -5
  425. package/dist/{push-notifications-GDKRTYXH.js → push-notifications-M7YU63FY.js} +29 -28
  426. package/dist/{reproject-worktree-memories-SG4BZJ3Z.js → reproject-worktree-memories-B5XMGJSD.js} +28 -27
  427. package/dist/{reranker-G2AZ67JP.js → reranker-SRA4BR7N.js} +3 -3
  428. package/dist/{retrieval-health-GBJRXTBZ.js → retrieval-health-P2JPZUPV.js} +4 -4
  429. package/dist/{review-polling-VUZPAAGT.js → review-polling-KQPN7IQE.js} +29 -28
  430. package/dist/runtime/index.js +37 -36
  431. package/dist/{session-events-BI6NIFIR.js → session-events-6LDDKKY3.js} +29 -28
  432. package/dist/{session-kill-telemetry-HPBDOPHT.js → session-kill-telemetry-5DSRGWCL.js} +29 -28
  433. package/dist/{session-mcp-config-WFZAH6R5.js → session-mcp-config-F7RCERUG.js} +3 -3
  434. package/dist/{session-scope-UB3HA5E7.js → session-scope-XG5R3P3D.js} +28 -27
  435. package/dist/{setup-wizard-6XULOT3L.js → setup-wizard-7QFLZIKT.js} +5 -5
  436. package/dist/{shard-manager-DYEJ6ETD.js → shard-manager-HHHHV2KZ.js} +3 -3
  437. package/dist/{skill-refinement-MKBQIWZ6.js → skill-refinement-I5RMAHSC.js} +6 -6
  438. package/dist/{stack-generate-manifest-7ODQ6W2O.js → stack-generate-manifest-AKMZ3AUX.js} +246 -13
  439. package/dist/stack-init-5VKL5PL5.js +136 -0
  440. package/dist/{stack-promote-3UKJBJSP.js → stack-promote-34CE2HHF.js} +7 -6
  441. package/dist/{stack-release-5CVXMJM5.js → stack-release-5PGWV5D4.js} +123 -12
  442. package/dist/{stack-update-Z53KG2P5.js → stack-update-ZQQ5YYPJ.js} +20 -5
  443. package/dist/{steward-gate-OKUYYIX6.js → steward-gate-AQJ6KT2C.js} +6 -6
  444. package/dist/{subagent-brief-injection-T2CVQLAS.js → subagent-brief-injection-3GU7YAWY.js} +50 -42
  445. package/dist/{subagent-spawn-ledger-E6U3OY6Z.js → subagent-spawn-ledger-52I66CLW.js} +3 -3
  446. package/dist/{supervisor-handoff-SGLEPOCY.js → supervisor-handoff-BWJW6CKZ.js} +4 -4
  447. package/dist/{support-inbox-WJIDCKJC.js → support-inbox-NY5TB3FN.js} +12 -12
  448. package/dist/{support-outbox-G2NG2U5K.js → support-outbox-KNI3FR3G.js} +3 -2
  449. package/dist/{task-enforcement-JL5ADPS6.js → task-enforcement-CAA6D2MH.js} +29 -28
  450. package/dist/{task-request-inbox-54BRRFHZ.js → task-request-inbox-QBZVU66E.js} +9 -6
  451. package/dist/{task-scope-OBPZBID5.js → task-scope-NHXB4ZRN.js} +32 -27
  452. package/dist/{tasks-crud-YBCPT7TY.js → tasks-crud-JHSWL5NM.js} +28 -27
  453. package/dist/{tasks-notify-CEEQSDJF.js → tasks-notify-7PBE4U7T.js} +29 -28
  454. package/dist/{tasks-review-JIEI656P.js → tasks-review-PPPVEE62.js} +28 -27
  455. package/dist/{telemetry-upload-ZZSEZR2U.js → telemetry-upload-YU2VRNHX.js} +10 -10
  456. package/dist/{token-budget-AUFMEMQ2.js → token-budget-QCMWKG3K.js} +6 -6
  457. package/dist/{tool-capability-index-6HLZU437.js → tool-capability-index-7AWQAJRP.js} +1 -1
  458. package/dist/{tool-gates-VXITVRFQ.js → tool-gates-5Q3RSQEG.js} +1 -1
  459. package/dist/{tool-gates-JWVSAYTW.js → tool-gates-QD26D2NE.js} +1 -1
  460. package/dist/{tool-telemetry-RHSEK2TO.js → tool-telemetry-LTOIC64I.js} +1 -1
  461. package/dist/tui/App.js +43 -42
  462. package/dist/{tui-data-PBZNN5YB.js → tui-data-NDBXD6U7.js} +32 -31
  463. package/dist/{update-support-V3ZCJR6L.js → update-support-BMJM4NG7.js} +27 -26
  464. package/dist/{whatsapp-NAM2CRVQ.js → whatsapp-QQLDAHUX.js} +2 -2
  465. package/dist/{wiki-acl-NUBAPLCD.js → wiki-acl-W6WDCVCP.js} +1 -1
  466. package/dist/{work-claims-Q2NU6JON.js → work-claims-6DM32MGO.js} +6 -6
  467. package/dist/{work-state-heartbeat-HAQRV3RK.js → work-state-heartbeat-HG7D4AWJ.js} +1 -1
  468. package/dist/{worker-gate-NUUSQMBT.js → worker-gate-FTMW7GBB.js} +3 -3
  469. package/dist/{workflow-engine-GEWPU5YR.js → workflow-engine-ZWC6CCXE.js} +2 -2
  470. package/dist/{worktree-C7LFMRKW.js → worktree-EMQCPGFE.js} +7 -7
  471. package/dist/{worktree-ownership-guard-4LKMW6PW.js → worktree-ownership-guard-O6JQF2CL.js} +2 -2
  472. package/dist/{worktree-sweep-SYF62ANH.js → worktree-sweep-XVUJZBXV.js} +8 -8
  473. package/package.json +23 -7
  474. package/release-notes.json +39 -12
  475. package/stack.release.json +4 -4
  476. package/dist/mailbox-inbox-XE72D3AX.js +0 -10
  477. /package/dist/{chunk-QIEYJ4KZ.js → chunk-2KY7WZZF.js} +0 -0
  478. /package/dist/{chunk-T3667X2B.js → chunk-2Q2CD6CD.js} +0 -0
  479. /package/dist/{chunk-JZJZYKMW.js → chunk-AJK2PVQW.js} +0 -0
  480. /package/dist/{chunk-ZEGEFBZV.js → chunk-AWWDKF22.js} +0 -0
  481. /package/dist/{chunk-QNTKRGJ6.js → chunk-GIRD7O5X.js} +0 -0
  482. /package/dist/{chunk-FWA4MYTA.js → chunk-JRIH6I7D.js} +0 -0
  483. /package/dist/{chunk-C7H2D7LX.js → chunk-M4XY4JRK.js} +0 -0
  484. /package/dist/{chunk-Q3DN5J6F.js → chunk-P2VVMGMI.js} +0 -0
  485. /package/dist/{chunk-BRAIWGMF.js → chunk-Q46NYJ77.js} +0 -0
  486. /package/dist/{chunk-3LQ2N4H7.js → chunk-U2D6PJ5T.js} +0 -0
  487. /package/dist/{chunk-3O6OGZL3.js → chunk-XDVOGDBC.js} +0 -0
  488. /package/dist/{core-memory-UNCAPGD4.js → core-memory-O6D5UC3T.js} +0 -0
  489. /package/dist/{hook-tamper-log-Z4PWC7N4.js → hook-tamper-log-ARGWCXKJ.js} +0 -0
  490. /package/dist/{memory-isolation-ALPJWLR5.js → memory-isolation-EBFFC6HF.js} +0 -0
  491. /package/dist/{oauth-server-AC2KB7NB.js → oauth-server-ZKBUHDFI.js} +0 -0
  492. /package/dist/{webhook-pipe-W2FVXY7M.js → webhook-pipe-PXH5MBRM.js} +0 -0
  493. /package/dist/{wiki-client-W65IOSWF.js → wiki-client-DD2NVWK2.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "latest": "0.9.36",
3
+ "latest": "0.9.38",
4
4
  "stacks": {
5
5
  "0.9.0": {
6
6
  "version": "0.9.0",
@@ -2806,11 +2806,263 @@
2806
2806
  }
2807
2807
  },
2808
2808
  "rolloutStage": "ga"
2809
+ },
2810
+ "0.9.37": {
2811
+ "version": "0.9.37",
2812
+ "releasedAt": "2026-09-08T06:48:53.529Z",
2813
+ "npmVersion": "0.9.382",
2814
+ "notes": "exe-os v0.9.382, exe-crm v0.9.59 and exe-erp v0.3.11 reach customers. exe-os was pinned at v0.9.324 — 58 versions of merged work that no install could see. exe-crm v0.9.59 carries the shared EXE design tokens plus the @faker-js/faker CVE-2026-73231 fix (the vulnerable image was built but its release tag was correctly withheld, so it never shipped). exe-erp v0.3.11 is the first ERP image driving Frappe's own Espresso design system with EXE brand tokens instead of an override stylesheet, and the first built natively on x86_64 with QEMU removed from the release path. wiki v0.9.33 and auth v0.6.5 pins are unchanged — already current.",
2815
+ "services": {
2816
+ "exe-db": {
2817
+ "image": "update.askexe.com/askexe/pgvector:0.8.0-pg16@sha256:a132765ec351c65111b5b675928a3a0515a466a40f97277329db8b8209ad8bc9",
2818
+ "env": "EXE_DB_IMAGE",
2819
+ "composeService": "exe-db",
2820
+ "required": true,
2821
+ "category": "core",
2822
+ "description": "Postgres (pgvector) — digest-pinned (bug 32d6e02f; was tag-only in 0.9.25, regressed from 0.9.24)"
2823
+ },
2824
+ "exe-os": {
2825
+ "image": "update.askexe.com/askexe/exe-os:v0.9.382@sha256:266a59a482865eab9f79497999acb33c1fe1868ec54ea5cd1ce971c492f11bd6",
2826
+ "env": "EXE_OS_IMAGE_TAG",
2827
+ "composeService": "exe-os",
2828
+ "healthUrl": "http://127.0.0.1:8765/health",
2829
+ "required": true,
2830
+ "category": "core",
2831
+ "description": "exe-os daemon + MCP server"
2832
+ },
2833
+ "crm": {
2834
+ "image": "update.askexe.com/askexe/exe-crm:v0.9.59@sha256:40619dce57540f86dc7c8b71f1da57f44600a288f75a28850a9a9b425d0b92a6",
2835
+ "env": "CRM_IMAGE_TAG",
2836
+ "composeService": "exe-crm",
2837
+ "healthUrl": "http://127.0.0.1:3000/healthz",
2838
+ "category": "app"
2839
+ },
2840
+ "wiki": {
2841
+ "image": "update.askexe.com/askexe/exe-wiki:v0.9.33@sha256:1f9e04a557c6034e0eac85ecdf76d465eab88394614184387ecf06cd2281e7d8",
2842
+ "env": "WIKI_IMAGE_TAG",
2843
+ "composeService": "exe-wiki",
2844
+ "healthUrl": "http://127.0.0.1:3001/api/ping",
2845
+ "category": "app",
2846
+ "description": "exe-wiki v0.9.33 — typography unified onto the shared @askexenow/exe-theme tokens. plus-jakarta-sans removed repo-wide, and a latent bug fixed: font-headline was defined in Tailwind but no rule ever applied it, so h1-h6 had silently inherited the body font and wiki headings had never once rendered in Epilogue. Also dark first paint before stylesheets load, so switching between CRM, wiki and ERP no longer flashes white.",
2847
+ "gitSha": "3f35bd9c52543987e2ebaec9e5876cc6c6fd8f3a"
2848
+ },
2849
+ "gateway": {
2850
+ "image": "update.askexe.com/askexe/exe-gateway:v2026.08.07-c15f093-stamped@sha256:1bc11a2a0ad1f3929d59d2685696f22a72042b9fca9c75e15c02dc7d3c640105",
2851
+ "env": "GATEWAY_IMAGE_TAG",
2852
+ "composeService": "exe-gateway",
2853
+ "healthUrl": "http://127.0.0.1:3100/health",
2854
+ "category": "app",
2855
+ "description": "WhatsApp/messaging gateway — provenance-stamped rebuild of main (outbound message persistence fix); pinned by digest, dated immutable tag.",
2856
+ "gitSha": "c15f093a0f59730bd5c2c73791ff77059dfa7cc1"
2857
+ },
2858
+ "monitorAgent": {
2859
+ "image": "update.askexe.com/askexe/exe-monitor-agent:v2026.08.09-10660eb4-stamped@sha256:29fbd445f79484df04f000603e4ff445e76f0380f86d687a0033e3a0ef7d1b7a",
2860
+ "env": "MONITOR_AGENT_IMAGE_TAG",
2861
+ "composeService": "exe-monitor-agent",
2862
+ "category": "monitoring",
2863
+ "gitSha": "10660eb4abdeffbcba2aad13549aa58e208ac7a3"
2864
+ },
2865
+ "monitorHub": {
2866
+ "image": "update.askexe.com/askexe/exe-monitor-hub:v2026.08.09-10660eb4-stamped@sha256:c9a9218c2713b8dffea7e1cf8c0702a614657d311a7a4e821c6a543bab29bb97",
2867
+ "env": "MONITOR_HUB_IMAGE_TAG",
2868
+ "composeService": "exe-monitor-hub",
2869
+ "healthUrl": "http://127.0.0.1:8090/api/health",
2870
+ "category": "monitoring",
2871
+ "gitSha": "10660eb4abdeffbcba2aad13549aa58e208ac7a3"
2872
+ },
2873
+ "auth": {
2874
+ "image": "update.askexe.com/askexe/exe-auth:v0.6.5@sha256:dc8c1476ef1247079a6e115450bd35681712fa06367461589998ecf943f88089",
2875
+ "env": "AUTH_IMAGE_TAG",
2876
+ "composeService": "exe-auth",
2877
+ "healthUrl": "http://127.0.0.1:3300/api/health",
2878
+ "category": "auth",
2879
+ "description": "exe-auth v0.6.5 — an already-authenticated user switching between ERP, wiki and CRM no longer sees the login page flash. The session is now validated SERVER-SIDE before any login markup is sent, so an authenticated request gets a bare 302 (bug 910ff2a5). A forged exe_access_token sentinel still receives the login page, so this is not an auth bypass. Also strips the leading dot from AUTH_COOKIE_DOMAIN (bug ee4b831d).",
2880
+ "gitSha": "e119d1fa1fd08f2faf951f9998fe33393cf8b258"
2881
+ },
2882
+ "erp": {
2883
+ "image": "update.askexe.com/askexe/exe-erp:v0.3.11@sha256:5888b3e9d4ff309f37052dbdcac1fda66e235dbecb186a9ccf69380576e7b363",
2884
+ "env": "ERP_IMAGE_TAG",
2885
+ "composeService": "exe-erp",
2886
+ "healthUrl": "http://127.0.0.1:8069/api/method/ping",
2887
+ "healthHost": "localhost",
2888
+ "required": false,
2889
+ "category": "app",
2890
+ "description": "Enterprise Resource Planning",
2891
+ "gitSha": "d185286873dcfa11e4b3f9672c4e23efea240cc5"
2892
+ },
2893
+ "gotrue": {
2894
+ "image": "update.askexe.com/askexe/gotrue:v2.172.1@sha256:b0dd7aa28dd1f9a8bd31f136c8b912661f701d9b863171e5843cb08f18f49de4",
2895
+ "composeService": "gotrue",
2896
+ "healthUrl": "http://127.0.0.1:9999/health",
2897
+ "category": "infra"
2898
+ },
2899
+ "redis": {
2900
+ "image": "update.askexe.com/askexe/redis:7.4-alpine@sha256:6ab0b6e7381779332f97b8ca76193e45b0756f38d4c0dcda72dbb3c32061ab99",
2901
+ "composeService": "redis",
2902
+ "category": "infra"
2903
+ },
2904
+ "clickhouse": {
2905
+ "image": "update.askexe.com/askexe/clickhouse-server:24.8.4.13-alpine@sha256:88a45f9e328549b2579256c46ee38e5c0e25ae58303d9eb6d9c7ed8d6d2bbf3c",
2906
+ "composeService": "clickhouse",
2907
+ "category": "infra"
2908
+ },
2909
+ "cloudflared": {
2910
+ "image": "update.askexe.com/askexe/cloudflared:2026-07@sha256:ba461b8aa9c042156dbd39c38657fe7431bafa063220eab8d5330a523863da9f",
2911
+ "composeService": "cloudflared",
2912
+ "category": "infra"
2913
+ },
2914
+ "exe-sso-edge": {
2915
+ "image": "update.askexe.com/askexe/nginx:alpine@sha256:20316569d8f81a160065d7d2a5eeffc7ca97d79022462ee255fd23fa103a6b5c",
2916
+ "composeService": "exe-sso-edge",
2917
+ "category": "infra"
2918
+ },
2919
+ "exe-otel-collector": {
2920
+ "image": "update.askexe.com/askexe/otel-collector-contrib:0.114.0@sha256:37fa87091cfaaec7234a27e4e395a40c31c2bfaea97a349a4afef6d9e9681197",
2921
+ "composeService": "exe-otel-collector",
2922
+ "category": "infra"
2923
+ },
2924
+ "dashboard": {
2925
+ "image": "update.askexe.com/askexe/exe-dashboard:v0.9.382@sha256:43c4eb52d89d977021d29df73bcfa6f9d769ab4debf90e81240b59a4c165bab0",
2926
+ "env": "DASHBOARD_IMAGE_TAG",
2927
+ "composeService": "exe-dashboard",
2928
+ "healthUrl": "http://127.0.0.1:3301/health",
2929
+ "required": false,
2930
+ "category": "optional",
2931
+ "description": "Customer dashboard at dashboard.<apex> — credits, usage, API keys, billing"
2932
+ }
2933
+ },
2934
+ "rolloutStage": "ga"
2935
+ },
2936
+ "0.9.38": {
2937
+ "version": "0.9.38",
2938
+ "releasedAt": "2026-09-08T14:38:52.000Z",
2939
+ "npmVersion": "0.9.382",
2940
+ "notes": "Corrects the auth healthUrl only; every image pin is identical to 0.9.37. 0.9.37 probed auth at /api/health, which exe-auth returns 404 for BY DESIGN: nginx.conf adds an exact `location = /api/health` that 404s so GoTrue's version is not exposed to the public internet (fingerprinting), and its comment states health of the container is the compose healthcheck on `/`. The manifest was never updated to match, so deploying auth aborted with 'Health check failed for auth (http://127.0.0.1:3300/api/health): HTTP 404' and rolled the whole stack back. Verified live on the running service: / -> 200, /__version -> 200, /api/health -> 404. Points at `/`, matching the container's own healthcheck (wget --spider http://127.0.0.1:80/).",
2941
+ "services": {
2942
+ "exe-db": {
2943
+ "image": "update.askexe.com/askexe/pgvector:0.8.0-pg16@sha256:a132765ec351c65111b5b675928a3a0515a466a40f97277329db8b8209ad8bc9",
2944
+ "env": "EXE_DB_IMAGE",
2945
+ "composeService": "exe-db",
2946
+ "required": true,
2947
+ "category": "core",
2948
+ "description": "Postgres (pgvector) — digest-pinned (bug 32d6e02f; was tag-only in 0.9.25, regressed from 0.9.24)"
2949
+ },
2950
+ "exe-os": {
2951
+ "image": "update.askexe.com/askexe/exe-os:v0.9.382@sha256:266a59a482865eab9f79497999acb33c1fe1868ec54ea5cd1ce971c492f11bd6",
2952
+ "env": "EXE_OS_IMAGE_TAG",
2953
+ "composeService": "exe-os",
2954
+ "healthUrl": "http://127.0.0.1:8765/health",
2955
+ "required": true,
2956
+ "category": "core",
2957
+ "description": "exe-os daemon + MCP server"
2958
+ },
2959
+ "crm": {
2960
+ "image": "update.askexe.com/askexe/exe-crm:v0.9.59@sha256:40619dce57540f86dc7c8b71f1da57f44600a288f75a28850a9a9b425d0b92a6",
2961
+ "env": "CRM_IMAGE_TAG",
2962
+ "composeService": "exe-crm",
2963
+ "healthUrl": "http://127.0.0.1:3000/healthz",
2964
+ "category": "app"
2965
+ },
2966
+ "wiki": {
2967
+ "image": "update.askexe.com/askexe/exe-wiki:v0.9.33@sha256:1f9e04a557c6034e0eac85ecdf76d465eab88394614184387ecf06cd2281e7d8",
2968
+ "env": "WIKI_IMAGE_TAG",
2969
+ "composeService": "exe-wiki",
2970
+ "healthUrl": "http://127.0.0.1:3001/api/ping",
2971
+ "category": "app",
2972
+ "description": "exe-wiki v0.9.33 — typography unified onto the shared @askexenow/exe-theme tokens. plus-jakarta-sans removed repo-wide, and a latent bug fixed: font-headline was defined in Tailwind but no rule ever applied it, so h1-h6 had silently inherited the body font and wiki headings had never once rendered in Epilogue. Also dark first paint before stylesheets load, so switching between CRM, wiki and ERP no longer flashes white.",
2973
+ "gitSha": "3f35bd9c52543987e2ebaec9e5876cc6c6fd8f3a"
2974
+ },
2975
+ "gateway": {
2976
+ "image": "update.askexe.com/askexe/exe-gateway:v2026.08.07-c15f093-stamped@sha256:1bc11a2a0ad1f3929d59d2685696f22a72042b9fca9c75e15c02dc7d3c640105",
2977
+ "env": "GATEWAY_IMAGE_TAG",
2978
+ "composeService": "exe-gateway",
2979
+ "healthUrl": "http://127.0.0.1:3100/health",
2980
+ "category": "app",
2981
+ "description": "WhatsApp/messaging gateway — provenance-stamped rebuild of main (outbound message persistence fix); pinned by digest, dated immutable tag.",
2982
+ "gitSha": "c15f093a0f59730bd5c2c73791ff77059dfa7cc1"
2983
+ },
2984
+ "monitorAgent": {
2985
+ "image": "update.askexe.com/askexe/exe-monitor-agent:v2026.08.09-10660eb4-stamped@sha256:29fbd445f79484df04f000603e4ff445e76f0380f86d687a0033e3a0ef7d1b7a",
2986
+ "env": "MONITOR_AGENT_IMAGE_TAG",
2987
+ "composeService": "exe-monitor-agent",
2988
+ "category": "monitoring",
2989
+ "gitSha": "10660eb4abdeffbcba2aad13549aa58e208ac7a3"
2990
+ },
2991
+ "monitorHub": {
2992
+ "image": "update.askexe.com/askexe/exe-monitor-hub:v2026.08.09-10660eb4-stamped@sha256:c9a9218c2713b8dffea7e1cf8c0702a614657d311a7a4e821c6a543bab29bb97",
2993
+ "env": "MONITOR_HUB_IMAGE_TAG",
2994
+ "composeService": "exe-monitor-hub",
2995
+ "healthUrl": "http://127.0.0.1:8090/api/health",
2996
+ "category": "monitoring",
2997
+ "gitSha": "10660eb4abdeffbcba2aad13549aa58e208ac7a3"
2998
+ },
2999
+ "auth": {
3000
+ "image": "update.askexe.com/askexe/exe-auth:v0.6.5@sha256:dc8c1476ef1247079a6e115450bd35681712fa06367461589998ecf943f88089",
3001
+ "env": "AUTH_IMAGE_TAG",
3002
+ "composeService": "exe-auth",
3003
+ "healthUrl": "http://127.0.0.1:3300/",
3004
+ "category": "auth",
3005
+ "description": "exe-auth v0.6.5 — an already-authenticated user switching between ERP, wiki and CRM no longer sees the login page flash. The session is now validated SERVER-SIDE before any login markup is sent, so an authenticated request gets a bare 302 (bug 910ff2a5). A forged exe_access_token sentinel still receives the login page, so this is not an auth bypass. Also strips the leading dot from AUTH_COOKIE_DOMAIN (bug ee4b831d).",
3006
+ "gitSha": "e119d1fa1fd08f2faf951f9998fe33393cf8b258"
3007
+ },
3008
+ "erp": {
3009
+ "image": "update.askexe.com/askexe/exe-erp:v0.3.11@sha256:5888b3e9d4ff309f37052dbdcac1fda66e235dbecb186a9ccf69380576e7b363",
3010
+ "env": "ERP_IMAGE_TAG",
3011
+ "composeService": "exe-erp",
3012
+ "healthUrl": "http://127.0.0.1:8069/api/method/ping",
3013
+ "healthHost": "localhost",
3014
+ "required": false,
3015
+ "category": "app",
3016
+ "description": "Enterprise Resource Planning",
3017
+ "gitSha": "d185286873dcfa11e4b3f9672c4e23efea240cc5"
3018
+ },
3019
+ "gotrue": {
3020
+ "image": "update.askexe.com/askexe/gotrue:v2.172.1@sha256:b0dd7aa28dd1f9a8bd31f136c8b912661f701d9b863171e5843cb08f18f49de4",
3021
+ "composeService": "gotrue",
3022
+ "healthUrl": "http://127.0.0.1:9999/health",
3023
+ "category": "infra"
3024
+ },
3025
+ "redis": {
3026
+ "image": "update.askexe.com/askexe/redis:7.4-alpine@sha256:6ab0b6e7381779332f97b8ca76193e45b0756f38d4c0dcda72dbb3c32061ab99",
3027
+ "composeService": "redis",
3028
+ "category": "infra"
3029
+ },
3030
+ "clickhouse": {
3031
+ "image": "update.askexe.com/askexe/clickhouse-server:24.8.4.13-alpine@sha256:88a45f9e328549b2579256c46ee38e5c0e25ae58303d9eb6d9c7ed8d6d2bbf3c",
3032
+ "composeService": "clickhouse",
3033
+ "category": "infra"
3034
+ },
3035
+ "cloudflared": {
3036
+ "image": "update.askexe.com/askexe/cloudflared:2026-07@sha256:ba461b8aa9c042156dbd39c38657fe7431bafa063220eab8d5330a523863da9f",
3037
+ "composeService": "cloudflared",
3038
+ "category": "infra"
3039
+ },
3040
+ "exe-sso-edge": {
3041
+ "image": "update.askexe.com/askexe/nginx:alpine@sha256:20316569d8f81a160065d7d2a5eeffc7ca97d79022462ee255fd23fa103a6b5c",
3042
+ "composeService": "exe-sso-edge",
3043
+ "category": "infra"
3044
+ },
3045
+ "exe-otel-collector": {
3046
+ "image": "update.askexe.com/askexe/otel-collector-contrib:0.114.0@sha256:37fa87091cfaaec7234a27e4e395a40c31c2bfaea97a349a4afef6d9e9681197",
3047
+ "composeService": "exe-otel-collector",
3048
+ "category": "infra"
3049
+ },
3050
+ "dashboard": {
3051
+ "image": "update.askexe.com/askexe/exe-dashboard:v0.9.382@sha256:43c4eb52d89d977021d29df73bcfa6f9d769ab4debf90e81240b59a4c165bab0",
3052
+ "env": "DASHBOARD_IMAGE_TAG",
3053
+ "composeService": "exe-dashboard",
3054
+ "healthUrl": "http://127.0.0.1:3301/health",
3055
+ "required": false,
3056
+ "category": "optional",
3057
+ "description": "Customer dashboard at dashboard.<apex> — credits, usage, API keys, billing"
3058
+ }
3059
+ },
3060
+ "rolloutStage": "ga"
2809
3061
  }
2810
3062
  },
2811
3063
  "signature": {
2812
3064
  "keyId": "exe-stack-1",
2813
3065
  "alg": "ed25519",
2814
- "signature": "UAQm9FB5Ai8KaBSGe6LEkBfXZ3XtBFT/5/8DozCK1v7f8llD33AhrAF11HEttf33z3w/weWhxZEXG3yGIWw/Dg=="
3066
+ "signature": "slzGaEhMxBaItfNzC80+bNJs4C3skBapi8TbSsVRRf7iWa/WFowmc9vvnnluoLKdWdsi8gqxdFUSFaxkul5sAg=="
2815
3067
  }
2816
3068
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 1,
3
- "verified_at": "2026-09-08T06:05:51.783Z",
4
- "manifest_sha256": "248ed33b157957ea2338ad0ca171fbeb8d52540b70a255a843aa9a3f0651baf7",
5
- "package_version": "0.9.382"
3
+ "verified_at": "2026-09-10T04:33:27.784Z",
4
+ "manifest_sha256": "bc5eed1f8fc614320e0c43011f62df3b11fb4e6c07324618a1eaa44feaa4d45c",
5
+ "package_version": "0.9.384"
6
6
  }
@@ -8,23 +8,23 @@ import {
8
8
  resolveAgentAttribution,
9
9
  resolveAgentForPayload,
10
10
  writeActiveAgent
11
- } from "./chunk-F6H7GP2O.js";
12
- import "./chunk-K4ESASPL.js";
11
+ } from "./chunk-F4BBMIPG.js";
12
+ import "./chunk-MUCNYSJP.js";
13
13
  import "./chunk-CVYC6DUW.js";
14
14
  import "./chunk-GJV3WDWM.js";
15
- import "./chunk-AY2U4NZ5.js";
15
+ import "./chunk-GL47M7NY.js";
16
16
  import "./chunk-BBMTVAE3.js";
17
17
  import "./chunk-TKDITWDN.js";
18
18
  import "./chunk-5YEUPUV4.js";
19
- import "./chunk-FU5O2REK.js";
19
+ import "./chunk-72V3S44T.js";
20
20
  import "./chunk-YYB5PMTK.js";
21
21
  import "./chunk-L5CGXEZC.js";
22
- import "./chunk-CL4J4757.js";
22
+ import "./chunk-QH5ZQ5SJ.js";
23
23
  import "./chunk-ZQEJ4IX2.js";
24
24
  import "./chunk-FXU7JOXK.js";
25
- import "./chunk-ZIG7VPJV.js";
26
- import "./chunk-HSGBZSCA.js";
25
+ import "./chunk-MMS2HBRT.js";
27
26
  import "./chunk-RH4AH3YB.js";
27
+ import "./chunk-HSGBZSCA.js";
28
28
  import "./chunk-JKKZGDLP.js";
29
29
  import "./chunk-MLKGABMK.js";
30
30
  export {
@@ -7,23 +7,23 @@ import {
7
7
  resolveAgentAttribution,
8
8
  resolveAgentForPayload,
9
9
  writeActiveAgent
10
- } from "./chunk-F6H7GP2O.js";
11
- import "./chunk-K4ESASPL.js";
10
+ } from "./chunk-F4BBMIPG.js";
11
+ import "./chunk-MUCNYSJP.js";
12
12
  import "./chunk-CVYC6DUW.js";
13
13
  import "./chunk-GJV3WDWM.js";
14
- import "./chunk-AY2U4NZ5.js";
14
+ import "./chunk-GL47M7NY.js";
15
15
  import "./chunk-BBMTVAE3.js";
16
16
  import "./chunk-TKDITWDN.js";
17
17
  import "./chunk-5YEUPUV4.js";
18
- import "./chunk-FU5O2REK.js";
18
+ import "./chunk-72V3S44T.js";
19
19
  import "./chunk-YYB5PMTK.js";
20
20
  import "./chunk-L5CGXEZC.js";
21
- import "./chunk-CL4J4757.js";
21
+ import "./chunk-QH5ZQ5SJ.js";
22
22
  import "./chunk-ZQEJ4IX2.js";
23
23
  import "./chunk-FXU7JOXK.js";
24
- import "./chunk-ZIG7VPJV.js";
25
- import "./chunk-HSGBZSCA.js";
24
+ import "./chunk-MMS2HBRT.js";
26
25
  import "./chunk-RH4AH3YB.js";
26
+ import "./chunk-HSGBZSCA.js";
27
27
  import "./chunk-JKKZGDLP.js";
28
28
  import "./chunk-MLKGABMK.js";
29
29
  export {
@@ -1,24 +1,24 @@
1
1
  import {
2
2
  loadAgentConfig
3
- } from "./chunk-GZOG2MAX.js";
3
+ } from "./chunk-L5EPGGDP.js";
4
4
  import "./chunk-AM7S2TY6.js";
5
5
  import {
6
6
  loadEmployeesSync,
7
7
  validateEmployeeName
8
- } from "./chunk-AY2U4NZ5.js";
8
+ } from "./chunk-GL47M7NY.js";
9
9
  import "./chunk-BBMTVAE3.js";
10
10
  import "./chunk-TKDITWDN.js";
11
11
  import "./chunk-5YEUPUV4.js";
12
- import "./chunk-FU5O2REK.js";
12
+ import "./chunk-72V3S44T.js";
13
13
  import "./chunk-YYB5PMTK.js";
14
14
  import "./chunk-L5CGXEZC.js";
15
- import "./chunk-CL4J4757.js";
15
+ import "./chunk-QH5ZQ5SJ.js";
16
16
  import "./chunk-ZQEJ4IX2.js";
17
17
  import "./chunk-FXU7JOXK.js";
18
18
  import "./chunk-WNBZJSQT.js";
19
- import "./chunk-ZIG7VPJV.js";
20
- import "./chunk-HSGBZSCA.js";
19
+ import "./chunk-MMS2HBRT.js";
21
20
  import "./chunk-RH4AH3YB.js";
21
+ import "./chunk-HSGBZSCA.js";
22
22
  import "./chunk-JKKZGDLP.js";
23
23
  import "./chunk-MLKGABMK.js";
24
24
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  agentLoop
3
- } from "./chunk-KBR5LIWD.js";
3
+ } from "./chunk-TKS5GMYA.js";
4
4
  import "./chunk-JRLNE3T2.js";
5
5
  import "./chunk-2O2UKMUE.js";
6
6
  import "./chunk-HF25XPZE.js";
@@ -10,7 +10,7 @@ import {
10
10
  insertOntologyForMemory,
11
11
  ontologyPayload,
12
12
  stableId
13
- } from "./chunk-FWA4MYTA.js";
13
+ } from "./chunk-JRIH6I7D.js";
14
14
  import "./chunk-MLKGABMK.js";
15
15
  export {
16
16
  ONTOLOGY_YIELD_EVERY,
@@ -7,16 +7,16 @@ import {
7
7
  import {
8
8
  artifactObjectId,
9
9
  encryptSyncBlob
10
- } from "./chunk-MP4ST7RO.js";
10
+ } from "./chunk-ZPP63JSQ.js";
11
11
  import "./chunk-TWMWHDOY.js";
12
- import "./chunk-4GZTBLJG.js";
13
- import "./chunk-AVMLC2MR.js";
12
+ import "./chunk-4AR5XKCH.js";
13
+ import "./chunk-5U2IJBFV.js";
14
14
  import {
15
15
  EXE_AI_DIR,
16
16
  loadConfigSync
17
- } from "./chunk-ZIG7VPJV.js";
18
- import "./chunk-HSGBZSCA.js";
17
+ } from "./chunk-MMS2HBRT.js";
19
18
  import "./chunk-RH4AH3YB.js";
19
+ import "./chunk-HSGBZSCA.js";
20
20
  import "./chunk-JKKZGDLP.js";
21
21
  import "./chunk-MLKGABMK.js";
22
22
 
@@ -5,10 +5,10 @@ import {
5
5
  backfillKillSwitchEnabled,
6
6
  computeBackfillDisabled,
7
7
  countActionableNullVectors
8
- } from "./chunk-IHXW4VUI.js";
9
- import "./chunk-ZIG7VPJV.js";
10
- import "./chunk-HSGBZSCA.js";
8
+ } from "./chunk-5IADGFGR.js";
9
+ import "./chunk-MMS2HBRT.js";
11
10
  import "./chunk-RH4AH3YB.js";
11
+ import "./chunk-HSGBZSCA.js";
12
12
  import "./chunk-JKKZGDLP.js";
13
13
  import "./chunk-MLKGABMK.js";
14
14
  export {
@@ -2,36 +2,36 @@
2
2
  import {
3
3
  disposeStore,
4
4
  initStore
5
- } from "./chunk-CO5ZVE3D.js";
6
- import "./chunk-ZEGEFBZV.js";
5
+ } from "./chunk-UOPCVFVR.js";
6
+ import "./chunk-AWWDKF22.js";
7
7
  import "./chunk-CHCA3ZM2.js";
8
8
  import "./chunk-OTVEIJUQ.js";
9
- import "./chunk-M2B35MUK.js";
9
+ import "./chunk-VHHX4UCP.js";
10
10
  import "./chunk-5MOYSU5A.js";
11
- import "./chunk-5QCIWWFA.js";
11
+ import "./chunk-ELEGH4DX.js";
12
12
  import "./chunk-76CJBM36.js";
13
13
  import "./chunk-MP2AFCGL.js";
14
14
  import {
15
15
  getClient,
16
16
  getEmployeeNamesByRole,
17
17
  loadEmployeesSync
18
- } from "./chunk-AY2U4NZ5.js";
18
+ } from "./chunk-GL47M7NY.js";
19
19
  import "./chunk-BBMTVAE3.js";
20
20
  import "./chunk-TKDITWDN.js";
21
21
  import "./chunk-5YEUPUV4.js";
22
- import "./chunk-FU5O2REK.js";
22
+ import "./chunk-72V3S44T.js";
23
23
  import "./chunk-YYB5PMTK.js";
24
24
  import "./chunk-L5CGXEZC.js";
25
- import "./chunk-CL4J4757.js";
25
+ import "./chunk-QH5ZQ5SJ.js";
26
26
  import "./chunk-ZQEJ4IX2.js";
27
27
  import "./chunk-FXU7JOXK.js";
28
- import "./chunk-AVMLC2MR.js";
29
- import "./chunk-ZIG7VPJV.js";
30
- import "./chunk-HSGBZSCA.js";
28
+ import "./chunk-5U2IJBFV.js";
29
+ import "./chunk-MMS2HBRT.js";
31
30
  import "./chunk-RH4AH3YB.js";
32
31
  import {
33
32
  isMainModule
34
33
  } from "./chunk-6Y4B3QF6.js";
34
+ import "./chunk-HSGBZSCA.js";
35
35
  import "./chunk-JKKZGDLP.js";
36
36
  import "./chunk-MLKGABMK.js";
37
37
 
@@ -9,10 +9,10 @@ import {
9
9
  releaseJobLock,
10
10
  reniceCurrentProcess,
11
11
  startManagedJob
12
- } from "./chunk-M7O7TGGU.js";
13
- import "./chunk-ZIG7VPJV.js";
14
- import "./chunk-HSGBZSCA.js";
12
+ } from "./chunk-2NW4LRDU.js";
13
+ import "./chunk-MMS2HBRT.js";
15
14
  import "./chunk-RH4AH3YB.js";
15
+ import "./chunk-HSGBZSCA.js";
16
16
  import "./chunk-JKKZGDLP.js";
17
17
  import "./chunk-MLKGABMK.js";
18
18
  export {
@@ -4,11 +4,11 @@ import {
4
4
  import {
5
5
  getLatestBackup,
6
6
  reasonFromBackupName
7
- } from "./chunk-FU5O2REK.js";
7
+ } from "./chunk-72V3S44T.js";
8
8
  import "./chunk-YYB5PMTK.js";
9
- import "./chunk-ZIG7VPJV.js";
10
- import "./chunk-HSGBZSCA.js";
9
+ import "./chunk-MMS2HBRT.js";
11
10
  import "./chunk-RH4AH3YB.js";
11
+ import "./chunk-HSGBZSCA.js";
12
12
  import "./chunk-JKKZGDLP.js";
13
13
  import "./chunk-MLKGABMK.js";
14
14
 
@@ -29,6 +29,13 @@ function manifestWriteEnabled() {
29
29
  function dailyVerifyEnabled() {
30
30
  return /^(1|true|yes|on)$/i.test(process.env.EXE_BACKUP_VERIFY_DAILY ?? "0");
31
31
  }
32
+ function describeDailyVerifyPosture() {
33
+ const enabled = dailyVerifyEnabled();
34
+ return {
35
+ enabled,
36
+ detail: enabled ? "Post-capture restore verification is ON (EXE_BACKUP_VERIFY_DAILY): the daily backup is re-opened from a throwaway copy and integrity-checked after capture." : "Post-capture restore verification is OFF (set EXE_BACKUP_VERIFY_DAILY=1 to enable). Every backup is still proven readable AT CAPTURE by the artifact read-back, but backups are not re-checked afterwards, so at-rest degradation between capture and a restore would not be detected."
37
+ };
38
+ }
32
39
  function liveHardEnabled() {
33
40
  return /^(1|true|yes|on)$/i.test(process.env.EXE_BACKUP_VERIFY_LIVE_HARD ?? "0");
34
41
  }
@@ -115,15 +122,25 @@ async function resolveBackupKeyHex() {
115
122
  function manifestPathFor(backupPath) {
116
123
  return `${backupPath}.manifest.json`;
117
124
  }
118
- async function writeBackupManifest(backupPath, dbName, opts = {}) {
125
+ async function readBackBackupArtifact(backupPath, dbName, opts = {}) {
119
126
  let scratch = null;
120
127
  let ownedClient = null;
121
128
  try {
122
129
  let client = opts.client;
123
130
  if (!client) {
124
- scratch = await mkdtemp(path.join(tmpdir(), "exe-bkmanifest-"));
125
- const scratchDb = path.join(scratch, path.basename(backupPath));
126
- await copyFile(backupPath, scratchDb);
131
+ let scratchDb;
132
+ try {
133
+ scratch = await mkdtemp(path.join(tmpdir(), "exe-bkmanifest-"));
134
+ scratchDb = path.join(scratch, path.basename(backupPath));
135
+ await copyFile(backupPath, scratchDb);
136
+ } catch (err) {
137
+ return {
138
+ artifact: "not-checked",
139
+ manifestWritten: false,
140
+ manifest: null,
141
+ detail: `could not stage the artifact read-back: ${errMsg(err)}`
142
+ };
143
+ }
127
144
  for (const sfx of ["-wal", "-shm"]) {
128
145
  if (existsSync(backupPath + sfx)) {
129
146
  try {
@@ -137,25 +154,51 @@ async function writeBackupManifest(backupPath, dbName, opts = {}) {
137
154
  keyHex ? { url: `file:${scratchDb}`, encryptionKey: keyHex } : { url: `file:${scratchDb}` }
138
155
  );
139
156
  recordDbOpen({ dbPath: scratchDb, source: "backup-verify-scratch", writeCapable: true, checkpointTimer: false });
140
- await ownedClient.execute(BACKUP_OPEN_PROBE_SQL);
141
157
  client = ownedClient;
142
158
  }
143
- const schemaTables = await collectSchemaTables(client);
144
- const schemaHash = computeSchemaHash(schemaTables);
145
- const tables = await collectCounts(client, schemaTables.map((t) => t.name));
146
- const keyEpoch = opts.keyEpoch !== void 0 ? opts.keyEpoch : await computeKeyEpoch(opts.keyHex);
159
+ let schemaHash;
160
+ let tables;
161
+ try {
162
+ await client.execute(BACKUP_OPEN_PROBE_SQL);
163
+ const schemaTables = await collectSchemaTables(client);
164
+ schemaHash = computeSchemaHash(schemaTables);
165
+ tables = await collectCounts(client, schemaTables.map((t) => t.name));
166
+ } catch (err) {
167
+ return {
168
+ artifact: "unreadable",
169
+ manifestWritten: false,
170
+ manifest: null,
171
+ detail: `the COPIED artifact could not be read back: ${errMsg(err)}`
172
+ };
173
+ }
147
174
  const manifest = {
148
175
  schemaVersion: MANIFEST_SCHEMA_VERSION,
149
176
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
150
177
  dbName,
151
178
  schemaHash,
152
179
  tables,
153
- keyEpoch
180
+ keyEpoch: opts.keyEpoch !== void 0 ? opts.keyEpoch : await computeKeyEpoch(opts.keyHex)
181
+ };
182
+ const rows = Object.values(tables).reduce((n, c) => n + c, 0);
183
+ const readDetail = `artifact read back: ${Object.keys(tables).length} table(s), ${rows} row(s)`;
184
+ try {
185
+ await writeFile(manifestPathFor(backupPath), JSON.stringify(manifest, null, 2), "utf-8");
186
+ } catch (err) {
187
+ return {
188
+ artifact: "readable",
189
+ manifestWritten: false,
190
+ manifest,
191
+ detail: `${readDetail}, but the manifest sidecar could not be written: ${errMsg(err)}`
192
+ };
193
+ }
194
+ return { artifact: "readable", manifestWritten: true, manifest, detail: readDetail };
195
+ } catch (err) {
196
+ return {
197
+ artifact: "not-checked",
198
+ manifestWritten: false,
199
+ manifest: null,
200
+ detail: `artifact read-back did not complete: ${errMsg(err)}`
154
201
  };
155
- await writeFile(manifestPathFor(backupPath), JSON.stringify(manifest, null, 2), "utf-8");
156
- return manifest;
157
- } catch {
158
- return null;
159
202
  } finally {
160
203
  try {
161
204
  ownedClient?.close?.();
@@ -169,6 +212,10 @@ async function writeBackupManifest(backupPath, dbName, opts = {}) {
169
212
  }
170
213
  }
171
214
  }
215
+ async function writeBackupManifest(backupPath, dbName, opts = {}) {
216
+ const res = await readBackBackupArtifact(backupPath, dbName, opts);
217
+ return res.manifestWritten ? res.manifest : null;
218
+ }
172
219
  async function readManifest(backupPath) {
173
220
  const p = manifestPathFor(backupPath);
174
221
  if (!existsSync(p)) return null;
@@ -326,7 +373,7 @@ async function recordVerdict(res, absolutePath) {
326
373
  }
327
374
  }
328
375
  try {
329
- const { recordDbRestoreEvent } = await import("./db-restore-events-G6NOQOVE.js");
376
+ const { recordDbRestoreEvent } = await import("./db-restore-events-XYL6CGPC.js");
330
377
  if (res.ok) {
331
378
  recordDbRestoreEvent({
332
379
  kind: "restore-verify-pass",
@@ -500,11 +547,13 @@ async function maybeVerifyDailyBackup(backupPath) {
500
547
  export {
501
548
  computeKeyEpoch,
502
549
  dailyVerifyEnabled,
550
+ describeDailyVerifyPosture,
503
551
  isCrashLoopBackup,
504
552
  liveHardEnabled,
505
553
  manifestPathFor,
506
554
  manifestWriteEnabled,
507
555
  maybeVerifyDailyBackup,
556
+ readBackBackupArtifact,
508
557
  readManifest,
509
558
  verifyBackup,
510
559
  writeBackupManifest