@askexenow/exe-os 0.9.400 → 0.9.402

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 (390) hide show
  1. package/dist/.dist-verified.json +3 -3
  2. package/dist/{active-agent-JRLTCGVP.js → active-agent-3FVEAPPT.js} +4 -4
  3. package/dist/{active-agent-COSDFDOA.js → active-agent-TZKOM7HN.js} +4 -4
  4. package/dist/{agent-defs-generator-IQXS2XAQ.js → agent-defs-generator-BZMIVL5B.js} +3 -3
  5. package/dist/{agentic-ontology-RDAEBWBG.js → agentic-ontology-6FF6O2DE.js} +1 -1
  6. package/dist/{artifact-backup-JLYSQRNJ.js → artifact-backup-AICTE3YO.js} +3 -3
  7. package/dist/{backfill-metadata-INUCVGJP.js → backfill-metadata-EVY37KID.js} +7 -7
  8. package/dist/{backup-verify-PUJ2CEO5.js → backup-verify-XZ6PDZLI.js} +23 -1
  9. package/dist/{behavior-injection-AWJZHIUK.js → behavior-injection-LGVKVC22.js} +10 -10
  10. package/dist/{behavior-promotion-ETSNUSZF.js → behavior-promotion-REITTBUM.js} +9 -9
  11. package/dist/{behaviors-IVDHEG66.js → behaviors-WQVKDSJ2.js} +8 -8
  12. package/dist/bin/agentic-ontology-backfill.js +8 -8
  13. package/dist/bin/agentic-reflection-backfill.js +9 -9
  14. package/dist/bin/agentic-semantic-label.js +8 -8
  15. package/dist/bin/backfill-conversations.js +7 -7
  16. package/dist/bin/backfill-responses.js +7 -7
  17. package/dist/bin/backfill-vectors.js +7 -7
  18. package/dist/bin/bulk-sync-postgres.js +16 -16
  19. package/dist/bin/cc-doctor.js +8 -8
  20. package/dist/bin/cleanup-stale-review-tasks.js +15 -15
  21. package/dist/bin/cli.js +24 -24
  22. package/dist/bin/deferred-daemon-restart.js +93 -93
  23. package/dist/bin/exe-agent-config.js +3 -3
  24. package/dist/bin/exe-agent.js +8 -8
  25. package/dist/bin/exe-assign.js +8 -8
  26. package/dist/bin/exe-boot.js +35 -35
  27. package/dist/bin/exe-call.js +8 -8
  28. package/dist/bin/exe-cloud.js +17 -17
  29. package/dist/bin/exe-config-dump.js +3 -3
  30. package/dist/bin/exe-dispatch.js +16 -16
  31. package/dist/bin/exe-doctor.js +5 -5
  32. package/dist/bin/exe-export-behaviors.js +12 -12
  33. package/dist/bin/exe-forget.js +10 -10
  34. package/dist/bin/exe-gateway.js +9 -9
  35. package/dist/bin/exe-grant.js +6 -6
  36. package/dist/bin/exe-healthcheck.js +8 -8
  37. package/dist/bin/exe-heartbeat.js +21 -21
  38. package/dist/bin/exe-kill.js +20 -20
  39. package/dist/bin/exe-launch-agent.js +28 -28
  40. package/dist/bin/exe-mcp.js +5 -5
  41. package/dist/bin/exe-memory-reads.js +7 -7
  42. package/dist/bin/exe-new-employee.js +10 -10
  43. package/dist/bin/exe-os-mcp-proxy.js +5 -5
  44. package/dist/bin/exe-pending-messages.js +16 -16
  45. package/dist/bin/exe-pending-notifications.js +15 -15
  46. package/dist/bin/exe-pending-reviews.js +16 -16
  47. package/dist/bin/exe-rename.js +6 -6
  48. package/dist/bin/exe-review.js +19 -19
  49. package/dist/bin/exe-search.js +9 -9
  50. package/dist/bin/exe-session-cleanup.js +20 -20
  51. package/dist/bin/exe-settings.js +16 -16
  52. package/dist/bin/exe-start-codex.js +18 -18
  53. package/dist/bin/exe-start-opencode.js +16 -16
  54. package/dist/bin/exe-status.js +17 -17
  55. package/dist/bin/exe-support.js +3 -3
  56. package/dist/bin/exe-team.js +5 -5
  57. package/dist/bin/git-sweep.js +16 -16
  58. package/dist/bin/graph-backfill.js +8 -8
  59. package/dist/bin/graph-export.js +8 -8
  60. package/dist/bin/hooks-cli.js +1 -1
  61. package/dist/bin/import-history.js +11 -11
  62. package/dist/bin/install.js +95 -95
  63. package/dist/bin/intercom-check.js +5 -5
  64. package/dist/bin/mcp-sessions.js +2 -2
  65. package/dist/bin/orchestration-metrics.js +5 -5
  66. package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
  67. package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
  68. package/dist/bin/reconcile-backlog.js +2 -2
  69. package/dist/bin/registry-proxy.js +1 -1
  70. package/dist/bin/repair-document-chunks.js +7 -7
  71. package/dist/bin/scan-tasks.js +16 -16
  72. package/dist/bin/setup.js +2 -2
  73. package/dist/bin/shard-migrate.js +8 -8
  74. package/dist/bin/stack-update.js +15 -5
  75. package/dist/bin/vps-health-gate.js +1 -1
  76. package/dist/{boot-generation-6JYN5WKI.js → boot-generation-FUMLDSED.js} +4 -4
  77. package/dist/{boot-review-sections-YJIWBD3I.js → boot-review-sections-XKZKVVTD.js} +14 -14
  78. package/dist/{bug-landed-reconciler-BMFYNM3C.js → bug-landed-reconciler-ZRMGVFRY.js} +6 -6
  79. package/dist/build-manifest.json +881 -881
  80. package/dist/{capability-cards-IPJDK5TB.js → capability-cards-HLO4TWSY.js} +3 -3
  81. package/dist/{capacity-monitor-HP25R7Q7.js → capacity-monitor-5QCHYFOA.js} +16 -16
  82. package/dist/{catchup-brief-FCWGYAQ6.js → catchup-brief-FFNWUTUW.js} +21 -21
  83. package/dist/{chunk-3BL3SJTP.js → chunk-2LQE52MI.js} +1 -1
  84. package/dist/{chunk-7KYL2RF4.js → chunk-3AZN5V24.js} +1 -1
  85. package/dist/{chunk-32T3ZMGV.js → chunk-4FAJBCUY.js} +1 -1
  86. package/dist/{chunk-TJMYWOLH.js → chunk-4MUU33NJ.js} +2 -2
  87. package/dist/{chunk-T3CVFB3J.js → chunk-4OZXJX3M.js} +4 -4
  88. package/dist/{chunk-JGW4SMZX.js → chunk-4VT6HZV6.js} +1 -1
  89. package/dist/{chunk-OXEL5YS7.js → chunk-4WKMKLQZ.js} +52 -22
  90. package/dist/{chunk-OSI5BWST.js → chunk-4WY6BKDT.js} +2 -2
  91. package/dist/{chunk-O2HIMMKW.js → chunk-4XRQEQNK.js} +1 -1
  92. package/dist/{chunk-DXFGK4CO.js → chunk-55LSHCXP.js} +1 -1
  93. package/dist/{chunk-LPUIUJPF.js → chunk-5INWFQCO.js} +1 -1
  94. package/dist/{chunk-H5H2ECWE.js → chunk-5KFKW57A.js} +1 -1
  95. package/dist/{chunk-QXZJ2JWA.js → chunk-65VSE3A4.js} +1 -1
  96. package/dist/{chunk-K46WKWBX.js → chunk-6MRXSQIY.js} +5 -5
  97. package/dist/{chunk-JPBTKOWE.js → chunk-6QGA7QZF.js} +6 -6
  98. package/dist/{chunk-ZP2EYJ2G.js → chunk-7IZL2RMP.js} +4 -4
  99. package/dist/{chunk-DNJBY2OP.js → chunk-A2HLPB6M.js} +1 -1
  100. package/dist/{chunk-FHBFNDIR.js → chunk-ABYV3K3Y.js} +10 -10
  101. package/dist/{chunk-PUQKRKQQ.js → chunk-AMRJS3UF.js} +1 -1
  102. package/dist/{chunk-GJ4XERZA.js → chunk-AR2K7SUC.js} +230 -12
  103. package/dist/{chunk-QWROXB2K.js → chunk-ATI6PPTU.js} +1 -1
  104. package/dist/{chunk-LJGWR76V.js → chunk-B2U5UPDC.js} +3 -3
  105. package/dist/{chunk-BTQVKT7H.js → chunk-BPMY52GP.js} +3 -3
  106. package/dist/{chunk-HOZM5RL2.js → chunk-BPRV4W4F.js} +3 -3
  107. package/dist/{chunk-BQQLAUN7.js → chunk-BPTTQRMJ.js} +1 -1
  108. package/dist/{chunk-JQVM4YIU.js → chunk-C57T744G.js} +1 -1
  109. package/dist/{chunk-OTY62DK2.js → chunk-CBOD7BPX.js} +1 -1
  110. package/dist/{chunk-JOMPRQPW.js → chunk-CMXGHLDK.js} +1 -1
  111. package/dist/{chunk-E5KBHWDR.js → chunk-D37B4WEF.js} +1 -1
  112. package/dist/{chunk-CPYHFFGE.js → chunk-D53HVC4X.js} +1 -1
  113. package/dist/{chunk-4ZI4FXNC.js → chunk-D6I4RTPF.js} +1 -1
  114. package/dist/{chunk-FJ7MZAF7.js → chunk-DCKRZG4B.js} +2 -2
  115. package/dist/{chunk-CAPWUB4N.js → chunk-DLU6DGSY.js} +2 -2
  116. package/dist/{chunk-2PSEY7AN.js → chunk-DOUHD6KC.js} +1 -1
  117. package/dist/{chunk-YGX3WNA7.js → chunk-E7XHIM62.js} +5 -5
  118. package/dist/{chunk-J6TWKRCB.js → chunk-ELP6YAUW.js} +1 -1
  119. package/dist/{chunk-ELBQHL5A.js → chunk-EMKSTLBG.js} +5 -5
  120. package/dist/{chunk-L52BKAE6.js → chunk-ESEYXNZM.js} +4 -4
  121. package/dist/{chunk-DJDGMGWE.js → chunk-EW7WZSI5.js} +1 -1
  122. package/dist/{chunk-ERFSLWFP.js → chunk-EXNHDTOQ.js} +1 -1
  123. package/dist/{chunk-6IXKFDMC.js → chunk-FL2QIDNZ.js} +2 -2
  124. package/dist/{chunk-ICOLPUT3.js → chunk-G3K3P5FR.js} +1 -1
  125. package/dist/{chunk-OMYOBYF3.js → chunk-G6LFTQI2.js} +7 -7
  126. package/dist/{chunk-J426E4AK.js → chunk-GFMFT5JJ.js} +1 -1
  127. package/dist/{chunk-K2MYR3EE.js → chunk-GFQVXPUN.js} +1 -1
  128. package/dist/{chunk-4ZAS2F3K.js → chunk-GI44KWJA.js} +2 -2
  129. package/dist/{chunk-35GQRTAN.js → chunk-GVZPT5GJ.js} +1 -1
  130. package/dist/{chunk-6OBBLH4A.js → chunk-HOK4C7TA.js} +5 -5
  131. package/dist/{chunk-DZX46OBH.js → chunk-HQKW27AO.js} +6 -6
  132. package/dist/{chunk-WHUFGDLB.js → chunk-HU2BKZ3Q.js} +1 -1
  133. package/dist/{chunk-4QWPMICI.js → chunk-I6HLTDQP.js} +4 -4
  134. package/dist/{chunk-KMNRXMPV.js → chunk-IALTVJEW.js} +1 -1
  135. package/dist/{chunk-MVRPI3LS.js → chunk-J6VWBA3X.js} +147 -147
  136. package/dist/{chunk-LX4ZOGCH.js → chunk-J6XRARYK.js} +2 -2
  137. package/dist/{chunk-KFIHF5RO.js → chunk-J77FASSK.js} +6 -6
  138. package/dist/{chunk-PKY4Y3TM.js → chunk-JBN3HVKP.js} +5 -5
  139. package/dist/{chunk-D3HDOPVZ.js → chunk-JJRYW36J.js} +3 -3
  140. package/dist/{chunk-V7XFNFXV.js → chunk-JRSY7B7A.js} +4 -4
  141. package/dist/{chunk-TODOUGTQ.js → chunk-KD7OHAZM.js} +1 -1
  142. package/dist/{chunk-JOAFBGO6.js → chunk-KETFSLRH.js} +138 -97
  143. package/dist/{chunk-6D4ZNDXU.js → chunk-KZB2B7RM.js} +11 -11
  144. package/dist/{chunk-4JILJXGZ.js → chunk-LHPRG2LZ.js} +2 -2
  145. package/dist/{chunk-AA3GPWSI.js → chunk-LLHTGV6Y.js} +1 -1
  146. package/dist/{chunk-O6DR27UL.js → chunk-LSH2UDUX.js} +1 -1
  147. package/dist/{chunk-IW3USRIY.js → chunk-M4QI633W.js} +1 -1
  148. package/dist/{chunk-3BOP7BUQ.js → chunk-M5Z7VTOF.js} +3 -3
  149. package/dist/{chunk-BQEKC3G7.js → chunk-ME7BEI2S.js} +2 -2
  150. package/dist/{chunk-LOHJADBX.js → chunk-NIRXFG3I.js} +9 -9
  151. package/dist/{chunk-5P6R6GH2.js → chunk-NQCUSXX6.js} +3 -3
  152. package/dist/{chunk-WOLE4F3K.js → chunk-NSUK3QHD.js} +2 -2
  153. package/dist/{chunk-VPFTQZWB.js → chunk-NVPDTGR7.js} +16 -16
  154. package/dist/{chunk-WB7TP6IW.js → chunk-O5ORPJJX.js} +1 -1
  155. package/dist/{chunk-M2RVBCVL.js → chunk-OAOEW2SZ.js} +1 -1
  156. package/dist/{chunk-2LFEU7UU.js → chunk-ONTGO4YY.js} +3 -3
  157. package/dist/{chunk-O3GOBKWS.js → chunk-OX2UG7XA.js} +4 -4
  158. package/dist/{chunk-6IWF7EIO.js → chunk-P3JGDPQL.js} +3 -3
  159. package/dist/{chunk-YOB55CI7.js → chunk-PD7GVARG.js} +1 -1
  160. package/dist/{chunk-V2Z23CEF.js → chunk-PDKMK2GJ.js} +1 -1
  161. package/dist/{chunk-XMPRHRDY.js → chunk-PDOJBSJR.js} +1 -1
  162. package/dist/{chunk-EPYZUWOE.js → chunk-PMM3KU7N.js} +3 -3
  163. package/dist/{chunk-QVGZAKDF.js → chunk-PRLDZOQT.js} +1 -1
  164. package/dist/{chunk-26YPVXOH.js → chunk-Q4LLPKVS.js} +2 -2
  165. package/dist/{chunk-PJE4M5XR.js → chunk-QIWAMVMK.js} +3 -3
  166. package/dist/{chunk-RSUTLQMW.js → chunk-QVYAIPDE.js} +1 -1
  167. package/dist/{chunk-4Q7JAIEW.js → chunk-QYOWGMHR.js} +2 -2
  168. package/dist/{chunk-MF6AI66P.js → chunk-R4QSZSTJ.js} +2 -2
  169. package/dist/{chunk-ZGZ7QN3S.js → chunk-RDAFJUM4.js} +1 -1
  170. package/dist/{chunk-QQFJELUE.js → chunk-RKQ4YSSV.js} +3 -3
  171. package/dist/{chunk-RJAVO45X.js → chunk-RMP4VFC6.js} +2 -2
  172. package/dist/{chunk-2HJOCTAM.js → chunk-ROGZRDCU.js} +94 -21
  173. package/dist/{chunk-WMOHI53L.js → chunk-S3ZLLZAT.js} +3 -3
  174. package/dist/{chunk-ZUAHKWDR.js → chunk-SO6PSF3W.js} +1 -1
  175. package/dist/{chunk-QIOU2PXK.js → chunk-SWQRQB4M.js} +2 -2
  176. package/dist/{chunk-CBWF4NG2.js → chunk-UFDUCPZT.js} +1 -1
  177. package/dist/{chunk-KVFHRZZ4.js → chunk-ULHAUEUK.js} +4 -4
  178. package/dist/{chunk-THIFYSJY.js → chunk-UPMRTB66.js} +4 -4
  179. package/dist/{chunk-HY3E4VPO.js → chunk-UR3DB6QM.js} +1 -1
  180. package/dist/{chunk-H6FPXML4.js → chunk-V5DXD4TU.js} +1 -1
  181. package/dist/{chunk-3YJMGYLP.js → chunk-VIPGA47U.js} +3 -3
  182. package/dist/{chunk-5CJ6CCGV.js → chunk-VRAMCDZD.js} +1 -1
  183. package/dist/{chunk-EKAGECRQ.js → chunk-WNQXCO3B.js} +3 -3
  184. package/dist/{chunk-SBITXZRY.js → chunk-X2OOOADC.js} +1 -1
  185. package/dist/{chunk-ZAP3MPE7.js → chunk-XDCQV6V7.js} +3 -3
  186. package/dist/{chunk-RN7FGCJF.js → chunk-XHBJSK2A.js} +4 -4
  187. package/dist/{chunk-T5JXV2SE.js → chunk-XJMJ3NH2.js} +1 -1
  188. package/dist/{chunk-SASZ4GG6.js → chunk-XROAVRQE.js} +1 -1
  189. package/dist/{chunk-IAGIZWBI.js → chunk-YGU3C5LK.js} +3 -3
  190. package/dist/{chunk-RK34OSZK.js → chunk-YSAYRUWJ.js} +2 -2
  191. package/dist/{chunk-VFKYNMS6.js → chunk-YUNPMSIB.js} +12 -12
  192. package/dist/{chunk-7XSBDGUP.js → chunk-YYZEDAKC.js} +4 -4
  193. package/dist/{chunk-HCXXUTG5.js → chunk-Z6VDOIW3.js} +3 -3
  194. package/dist/{chunk-CQNW5GB7.js → chunk-ZVCB6N52.js} +2 -2
  195. package/dist/{chunk-YQG2JDWX.js → chunk-ZVOCK5HZ.js} +1 -1
  196. package/dist/{chunk-37FY7ZOZ.js → chunk-ZY7N4RM3.js} +2 -2
  197. package/dist/{cleanup-graph-garbage-547CYZWA.js → cleanup-graph-garbage-JWUWOVRB.js} +8 -8
  198. package/dist/{cli-shutdown-QKHAH4O5.js → cli-shutdown-Z7NWWAK6.js} +1 -1
  199. package/dist/{cloud-sync-command-EXZMJPSK.js → cloud-sync-command-NIAFLQUR.js} +2 -2
  200. package/dist/{cloud-sync-db-init-G6NLO5YP.js → cloud-sync-db-init-CO5GSXUE.js} +1 -1
  201. package/dist/{cloud-sync-shutdown-TMI42NPZ.js → cloud-sync-shutdown-Z3ITGI4K.js} +3 -3
  202. package/dist/{co-activation-7EE63ZH4.js → co-activation-5MZDEUXV.js} +3 -3
  203. package/dist/{co-occurrence-5WZMOKZY.js → co-occurrence-IZSNRYOZ.js} +6 -6
  204. package/dist/{consent-passphrase-5OVKNZHU.js → consent-passphrase-AE4OIZZD.js} +2 -2
  205. package/dist/{conversation-entity-extractor-NKDNKGTR.js → conversation-entity-extractor-2F2JP7F7.js} +3 -3
  206. package/dist/{crdt-sync-ZV7UD2MD.js → crdt-sync-H74HCZSY.js} +4 -4
  207. package/dist/{crm-webhook-26O47D5D.js → crm-webhook-MVTGXAUH.js} +2 -2
  208. package/dist/{cto-delegation-gate-RFHAGYTR.js → cto-delegation-gate-5SHWIUP5.js} +14 -14
  209. package/dist/{daemon-orchestration-DRBFJEDK.js → daemon-orchestration-VV6VSSXY.js} +20 -20
  210. package/dist/{doc-graph-extractor-KKSXP3UR.js → doc-graph-extractor-QAXJPOLI.js} +6 -6
  211. package/dist/{documents-6XQTYHTC.js → documents-WNEMVVDN.js} +8 -8
  212. package/dist/{dreaming-EFUZQ5RJ.js → dreaming-WXVCP3OH.js} +19 -19
  213. package/dist/{employee-boot-brief-6C2MC247.js → employee-boot-brief-BCZGZDUQ.js} +23 -23
  214. package/dist/{entity-boost-5YQENFGZ.js → entity-boost-K6UENCYQ.js} +1 -1
  215. package/dist/{exe-drift-7YHLZOLV.js → exe-drift-Q5LW34CT.js} +4 -4
  216. package/dist/{exe-export-KLNIX5VR.js → exe-export-IM3NTK2U.js} +9 -9
  217. package/dist/{exe-import-2QVHV7HL.js → exe-import-D4F32735.js} +9 -9
  218. package/dist/{exe-key-2SLOCUX3.js → exe-key-X7ZLYMH4.js} +93 -93
  219. package/dist/{exe-org-NFP2DJJY.js → exe-org-QG7TQR5A.js} +32 -32
  220. package/dist/{exe-snapshot-FCABLS2M.js → exe-snapshot-2Z6UBI23.js} +22 -22
  221. package/dist/{fast-db-init-WHUKFVKZ.js → fast-db-init-TGDD5WNI.js} +1 -1
  222. package/dist/{founder-context-ZY2DYGW6.js → founder-context-X3EJQ2CX.js} +2 -2
  223. package/dist/{founder-monitor-envelope-5OKQH6E4.js → founder-monitor-envelope-WLOWBTTD.js} +4 -4
  224. package/dist/gateway/index.js +11 -11
  225. package/dist/{gateway-client-VZ73YGBI.js → gateway-client-L3CUTHEJ.js} +1 -1
  226. package/dist/{git-staleness-4IA6MCNW.js → git-staleness-6VJJL3Z7.js} +3 -3
  227. package/dist/{global-procedures-3ZRFJAKU.js → global-procedures-CK2S4OJ5.js} +5 -5
  228. package/dist/{graph-auto-extract-AZC7OL6F.js → graph-auto-extract-KFVRRZA2.js} +6 -6
  229. package/dist/{graph-query-VERIL4XL.js → graph-query-YGCK7MOA.js} +1 -1
  230. package/dist/{graph-rag-OPYXLYKM.js → graph-rag-MYJ3XXMV.js} +3 -3
  231. package/dist/{hook-integrity-DVK4L24S.js → hook-integrity-NUEQESD4.js} +1 -1
  232. package/dist/{hook-prefetch-F44EONHV.js → hook-prefetch-DTOR5TC5.js} +15 -15
  233. package/dist/hooks/bug-report-worker.js +19 -19
  234. package/dist/hooks/codex-stop-task-finalizer.js +21 -21
  235. package/dist/hooks/commit-complete.js +18 -18
  236. package/dist/hooks/error-recall.js +11 -11
  237. package/dist/hooks/exe-heartbeat-hook.js +5 -5
  238. package/dist/hooks/ingest-worker.js +7 -7
  239. package/dist/hooks/ingest.js +13 -13
  240. package/dist/hooks/instructions-loaded.js +7 -7
  241. package/dist/hooks/manifest.json +20 -20
  242. package/dist/hooks/notification.js +6 -6
  243. package/dist/hooks/post-compact.js +5 -5
  244. package/dist/hooks/post-tool-combined.js +13 -13
  245. package/dist/hooks/pre-compact.js +18 -18
  246. package/dist/hooks/pre-tool-use.js +2 -2
  247. package/dist/hooks/prompt-submit.js +36 -36
  248. package/dist/hooks/session-end.js +23 -23
  249. package/dist/hooks/session-start.js +18 -18
  250. package/dist/hooks/stop.js +21 -21
  251. package/dist/hooks/subagent-stop.js +20 -20
  252. package/dist/hooks/summary-worker.js +22 -22
  253. package/dist/index.js +26 -26
  254. package/dist/{installer-G2OFNPAC.js → installer-37SIWOV4.js} +7 -7
  255. package/dist/{installer-KBRK53CB.js → installer-KQJDEE7B.js} +7 -7
  256. package/dist/{installer-ZEJPYCID.js → installer-UMXNRHLJ.js} +7 -7
  257. package/dist/{intercom-queue-TOM4ZNU6.js → intercom-queue-CDDFKPEJ.js} +14 -14
  258. package/dist/lib/cloud-sync.js +16 -16
  259. package/dist/lib/consolidation.js +9 -9
  260. package/dist/lib/crypto.js +3 -3
  261. package/dist/lib/database.js +3 -3
  262. package/dist/lib/db-backup.js +3 -1
  263. package/dist/lib/db-write-worker.js +3 -3
  264. package/dist/lib/db.js +3 -3
  265. package/dist/lib/device-registry.js +1 -1
  266. package/dist/lib/employee-templates.js +6 -6
  267. package/dist/lib/employees.js +3 -3
  268. package/dist/lib/exe-daemon.js +85 -85
  269. package/dist/lib/hybrid-search.js +9 -9
  270. package/dist/lib/identity.js +3 -3
  271. package/dist/lib/keychain.js +1 -1
  272. package/dist/lib/license.js +2 -2
  273. package/dist/lib/messaging.js +15 -15
  274. package/dist/lib/post-tool-memory.js +5 -5
  275. package/dist/lib/registry-proxy.js +1 -1
  276. package/dist/lib/reminders.js +4 -4
  277. package/dist/lib/schedules.js +8 -8
  278. package/dist/lib/session-registry.js +5 -5
  279. package/dist/lib/skill-learning.js +9 -9
  280. package/dist/lib/store.js +7 -7
  281. package/dist/lib/task-router.js +4 -4
  282. package/dist/lib/tasks.js +16 -16
  283. package/dist/lib/tmux-routing.js +14 -14
  284. package/dist/lib/token-spend.js +4 -4
  285. package/dist/lib/ws-client.js +1 -1
  286. package/dist/{license-gate-S64ZXNJP.js → license-gate-3RY6PHVV.js} +3 -3
  287. package/dist/{license-recheck-THF42I5H.js → license-recheck-JUOCYY4O.js} +1 -1
  288. package/dist/{license-sync-6IQWVOWO.js → license-sync-FK4A36MC.js} +2 -2
  289. package/dist/mcp/register-tools.js +92 -92
  290. package/dist/mcp/server.js +92 -92
  291. package/dist/mcp/tools/complete-reminder.js +5 -5
  292. package/dist/mcp/tools/create-reminder.js +5 -5
  293. package/dist/mcp/tools/create-task.js +18 -18
  294. package/dist/mcp/tools/deactivate-behavior.js +10 -10
  295. package/dist/mcp/tools/list-reminders.js +5 -5
  296. package/dist/mcp/tools/list-tasks.js +18 -18
  297. package/dist/mcp/tools/send-message.js +17 -17
  298. package/dist/mcp/tools/update-task.js +17 -17
  299. package/dist/{mcp-http-config-HYC6PGN7.js → mcp-http-config-A5HJ5AFM.js} +5 -5
  300. package/dist/{mcp-session-identity-XILWZAQ3.js → mcp-session-identity-JJXOYI4B.js} +14 -14
  301. package/dist/{memory-cards-YXLJNJPD.js → memory-cards-R3P6S2SY.js} +7 -7
  302. package/dist/{memory-graph-extractor-KO4HTOSQ.js → memory-graph-extractor-HR247CPK.js} +7 -7
  303. package/dist/{memory-maintenance-65DVM3F4.js → memory-maintenance-R65ADRK4.js} +1 -1
  304. package/dist/{memory-poisoning-defense-PPTXVD7B.js → memory-poisoning-defense-BF2CPNT5.js} +3 -3
  305. package/dist/{memory-pressure-watchdog-G4HRVSFS.js → memory-pressure-watchdog-YEM7A7WF.js} +15 -15
  306. package/dist/{memory-reflection-FRHRN6DB.js → memory-reflection-RGI7UCQU.js} +7 -7
  307. package/dist/{memory-write-repository-LLDBAJAW.js → memory-write-repository-DE6YHSL7.js} +1 -1
  308. package/dist/{monitor-grants-U7435QSS.js → monitor-grants-FMUIG3LI.js} +3 -3
  309. package/dist/{monitor-identity-TYG4KCJS.js → monitor-identity-AID64LBN.js} +2 -2
  310. package/dist/{notification-ledger-UWATPNMM.js → notification-ledger-MDYFG7PR.js} +15 -15
  311. package/dist/{notifications-CBBWB6CI.js → notifications-TQEE62U3.js} +14 -14
  312. package/dist/{orchestration-events-OBH4XY2J.js → orchestration-events-7JWQRUVB.js} +4 -4
  313. package/dist/{orchestrator-T4XLGJRJ.js → orchestrator-HIICR4TY.js} +16 -16
  314. package/dist/{org-brief-session-ILGWGC5X.js → org-brief-session-WP24RIRM.js} +15 -15
  315. package/dist/{org-consent-policy-YKN7LOG3.js → org-consent-policy-76XNIB7A.js} +5 -5
  316. package/dist/{org-join-XQL2X5AO.js → org-join-5NLZ4ZT4.js} +9 -9
  317. package/dist/{org-key-admin-ETFX33EW.js → org-key-admin-TTJPJHWE.js} +11 -11
  318. package/dist/{org-key-epoch-TRQQBFQ2.js → org-key-epoch-LIYGA7HR.js} +5 -5
  319. package/dist/{org-key-pin-ZON5NGP5.js → org-key-pin-NHHPBPIO.js} +3 -3
  320. package/dist/{org-membership-IW4ZDMKZ.js → org-membership-VMXEZZYF.js} +4 -4
  321. package/dist/{org-partner-config-GG4YMEA3.js → org-partner-config-4ZIVK7VP.js} +8 -8
  322. package/dist/{org-partner-runtime-4T4YUBGL.js → org-partner-runtime-EMVKQMA2.js} +15 -15
  323. package/dist/{org-row-visibility-F4PTFDFW.js → org-row-visibility-WEXJNGMO.js} +1 -1
  324. package/dist/{pipeline-router-2SC44FMX.js → pipeline-router-M6ADV2GK.js} +4 -4
  325. package/dist/{plan-limits-JDFGTUXU.js → plan-limits-WSKTUJB7.js} +6 -6
  326. package/dist/{pre-tool-use-impl-D3CJ2RCE.js → pre-tool-use-impl-T54FWS5F.js} +29 -29
  327. package/dist/{project-name-ISGI3PY5.js → project-name-JNUX5KNJ.js} +4 -4
  328. package/dist/{projection-worker-5TNY3OA2.js → projection-worker-4R44UDTC.js} +2 -2
  329. package/dist/{prospective-memory-TQ7Z6UK4.js → prospective-memory-JU52ZU4P.js} +3 -3
  330. package/dist/{push-notifications-VY2WM6OW.js → push-notifications-KAV2I7BT.js} +15 -15
  331. package/dist/{reproject-worktree-memories-J7X3EBNB.js → reproject-worktree-memories-UOTGJHHZ.js} +14 -14
  332. package/dist/{reranker-AZWLDKTF.js → reranker-EV4BDEEM.js} +1 -1
  333. package/dist/{retrieval-health-BIOHGTFR.js → retrieval-health-7QFZQ3VL.js} +1 -1
  334. package/dist/{review-polling-U5EYTXFU.js → review-polling-6646GRW6.js} +15 -15
  335. package/dist/runtime/index.js +18 -18
  336. package/dist/{session-events-4IDRYFVA.js → session-events-ID2UU6YB.js} +15 -15
  337. package/dist/{session-kill-telemetry-I2IXSAQ3.js → session-kill-telemetry-YR7HNHZI.js} +15 -15
  338. package/dist/{session-scope-S7DUMN4Q.js → session-scope-FNGMMG7K.js} +14 -14
  339. package/dist/{setup-wizard-TG3EPPCC.js → setup-wizard-GEXWKX3J.js} +2 -2
  340. package/dist/{shard-manager-7DKNYDIV.js → shard-manager-6U634WL5.js} +2 -2
  341. package/dist/{skill-refinement-4HAGXWWD.js → skill-refinement-M7U3IH3B.js} +4 -4
  342. package/dist/{skill-retrieval-IHM2AQIW.js → skill-retrieval-QWRHBTM7.js} +11 -11
  343. package/dist/{skill-usage-PEYGHVF5.js → skill-usage-7FNE6C73.js} +4 -4
  344. package/dist/{stack-generate-manifest-WA6W54R4.js → stack-generate-manifest-53OIWKJJ.js} +4 -4
  345. package/dist/{stack-promote-5BVRO7DO.js → stack-promote-43W7XU5A.js} +4 -4
  346. package/dist/{stack-release-HB5UM2IG.js → stack-release-TWEFH7RF.js} +5 -5
  347. package/dist/{stack-update-EQDLX2EG.js → stack-update-SPZKBTHQ.js} +13 -3
  348. package/dist/{steward-gate-D3Q4PVQU.js → steward-gate-S5NPASQ6.js} +4 -4
  349. package/dist/{subagent-brief-injection-UVG7FTPS.js → subagent-brief-injection-WAPOJNEW.js} +25 -25
  350. package/dist/{support-bug-actions-XHGVFN5K.js → support-bug-actions-LRRPCO2X.js} +3 -3
  351. package/dist/{support-inbox-YNJXXOJG.js → support-inbox-L353AXIP.js} +12 -12
  352. package/dist/{task-enforcement-P2CEI3FT.js → task-enforcement-X55T4MA2.js} +15 -15
  353. package/dist/{task-request-inbox-56VQUXKG.js → task-request-inbox-JFPPW6JF.js} +5 -5
  354. package/dist/{task-scope-JZNO6OO4.js → task-scope-KB35QGJ2.js} +14 -14
  355. package/dist/{tasks-crud-LEDUFYKV.js → tasks-crud-XSCWP2ZQ.js} +16 -14
  356. package/dist/{tasks-notify-X4LK22K3.js → tasks-notify-A2GQS3AW.js} +15 -15
  357. package/dist/{tasks-review-EFVDIP7G.js → tasks-review-YIRJPO2P.js} +14 -14
  358. package/dist/{telemetry-upload-LOXHJ5I4.js → telemetry-upload-2B567ZWI.js} +8 -8
  359. package/dist/{token-budget-PBTAKWEG.js → token-budget-3T7TRE23.js} +4 -4
  360. package/dist/{tool-telemetry-FCVFNWUI.js → tool-telemetry-CU65NUCU.js} +1 -1
  361. package/dist/tui/App.js +24 -24
  362. package/dist/{tui-data-FEYZXOCX.js → tui-data-32EDQQNA.js} +18 -18
  363. package/dist/{update-support-GHWZB4SH.js → update-support-JAP2PFNY.js} +11 -11
  364. package/dist/{whatsapp-O4VRU6J4.js → whatsapp-FN6PRHX6.js} +2 -2
  365. package/dist/{wiki-acl-QSIOZBTL.js → wiki-acl-V6ZFV44C.js} +1 -1
  366. package/dist/{work-claims-SASEE66I.js → work-claims-5D7OBZVP.js} +4 -4
  367. package/dist/{work-state-heartbeat-TDYKTZUV.js → work-state-heartbeat-ET3ISGCF.js} +1 -1
  368. package/dist/{workflow-engine-TVSSUPLY.js → workflow-engine-WBCMRPKF.js} +2 -2
  369. package/dist/{worktree-EAXBOKTG.js → worktree-NPWJ4RJ3.js} +5 -5
  370. package/dist/{worktree-sweep-LPEUM44A.js → worktree-sweep-QA26BFO7.js} +6 -6
  371. package/package.json +3 -1
  372. package/release-notes.json +7 -18
  373. package/stack.release.json +3 -3
  374. /package/dist/{chunk-CZLB2RJ7.js → chunk-364OWA4G.js} +0 -0
  375. /package/dist/{chunk-62EETXIE.js → chunk-DHWZHM6J.js} +0 -0
  376. /package/dist/{chunk-GGKJHUBC.js → chunk-FIIVUFRF.js} +0 -0
  377. /package/dist/{chunk-NECWNYQG.js → chunk-HC5Z72HE.js} +0 -0
  378. /package/dist/{chunk-USV4EKTB.js → chunk-IBRBBKNG.js} +0 -0
  379. /package/dist/{chunk-NYL3M7GZ.js → chunk-K25XOKDF.js} +0 -0
  380. /package/dist/{chunk-DCI45I24.js → chunk-LKCC4MRH.js} +0 -0
  381. /package/dist/{chunk-VVOUVCIG.js → chunk-LYNJO72I.js} +0 -0
  382. /package/dist/{chunk-6J7P73XI.js → chunk-MPFDIV2O.js} +0 -0
  383. /package/dist/{chunk-P35TTOHJ.js → chunk-SLRJ4XSO.js} +0 -0
  384. /package/dist/{chunk-Q2FACDN6.js → chunk-TYKG62HG.js} +0 -0
  385. /package/dist/{chunk-MRCMAOZU.js → chunk-XWVJVGIV.js} +0 -0
  386. /package/dist/{chunk-JJJNBTMP.js → chunk-Z4HL4WPV.js} +0 -0
  387. /package/dist/{core-memory-BEVUZHYN.js → core-memory-2CH552K3.js} +0 -0
  388. /package/dist/{memory-isolation-TFUBKU3C.js → memory-isolation-RWXYBFXJ.js} +0 -0
  389. /package/dist/{oauth-server-TO3U7RGZ.js → oauth-server-IDBV3VAJ.js} +0 -0
  390. /package/dist/{project-boot-OCBNKGQM.js → project-boot-O6CJGZIF.js} +0 -0
@@ -4,18 +4,18 @@ import {
4
4
  } from "./chunk-NEHOQ3P2.js";
5
5
  import {
6
6
  isCrdtSyncEnabled
7
- } from "./chunk-V2Z23CEF.js";
7
+ } from "./chunk-PDKMK2GJ.js";
8
8
  import {
9
9
  orgMembershipsPath,
10
10
  orgModeActive
11
- } from "./chunk-M2RVBCVL.js";
11
+ } from "./chunk-OAOEW2SZ.js";
12
12
  import {
13
13
  activeRecipientPubKeys,
14
14
  grantsPath,
15
15
  isGrantsMacPrimed,
16
16
  primeGrantsMacKey,
17
17
  warnActiveMonitoringOnce
18
- } from "./chunk-H6FPXML4.js";
18
+ } from "./chunk-V5DXD4TU.js";
19
19
  import {
20
20
  assertGateAndGrantsColocated
21
21
  } from "./chunk-NPXIS2RY.js";
@@ -25,7 +25,7 @@ import {
25
25
  import {
26
26
  GHOST_BEHAVIOR_SQL,
27
27
  isGhostBehaviorRow
28
- } from "./chunk-QIOU2PXK.js";
28
+ } from "./chunk-SWQRQB4M.js";
29
29
  import {
30
30
  isTransientDaemonTransportError,
31
31
  retryOnDaemonTransportError
@@ -36,17 +36,17 @@ import {
36
36
  encryptSyncBlob,
37
37
  initSyncCrypto,
38
38
  isSyncCryptoInitialized
39
- } from "./chunk-WB7TP6IW.js";
39
+ } from "./chunk-O5ORPJJX.js";
40
40
  import {
41
41
  getClient,
42
42
  isGenuineCorruptionError,
43
43
  loadEmployees,
44
44
  registerBinSymlinks,
45
45
  saveEmployees
46
- } from "./chunk-T3CVFB3J.js";
46
+ } from "./chunk-4OZXJX3M.js";
47
47
  import {
48
48
  loadDeviceId
49
- } from "./chunk-2PSEY7AN.js";
49
+ } from "./chunk-DOUHD6KC.js";
50
50
  import {
51
51
  EXE_AI_DIR
52
52
  } from "./chunk-MMS2HBRT.js";
@@ -72,7 +72,7 @@ var _lastSealOrgMode = null;
72
72
  async function getSyncCipher() {
73
73
  if (_resolved) return _resolved;
74
74
  if (!orgModeActive()) {
75
- const mod = await import("./founder-monitor-envelope-5OKQH6E4.js");
75
+ const mod = await import("./founder-monitor-envelope-WLOWBTTD.js");
76
76
  _monitoredWriter = mod.encryptMonitoredSyncBlob;
77
77
  _founderModuleLinked = true;
78
78
  }
@@ -1283,7 +1283,7 @@ async function cloudSync(config, options) {
1283
1283
  })
1284
1284
  };
1285
1285
  if (shouldUseCrdtMergeForCloudSync()) {
1286
- const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-ZV7UD2MD.js");
1286
+ const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-H74HCZSY.js");
1287
1287
  initCrdtDoc();
1288
1288
  importExistingMemories(
1289
1289
  pullResult.records.map((rec) => ({
@@ -1844,7 +1844,7 @@ async function cloudSync(config, options) {
1844
1844
  const artifactResult = { pushed: 0, frozen: false, remaining: 0 };
1845
1845
  if (!shouldSkip("artifacts")) {
1846
1846
  try {
1847
- const { flushArtifactBackups } = await import("./artifact-backup-JLYSQRNJ.js");
1847
+ const { flushArtifactBackups } = await import("./artifact-backup-AICTE3YO.js");
1848
1848
  const flushed = await flushArtifactBackups(cloudArtifactTransport(config));
1849
1849
  artifactResult.pushed = flushed.pushed;
1850
1850
  artifactResult.frozen = flushed.frozen;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  recordOrchestrationEventBestEffort
3
- } from "./chunk-35GQRTAN.js";
3
+ } from "./chunk-GVZPT5GJ.js";
4
4
 
5
5
  // src/lib/worktree.ts
6
6
  import { execFile, execFileSync, execSync } from "child_process";
@@ -19,7 +19,7 @@ import {
19
19
  } from "./chunk-RT57D7C4.js";
20
20
  import {
21
21
  loadLicense
22
- } from "./chunk-2PSEY7AN.js";
22
+ } from "./chunk-DOUHD6KC.js";
23
23
 
24
24
  // src/lib/stack-update.ts
25
25
  import { execFileSync, spawnSync as spawnSync2 } from "child_process";
@@ -32,6 +32,73 @@ import path from "path";
32
32
  import { fileURLToPath } from "url";
33
33
  import { parseDocument as parseYamlDocument } from "yaml";
34
34
 
35
+ // src/lib/erp-asset-smoke.ts
36
+ var REQUIRED_DESK_BUNDLES = {
37
+ "desk.bundle.js": "javascript",
38
+ "desk.bundle.css": "css"
39
+ };
40
+ var ASSET_PATH_PATTERN = /^\/assets\/[A-Za-z0-9_-]+\/dist\/(?:css|js)\/[^"' >]+$/;
41
+ var CONTENT_TYPE_PATTERN = {
42
+ javascript: /javascript/i,
43
+ css: /(?:^|\/)css/i
44
+ };
45
+ async function verifyErpAssets(port, siteName, fetchPage = fetch) {
46
+ if (!Number.isInteger(port) || port < 1 || port > 65535) {
47
+ throw new Error("ERP asset smoke refused an invalid loopback port");
48
+ }
49
+ if (!/^[A-Za-z0-9][A-Za-z0-9.-]{0,252}$/.test(siteName)) {
50
+ throw new Error("ERP asset smoke refused an invalid site name");
51
+ }
52
+ const origin = `http://127.0.0.1:${port}`;
53
+ const signal = AbortSignal.timeout(6e4);
54
+ const get = async (path2) => {
55
+ let url = new URL(path2, origin);
56
+ for (let redirects = 0; redirects < 5; redirects++) {
57
+ if (url.origin !== origin) throw new Error("ERP asset smoke refused an external redirect");
58
+ const response = await fetchPage(url, { redirect: "manual", signal, headers: { Host: siteName } });
59
+ if (![301, 302, 303, 307, 308].includes(response.status)) return response;
60
+ const location = response.headers.get("location");
61
+ await response.body?.cancel();
62
+ if (!location) throw new Error("ERP asset smoke encountered a redirect without a location");
63
+ url = new URL(location, url);
64
+ }
65
+ throw new Error("ERP asset smoke exceeded its redirect limit");
66
+ };
67
+ const manifestResponse = await get("/assets/assets.json");
68
+ if (manifestResponse.status !== 200) {
69
+ await manifestResponse.body?.cancel();
70
+ throw new Error(`ERP asset smoke: assets.json manifest returned HTTP ${manifestResponse.status}`);
71
+ }
72
+ let manifest;
73
+ try {
74
+ manifest = JSON.parse(await manifestResponse.text());
75
+ } catch {
76
+ throw new Error("ERP asset smoke: assets.json manifest was not valid JSON");
77
+ }
78
+ if (typeof manifest !== "object" || manifest === null || Array.isArray(manifest)) {
79
+ throw new Error("ERP asset smoke: assets.json manifest was not a JSON object");
80
+ }
81
+ const assetPaths = /* @__PURE__ */ new Map();
82
+ for (const [key, kind] of Object.entries(REQUIRED_DESK_BUNDLES)) {
83
+ const value = manifest[key];
84
+ if (typeof value !== "string" || !ASSET_PATH_PATTERN.test(value)) {
85
+ throw new Error(`ERP asset smoke: assets.json manifest is missing the desk ${kind} bundle ("${key}")`);
86
+ }
87
+ assetPaths.set(value, kind);
88
+ }
89
+ for (const [asset, kind] of assetPaths) {
90
+ const response = await get(asset);
91
+ await response.body?.cancel();
92
+ if (response.status !== 200) {
93
+ throw new Error(`ERP asset smoke: ${asset} returned HTTP ${response.status}`);
94
+ }
95
+ const contentType = response.headers.get("content-type") ?? "";
96
+ if (!CONTENT_TYPE_PATTERN[kind].test(contentType)) {
97
+ throw new Error(`ERP asset smoke: ${asset} did not return a ${kind} content type (got "${contentType}")`);
98
+ }
99
+ }
100
+ }
101
+
35
102
  // src/lib/service-env-contract.ts
36
103
  import { parse as parseYaml } from "yaml";
37
104
  var SERVICE_ENV_CONTRACT = [
@@ -1211,8 +1278,9 @@ async function rollbackStackUpdate(options) {
1211
1278
  throw new Error("--retain-compose rollback refused an unscoped restart; restore the selected service from backup manually");
1212
1279
  }
1213
1280
  if (scopedServiceNames.length > 0 && lockData?.services) {
1214
- const scopedComposeServices = expandComposeServicesWithSidecars(
1215
- scopedServiceNames.map((serviceName) => lockData.services[serviceName]?.composeService ?? serviceName)
1281
+ const scopedComposeServices = scopedComposeImageServices(
1282
+ scopedServiceNames.map((serviceName) => lockData.services[serviceName]?.composeService ?? serviceName),
1283
+ options.retainCompose
1216
1284
  );
1217
1285
  for (const composeServiceName of scopedComposeServices) {
1218
1286
  exec("docker", [...composeArgs, "up", "-d", ...options.retainCompose ? [] : ["--remove-orphans"], "--no-deps", composeServiceName]);
@@ -1246,7 +1314,10 @@ async function rollbackStackUpdate(options) {
1246
1314
  );
1247
1315
  }
1248
1316
  }
1249
- const rolledBackComposeServices = scopedServiceNames.length > 0 && lockData?.services ? [...new Set(expandComposeServicesWithSidecars(scopedServiceNames.map((name) => lockData.services[name]?.composeService ?? name)))] : [...new Set(Object.entries(lockData?.services ?? {}).map(([name, svc]) => svc.composeService ?? name))];
1317
+ const rolledBackComposeServices = scopedServiceNames.length > 0 && lockData?.services ? [...new Set(scopedComposeImageServices(scopedServiceNames.map((name) => lockData.services[name]?.composeService ?? name), options.retainCompose))] : [...new Set(Object.entries(lockData?.services ?? {}).map(([name, svc]) => svc.composeService ?? name))];
1318
+ if (options.retainCompose && rolledBackComposeServices.includes("exe-erp")) {
1319
+ rolledBackComposeServices.push(ERP_RETAINED_OBSERVER);
1320
+ }
1250
1321
  try {
1251
1322
  await verifyComposeServicesRunning(
1252
1323
  composeArgs,
@@ -1370,6 +1441,14 @@ function expandComposeServicesWithSidecars(primaryComposeServices) {
1370
1441
  }
1371
1442
  return expanded;
1372
1443
  }
1444
+ var ERP_RETAINED_IMAGE_SERVICES = ["exe-erp", "exe-erp-websocket", "exe-erp-queue", "exe-erp-scheduler"];
1445
+ var ERP_RETAINED_OBSERVER = "exe-erp-nginx";
1446
+ function retainedComposeImageServices(primaryComposeServices) {
1447
+ return primaryComposeServices.length === 1 && primaryComposeServices[0] === "exe-erp" ? [...ERP_RETAINED_IMAGE_SERVICES] : expandComposeServicesWithSidecars(primaryComposeServices);
1448
+ }
1449
+ function scopedComposeImageServices(primaryComposeServices, retainCompose) {
1450
+ return retainCompose ? retainedComposeImageServices(primaryComposeServices) : expandComposeServicesWithSidecars(primaryComposeServices);
1451
+ }
1373
1452
  function resolveOwningManifestService(composeService, services) {
1374
1453
  const direct = Object.entries(services).find(
1375
1454
  ([name, svc]) => name === composeService || (svc.composeService ?? name) === composeService
@@ -1618,6 +1697,26 @@ function parseEnv(raw) {
1618
1697
  }
1619
1698
  return env;
1620
1699
  }
1700
+ function unquoteComposeEnvValue(raw) {
1701
+ const trimmed = raw.trim();
1702
+ if (trimmed.length >= 2) {
1703
+ const first = trimmed[0];
1704
+ const last = trimmed[trimmed.length - 1];
1705
+ if (first === '"' && last === '"') {
1706
+ return trimmed.slice(1, -1).replace(/\\(["\\])/g, "$1");
1707
+ }
1708
+ if (first === "'" && last === "'") {
1709
+ return trimmed.slice(1, -1);
1710
+ }
1711
+ }
1712
+ return trimmed;
1713
+ }
1714
+ function resolveComposeEnvValue(env, key, fallback) {
1715
+ const raw = env.get(key);
1716
+ if (raw === void 0) return fallback;
1717
+ const value = unquoteComposeEnvValue(raw);
1718
+ return value !== "" ? value : fallback;
1719
+ }
1621
1720
  function patchEnv(raw, updates) {
1622
1721
  const seen = /* @__PURE__ */ new Set();
1623
1722
  const lines = raw.replace(/\n$/, "").split(/\r?\n/);
@@ -2511,8 +2610,11 @@ function assertRetainedComposePlan(input, plan, liveComposeRaw, envRaw, processE
2511
2610
  if (service.migrations || plan.release.migrations) {
2512
2611
  throw new Error("--retain-compose cannot run service or release migrations");
2513
2612
  }
2514
- const composeServices = expandComposeServicesWithSidecars([service.composeService ?? name]);
2515
- if (composeServices.length > 1 && !(name === "crm" && composeServices.length === 2 && composeServices[0] === "exe-crm" && composeServices[1] === "exe-crm-worker")) {
2613
+ const allComposeServices = expandComposeServicesWithSidecars([service.composeService ?? name]);
2614
+ const composeServices = retainedComposeImageServices([service.composeService ?? name]);
2615
+ const isCrmGroup = name === "crm" && composeServices.length === 2 && composeServices[0] === "exe-crm" && composeServices[1] === "exe-crm-worker";
2616
+ const isErpGroup = name === "erp" && allComposeServices.length === 5 && allComposeServices.every((target, index) => target === ["exe-erp", ERP_RETAINED_OBSERVER, ...ERP_RETAINED_IMAGE_SERVICES.slice(1)][index]) && composeServices.length === ERP_RETAINED_IMAGE_SERVICES.length;
2617
+ if (allComposeServices.length > 1 && !isCrmGroup && !isErpGroup) {
2516
2618
  throw new Error("--retain-compose requires a service with no unsupported companion sidecars");
2517
2619
  }
2518
2620
  if (!service.env || plan.changes.length !== 1 || plan.changes[0].service !== name || plan.changes[0].key !== service.env) {
@@ -2546,6 +2648,9 @@ function assertRetainedComposePlan(input, plan, liveComposeRaw, envRaw, processE
2546
2648
  throw new Error(`--retain-compose refused: rendered selected service ${composeService} image differs from signed image pin`);
2547
2649
  }
2548
2650
  }
2651
+ if (isErpGroup) {
2652
+ retainedErpNginxImageRef(liveComposeRaw, liveOverrideRaw);
2653
+ }
2549
2654
  const env = parseEnv(envRaw);
2550
2655
  const monitorKey = env.get("EXE_MONITOR_KEY") ?? "";
2551
2656
  if (!monitorKey.trim() || /CHANGEME/.test(monitorKey)) {
@@ -3926,6 +4031,7 @@ async function runStackUpdateUnlocked(options) {
3926
4031
  removeService: options.removeService,
3927
4032
  rollback: options.rollback
3928
4033
  }, plan, composeRaw, envRaw, process.env, retainedComposeFiles?.override ?? null);
4034
+ const erpNginxRef = options.retainCompose && Object.keys(plan.release.services).length === 1 && plan.release.services.erp ? retainedErpNginxImageRef(composeRaw, retainedComposeFiles?.override ?? null) : null;
3929
4035
  const retainedOverrideHash = retainedComposeFiles ? retainedComposeFiles.override === null ? null : createHash("sha256").update(retainedComposeFiles.override).digest("hex") : void 0;
3930
4036
  const stagedCompose = readStagedComposeTemplate(options, composeRaw);
3931
4037
  const targetRelease = manifest.stacks[plan.targetVersion];
@@ -3984,7 +4090,7 @@ ${lines.join("\n")}`
3984
4090
  if (options.retainCompose) {
3985
4091
  const [name, service] = Object.entries(plan.release.services)[0];
3986
4092
  const composeArgs2 = composeArgsForStack(options.composeFile, options.envFile);
3987
- for (const target of expandComposeServicesWithSidecars([service.composeService ?? name])) {
4093
+ for (const target of retainedComposeImageServices([service.composeService ?? name])) {
3988
4094
  assertRetainedComposeRunningService(
3989
4095
  composeArgs2,
3990
4096
  target,
@@ -3998,6 +4104,25 @@ ${lines.join("\n")}`
3998
4104
  options.composeConfigCapture ?? defaultComposeConfigCapture
3999
4105
  );
4000
4106
  }
4107
+ if (erpNginxRef) {
4108
+ assertRetainedComposeRunningService(
4109
+ composeArgs2,
4110
+ ERP_RETAINED_OBSERVER,
4111
+ options.composePsCapture ?? defaultComposePsCapture
4112
+ );
4113
+ assertRetainedComposeRenderedFixedImage(
4114
+ composeArgs2,
4115
+ ERP_RETAINED_OBSERVER,
4116
+ erpNginxRef,
4117
+ options.composeConfigCapture ?? defaultComposeConfigCapture
4118
+ );
4119
+ assertRetainedComposeImageWitness(
4120
+ composeArgs2,
4121
+ ERP_RETAINED_OBSERVER,
4122
+ erpNginxRef,
4123
+ options.retainedImageIds ?? captureRetainedComposeImageIds
4124
+ );
4125
+ }
4001
4126
  }
4002
4127
  const hostState = listHostComposeServices(
4003
4128
  composeArgsForStack(options.composeFile, options.envFile),
@@ -4375,8 +4500,9 @@ Push the missing image(s) to the registry, or re-run with --break-glass <reason>
4375
4500
  );
4376
4501
  }
4377
4502
  }
4378
- const composePullTargets = expandComposeServicesWithSidecars(
4379
- Object.entries(plan.release.services).map(([name, svc]) => svc.composeService ?? name)
4503
+ const composePullTargets = scopedComposeImageServices(
4504
+ Object.entries(plan.release.services).map(([name, svc]) => svc.composeService ?? name),
4505
+ options.retainCompose
4380
4506
  );
4381
4507
  try {
4382
4508
  if (composePullTargets.length > 0) {
@@ -4490,7 +4616,7 @@ Push the missing image(s) to the registry, or re-run with --break-glass <reason>
4490
4616
  // tunnel — restarted last so services are healthy before it connects
4491
4617
  ];
4492
4618
  const primaryComposeServices = Object.entries(plan.release.services).map(([serviceName, service]) => service.composeService ?? serviceName);
4493
- const scopedComposeServices = expandComposeServicesWithSidecars(primaryComposeServices);
4619
+ const scopedComposeServices = scopedComposeImageServices(primaryComposeServices, options.retainCompose);
4494
4620
  const restartOrder = [
4495
4621
  ...RESTART_ORDER.filter((service) => scopedComposeServices.includes(service)),
4496
4622
  ...scopedComposeServices.filter((service) => !RESTART_ORDER.includes(service))
@@ -4534,6 +4660,40 @@ Push the missing image(s) to the registry, or re-run with --break-glass <reason>
4534
4660
  plan.changes[0].after,
4535
4661
  options.composeConfigCapture ?? defaultComposeConfigCapture
4536
4662
  );
4663
+ if (erpNginxRef) {
4664
+ const beforeWait = parseRetainedContainerHealth(
4665
+ (options.composePsCapture ?? defaultComposePsCapture)(composeArgs)
4666
+ ).get(ERP_RETAINED_OBSERVER);
4667
+ if (!beforeWait?.id || beforeWait.id !== retainedHealthBaseline?.containers.get(ERP_RETAINED_OBSERVER)?.id) {
4668
+ throw new Error("--retain-compose refused: ERP nginx observer changed before restart");
4669
+ }
4670
+ await verifyComposeServicesRunning(
4671
+ composeArgs,
4672
+ [ERP_RETAINED_OBSERVER],
4673
+ 90,
4674
+ options.composePsCapture,
4675
+ void 0,
4676
+ true
4677
+ );
4678
+ const currentNginx = parseRetainedContainerHealth(
4679
+ (options.composePsCapture ?? defaultComposePsCapture)(composeArgs)
4680
+ ).get(ERP_RETAINED_OBSERVER);
4681
+ if (currentNginx?.id !== beforeWait.id || !retainedContainerIsHealthy(currentNginx)) {
4682
+ throw new Error("--retain-compose refused: ERP nginx observer changed before restart");
4683
+ }
4684
+ assertRetainedComposeRenderedFixedImage(
4685
+ composeArgs,
4686
+ ERP_RETAINED_OBSERVER,
4687
+ erpNginxRef,
4688
+ options.composeConfigCapture ?? defaultComposeConfigCapture
4689
+ );
4690
+ assertRetainedComposeImageWitness(
4691
+ composeArgs,
4692
+ ERP_RETAINED_OBSERVER,
4693
+ erpNginxRef,
4694
+ options.retainedImageIds ?? captureRetainedComposeImageIds
4695
+ );
4696
+ }
4537
4697
  }
4538
4698
  progress.logServiceStep(restartIndex, service, "Restarting");
4539
4699
  if (service === "exe-wiki") {
@@ -4642,6 +4802,16 @@ Push the missing image(s) to the registry, or re-run with --break-glass <reason>
4642
4802
  }
4643
4803
  }
4644
4804
  if (retainedHealthBaseline) {
4805
+ if (erpNginxRef) {
4806
+ await verifyComposeServicesRunning(
4807
+ composeArgs,
4808
+ [ERP_RETAINED_OBSERVER],
4809
+ 90,
4810
+ options.composePsCapture,
4811
+ void 0,
4812
+ true
4813
+ );
4814
+ }
4645
4815
  const capture = (timeoutMs) => parseRetainedContainerHealth(
4646
4816
  (options.composePsCapture ?? defaultComposePsCapture)(composeArgs, timeoutMs)
4647
4817
  );
@@ -4651,6 +4821,29 @@ Push the missing image(s) to the registry, or re-run with --break-glass <reason>
4651
4821
  if (regressions.length > 0) {
4652
4822
  throw new Error(`--retain-compose health regression after update: ${regressions.join(", ")}`);
4653
4823
  }
4824
+ if (erpNginxRef) {
4825
+ const beforeNginx = retainedHealthBaseline.containers.get(ERP_RETAINED_OBSERVER);
4826
+ const afterNginx = after.get(ERP_RETAINED_OBSERVER);
4827
+ if (!beforeNginx?.id || afterNginx?.id !== beforeNginx.id) {
4828
+ throw new Error("--retain-compose ERP nginx observer changed container identity");
4829
+ }
4830
+ assertRetainedComposeRenderedFixedImage(
4831
+ composeArgs,
4832
+ ERP_RETAINED_OBSERVER,
4833
+ erpNginxRef,
4834
+ options.composeConfigCapture ?? defaultComposeConfigCapture
4835
+ );
4836
+ assertRetainedComposeImageWitness(
4837
+ composeArgs,
4838
+ ERP_RETAINED_OBSERVER,
4839
+ erpNginxRef,
4840
+ options.retainedImageIds ?? captureRetainedComposeImageIds
4841
+ );
4842
+ const smokeEnv = parseEnv(readFileSync(options.envFile, "utf8"));
4843
+ const portRaw = resolveComposeEnvValue(smokeEnv, "ERP_API_PORT", "8069");
4844
+ const siteName = resolveComposeEnvValue(smokeEnv, "ERP_SITE_NAME", "erp.askexe.com");
4845
+ await (options.verifyErpAssets ?? verifyErpAssets)(Number(portRaw), siteName);
4846
+ }
4654
4847
  }
4655
4848
  {
4656
4849
  const cfIngressConfigPath = path.join(path.dirname(options.composeFile), "cloudflared", "config.yml");
@@ -4791,7 +4984,7 @@ Push the missing image(s) to the registry, or re-run with --break-glass <reason>
4791
4984
  // pre-existing companion on an older digest as this service's failed
4792
4985
  // delivery. Retained health and image witnesses still cover the selected
4793
4986
  // service and its required dependencies before and after the update.
4794
- artifactComposeServices: options.retainCompose ? Object.entries(plan.release.services).flatMap(([name, service]) => expandComposeServicesWithSidecars([service.composeService ?? name])) : void 0
4987
+ artifactComposeServices: options.retainCompose ? Object.entries(plan.release.services).flatMap(([name, service]) => scopedComposeImageServices([service.composeService ?? name], options.retainCompose)) : void 0
4795
4988
  });
4796
4989
  const securityFailures = [];
4797
4990
  for (const r of verifyReport.results) {
@@ -4905,7 +5098,7 @@ Fix these before the stack is safe to operate.`);
4905
5098
  const composeService = service.composeService ?? name;
4906
5099
  try {
4907
5100
  syncImagePinsWithProcessEnv(envRaw, [service.env]);
4908
- const restored = expandComposeServicesWithSidecars([composeService]);
5101
+ const restored = scopedComposeImageServices([composeService], options.retainCompose);
4909
5102
  for (const target of restored) {
4910
5103
  exec("docker", [...composeArgs, "up", "-d", "--no-deps", target]);
4911
5104
  }
@@ -5195,6 +5388,26 @@ function assertRetainedComposeRenderedImage(composeArgs, service, imageEnvKey, e
5195
5388
  throw new Error(`--retain-compose refused: effective Compose image for ${service} differs from signed image pin or could not be observed`);
5196
5389
  }
5197
5390
  }
5391
+ function retainedErpNginxImageRef(baseRaw, overrideRaw) {
5392
+ const base = parseComposeServiceImages(baseRaw);
5393
+ const override = overrideRaw === null ? /* @__PURE__ */ new Map() : parseComposeServiceImages(overrideRaw);
5394
+ const expression = override.get(ERP_RETAINED_OBSERVER) ?? base.get(ERP_RETAINED_OBSERVER);
5395
+ if (!expression || envRefsInImageExpression(expression).length || !/@sha256:[a-f0-9]{64}$/i.test(expression)) {
5396
+ throw new Error("--retain-compose refused: ERP nginx observer must use a fixed digest-pinned image");
5397
+ }
5398
+ return expression;
5399
+ }
5400
+ function assertRetainedComposeRenderedFixedImage(composeArgs, service, expectedRef, capture = defaultComposeConfigCapture) {
5401
+ let rendered;
5402
+ try {
5403
+ const raw = capture(composeArgs, process.env);
5404
+ rendered = raw ? JSON.parse(raw).services?.[service]?.image : void 0;
5405
+ } catch {
5406
+ }
5407
+ if (rendered !== expectedRef) {
5408
+ throw new Error(`--retain-compose refused: effective Compose image for ${service} differs from signed fixed image`);
5409
+ }
5410
+ }
5198
5411
  function captureRetainedComposeImageIds(composeArgs, service, expectedRef) {
5199
5412
  const capture = (args) => {
5200
5413
  const result = spawnSync2("docker", args, { encoding: "utf8", timeout: 2e4 });
@@ -5758,6 +5971,7 @@ export {
5758
5971
  runReleaseMigrations,
5759
5972
  isExecFormMigration,
5760
5973
  expandComposeServicesWithSidecars,
5974
+ retainedComposeImageServices,
5761
5975
  resolveOwningManifestService,
5762
5976
  reconcileStackLockFromContainers,
5763
5977
  readRetainedComposeFiles,
@@ -5768,6 +5982,8 @@ export {
5768
5982
  loadStackManifestWithFallback,
5769
5983
  reportStackManifestSource,
5770
5984
  parseEnv,
5985
+ unquoteComposeEnvValue,
5986
+ resolveComposeEnvValue,
5771
5987
  patchEnv,
5772
5988
  removeEnvKeys,
5773
5989
  expandComposeExpression,
@@ -5839,6 +6055,8 @@ export {
5839
6055
  composePsYieldsRecords,
5840
6056
  assertRetainedComposeRunningService,
5841
6057
  assertRetainedComposeRenderedImage,
6058
+ retainedErpNginxImageRef,
6059
+ assertRetainedComposeRenderedFixedImage,
5842
6060
  assertRetainedComposeImageWitness,
5843
6061
  verifyComposeServicesRunning,
5844
6062
  isComposeNetworkHost,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getMasterKey
3
- } from "./chunk-O2HIMMKW.js";
3
+ } from "./chunk-4XRQEQNK.js";
4
4
  import {
5
5
  PRIVATE_DIR_MODE,
6
6
  PRIVATE_FILE_MODE,
@@ -4,10 +4,10 @@ import {
4
4
  extractIdentifiers,
5
5
  isGarbageEntity,
6
6
  normalizeEntityName
7
- } from "./chunk-TJMYWOLH.js";
7
+ } from "./chunk-4MUU33NJ.js";
8
8
  import {
9
9
  getClient
10
- } from "./chunk-T3CVFB3J.js";
10
+ } from "./chunk-4OZXJX3M.js";
11
11
 
12
12
  // src/lib/memory-graph-extractor.ts
13
13
  function relationshipId(sourceId, targetId, relType) {
@@ -432,7 +432,7 @@ async function upsertMemoryGraph(result, memoryId, opts) {
432
432
  });
433
433
  }
434
434
  try {
435
- const { createCoOccurrenceEdges } = await import("./co-occurrence-5WZMOKZY.js");
435
+ const { createCoOccurrenceEdges } = await import("./co-occurrence-IZSNRYOZ.js");
436
436
  await createCoOccurrenceEdges(result.entities, memoryId, { linkOnly });
437
437
  } catch {
438
438
  }
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  isExeSession
3
- } from "./chunk-2HJOCTAM.js";
3
+ } from "./chunk-ROGZRDCU.js";
4
4
  import {
5
5
  recordOrchestrationEventBestEffort
6
- } from "./chunk-35GQRTAN.js";
6
+ } from "./chunk-GVZPT5GJ.js";
7
7
  import {
8
8
  getClient,
9
9
  isCoordinatorName
10
- } from "./chunk-T3CVFB3J.js";
10
+ } from "./chunk-4OZXJX3M.js";
11
11
  import {
12
12
  isDaemonAlive
13
13
  } from "./chunk-QH5ZQ5SJ.js";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  registerDaemonScopedQueryChokepoint
3
- } from "./chunk-4ZAS2F3K.js";
3
+ } from "./chunk-GI44KWJA.js";
4
4
  import {
5
5
  orgPartnerModeActive,
6
6
  requireOrgPartnerBinding,
7
7
  resolveOrgPartnerBindings,
8
8
  resolvePartnerIdentities,
9
9
  rosterKeyLookupFor
10
- } from "./chunk-ELBQHL5A.js";
10
+ } from "./chunk-EMKSTLBG.js";
11
11
  import {
12
12
  createMailboxInboxPoller,
13
13
  getMailboxInboxState
@@ -20,7 +20,7 @@ import {
20
20
  isConsentMacPrimed,
21
21
  primeTaskOriginMarkerKey,
22
22
  scopedQueryChokepointStatus
23
- } from "./chunk-KFIHF5RO.js";
23
+ } from "./chunk-J77FASSK.js";
24
24
  import {
25
25
  flushMailboxOutbox
26
26
  } from "./chunk-3FGBBJYM.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  canonicalizeStackManifest
3
- } from "./chunk-GJ4XERZA.js";
3
+ } from "./chunk-AR2K7SUC.js";
4
4
 
5
5
  // src/lib/stack-manifest-write.ts
6
6
  import { readFileSync, statSync, writeFileSync } from "fs";
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  loadLicense,
10
10
  readCachedLicenseToken
11
- } from "./chunk-2PSEY7AN.js";
11
+ } from "./chunk-DOUHD6KC.js";
12
12
  import {
13
13
  EXE_AI_DIR,
14
14
  loadConfig
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  completeReminder,
3
3
  formatAmbiguousReminder
4
- } from "./chunk-HY3E4VPO.js";
4
+ } from "./chunk-UR3DB6QM.js";
5
5
 
6
6
  // src/mcp/tools/complete-reminder.ts
7
7
  import { z } from "zod";
@@ -22,7 +22,7 @@ var OrgOriginProvenanceError = class extends Error {
22
22
  async function mintOrgOriginStamp(input) {
23
23
  if (!input.orgId) throw new OrgOriginProvenanceError("An org-origin stamp requires a non-empty org_id (\xA71.5)");
24
24
  if (!input.requestId) throw new OrgOriginProvenanceError("An org-origin stamp requires a request id");
25
- const { getTaskRequest } = await import("./task-request-inbox-56VQUXKG.js");
25
+ const { getTaskRequest } = await import("./task-request-inbox-JFPPW6JF.js");
26
26
  const req = getTaskRequest(input.orgId, input.requestId);
27
27
  if (!req) {
28
28
  throw new OrgOriginProvenanceError(
@@ -2,7 +2,7 @@ import {
2
2
  getClient,
3
3
  isCoordinatorName,
4
4
  loadEmployeesSync
5
- } from "./chunk-T3CVFB3J.js";
5
+ } from "./chunk-4OZXJX3M.js";
6
6
 
7
7
  // src/lib/steward-gate.ts
8
8
  import crypto from "crypto";
@@ -132,7 +132,7 @@ async function verifyOrBlock(hookPath) {
132
132
  process.stderr.write(`[SECURITY] Hook tamper detected: ${filename} \u2014 ${result.reason}
133
133
  `);
134
134
  try {
135
- const { pushNotifyAsync } = await import("./push-notifications-VY2WM6OW.js");
135
+ const { pushNotifyAsync } = await import("./push-notifications-KAV2I7BT.js");
136
136
  pushNotifyAsync({
137
137
  event: "security_alert",
138
138
  title: "Hook tamper detected",
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  recordOrchestrationEventBestEffort
3
- } from "./chunk-35GQRTAN.js";
3
+ } from "./chunk-GVZPT5GJ.js";
4
4
  import {
5
5
  atomicWriteJsonSync
6
6
  } from "./chunk-HSGBZSCA.js";
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-RGPEUXOE.js";
6
6
  import {
7
7
  sessionScopeFilter
8
- } from "./chunk-2HJOCTAM.js";
8
+ } from "./chunk-ROGZRDCU.js";
9
9
  import {
10
10
  isWithin
11
11
  } from "./chunk-YRUZK2QA.js";
@@ -297,7 +297,7 @@ async function sweepTasks(projectName, options = {}) {
297
297
  }
298
298
  if (!dryRun) {
299
299
  try {
300
- const { updateTaskStatus } = await import("./tasks-crud-LEDUFYKV.js");
300
+ const { updateTaskStatus } = await import("./tasks-crud-XSCWP2ZQ.js");
301
301
  await updateTaskStatus({
302
302
  taskId: task.id,
303
303
  status: "needs_review",
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-BTSWFMEH.js";
11
11
  import {
12
12
  getClient
13
- } from "./chunk-T3CVFB3J.js";
13
+ } from "./chunk-4OZXJX3M.js";
14
14
 
15
15
  // src/lib/work-claims.ts
16
16
  var CLAIM_TTL_MINUTES = 90;
@@ -306,7 +306,7 @@ async function heartbeatClaims(holderSession, ttlMinutes = CLAIM_TTL_MINUTES) {
306
306
  }
307
307
  async function recordClaimEvent(eventType, sessionScope, agentId, payload, severity) {
308
308
  try {
309
- const { recordOrchestrationEventBestEffort } = await import("./orchestration-events-OBH4XY2J.js");
309
+ const { recordOrchestrationEventBestEffort } = await import("./orchestration-events-7JWQRUVB.js");
310
310
  recordOrchestrationEventBestEffort({
311
311
  eventType,
312
312
  source: "work-claims",
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-3R7UDPVR.js";
4
4
  import {
5
5
  getDeviceInfo
6
- } from "./chunk-NYL3M7GZ.js";
6
+ } from "./chunk-K25XOKDF.js";
7
7
  import {
8
8
  EXE_AI_DIR
9
9
  } from "./chunk-MMS2HBRT.js";