@askexenow/exe-os 0.9.372 → 0.9.374

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 (470) hide show
  1. package/deploy/compose/.env.customer.example +45 -10
  2. package/deploy/compose/.env.example +46 -9
  3. package/deploy/compose/docker-compose.yml +136 -18
  4. package/deploy/compose/generate-env.ts +142 -34
  5. package/deploy/compose/sso-edge/default.conf.template +78 -7
  6. package/deploy/compose/sso-edge/sso-redirect.conf +109 -13
  7. package/deploy/stack-manifests/v0.9.30-apps.json +1 -1
  8. package/deploy/stack-manifests/v0.9.json +4 -4
  9. package/dist/.dist-verified.json +3 -3
  10. package/dist/{active-agent-GRT5MKD5.js → active-agent-ONPPEWQV.js} +7 -6
  11. package/dist/{active-agent-L2ZSSXDK.js → active-agent-UJKMG7LJ.js} +7 -6
  12. package/dist/{agent-defs-generator-M4ZNYIVX.js → agent-defs-generator-ZWI6DXOE.js} +6 -5
  13. package/dist/{agent-loop-FOK2IRZQ.js → agent-loop-OYHJKNYH.js} +1 -1
  14. package/dist/{agentic-ontology-DMPRDEUX.js → agentic-ontology-WHFJ3QFS.js} +1 -1
  15. package/dist/{artifact-backup-767STHSW.js → artifact-backup-WXZNB7KE.js} +2 -1
  16. package/dist/{backfill-gate-VX2RZTQV.js → backfill-gate-KWJQ35YX.js} +3 -2
  17. package/dist/{backfill-metadata-ZMEHJQ5M.js → backfill-metadata-3OUSQD5V.js} +8 -7
  18. package/dist/{background-jobs-LTPWCMA3.js → background-jobs-6VMD55PK.js} +3 -2
  19. package/dist/{backup-verify-EX2K732J.js → backup-verify-ZKTUYLTA.js} +4 -3
  20. package/dist/{behavior-injection-22AGMS25.js → behavior-injection-M6UYZCMW.js} +17 -15
  21. package/dist/{behaviors-DVFXAWF5.js → behaviors-ZJ45TFBJ.js} +21 -13
  22. package/dist/bin/age-ontology-load.js +3 -2
  23. package/dist/bin/agentic-ontology-backfill.js +10 -9
  24. package/dist/bin/agentic-reflection-backfill.js +11 -10
  25. package/dist/bin/agentic-semantic-label.js +10 -9
  26. package/dist/bin/backfill-conversations.js +13 -11
  27. package/dist/bin/backfill-responses.js +13 -11
  28. package/dist/bin/backfill-vectors.js +17 -15
  29. package/dist/bin/bulk-sync-postgres.js +22 -20
  30. package/dist/bin/cc-doctor.js +10 -9
  31. package/dist/bin/cleanup-stale-review-tasks.js +29 -26
  32. package/dist/bin/cli.js +36 -26
  33. package/dist/bin/deferred-daemon-restart.js +114 -110
  34. package/dist/bin/exe-agent-config.js +6 -5
  35. package/dist/bin/exe-agent.js +127 -33
  36. package/dist/bin/exe-assign.js +15 -13
  37. package/dist/bin/exe-boot.js +57 -54
  38. package/dist/bin/exe-call.js +8 -7
  39. package/dist/bin/exe-cloud.js +24 -22
  40. package/dist/bin/exe-config-dump.js +6 -5
  41. package/dist/bin/exe-dispatch.js +30 -27
  42. package/dist/bin/exe-doctor.js +14 -10
  43. package/dist/bin/exe-export-behaviors.js +19 -17
  44. package/dist/bin/exe-forget.js +10 -9
  45. package/dist/bin/exe-gateway.js +199 -19
  46. package/dist/bin/exe-grant.js +5 -5
  47. package/dist/bin/exe-healthcheck.js +10 -9
  48. package/dist/bin/exe-heartbeat.js +35 -32
  49. package/dist/bin/exe-kill.js +34 -31
  50. package/dist/bin/exe-launch-agent.js +126 -54
  51. package/dist/bin/exe-mcp.js +6 -5
  52. package/dist/bin/exe-memory-reads.js +8 -7
  53. package/dist/bin/exe-new-employee.js +12 -11
  54. package/dist/bin/exe-os-mcp-proxy.js +6 -5
  55. package/dist/bin/exe-pending-messages.js +30 -27
  56. package/dist/bin/exe-pending-notifications.js +29 -26
  57. package/dist/bin/exe-pending-reviews.js +30 -27
  58. package/dist/bin/exe-rename.js +8 -7
  59. package/dist/bin/exe-repo-truth.js +1 -1
  60. package/dist/bin/exe-review.js +33 -30
  61. package/dist/bin/exe-search.js +9 -8
  62. package/dist/bin/exe-session-cleanup.js +35 -32
  63. package/dist/bin/exe-settings.js +24 -22
  64. package/dist/bin/exe-start-codex.js +137 -55
  65. package/dist/bin/exe-start-opencode.js +121 -23
  66. package/dist/bin/exe-status.js +31 -28
  67. package/dist/bin/exe-support.js +5 -4
  68. package/dist/bin/exe-team.js +7 -6
  69. package/dist/bin/exe-watchdog.js +31 -11
  70. package/dist/bin/generate-hook-manifest.js +44 -7
  71. package/dist/bin/git-sweep.js +31 -28
  72. package/dist/bin/graph-backfill.js +89 -35
  73. package/dist/bin/graph-export.js +9 -8
  74. package/dist/bin/import-history.js +14 -13
  75. package/dist/bin/install.js +137 -113
  76. package/dist/bin/intercom-check.js +5 -5
  77. package/dist/bin/mcp-sessions.js +2 -2
  78. package/dist/bin/orchestration-metrics.js +7 -6
  79. package/dist/bin/postgres-agentic-reflection-backfill.js +5 -4
  80. package/dist/bin/postgres-agentic-semantic-backfill.js +4 -3
  81. package/dist/bin/pre-publish.js +1 -1
  82. package/dist/bin/reconcile-backlog.js +2 -2
  83. package/dist/bin/registry-proxy.js +1 -1
  84. package/dist/bin/scan-tasks.js +29 -26
  85. package/dist/bin/setup.js +5 -4
  86. package/dist/bin/shard-migrate.js +9 -8
  87. package/dist/bin/stack-update.js +40 -9
  88. package/dist/bin/verify-stack.js +2 -2
  89. package/dist/bin/vps-health-gate.js +1 -1
  90. package/dist/{boot-generation-OHXH4YC5.js → boot-generation-JKVZ4ZAT.js} +6 -5
  91. package/dist/{boot-review-sections-N5IXIGSS.js → boot-review-sections-2M6BTG73.js} +28 -25
  92. package/dist/{branch-hygiene-KCGXRAWP.js → branch-hygiene-U5GFRSTP.js} +31 -7
  93. package/dist/{branding-GH43W3PU.js → branding-I6KIMB7F.js} +3 -2
  94. package/dist/budget-fallback-XJRPMP2D.js +11 -0
  95. package/dist/build-manifest.json +1318 -1233
  96. package/dist/{capability-cards-4PXVLIVS.js → capability-cards-5IMJT6J7.js} +5 -4
  97. package/dist/{capacity-monitor-FKMQXORX.js → capacity-monitor-SAXCQK7O.js} +30 -27
  98. package/dist/{catchup-brief-SN5EKO4N.js → catchup-brief-U2TXBLHD.js} +34 -31
  99. package/dist/{chunk-CNC57JCS.js → chunk-23MVDXLY.js} +4 -4
  100. package/dist/{chunk-V4XAKXXF.js → chunk-2AJGV5UL.js} +1 -1
  101. package/dist/{chunk-FBYAXTDM.js → chunk-2ZOEC4KC.js} +10 -2
  102. package/dist/{chunk-ELXFSIIM.js → chunk-32YV32VA.js} +2 -2
  103. package/dist/{chunk-44C7QNZS.js → chunk-3KDCORDO.js} +1 -1
  104. package/dist/{chunk-JTB5V6BV.js → chunk-3SXHEQ7X.js} +1 -1
  105. package/dist/{chunk-HDW4XPDV.js → chunk-3UUX5OY4.js} +1 -1
  106. package/dist/{chunk-7PSLK36P.js → chunk-44TLJZJ5.js} +1 -1
  107. package/dist/{chunk-JTWTBX2M.js → chunk-4EN3IZ3Q.js} +2 -1
  108. package/dist/{chunk-KPMC7PY7.js → chunk-4HKTO2SV.js} +1 -1
  109. package/dist/{chunk-CDUB5Q6J.js → chunk-4IK2K3B3.js} +1 -1
  110. package/dist/{chunk-GH6YJOOC.js → chunk-4SJ4LK4V.js} +6 -6
  111. package/dist/{chunk-PVEM537A.js → chunk-4YLBKEL5.js} +2 -2
  112. package/dist/chunk-4YNA3CM6.js +872 -0
  113. package/dist/{chunk-KYFFVTGO.js → chunk-55BEFF4V.js} +3 -3
  114. package/dist/{chunk-SEP5ITFQ.js → chunk-636LKCKE.js} +2 -2
  115. package/dist/{chunk-QTI4QAWA.js → chunk-6EZQUNE6.js} +338 -5
  116. package/dist/{chunk-WAEKYKTK.js → chunk-6RKKVPYF.js} +1 -1
  117. package/dist/{chunk-VX2F4ZUY.js → chunk-6SCGLHJ7.js} +3 -3
  118. package/dist/{chunk-MEGRQ53A.js → chunk-6VHOQ3IM.js} +51 -6
  119. package/dist/{chunk-HIIXCAEE.js → chunk-6YVUR3OU.js} +3 -3
  120. package/dist/{chunk-L6ZNURWN.js → chunk-7GE2EQ23.js} +1 -1
  121. package/dist/{chunk-2CWS374F.js → chunk-7RI2CNXJ.js} +1 -1
  122. package/dist/{chunk-OL3QP3AU.js → chunk-7TSBV3SD.js} +1 -1
  123. package/dist/{chunk-DSOQUQTV.js → chunk-A27Q27CT.js} +27 -0
  124. package/dist/{chunk-5AHRZI3R.js → chunk-AETLDRZB.js} +1 -1
  125. package/dist/{chunk-RNLF3CBB.js → chunk-AKLJ4JH3.js} +1 -1
  126. package/dist/{chunk-XHYHX6F7.js → chunk-AKLQSC6W.js} +329 -164
  127. package/dist/chunk-ANLFH23R.js +261 -0
  128. package/dist/{chunk-QLA3RTH4.js → chunk-AWWKRZMB.js} +5 -5
  129. package/dist/{chunk-ERVQTR7P.js → chunk-BBSIEYF5.js} +17 -3
  130. package/dist/{chunk-IPMUWYRQ.js → chunk-BJ7AVSY6.js} +2 -2
  131. package/dist/{chunk-HV6Y6F4X.js → chunk-C2L622QJ.js} +89 -3
  132. package/dist/{chunk-TX3Q2GIL.js → chunk-C5HUMAA7.js} +24 -1
  133. package/dist/{chunk-QTYJPWJN.js → chunk-CBCGDEJA.js} +7 -7
  134. package/dist/{chunk-XXSNLM6R.js → chunk-DB55JZHU.js} +1 -1
  135. package/dist/{chunk-LAZKEJMS.js → chunk-DIXXEE3S.js} +840 -607
  136. package/dist/{chunk-FB343XQX.js → chunk-DJ7YXOTU.js} +2 -2
  137. package/dist/{chunk-YFCNWQAM.js → chunk-DJOIMFKV.js} +2 -2
  138. package/dist/{chunk-UTDMTQNH.js → chunk-DSJI76XL.js} +92 -14
  139. package/dist/{chunk-EEXX4UMQ.js → chunk-DZKPOSFD.js} +1 -1
  140. package/dist/{chunk-WSOA3WMC.js → chunk-E426DOSY.js} +161 -4
  141. package/dist/{chunk-ZISQOOER.js → chunk-EKE37MO4.js} +3 -3
  142. package/dist/{chunk-RIECV7SR.js → chunk-EKYYMIVT.js} +1 -1
  143. package/dist/{chunk-HIVZ53YB.js → chunk-EXTZSNWL.js} +2 -2
  144. package/dist/{chunk-YYA5LXCT.js → chunk-FNEZ4BWT.js} +1 -1
  145. package/dist/chunk-FTZET5YX.js +313 -0
  146. package/dist/chunk-GHR4ZPJ7.js +70 -0
  147. package/dist/{chunk-MINXPXAB.js → chunk-GJI77VDO.js} +3 -3
  148. package/dist/{chunk-AAMGHW5W.js → chunk-GLQEJOXE.js} +1 -0
  149. package/dist/{chunk-ADNBOKYZ.js → chunk-GM7TLYOK.js} +60 -18
  150. package/dist/{chunk-RUWWES2K.js → chunk-GNUAL43X.js} +2 -2
  151. package/dist/{chunk-QZL6E4UB.js → chunk-GOMQ7PVQ.js} +2 -2
  152. package/dist/{chunk-GB3AHV5F.js → chunk-GQOEWNVM.js} +1 -1
  153. package/dist/{chunk-NQZUSEAR.js → chunk-GS7LIT34.js} +246 -17
  154. package/dist/{chunk-XTWHNLGD.js → chunk-GZOG2MAX.js} +1 -1
  155. package/dist/{chunk-E5HAY3DQ.js → chunk-HDLAB7W3.js} +1 -1
  156. package/dist/{chunk-E5QQZDQN.js → chunk-HNWS7YHN.js} +358 -136
  157. package/dist/{chunk-VV5EZZNT.js → chunk-HTBEVCO2.js} +1 -1
  158. package/dist/{chunk-OZBII5E3.js → chunk-I4DNJFDR.js} +4 -4
  159. package/dist/{chunk-SI5SZAJA.js → chunk-IBS2FAI4.js} +21 -4
  160. package/dist/{chunk-J5EYOBFF.js → chunk-IHXW4VUI.js} +1 -1
  161. package/dist/{chunk-RUVO3NJC.js → chunk-IN6CAM4F.js} +9 -3
  162. package/dist/{chunk-53PYNYTW.js → chunk-IRVOXUSK.js} +5 -5
  163. package/dist/{chunk-THM7J6UI.js → chunk-JHI5WMK5.js} +5 -5
  164. package/dist/{chunk-3KTQWMHI.js → chunk-JSMDRKPJ.js} +12 -4
  165. package/dist/chunk-JTVIANUB.js +131 -0
  166. package/dist/{chunk-2ADYTOHQ.js → chunk-K4ESASPL.js} +1 -1
  167. package/dist/{chunk-YWUQVHDL.js → chunk-KTCXJWJG.js} +1 -1
  168. package/dist/{chunk-RGUDGC6A.js → chunk-KTU3EAWK.js} +5 -5
  169. package/dist/{chunk-DKBPCOU4.js → chunk-L6RXG36J.js} +2 -2
  170. package/dist/{chunk-T4EK56WI.js → chunk-LDNYSMPZ.js} +1 -1
  171. package/dist/{chunk-RIK5GRWI.js → chunk-LGS2V2XD.js} +3 -3
  172. package/dist/{chunk-JKXZGRWR.js → chunk-LP4GB656.js} +2 -2
  173. package/dist/{chunk-H74466TM.js → chunk-M7O7TGGU.js} +1 -1
  174. package/dist/chunk-MJCSEIFI.js +54 -0
  175. package/dist/{chunk-IDZPQG2D.js → chunk-MOGA4Q7F.js} +2 -2
  176. package/dist/{chunk-OYQNNKNS.js → chunk-MXPNVSXI.js} +37 -14
  177. package/dist/{chunk-UVW7YFAF.js → chunk-N7VEP5B3.js} +4 -4
  178. package/dist/{chunk-HHE2HV3V.js → chunk-NBXDXKLC.js} +1 -1
  179. package/dist/{chunk-LDL3S7AC.js → chunk-NKETJCB5.js} +7 -3
  180. package/dist/{chunk-ECHLVLA7.js → chunk-NMH5ZQPU.js} +1 -1
  181. package/dist/{chunk-U3XLRMJD.js → chunk-NT7W4RXD.js} +1 -1
  182. package/dist/{chunk-UQUUNGTP.js → chunk-NUK7EEN5.js} +11 -9
  183. package/dist/{chunk-GBNB4EWD.js → chunk-ORM7ZFKC.js} +16 -0
  184. package/dist/{chunk-O4ZFRK6W.js → chunk-OVEQE6YS.js} +244 -49
  185. package/dist/{chunk-4ZJ5BPY6.js → chunk-PB5S7YOF.js} +2 -2
  186. package/dist/{chunk-JR23BL74.js → chunk-PDVXWXTL.js} +4 -4
  187. package/dist/{chunk-3CIMDFXG.js → chunk-PFQ3VEEM.js} +1 -1
  188. package/dist/{chunk-SBJV2PCU.js → chunk-PHBU4LGO.js} +1 -1
  189. package/dist/{chunk-W25RLOQ2.js → chunk-PLZSZOZN.js} +3 -3
  190. package/dist/{chunk-THIJIOE2.js → chunk-PY3FOMRN.js} +18 -6
  191. package/dist/{chunk-AAUWFXOX.js → chunk-Q3AXXKDF.js} +3 -3
  192. package/dist/{chunk-VKXS2YGN.js → chunk-QHJR7IMX.js} +2 -2
  193. package/dist/chunk-QLZ46RCK.js +45 -0
  194. package/dist/{chunk-UHPMK6QZ.js → chunk-R3CZWFFC.js} +10 -2
  195. package/dist/{chunk-6XEYELCA.js → chunk-R4CBHKZ2.js} +1 -1
  196. package/dist/{chunk-5APCDDJZ.js → chunk-R522MWAR.js} +9 -9
  197. package/dist/chunk-RH4AH3YB.js +80 -0
  198. package/dist/{chunk-AMKSDKMK.js → chunk-S2WBS6BG.js} +22 -35
  199. package/dist/{chunk-WUKQVNLP.js → chunk-SEQIPGLU.js} +1 -1
  200. package/dist/{chunk-7WQRFSZI.js → chunk-SL6KQYDU.js} +26 -6
  201. package/dist/chunk-SLLLOOEI.js +103 -0
  202. package/dist/{chunk-5N4SG5NB.js → chunk-T35RCQFE.js} +3 -3
  203. package/dist/{chunk-7V6M3QUS.js → chunk-T3QUKNLI.js} +1 -1
  204. package/dist/{chunk-CW2UCKHS.js → chunk-TADAO3HV.js} +2 -2
  205. package/dist/{chunk-5DCCKHDY.js → chunk-TAMDAOCU.js} +109 -13
  206. package/dist/{chunk-ZXB56YR2.js → chunk-TFKCERAK.js} +101 -23
  207. package/dist/{chunk-RBYHJDAT.js → chunk-TQAZTRQ3.js} +3 -3
  208. package/dist/{chunk-OKGIOWOB.js → chunk-U6SUKSZR.js} +2 -2
  209. package/dist/{chunk-23QKEUF6.js → chunk-U73AC5AN.js} +34 -12
  210. package/dist/{chunk-PM6WSWVU.js → chunk-UBK7HK3J.js} +3 -3
  211. package/dist/{chunk-H37FSTF2.js → chunk-UBMZ3YQU.js} +1 -1
  212. package/dist/{chunk-JJUGI2YL.js → chunk-UCFC2AEI.js} +1 -1
  213. package/dist/{chunk-6IWLAQ7O.js → chunk-UCUOGVDX.js} +4 -0
  214. package/dist/{chunk-E7UCDSUE.js → chunk-UKLN57Q5.js} +2 -2
  215. package/dist/{chunk-ZYCLSEZT.js → chunk-ULIBLJ6W.js} +33 -11
  216. package/dist/{chunk-RLR6VVKV.js → chunk-UM3N6VND.js} +4 -4
  217. package/dist/{chunk-ZNUJFX7L.js → chunk-UQGSBM3U.js} +1 -1
  218. package/dist/{chunk-ZZXMB5F2.js → chunk-UZDF6FLJ.js} +1 -1
  219. package/dist/{chunk-LNOS24GV.js → chunk-V3WLC5TJ.js} +2 -95
  220. package/dist/{chunk-UXLO7VHX.js → chunk-VI4ATC6I.js} +1 -1
  221. package/dist/{chunk-77JP3LK4.js → chunk-VKJGHAZT.js} +92 -21
  222. package/dist/{chunk-7R73IAHU.js → chunk-VMTZ4RUW.js} +67 -150
  223. package/dist/{chunk-TGPQMMQP.js → chunk-VYQ7B7DI.js} +30 -17
  224. package/dist/{chunk-E2WEFZOR.js → chunk-W75GTHR3.js} +1 -1
  225. package/dist/{chunk-UKLF7F3Z.js → chunk-WJG344NC.js} +9 -9
  226. package/dist/{chunk-MBNIJXKI.js → chunk-WMEYJT4R.js} +18 -4
  227. package/dist/{chunk-R6FLELV6.js → chunk-XFTEX77S.js} +3 -3
  228. package/dist/{chunk-MDGYXUOV.js → chunk-XH7YL7JM.js} +1 -1
  229. package/dist/{chunk-JOO35RHR.js → chunk-XL5MFGMR.js} +3 -3
  230. package/dist/{chunk-OW5RZIDW.js → chunk-XNNECNDL.js} +95 -33
  231. package/dist/{chunk-5AHDQCTB.js → chunk-XXFKSJYA.js} +6 -6
  232. package/dist/{chunk-TGEPLJ66.js → chunk-XXOPG4BW.js} +3 -3
  233. package/dist/{chunk-PGLPUP37.js → chunk-XZ65ST2I.js} +1 -1
  234. package/dist/{chunk-3TTKAT6V.js → chunk-YKC7QDZH.js} +9 -4
  235. package/dist/{chunk-KXYFBBZR.js → chunk-YMP2QSOP.js} +20 -3
  236. package/dist/{chunk-TK4MI6F6.js → chunk-YSLGFPWX.js} +6 -6
  237. package/dist/{chunk-X2P43TB2.js → chunk-YTSXPJUQ.js} +1 -1
  238. package/dist/{chunk-HECXZGGZ.js → chunk-ZCERWHY2.js} +33 -35
  239. package/dist/{chunk-IVU3WN7S.js → chunk-ZG62LIK3.js} +74 -4
  240. package/dist/{chunk-GU62SNDH.js → chunk-ZGYNKA3O.js} +744 -111
  241. package/dist/{chunk-QMSEL5YS.js → chunk-ZIG7VPJV.js} +28 -76
  242. package/dist/{chunk-WZJVGA5I.js → chunk-ZL4AGWAH.js} +258 -13
  243. package/dist/{chunk-QR624DER.js → chunk-ZSODLMFV.js} +2 -2
  244. package/dist/{cleanup-graph-garbage-IPYDS5OX.js → cleanup-graph-garbage-DPJGO52H.js} +11 -10
  245. package/dist/{cloud-sync-command-JLNVG7H4.js → cloud-sync-command-JPNTT4OQ.js} +2 -2
  246. package/dist/{cloud-sync-db-init-JXUF6GI3.js → cloud-sync-db-init-V2LWIUQU.js} +1 -1
  247. package/dist/{cloud-sync-shutdown-Z4SBP6PL.js → cloud-sync-shutdown-BNALPWGX.js} +5 -4
  248. package/dist/{co-activation-74RDFTKS.js → co-activation-CMNSWS6B.js} +5 -4
  249. package/dist/{co-occurrence-CN3TBYVR.js → co-occurrence-WRI2NAN6.js} +9 -8
  250. package/dist/{code-context-index-D4MJ4VFX.js → code-context-index-NOJSHLPN.js} +12 -6
  251. package/dist/code-context-watcher-VZNZU3BO.js +118 -0
  252. package/dist/{codex-consolidation-PPXNBXCV.js → codex-consolidation-SH4UKFBQ.js} +2 -1
  253. package/dist/{conversation-entity-extractor-QGTLH4BP.js → conversation-entity-extractor-74252CAO.js} +4 -4
  254. package/dist/{conversation-wiki-populator-EBUZXYEU.js → conversation-wiki-populator-OS4C6W54.js} +1 -1
  255. package/dist/conversations-retention-C4BLKFEL.js +54 -0
  256. package/dist/coordinator-notice-MHUY7AQB.js +55 -0
  257. package/dist/{crdt-sync-7T4WCOKD.js → crdt-sync-B3JN6AIV.js} +1 -1
  258. package/dist/{crm-webhook-FTW3XZTO.js → crm-webhook-GYWQRFET.js} +2 -2
  259. package/dist/{cto-delegation-gate-SZCE34LB.js → cto-delegation-gate-LQHVLEMW.js} +29 -26
  260. package/dist/{daemon-auth-SSPY5ODS.js → daemon-auth-QZHEO7IQ.js} +3 -2
  261. package/dist/{daemon-orchestration-IGPHVNFR.js → daemon-orchestration-5HIQALZH.js} +36 -34
  262. package/dist/{daemon-ready-OT2VQLS7.js → daemon-ready-P2BR2XP5.js} +1 -1
  263. package/dist/{db-integrity-events-5DTASXJF.js → db-integrity-events-2DTFO37N.js} +3 -2
  264. package/dist/{db-restore-events-2FI4ZMKA.js → db-restore-events-G6NOQOVE.js} +2 -1
  265. package/dist/{destructive-data-guard-6I5MDFVD.js → destructive-data-guard-BVFWPPIS.js} +1 -1
  266. package/dist/doc-graph-extractor-PQHDHQPQ.js +367 -0
  267. package/dist/{documents-URULIXGM.js → documents-C4SSPJMC.js} +15 -13
  268. package/dist/{dreaming-VIZO3QDO.js → dreaming-XAO3FCBV.js} +33 -30
  269. package/dist/{employee-boot-brief-XLOG4ULP.js → employee-boot-brief-W4OHUMRQ.js} +37 -34
  270. package/dist/{exe-drift-TLQM3IHD.js → exe-drift-AG2KMKD5.js} +6 -5
  271. package/dist/{exe-export-7YWYWJHY.js → exe-export-IC5BT335.js} +17 -15
  272. package/dist/{exe-import-DW6VAUKW.js → exe-import-A35ZLDPG.js} +17 -15
  273. package/dist/{exe-key-TLJP2B4Y.js → exe-key-TCMJNYLA.js} +116 -112
  274. package/dist/{exe-org-LU46N36E.js → exe-org-JXCR3JYZ.js} +24 -23
  275. package/dist/{exe-snapshot-QHUZRS62.js → exe-snapshot-SV6SRIG6.js} +36 -33
  276. package/dist/{fast-db-init-SCTOOIUT.js → fast-db-init-L2RGKJWH.js} +1 -1
  277. package/dist/{founder-context-ZFZC4UHO.js → founder-context-D4HFIESJ.js} +4 -3
  278. package/dist/{founder-monitor-envelope-5KTKNL5G.js → founder-monitor-envelope-TFKRGCFE.js} +5 -4
  279. package/dist/{fts-integrity-LKAZEZJE.js → fts-integrity-4YB34KWX.js} +3 -2
  280. package/dist/gateway/index.js +19 -17
  281. package/dist/{git-main-guard-TN27QBAI.js → git-main-guard-VTW4N3CM.js} +7 -1
  282. package/dist/{git-staleness-GSGP344N.js → git-staleness-TN7CYGFG.js} +5 -4
  283. package/dist/{global-procedures-YAR7G4C6.js → global-procedures-YFDEIOG7.js} +7 -6
  284. package/dist/{graph-auto-extract-GNQS64F5.js → graph-auto-extract-3YR3TYRW.js} +9 -8
  285. package/dist/{graph-rag-RMSFLUOB.js → graph-rag-Z2KCJTPK.js} +6 -4
  286. package/dist/{hook-integrity-CF567MVN.js → hook-integrity-KGAV6ZC2.js} +14 -4
  287. package/dist/{hook-prefetch-36BK4F7U.js → hook-prefetch-K5DN3TOQ.js} +29 -26
  288. package/dist/hooks/bug-report-worker.js +34 -30
  289. package/dist/hooks/codex-stop-task-finalizer.js +36 -32
  290. package/dist/hooks/commit-complete.js +33 -30
  291. package/dist/hooks/error-recall.js +12 -11
  292. package/dist/hooks/exe-heartbeat-hook.js +8 -7
  293. package/dist/hooks/ingest-worker.js +23 -11
  294. package/dist/hooks/ingest.js +18 -17
  295. package/dist/hooks/instructions-loaded.js +10 -9
  296. package/dist/hooks/manifest.json +20 -20
  297. package/dist/hooks/notification.js +9 -8
  298. package/dist/hooks/post-compact.js +8 -7
  299. package/dist/hooks/post-tool-combined.js +26 -15
  300. package/dist/hooks/pre-compact.js +33 -30
  301. package/dist/hooks/pre-tool-use.js +404 -46
  302. package/dist/hooks/prompt-submit.js +57 -47
  303. package/dist/hooks/session-end.js +40 -41
  304. package/dist/hooks/session-start.js +21 -20
  305. package/dist/hooks/stop.js +40 -37
  306. package/dist/hooks/subagent-stop.js +38 -35
  307. package/dist/hooks/summary-worker.js +39 -36
  308. package/dist/hyde-MP4QNMU5.js +80 -0
  309. package/dist/index.js +44 -39
  310. package/dist/{installer-LUN4HQIC.js → installer-54HTN5RE.js} +8 -7
  311. package/dist/{installer-OC5VXNC7.js → installer-LK35OX6R.js} +8 -7
  312. package/dist/{installer-MPRFUQJE.js → installer-LLWKZI2S.js} +8 -7
  313. package/dist/intercom-ack-VCW755TN.js +13 -0
  314. package/dist/{intercom-queue-6DZ7BANV.js → intercom-queue-5NOT2RKI.js} +28 -25
  315. package/dist/{key-backup-status-6L2ARCXW.js → key-backup-status-LQPINQ3W.js} +2 -1
  316. package/dist/lib/agent-config.js +3 -2
  317. package/dist/lib/cloud-sync.js +26 -20
  318. package/dist/lib/config.js +2 -1
  319. package/dist/lib/consolidation.js +17 -10
  320. package/dist/lib/database.js +7 -4
  321. package/dist/lib/db-backup.js +17 -2
  322. package/dist/lib/db-daemon-client.js +8 -6
  323. package/dist/lib/db-write-worker-client.js +3 -1
  324. package/dist/lib/db-write-worker.js +20 -3
  325. package/dist/lib/db.js +7 -4
  326. package/dist/lib/device-registry.js +3 -2
  327. package/dist/lib/embed-worker.js +2 -1
  328. package/dist/lib/embedder.js +8 -6
  329. package/dist/lib/employee-templates.js +8 -7
  330. package/dist/lib/employees.js +5 -4
  331. package/dist/lib/exe-daemon-client.js +7 -5
  332. package/dist/lib/exe-daemon.js +467 -221
  333. package/dist/lib/hybrid-search.js +11 -8
  334. package/dist/lib/identity.js +5 -4
  335. package/dist/lib/license.js +4 -3
  336. package/dist/lib/messaging.js +29 -26
  337. package/dist/lib/post-tool-memory.js +16 -2
  338. package/dist/lib/registry-proxy.js +3 -1
  339. package/dist/lib/reminders.js +6 -5
  340. package/dist/lib/schedules.js +9 -8
  341. package/dist/lib/session-registry.js +7 -6
  342. package/dist/lib/skill-learning.js +16 -14
  343. package/dist/lib/stack-invariants.js +17 -1
  344. package/dist/lib/status-brief.js +5 -4
  345. package/dist/lib/store.js +10 -7
  346. package/dist/lib/task-router.js +6 -5
  347. package/dist/lib/tasks.js +31 -27
  348. package/dist/lib/tmux-routing.js +40 -25
  349. package/dist/lib/tmux-status.js +3 -1
  350. package/dist/lib/tmux-transport.js +2 -1
  351. package/dist/lib/token-spend.js +6 -5
  352. package/dist/lib/transport.js +3 -2
  353. package/dist/{license-gate-ESER24PJ.js → license-gate-JVMB6OFD.js} +5 -4
  354. package/dist/{license-sync-JVG5KNIY.js → license-sync-5VYS2F2W.js} +4 -3
  355. package/dist/mcp/register-tools.js +113 -109
  356. package/dist/mcp/server.js +118 -114
  357. package/dist/mcp/tools/complete-reminder.js +7 -6
  358. package/dist/mcp/tools/create-reminder.js +7 -6
  359. package/dist/mcp/tools/create-task.js +34 -30
  360. package/dist/mcp/tools/deactivate-behavior.js +18 -16
  361. package/dist/mcp/tools/list-reminders.js +7 -6
  362. package/dist/mcp/tools/list-tasks.js +34 -30
  363. package/dist/mcp/tools/send-message.js +32 -29
  364. package/dist/mcp/tools/update-task.js +32 -28
  365. package/dist/mcp-child-registry-OTG4MWO7.js +25 -0
  366. package/dist/{mcp-http-config-6K6IKH5F.js → mcp-http-config-DQWL7U2Z.js} +6 -5
  367. package/dist/{mcp-session-identity-LRC6WJSD.js → mcp-session-identity-277GASTQ.js} +28 -25
  368. package/dist/{memory-cards-V3OZHIYP.js → memory-cards-3S2ZQPR7.js} +17 -8
  369. package/dist/{memory-graph-extractor-JC2Z64L4.js → memory-graph-extractor-A6DFEFIN.js} +10 -9
  370. package/dist/{memory-poisoning-defense-YM4QJHCX.js → memory-poisoning-defense-ZVP4H6DY.js} +5 -4
  371. package/dist/{memory-pressure-watchdog-6F6KEQHN.js → memory-pressure-watchdog-6W5F6R7H.js} +29 -26
  372. package/dist/{memory-queue-QJNWKWKG.js → memory-queue-YF7IDSFY.js} +3 -2
  373. package/dist/{memory-queue-client-COA4ABEV.js → memory-queue-client-ADSDP6OX.js} +9 -7
  374. package/dist/{memory-reflection-QXHJPYPC.js → memory-reflection-BKB2YOE6.js} +52 -6
  375. package/dist/{monitor-grants-BW2WL4IU.js → monitor-grants-EV747HMW.js} +4 -3
  376. package/dist/{notification-ledger-6QRLQW4Q.js → notification-ledger-CLGM7ODF.js} +30 -27
  377. package/dist/{notifications-7B6D7Y5C.js → notifications-MACUZPYP.js} +28 -25
  378. package/dist/{oauth-server-TZFNQAFS.js → oauth-server-AYM37SQ4.js} +25 -4
  379. package/dist/{orchestration-events-GY5VP5LU.js → orchestration-events-N7LYMUGA.js} +6 -5
  380. package/dist/{orchestration-phase-UDS24CVQ.js → orchestration-phase-T2WD45UA.js} +3 -2
  381. package/dist/{orchestrator-JVPVOYWA.js → orchestrator-4X24EWHV.js} +30 -27
  382. package/dist/{org-brief-session-GRV5R5E3.js → org-brief-session-FZOFMO5U.js} +13 -12
  383. package/dist/{org-consent-policy-3FHHSYXV.js → org-consent-policy-O5E6HXBL.js} +1 -1
  384. package/dist/{org-join-BY4PV6UO.js → org-join-POWUG25F.js} +8 -7
  385. package/dist/{org-key-admin-WSCPT2CZ.js → org-key-admin-E7EMDOZZ.js} +9 -8
  386. package/dist/{org-key-pin-5WUSPGVN.js → org-key-pin-WHWHVWUO.js} +4 -3
  387. package/dist/{org-membership-ESALTLLN.js → org-membership-WRT2IHJK.js} +5 -4
  388. package/dist/{org-partner-config-YKHPDPZR.js → org-partner-config-B7T4CL2T.js} +7 -6
  389. package/dist/{org-partner-runtime-UJDGECZ4.js → org-partner-runtime-FODONVTM.js} +13 -12
  390. package/dist/{org-row-visibility-V5DXIHTE.js → org-row-visibility-VX4AVV5Q.js} +1 -1
  391. package/dist/{pipeline-router-YY5FQKTY.js → pipeline-router-6GGT2ZW3.js} +6 -5
  392. package/dist/{plan-limits-OVX6SN6B.js → plan-limits-FUN76LYY.js} +8 -7
  393. package/dist/{platform-procedures-I57ITMDC.js → platform-procedures-7YSCLF4Z.js} +1 -1
  394. package/dist/{postinstall-failure-B2JHNFPM.js → postinstall-failure-O6TSSNJB.js} +3 -2
  395. package/dist/{project-boot-LXLU2J32.js → project-boot-3Q65LCIP.js} +2 -1
  396. package/dist/project-name-LJVFMYTQ.js +30 -0
  397. package/dist/{projection-worker-D2472IOD.js → projection-worker-4OANGP5K.js} +5 -4
  398. package/dist/{prospective-memory-JXO2A6PL.js → prospective-memory-KR3P4T6N.js} +5 -4
  399. package/dist/{push-notifications-HR3FZRDI.js → push-notifications-NCZLH6DI.js} +29 -26
  400. package/dist/ref-provenance-gate-M4AQO4OT.js +269 -0
  401. package/dist/{reproject-worktree-memories-OSS3PGRF.js → reproject-worktree-memories-PWYKPB2U.js} +106 -23
  402. package/dist/{reranker-IMZRPYJ2.js → reranker-6V3C2AO4.js} +3 -2
  403. package/dist/resolve-image-labels-ZI6UBW5W.js +15 -0
  404. package/dist/{retrieval-health-W7OD44FE.js → retrieval-health-5D7O6VH6.js} +4 -3
  405. package/dist/{review-polling-2INP7H6M.js → review-polling-QW3LJ4KN.js} +29 -26
  406. package/dist/runtime/index.js +38 -34
  407. package/dist/{session-events-G4XUPVWV.js → session-events-T45SSTMF.js} +31 -26
  408. package/dist/{session-kill-telemetry-W7MHWJTQ.js → session-kill-telemetry-QSPVJGBF.js} +29 -26
  409. package/dist/{session-mcp-config-F7KATWOF.js → session-mcp-config-SC5BLWZG.js} +3 -2
  410. package/dist/{session-scope-LG2J4EMQ.js → session-scope-KRWE54C4.js} +28 -25
  411. package/dist/{setup-wizard-YQJI3SVM.js → setup-wizard-GP3TBTPF.js} +5 -4
  412. package/dist/{shard-manager-UROHZE46.js → shard-manager-OE36A4MY.js} +3 -2
  413. package/dist/{skill-refinement-RA37U756.js → skill-refinement-C7JTMLJG.js} +6 -5
  414. package/dist/stack-generate-manifest-MFMDWRUP.js +810 -0
  415. package/dist/{stack-promote-IYBRXHTA.js → stack-promote-EKSCYY63.js} +8 -6
  416. package/dist/{stack-release-OXWLVVG6.js → stack-release-2GZAAFO4.js} +8 -6
  417. package/dist/{stack-update-2CZEROPK.js → stack-update-J6JXSTAZ.js} +51 -5
  418. package/dist/{steward-gate-LTNFB3FY.js → steward-gate-BFCCMCSW.js} +6 -5
  419. package/dist/{subagent-brief-injection-OHLWLECQ.js → subagent-brief-injection-ED36PLYY.js} +44 -36
  420. package/dist/{subagent-spawn-ledger-USYZXU3M.js → subagent-spawn-ledger-E6U3OY6Z.js} +3 -2
  421. package/dist/{supervisor-handoff-CSJQMI53.js → supervisor-handoff-SGLEPOCY.js} +12 -3
  422. package/dist/{support-inbox-4KCEPAZQ.js → support-inbox-YW47SYJF.js} +20 -5
  423. package/dist/{task-enforcement-LGXWXGVZ.js → task-enforcement-CECTQX4U.js} +29 -26
  424. package/dist/{task-request-inbox-WHCOSUCP.js → task-request-inbox-Q5T4N5K7.js} +1 -1
  425. package/dist/{task-scope-KXF7Y6KA.js → task-scope-ERVEUEYU.js} +28 -25
  426. package/dist/{tasks-crud-5EM55WRZ.js → tasks-crud-ZRQNJXQ2.js} +28 -25
  427. package/dist/{tasks-notify-VFMAURTN.js → tasks-notify-MIZH4C2O.js} +29 -26
  428. package/dist/{tasks-review-MHGMBHUZ.js → tasks-review-Z7J2P6DG.js} +28 -25
  429. package/dist/{telemetry-upload-6NRTN7QJ.js → telemetry-upload-LVQUQYFP.js} +10 -9
  430. package/dist/{token-budget-LZPOYTRP.js → token-budget-BU4NOVZF.js} +6 -5
  431. package/dist/{tool-capability-index-ED5OAPMW.js → tool-capability-index-7F42MOJT.js} +1 -1
  432. package/dist/{tool-gates-7PLIOLAL.js → tool-gates-JWVSAYTW.js} +1 -1
  433. package/dist/{tool-gates-2OZY3GZM.js → tool-gates-VXITVRFQ.js} +1 -1
  434. package/dist/{tool-telemetry-ZX7VSAXK.js → tool-telemetry-O27EVMBR.js} +1 -1
  435. package/dist/tui/App.js +43 -40
  436. package/dist/{tui-data-CC5POSUV.js → tui-data-TPWWBIUQ.js} +28 -25
  437. package/dist/{update-support-KH6NSQON.js → update-support-F2F5537B.js} +22 -20
  438. package/dist/{whatsapp-QW3X7OCN.js → whatsapp-YM4A2CSK.js} +3 -1
  439. package/dist/{work-claims-MNK7PEPW.js → work-claims-B73X5NE7.js} +6 -5
  440. package/dist/{work-state-heartbeat-YEWT5NMZ.js → work-state-heartbeat-P4YX6E2R.js} +1 -1
  441. package/dist/{worker-gate-BOQSIU2Z.js → worker-gate-BEEIIVWA.js} +3 -2
  442. package/dist/{workflow-engine-MUUD7ZEX.js → workflow-engine-5X46PFCW.js} +4 -2
  443. package/dist/{worktree-GOGT2LZP.js → worktree-W47CIMJ6.js} +9 -6
  444. package/dist/worktree-ownership-guard-OUWJROW2.js +88 -0
  445. package/dist/{worktree-sweep-46VWPVQT.js → worktree-sweep-BNBD4RFX.js} +8 -7
  446. package/package.json +14 -5
  447. package/release-notes.json +5 -5
  448. package/src/commands/exe/call.md +1 -1
  449. package/stack.release.json +6 -0
  450. package/dist/chunk-KZXMP6JG.js +0 -319
  451. package/dist/chunk-TCTED52S.js +0 -120
  452. package/dist/chunk-W2IRQJ6R.js +0 -67
  453. package/dist/doc-graph-extractor-VPTRIEKN.js +0 -149
  454. package/dist/project-name-ILJTETUE.js +0 -14
  455. /package/dist/{chunk-3Y5THOU6.js → chunk-6WIFPD2P.js} +0 -0
  456. /package/dist/{chunk-7XGXRD22.js → chunk-AISULNGL.js} +0 -0
  457. /package/dist/{chunk-3F2UB4IQ.js → chunk-DN4YVV4Z.js} +0 -0
  458. /package/dist/{chunk-WV3TOOL7.js → chunk-KQ6RJWRW.js} +0 -0
  459. /package/dist/{chunk-HR2R2QER.js → chunk-M4IRPXSZ.js} +0 -0
  460. /package/dist/{chunk-ORA5BWCV.js → chunk-NRG7KZIP.js} +0 -0
  461. /package/dist/{chunk-7UTJA6HF.js → chunk-VZAFWPAY.js} +0 -0
  462. /package/dist/{chunk-VJSDGDNS.js → chunk-WSQASFLP.js} +0 -0
  463. /package/dist/{chunk-FZQWVQJG.js → chunk-YO4BO2CL.js} +0 -0
  464. /package/dist/{core-memory-6WBNT2HL.js → core-memory-7I7RE2SJ.js} +0 -0
  465. /package/dist/{entity-boost-MT336PI3.js → entity-boost-3UWGXG5O.js} +0 -0
  466. /package/dist/{memory-isolation-EJ45IXBH.js → memory-isolation-2TUZ7Z4K.js} +0 -0
  467. /package/dist/{message-queue-client-MVBTYCSV.js → message-queue-client-XQN7QABL.js} +0 -0
  468. /package/dist/{webhook-pipe-UQSEHFPO.js → webhook-pipe-W2FVXY7M.js} +0 -0
  469. /package/dist/{wiki-acl-WXRJGZ5Q.js → wiki-acl-IBQLLBTS.js} +0 -0
  470. /package/dist/{wiki-client-AXNM5FWY.js → wiki-client-W65IOSWF.js} +0 -0
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  retryOnDaemonTransportError
3
- } from "./chunk-PGLPUP37.js";
3
+ } from "./chunk-XZ65ST2I.js";
4
4
  import {
5
5
  vectorToSqlLiteral
6
- } from "./chunk-OYQNNKNS.js";
6
+ } from "./chunk-MXPNVSXI.js";
7
7
  import {
8
8
  blobToVector
9
9
  } from "./chunk-OTVEIJUQ.js";
10
10
  import {
11
11
  getClient
12
- } from "./chunk-5DCCKHDY.js";
12
+ } from "./chunk-TAMDAOCU.js";
13
13
 
14
14
  // src/lib/behaviors.ts
15
15
  import crypto from "crypto";
@@ -23,6 +23,14 @@ function isGhostBehaviorRow(row) {
23
23
  if (content === "(empty)" && agent === "unknown") return true;
24
24
  return false;
25
25
  }
26
+ var BEHAVIOR_CONTENT_MAX_LENGTH = 500;
27
+ function behaviorContentOverCapMessage(actualLength) {
28
+ return `Behavior content is ${actualLength} characters; the maximum is ${BEHAVIOR_CONTENT_MAX_LENGTH}. Behaviors are injected verbatim into agent context at boot \u2014 split this into separate, single-sentence behaviors.`;
29
+ }
30
+ var TOOL_FRAMING_TAG_RE = /<\/?(?:invoke|parameter|content|function_calls)\b[^>]*>/gi;
31
+ function sanitizeBehaviorContent(content) {
32
+ return content.replace(TOOL_FRAMING_TAG_RE, " ").replace(/\s{2,}/g, " ").trim();
33
+ }
26
34
  function formatReflexContent(trigger, action) {
27
35
  return `\u26A1 REFLEX: When ${trigger} \u2192 ${action}. Decide whether to act.`;
28
36
  }
@@ -42,12 +50,15 @@ async function storeReflexBehavior(opts) {
42
50
  });
43
51
  }
44
52
  async function storeBehavior(opts) {
45
- const trimmedContent = (opts.content ?? "").trim();
53
+ const trimmedContent = sanitizeBehaviorContent(opts.content ?? "");
46
54
  if (trimmedContent.length === 0) {
47
55
  throw new Error(
48
56
  "[behaviors] Refusing to store a behavior with empty content (ghost-row guard)."
49
57
  );
50
58
  }
59
+ if (trimmedContent.length > BEHAVIOR_CONTENT_MAX_LENGTH) {
60
+ throw new Error(`[behaviors] ${behaviorContentOverCapMessage(trimmedContent.length)}`);
61
+ }
51
62
  const trimmedAgent = (opts.agentId ?? "").trim();
52
63
  if (trimmedAgent.length === 0) {
53
64
  throw new Error(
@@ -352,6 +363,9 @@ async function reactivateBehavior(id) {
352
363
  export {
353
364
  GHOST_BEHAVIOR_SQL,
354
365
  isGhostBehaviorRow,
366
+ BEHAVIOR_CONTENT_MAX_LENGTH,
367
+ behaviorContentOverCapMessage,
368
+ sanitizeBehaviorContent,
355
369
  formatReflexContent,
356
370
  isReflexBehavior,
357
371
  storeReflexBehavior,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  NO_DB_INTEGRITY_EVENTS
3
- } from "./chunk-ZNUJFX7L.js";
3
+ } from "./chunk-UQGSBM3U.js";
4
4
  import {
5
5
  resolveAnthropicAuth
6
6
  } from "./chunk-VGMACSEV.js";
@@ -92,13 +92,13 @@ async function getRetrievalHealth() {
92
92
  const coveragePct = totalMemories > 0 ? Math.round(memoriesWithVectors / totalMemories * 100) : null;
93
93
  let dbRestore = { hasEvents: false, count: 0, last: null, quarantineFiles: 0 };
94
94
  try {
95
- const { getDbRestoreHealth } = await import("./db-restore-events-2FI4ZMKA.js");
95
+ const { getDbRestoreHealth } = await import("./db-restore-events-G6NOQOVE.js");
96
96
  dbRestore = getDbRestoreHealth();
97
97
  } catch {
98
98
  }
99
99
  let dbIntegrity = NO_INTEGRITY_EVENTS;
100
100
  try {
101
- const { getDbIntegrityHealth } = await import("./db-integrity-events-5DTASXJF.js");
101
+ const { getDbIntegrityHealth } = await import("./db-integrity-events-2DTFO37N.js");
102
102
  dbIntegrity = getDbIntegrityHealth();
103
103
  } catch {
104
104
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  recordOrchestrationEventBestEffort
3
- } from "./chunk-E2WEFZOR.js";
3
+ } from "./chunk-W75GTHR3.js";
4
4
  import {
5
5
  atomicWriteJsonSync
6
6
  } from "./chunk-HSGBZSCA.js";
@@ -2,10 +2,10 @@ import {
2
2
  assessVerificationArtifact,
3
3
  isSubstantiveCommit,
4
4
  measureCommitSubstance
5
- } from "./chunk-KZXMP6JG.js";
5
+ } from "./chunk-4YNA3CM6.js";
6
6
  import {
7
7
  sessionScopeFilter
8
- } from "./chunk-XHYHX6F7.js";
8
+ } from "./chunk-AKLQSC6W.js";
9
9
 
10
10
  // src/shared/task-completion-gate.ts
11
11
  var COMPLETION_CLAIM_STATUSES = ["done", "needs_review", "closed"];
@@ -289,7 +289,7 @@ async function sweepTasks(projectName, options = {}) {
289
289
  }
290
290
  if (!dryRun) {
291
291
  try {
292
- const { updateTaskStatus } = await import("./tasks-crud-5EM55WRZ.js");
292
+ const { updateTaskStatus } = await import("./tasks-crud-ZRQNJXQ2.js");
293
293
  await updateTaskStatus({
294
294
  taskId: task.id,
295
295
  status: "needs_review",
@@ -1,14 +1,14 @@
1
- import {
2
- buildRestartReport,
3
- formatRestartReport
4
- } from "./chunk-EXDW3E2R.js";
5
1
  import {
6
2
  readPostinstallFailureMarker
7
- } from "./chunk-SBJV2PCU.js";
3
+ } from "./chunk-PHBU4LGO.js";
8
4
  import {
9
5
  formatDegradations,
10
6
  getRetrievalHealth
11
- } from "./chunk-R6FLELV6.js";
7
+ } from "./chunk-XFTEX77S.js";
8
+ import {
9
+ buildRestartReport,
10
+ formatRestartReport
11
+ } from "./chunk-EXDW3E2R.js";
12
12
  import {
13
13
  EXE_HOOK_MANIFEST,
14
14
  LEGACY_SPLIT_POST_TOOL_HOOK_MARKERS,
@@ -17,7 +17,7 @@ import {
17
17
  import {
18
18
  cleanupLocalSecretResidue,
19
19
  inventoryLocalSecretResidue
20
- } from "./chunk-E5HAY3DQ.js";
20
+ } from "./chunk-HDLAB7W3.js";
21
21
  import {
22
22
  resolveAnthropicAuth
23
23
  } from "./chunk-VGMACSEV.js";
@@ -27,16 +27,14 @@ import {
27
27
  import {
28
28
  offloadReadIfMain,
29
29
  repairFtsTable
30
- } from "./chunk-5DCCKHDY.js";
31
- import {
32
- isMainModule
33
- } from "./chunk-6Y4B3QF6.js";
30
+ } from "./chunk-TAMDAOCU.js";
34
31
 
35
32
  // src/bin/exe-doctor.ts
36
33
  import os from "os";
37
34
  import { existsSync, readFileSync } from "fs";
38
35
  import { spawn } from "child_process";
39
36
  import path from "path";
37
+ import { fileURLToPath } from "url";
40
38
  import { randomUUID } from "crypto";
41
39
 
42
40
  // src/lib/conflict-detector.ts
@@ -391,6 +389,7 @@ async function auditNullVectors(client, flags) {
391
389
  );
392
390
  return Number(result.rows[0].cnt);
393
391
  }
392
+ var DUPLICATE_MEMBER_PAGE_SIZE = 500;
394
393
  async function auditDuplicates(client, flags) {
395
394
  const { clause, args } = agentFilter(flags);
396
395
  const groupLimit = boundedAuditLimit(
@@ -424,19 +423,37 @@ async function auditDuplicates(client, flags) {
424
423
  let filterClause = " WHERE SUBSTR(raw_text, 1, 200) = ? AND LENGTH(raw_text) = ?" + liveOnly;
425
424
  if (flags.agent) filterClause += " AND agent_id = ?";
426
425
  if (flags.project) filterClause += " AND project_name = ?";
427
- const ids = await offloadReadIfMain(
428
- client,
429
- `SELECT id, raw_text FROM memories${filterClause} ORDER BY timestamp DESC LIMIT ${memberLimit}`,
430
- filterArgs,
431
- true
432
- );
433
426
  const byText = /* @__PURE__ */ new Map();
434
- for (const r of ids.rows) {
435
- const text = r.raw_text;
436
- const id = r.id;
437
- const existing = byText.get(text);
438
- if (existing) existing.push(id);
439
- else byText.set(text, [id]);
427
+ let remaining = memberLimit;
428
+ let cursorTs = null;
429
+ let cursorId = null;
430
+ while (remaining > 0) {
431
+ const pageLimit = Math.min(DUPLICATE_MEMBER_PAGE_SIZE, remaining);
432
+ const pageArgs = [...filterArgs];
433
+ let pageClause = filterClause;
434
+ if (cursorTs !== null) {
435
+ pageClause += " AND (timestamp < ? OR (timestamp = ? AND id < ?))";
436
+ pageArgs.push(cursorTs, cursorTs, cursorId);
437
+ }
438
+ const page = await offloadReadIfMain(
439
+ client,
440
+ `SELECT id, raw_text, timestamp FROM memories${pageClause} ORDER BY timestamp DESC, id DESC LIMIT ${pageLimit}`,
441
+ pageArgs,
442
+ true
443
+ );
444
+ if (page.rows.length === 0) break;
445
+ for (const r of page.rows) {
446
+ const text = r.raw_text;
447
+ const id = r.id;
448
+ const existing = byText.get(text);
449
+ if (existing) existing.push(id);
450
+ else byText.set(text, [id]);
451
+ }
452
+ remaining -= page.rows.length;
453
+ const last = page.rows[page.rows.length - 1];
454
+ cursorTs = last.timestamp;
455
+ cursorId = last.id;
456
+ if (page.rows.length < pageLimit) break;
440
457
  }
441
458
  for (const [text, allIds] of byText) {
442
459
  if (allIds.length <= 1) continue;
@@ -657,7 +674,7 @@ function auditHookOwnership() {
657
674
  }
658
675
  async function auditShards() {
659
676
  try {
660
- const { auditShardHealth } = await import("./shard-manager-UROHZE46.js");
677
+ const { auditShardHealth } = await import("./shard-manager-OE36A4MY.js");
661
678
  const report = await auditShardHealth();
662
679
  return {
663
680
  total: report.total,
@@ -675,7 +692,7 @@ async function auditShards() {
675
692
  async function auditKeyHealth() {
676
693
  try {
677
694
  const { getMasterKey, getKeyStorageInfo } = await import("./lib/keychain.js");
678
- const { getKeyBackupStatus } = await import("./key-backup-status-6L2ARCXW.js");
695
+ const { getKeyBackupStatus } = await import("./key-backup-status-LQPINQ3W.js");
679
696
  const [key, storage] = await Promise.all([getMasterKey(), getKeyStorageInfo()]);
680
697
  const backup = getKeyBackupStatus();
681
698
  return {
@@ -734,9 +751,33 @@ async function auditCpuSteal() {
734
751
  function auditPostinstallFailure() {
735
752
  return readPostinstallFailureMarker();
736
753
  }
754
+ function auditGlobalBin(opts) {
755
+ const moduleFile = opts?.moduleFile ?? fileURLToPath(import.meta.url);
756
+ const exists = opts?.existsFn ?? existsSync;
757
+ const reinstallCommand = "npm install -g @askexenow/exe-os";
758
+ const marker = `${path.sep}lib${path.sep}node_modules${path.sep}`;
759
+ const idx = moduleFile.indexOf(marker);
760
+ if (idx === -1) {
761
+ return {
762
+ checked: false,
763
+ binDir: null,
764
+ targetPresent: false,
765
+ expected: ["exe", "exe-os"],
766
+ missing: [],
767
+ reinstallCommand
768
+ };
769
+ }
770
+ const prefix = moduleFile.slice(0, idx);
771
+ const binDir = path.join(prefix, "bin");
772
+ const target = path.join(path.dirname(moduleFile), "exe-launch-agent.js");
773
+ const targetPresent = exists(target);
774
+ const expected = ["exe", "exe-os"];
775
+ const missing = expected.filter((name) => !exists(path.join(binDir, name)));
776
+ return { checked: true, binDir, targetPresent, expected, missing, reinstallCommand };
777
+ }
737
778
  async function runAudit(client, flags) {
738
779
  const runConflicts = flags.conflicts || process.env.EXE_AUDIT_CONFLICTS === "1";
739
- const [stats, nullVectors, duplicates, bloated, fts, orphanedProjects, shards, keyHealth, localSecretResidue, outbox, cpuSteal, postinstallFailure] = await Promise.all([
780
+ const [stats, nullVectors, duplicates, bloated, fts, orphanedProjects, shards, keyHealth, localSecretResidue, outbox, cpuSteal, postinstallFailure, globalBin] = await Promise.all([
740
781
  auditStats(client, flags),
741
782
  auditNullVectors(client, flags),
742
783
  auditDuplicates(client, flags),
@@ -753,7 +794,8 @@ async function runAudit(client, flags) {
753
794
  Promise.resolve().then(() => auditLocalSecretResidue()),
754
795
  auditOutbox(),
755
796
  auditCpuSteal(),
756
- Promise.resolve().then(() => auditPostinstallFailure())
797
+ Promise.resolve().then(() => auditPostinstallFailure()),
798
+ Promise.resolve().then(() => auditGlobalBin())
757
799
  ]);
758
800
  let conflicts;
759
801
  if (runConflicts) {
@@ -780,7 +822,7 @@ async function runAudit(client, flags) {
780
822
  } catch {
781
823
  retrievalHealth = void 0;
782
824
  }
783
- return { stats, nullVectors, duplicates, duplicateCount, bloated, fts, orphanedProjects, conflicts, hookHealth, hookOwnership, shards, keyHealth, localSecretResidue, outbox, cpuSteal, postinstallFailure, retrievalHealth };
825
+ return { stats, nullVectors, duplicates, duplicateCount, bloated, fts, orphanedProjects, conflicts, hookHealth, hookOwnership, shards, keyHealth, localSecretResidue, outbox, cpuSteal, postinstallFailure, globalBin, retrievalHealth };
784
826
  }
785
827
  function indicator(value, warn) {
786
828
  if (value === 0) return "\u{1F7E2}";
@@ -911,6 +953,20 @@ function formatReport(report, flags) {
911
953
  }
912
954
  lines.push(` marker: ${pf.path}`);
913
955
  }
956
+ const gb = report.globalBin;
957
+ if (gb.checked) {
958
+ if (gb.missing.length === 0) {
959
+ lines.push(`\u{1F7E2} Global bin: ${gb.expected.join(", ")} present`);
960
+ } else {
961
+ lines.push(`\u{1F534} Global bin: MISSING \u2014 ${gb.missing.join(", ")} not found in ${gb.binDir}`);
962
+ if (gb.targetPresent) {
963
+ lines.push(` Likely cause: antivirus/CleanMyMac flagged the \`exe\` command as malware (AtomicStealer false positive) and quarantined it. This is a known false positive \u2014 the launcher is a plain Node script, not malware.`);
964
+ } else {
965
+ lines.push(` The exe-os package launcher is also missing \u2014 the install may have been removed or quarantined.`);
966
+ }
967
+ lines.push(` Reinstall to restore it: ${gb.reinstallCommand}`);
968
+ }
969
+ }
914
970
  const sh = report.shards;
915
971
  if (sh.total > 0) {
916
972
  if (sh.unreadable === 0 && sh.schemaMismatches === 0) {
@@ -1031,6 +1087,9 @@ function formatReport(report, flags) {
1031
1087
  if (report.postinstallFailure) {
1032
1088
  recs.push("Fix the postinstall failure above, then run `exe-os claude install`, `exe-os codex install`, or `exe-os-install --global`");
1033
1089
  }
1090
+ if (report.globalBin.checked && report.globalBin.missing.length > 0) {
1091
+ recs.push(`Global command(s) ${report.globalBin.missing.join(", ")} are missing (likely AV/CleanMyMac quarantine \u2014 known false positive). Restore with \`${report.globalBin.reinstallCommand}\`. See SECURITY.md "Antivirus false positives".`);
1092
+ }
1034
1093
  if (report.retrievalHealth) {
1035
1094
  for (const d of report.retrievalHealth.degradations) {
1036
1095
  if (d.severity === "critical" || d.severity === "warn") {
@@ -1053,7 +1112,7 @@ function formatReport(report, flags) {
1053
1112
  return lines.join("\n");
1054
1113
  }
1055
1114
  async function fixNullVectors() {
1056
- const { tryAcquireWorkerSlot, registerWorkerPid } = await import("./worker-gate-BOQSIU2Z.js");
1115
+ const { tryAcquireWorkerSlot, registerWorkerPid } = await import("./worker-gate-BEEIIVWA.js");
1057
1116
  if (!tryAcquireWorkerSlot()) {
1058
1117
  process.stderr.write("[exe-doctor] Worker gate full \u2014 waiting for existing backfill workers to finish\n");
1059
1118
  await new Promise((r) => setTimeout(r, 5e3));
@@ -1167,7 +1226,7 @@ function shouldFixShards(shards) {
1167
1226
  return shards.unreadable > 0 || shards.schemaMismatches > 0;
1168
1227
  }
1169
1228
  async function fixShards(dryRun) {
1170
- const { auditShardHealth } = await import("./shard-manager-UROHZE46.js");
1229
+ const { auditShardHealth } = await import("./shard-manager-OE36A4MY.js");
1171
1230
  const report = await auditShardHealth({ repair: true, dryRun });
1172
1231
  return {
1173
1232
  total: report.total,
@@ -1230,7 +1289,8 @@ function emptyAuditReport() {
1230
1289
  localSecretResidue: { dataDir: "", residues: [] },
1231
1290
  outbox: { bugReports: { total: 0, unsent: 0 }, featureRequests: { total: 0, unsent: 0 } },
1232
1291
  cpuSteal: { available: false, stealPercent: null, severity: "na", source: "none", message: "not checked" },
1233
- postinstallFailure: null
1292
+ postinstallFailure: null,
1293
+ globalBin: { checked: false, binDir: null, targetPresent: false, expected: ["exe", "exe-os"], missing: [], reinstallCommand: "npm install -g @askexenow/exe-os" }
1234
1294
  };
1235
1295
  }
1236
1296
  async function main(argv = process.argv.slice(2)) {
@@ -1240,7 +1300,7 @@ async function main(argv = process.argv.slice(2)) {
1240
1300
  console.log(formatRestartReport(restartReport));
1241
1301
  return emptyAuditReport();
1242
1302
  }
1243
- const { fastDbInit } = await import("./fast-db-init-SCTOOIUT.js");
1303
+ const { fastDbInit } = await import("./fast-db-init-L2RGKJWH.js");
1244
1304
  const client = await fastDbInit();
1245
1305
  const report = await runAudit(client, flags);
1246
1306
  console.log(formatReport(report, flags));
@@ -1316,7 +1376,7 @@ ${mode} Complete.`);
1316
1376
  }
1317
1377
  return report;
1318
1378
  }
1319
- if (isMainModule(import.meta.url) && (process.argv[1] ?? "").includes("exe-doctor")) {
1379
+ if ((process.argv[1] ?? "").includes("exe-doctor")) {
1320
1380
  main().catch((err) => {
1321
1381
  console.error(err instanceof Error ? err.message : String(err));
1322
1382
  process.exit(1);
@@ -1327,6 +1387,7 @@ export {
1327
1387
  parseFlags,
1328
1388
  auditStats,
1329
1389
  auditNullVectors,
1390
+ DUPLICATE_MEMBER_PAGE_SIZE,
1330
1391
  auditDuplicates,
1331
1392
  auditBloated,
1332
1393
  auditFts,
@@ -1339,6 +1400,7 @@ export {
1339
1400
  auditOutbox,
1340
1401
  auditCpuSteal,
1341
1402
  auditPostinstallFailure,
1403
+ auditGlobalBin,
1342
1404
  runAudit,
1343
1405
  formatReport,
1344
1406
  fixNullVectors,
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  isExeSession,
3
3
  strictSessionScopeFilter
4
- } from "./chunk-XHYHX6F7.js";
4
+ } from "./chunk-AKLQSC6W.js";
5
5
  import {
6
6
  recordOrchestrationEventBestEffort
7
- } from "./chunk-E2WEFZOR.js";
7
+ } from "./chunk-W75GTHR3.js";
8
8
  import {
9
9
  getProjectName
10
- } from "./chunk-W2IRQJ6R.js";
10
+ } from "./chunk-JTVIANUB.js";
11
11
  import {
12
12
  DEFAULT_COORDINATOR_TEMPLATE_NAME,
13
13
  getCoordinatorName
14
- } from "./chunk-5DCCKHDY.js";
14
+ } from "./chunk-TAMDAOCU.js";
15
15
  import {
16
16
  loadConfigSync
17
- } from "./chunk-QMSEL5YS.js";
17
+ } from "./chunk-ZIG7VPJV.js";
18
18
 
19
19
  // src/lib/review-polling.ts
20
20
  import { execSync } from "child_process";
@@ -260,7 +260,7 @@ function createRealDeps(getClient) {
260
260
  });
261
261
  },
262
262
  createReviewForOrphan: async (task) => {
263
- const { createReviewForCompletedTask } = await import("./tasks-review-MHGMBHUZ.js");
263
+ const { createReviewForCompletedTask } = await import("./tasks-review-Z7J2P6DG.js");
264
264
  const cwd = process.cwd();
265
265
  await createReviewForCompletedTask(
266
266
  task,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  routeTask
3
- } from "./chunk-YWUQVHDL.js";
3
+ } from "./chunk-KTCXJWJG.js";
4
4
  import {
5
5
  createTaskCore,
6
6
  employeeSessionName,
@@ -9,11 +9,11 @@ import {
9
9
  isEmployeeAlive,
10
10
  sessionScopeFilter,
11
11
  updateTaskStatus
12
- } from "./chunk-XHYHX6F7.js";
12
+ } from "./chunk-AKLQSC6W.js";
13
13
  import {
14
14
  DEFAULT_COORDINATOR_TEMPLATE_NAME,
15
15
  getCoordinatorName
16
- } from "./chunk-5DCCKHDY.js";
16
+ } from "./chunk-TAMDAOCU.js";
17
17
 
18
18
  // src/runtime/orchestrator.ts
19
19
  var STALE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
@@ -6,7 +6,7 @@ import {
6
6
  connectEmbedDaemon,
7
7
  isClientConnected,
8
8
  sendDaemonRequest
9
- } from "./chunk-UQUUNGTP.js";
9
+ } from "./chunk-NUK7EEN5.js";
10
10
  import {
11
11
  directWriterAllowed
12
12
  } from "./chunk-V3W3SATA.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  getBrandName
3
- } from "./chunk-2CWS374F.js";
3
+ } from "./chunk-7RI2CNXJ.js";
4
4
  import {
5
5
  buildDeployStalenessBanner,
6
- readDeployStalenessAlert
7
- } from "./chunk-TX3Q2GIL.js";
6
+ resolveDeployStalenessAlert
7
+ } from "./chunk-C5HUMAA7.js";
8
8
 
9
9
  // src/lib/status-brief.ts
10
10
  import pathMod from "path";
@@ -118,7 +118,7 @@ async function generateStatusBrief(employees, data, _activeAgentIds) {
118
118
  sections.push([` EXE STATUS BRIEF \u2014 ${dateStr}${sessionTag}`]);
119
119
  const degradedLines = buildDegradedBanner(data);
120
120
  if (degradedLines.length > 0) sections.push(degradedLines);
121
- const staleDeployLines = buildDeployStalenessBanner(readDeployStalenessAlert());
121
+ const staleDeployLines = buildDeployStalenessBanner(resolveDeployStalenessAlert());
122
122
  if (staleDeployLines.length > 0) sections.push(staleDeployLines);
123
123
  const orchestrationLines = buildOrchestrationPhase(data, employees);
124
124
  if (orchestrationLines.length > 0) sections.push(orchestrationLines);
@@ -601,6 +601,11 @@ function buildActionRequired(data) {
601
601
  ` \u{1F9F9} ${ub.mergedCount} merged branch${ub.mergedCount === 1 ? "" : "es"} not yet deleted upstream \u2014 prunable, no action needed`
602
602
  );
603
603
  }
604
+ if ((ub.landedCount ?? 0) > 0) {
605
+ lines.push(
606
+ ` \u{1F9F9} ${ub.landedCount} branch${ub.landedCount === 1 ? "" : "es"} whose work is already on main (PR closed without merge / superseded) \u2014 prunable, no action needed`
607
+ );
608
+ }
604
609
  if ((ub.unknownCount ?? 0) > 0 && ub.prStateAvailable !== false) {
605
610
  lines.push(` \u2753 ${ub.unknownCount} branch${ub.unknownCount === 1 ? "" : "es"} with UNKNOWN PR state \u2014 not counted above`);
606
611
  }
@@ -1,10 +1,11 @@
1
1
  import {
2
2
  executeAction,
3
3
  substituteTemplate
4
- } from "./chunk-ADNBOKYZ.js";
4
+ } from "./chunk-GM7TLYOK.js";
5
5
 
6
6
  // src/automation/workflow-engine.ts
7
7
  import { randomUUID } from "crypto";
8
+ var MAX_WORKFLOW_STEPS = 100;
8
9
  var _definitions = /* @__PURE__ */ new Map();
9
10
  var _instances = /* @__PURE__ */ new Map();
10
11
  function createWorkflowDefinition(input) {
@@ -39,7 +40,7 @@ function buildTemplateContext(instance) {
39
40
  function resolveActionParams(action, context) {
40
41
  const resolved = {};
41
42
  for (const [key, val] of Object.entries(action.params)) {
42
- resolved[key] = substituteTemplate(val, context);
43
+ resolved[key] = substituteTemplate(val, context, true);
43
44
  }
44
45
  return { ...action, params: resolved };
45
46
  }
@@ -107,7 +108,7 @@ async function advanceWorkflow(instanceId) {
107
108
  case "wait_for_approval": {
108
109
  const { createTask } = await import("./lib/tasks.js");
109
110
  const { getCoordinatorName } = await import("./lib/employees.js");
110
- const message = step.approval_message ? substituteTemplate(step.approval_message, templateCtx) : `Workflow "${def.name}" step ${step.index} ("${step.name}") requires approval.`;
111
+ const message = step.approval_message ? substituteTemplate(step.approval_message, templateCtx, true) : `Workflow "${def.name}" step ${step.index} ("${step.name}") requires approval.`;
111
112
  const task = await createTask({
112
113
  title: `[Workflow Approval] ${def.name}: ${step.name}`,
113
114
  assignedTo: getCoordinatorName(),
@@ -169,7 +170,22 @@ To reject: call approve_workflow_step with instance_id="${instance.id}" approved
169
170
  async function runWorkflow(instanceId) {
170
171
  let instance = _instances.get(instanceId);
171
172
  if (!instance) throw new Error(`Workflow instance "${instanceId}" not found`);
173
+ let steps = 0;
172
174
  while (instance.status === "running") {
175
+ if (steps >= MAX_WORKFLOW_STEPS) {
176
+ const now = (/* @__PURE__ */ new Date()).toISOString();
177
+ instance.status = "failed";
178
+ instance.step_results.push({
179
+ step_index: instance.current_step,
180
+ status: "failed",
181
+ error: `Workflow exceeded max step limit (${MAX_WORKFLOW_STEPS}) \u2014 aborting to prevent an infinite loop (d9a1fd0d)`,
182
+ started_at: now,
183
+ completed_at: now
184
+ });
185
+ instance.updated_at = now;
186
+ break;
187
+ }
188
+ steps++;
173
189
  instance = await advanceWorkflow(instanceId);
174
190
  }
175
191
  return instance;
@@ -319,6 +335,7 @@ async function loadWorkflows() {
319
335
  }
320
336
 
321
337
  export {
338
+ MAX_WORKFLOW_STEPS,
322
339
  createWorkflowDefinition,
323
340
  getWorkflowDefinition,
324
341
  listWorkflowDefinitions,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getClient
3
- } from "./chunk-5DCCKHDY.js";
3
+ } from "./chunk-TAMDAOCU.js";
4
4
 
5
5
  // src/lib/pipeline-router.ts
6
6
  import crypto from "crypto";
@@ -116,12 +116,12 @@ async function sinkCRM(msg, agentResponse, agentName) {
116
116
  }
117
117
  async function sinkWiki(msg, agentResponse) {
118
118
  try {
119
- const { createWikiClient } = await import("./wiki-client-AXNM5FWY.js");
119
+ const { createWikiClient } = await import("./wiki-client-W65IOSWF.js");
120
120
  const client = await createWikiClient();
121
121
  if (!client) return false;
122
122
  const content = msg.text ?? "";
123
123
  if (content.length < 50) return false;
124
- const { chatInWorkspace } = await import("./wiki-client-AXNM5FWY.js");
124
+ const { chatInWorkspace } = await import("./wiki-client-W65IOSWF.js");
125
125
  const ingestText = [
126
126
  `[${msg.platform}] Message from ${msg.senderName ?? msg.senderId} (${msg.timestamp}):`,
127
127
  content,
@@ -140,8 +140,8 @@ Agent response: ${agentResponse}` : ""
140
140
  }
141
141
  async function sinkEntityExtraction(msg, agentResponse, agentName) {
142
142
  try {
143
- const { extractFromConversation } = await import("./conversation-entity-extractor-QGTLH4BP.js");
144
- const { storeExtraction } = await import("./graph-rag-RMSFLUOB.js");
143
+ const { extractFromConversation } = await import("./conversation-entity-extractor-74252CAO.js");
144
+ const { storeExtraction } = await import("./graph-rag-Z2KCJTPK.js");
145
145
  if ((msg.text?.length ?? 0) < 20) return false;
146
146
  if (msg.isHistorical) return false;
147
147
  const extraction = await extractFromConversation(msg, agentResponse, agentName);
@@ -149,7 +149,7 @@ async function sinkEntityExtraction(msg, agentResponse, agentName) {
149
149
  const client = getClient();
150
150
  const memoryId = `conv:${msg.messageId}`;
151
151
  await storeExtraction(client, extraction, memoryId, msg.timestamp);
152
- import("./conversation-wiki-populator-EBUZXYEU.js").then(
152
+ import("./conversation-wiki-populator-OS4C6W54.js").then(
153
153
  ({ populateWikiFromExtraction }) => populateWikiFromExtraction(extraction, msg, agentResponse, agentName)
154
154
  ).catch((err) => {
155
155
  process.stderr.write(
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-4QCFFW2H.js";
13
13
  import {
14
14
  getProjectName
15
- } from "./chunk-W2IRQJ6R.js";
15
+ } from "./chunk-JTVIANUB.js";
16
16
 
17
17
  // src/lib/post-tool-memory.ts
18
18
  var NON_INGESTIBLE_TOOLS = /* @__PURE__ */ new Set([