@askexenow/exe-os 0.9.356 → 0.9.358

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 (321) hide show
  1. package/deploy/stack-manifests/v0.9.json +3 -3
  2. package/dist/{active-agent-LCRV3HVS.js → active-agent-OYZRH6D2.js} +6 -4
  3. package/dist/{active-agent-PYMOMGQ7.js → active-agent-QQJCFJG4.js} +6 -4
  4. package/dist/{agentic-ontology-TNKI4FOM.js → agentic-ontology-U5JHQDMG.js} +1 -1
  5. package/dist/{backfill-metadata-SFS4ARNR.js → backfill-metadata-D25I5HN2.js} +8 -6
  6. package/dist/{backup-verify-7NLKR4S6.js → backup-verify-ZLU3DBPH.js} +6 -1
  7. package/dist/{behavior-injection-OT7VX7M6.js → behavior-injection-GVCRBUYW.js} +10 -8
  8. package/dist/{behaviors-6GW5AFG4.js → behaviors-6B2FZ4KP.js} +9 -7
  9. package/dist/bin/agentic-ontology-backfill.js +9 -7
  10. package/dist/bin/agentic-reflection-backfill.js +10 -8
  11. package/dist/bin/agentic-semantic-label.js +9 -7
  12. package/dist/bin/backfill-conversations.js +8 -6
  13. package/dist/bin/backfill-responses.js +8 -6
  14. package/dist/bin/backfill-vectors.js +9 -7
  15. package/dist/bin/bulk-sync-postgres.js +14 -12
  16. package/dist/bin/cc-doctor.js +7 -5
  17. package/dist/bin/cleanup-stale-review-tasks.js +16 -14
  18. package/dist/bin/cli.js +19 -19
  19. package/dist/bin/deferred-daemon-restart.js +74 -72
  20. package/dist/bin/exe-agent-config.js +5 -3
  21. package/dist/bin/exe-agent.js +8 -6
  22. package/dist/bin/exe-assign.js +9 -7
  23. package/dist/bin/exe-boot.js +62 -28
  24. package/dist/bin/exe-call.js +8 -6
  25. package/dist/bin/exe-cloud.js +16 -14
  26. package/dist/bin/exe-config-dump.js +5 -3
  27. package/dist/bin/exe-dispatch.js +16 -14
  28. package/dist/bin/exe-doctor.js +9 -6
  29. package/dist/bin/exe-export-behaviors.js +11 -9
  30. package/dist/bin/exe-forget.js +10 -8
  31. package/dist/bin/exe-gateway.js +10 -8
  32. package/dist/bin/exe-healthcheck.js +7 -5
  33. package/dist/bin/exe-heartbeat.js +18 -16
  34. package/dist/bin/exe-kill.js +20 -18
  35. package/dist/bin/exe-launch-agent.js +27 -25
  36. package/dist/bin/exe-memory-reads.js +8 -6
  37. package/dist/bin/exe-new-employee.js +12 -10
  38. package/dist/bin/exe-os-mcp-proxy.js +6 -4
  39. package/dist/bin/exe-pending-messages.js +17 -15
  40. package/dist/bin/exe-pending-notifications.js +16 -14
  41. package/dist/bin/exe-pending-reviews.js +16 -14
  42. package/dist/bin/exe-rename.js +8 -6
  43. package/dist/bin/exe-review.js +19 -17
  44. package/dist/bin/exe-search.js +9 -7
  45. package/dist/bin/exe-session-cleanup.js +20 -18
  46. package/dist/bin/exe-settings.js +14 -12
  47. package/dist/bin/exe-start-codex.js +16 -14
  48. package/dist/bin/exe-start-opencode.js +12 -10
  49. package/dist/bin/exe-status.js +17 -15
  50. package/dist/bin/exe-support.js +3 -3
  51. package/dist/bin/exe-team.js +6 -4
  52. package/dist/bin/exe-timers.js +2 -1
  53. package/dist/bin/git-sweep.js +17 -15
  54. package/dist/bin/graph-backfill.js +9 -7
  55. package/dist/bin/graph-export.js +9 -7
  56. package/dist/bin/import-history.js +12 -10
  57. package/dist/bin/install.js +76 -74
  58. package/dist/bin/intercom-check.js +4 -4
  59. package/dist/bin/mcp-sessions.js +2 -2
  60. package/dist/bin/orchestration-metrics.js +7 -5
  61. package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
  62. package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
  63. package/dist/bin/pre-publish.js +1 -1
  64. package/dist/bin/reconcile-backlog.js +2 -2
  65. package/dist/bin/registry-proxy.js +1 -1
  66. package/dist/bin/scan-tasks.js +16 -14
  67. package/dist/bin/setup.js +1 -1
  68. package/dist/bin/shard-migrate.js +9 -7
  69. package/dist/bin/stack-update.js +4 -4
  70. package/dist/bin/vps-health-gate.js +1 -1
  71. package/dist/{boot-generation-7ZI7JYGR.js → boot-generation-EA4UCCZN.js} +6 -4
  72. package/dist/{boot-review-sections-3MSXM6V7.js → boot-review-sections-BBOHRDM3.js} +15 -13
  73. package/dist/{capability-cards-4RD2SB2K.js → capability-cards-XELC77DF.js} +5 -3
  74. package/dist/{capacity-monitor-5XUR3JTN.js → capacity-monitor-6FD2LIDV.js} +17 -15
  75. package/dist/{catchup-brief-AYJWMQUZ.js → catchup-brief-I3YBJXL4.js} +20 -18
  76. package/dist/{chunk-QXAE6S3A.js → chunk-2NPK6FIV.js} +3 -3
  77. package/dist/{chunk-YNYISUMW.js → chunk-2X76NMT7.js} +1 -1
  78. package/dist/{chunk-AWB7M62V.js → chunk-2XYL3ZBJ.js} +4 -4
  79. package/dist/{chunk-VCKIV5WG.js → chunk-36PGDNMS.js} +2 -2
  80. package/dist/{chunk-2TL5RKMC.js → chunk-3BAGFZFN.js} +1 -1
  81. package/dist/{chunk-EWOMZLR6.js → chunk-3I7SENGU.js} +1 -1
  82. package/dist/{chunk-FWJFKWYA.js → chunk-3M6TUMXM.js} +2 -2
  83. package/dist/{chunk-IIHFSNL4.js → chunk-5A43OWIJ.js} +1 -1
  84. package/dist/{chunk-6H4ZEU7P.js → chunk-5SWYRYRO.js} +4 -4
  85. package/dist/{chunk-TAR5J7WI.js → chunk-5T3VZ2TX.js} +4 -4
  86. package/dist/{chunk-WJIGSNJM.js → chunk-5TMFK3NT.js} +12 -12
  87. package/dist/chunk-5YEUPUV4.js +53 -0
  88. package/dist/{chunk-4VU2VCEU.js → chunk-6VUMFHWB.js} +1 -1
  89. package/dist/{chunk-X4EDW3FH.js → chunk-6ZUHNYAB.js} +1 -1
  90. package/dist/{chunk-H4ZSOAP6.js → chunk-72HSYKEQ.js} +1 -1
  91. package/dist/{chunk-DF5K4JJL.js → chunk-76IW4LIS.js} +3 -3
  92. package/dist/{chunk-P2Y6S53G.js → chunk-7AWKMYWF.js} +1 -1
  93. package/dist/{chunk-LDRMNJJJ.js → chunk-7G35SOMT.js} +2 -2
  94. package/dist/{chunk-A5P2MMII.js → chunk-7GUHIYZ6.js} +2 -2
  95. package/dist/{chunk-2WWGTOVP.js → chunk-7HFUCBQO.js} +19 -1
  96. package/dist/{chunk-JZXHLDQN.js → chunk-7KPY52EO.js} +1 -1
  97. package/dist/{chunk-LLXYWNCH.js → chunk-AXAHRTST.js} +1 -1
  98. package/dist/{chunk-ZMVVKOOS.js → chunk-AXXGZSW5.js} +7 -7
  99. package/dist/{chunk-6SAQSXT2.js → chunk-BP5H6ZJA.js} +1 -1
  100. package/dist/{chunk-EHL4RCND.js → chunk-CYAFF5EP.js} +1 -1
  101. package/dist/{chunk-H4IZKSOY.js → chunk-E47WQHCT.js} +1 -1
  102. package/dist/{chunk-QGLAMWQJ.js → chunk-EBOKPLWI.js} +3 -3
  103. package/dist/{chunk-NT4GET5B.js → chunk-ELGZDMXM.js} +4 -4
  104. package/dist/{chunk-KT4RUFYO.js → chunk-F25FABZ6.js} +3 -3
  105. package/dist/{chunk-W3IXTUCL.js → chunk-GXMS5PZR.js} +6 -6
  106. package/dist/{chunk-4OMIENRX.js → chunk-H3C2LVUB.js} +1 -1
  107. package/dist/{chunk-JUE37LOD.js → chunk-IEHGR7XU.js} +4 -4
  108. package/dist/{chunk-UQCYG6EI.js → chunk-INY36ISH.js} +1 -1
  109. package/dist/{chunk-4GGP4Q5N.js → chunk-IOSM2N3Z.js} +2 -2
  110. package/dist/{chunk-YSUHXDQU.js → chunk-IR6CEBWC.js} +21 -19
  111. package/dist/{chunk-XPGUSSG7.js → chunk-J3I5OG4P.js} +1 -1
  112. package/dist/{chunk-P7EUKYSQ.js → chunk-J4DLB36O.js} +1 -1
  113. package/dist/{chunk-VPMAC5VB.js → chunk-JXQB7HHZ.js} +1 -1
  114. package/dist/{chunk-APRVAUOR.js → chunk-JY5GAZYC.js} +1 -0
  115. package/dist/{chunk-2LM5GO5R.js → chunk-KTM4TODC.js} +5 -5
  116. package/dist/{chunk-YG4LS7TI.js → chunk-L576MK4B.js} +7 -7
  117. package/dist/{chunk-XQAELSOQ.js → chunk-L73MPNIB.js} +2 -2
  118. package/dist/{chunk-RUBXKPOT.js → chunk-LFJPHWHH.js} +1 -1
  119. package/dist/{chunk-PM4TIRCR.js → chunk-MODZZ52R.js} +1 -1
  120. package/dist/{chunk-JO6TS75M.js → chunk-MYJJSKE6.js} +1 -1
  121. package/dist/{chunk-ES6PDSEK.js → chunk-MZ6ZB6SP.js} +8 -8
  122. package/dist/{chunk-PNTRRXAN.js → chunk-N6XPSEIA.js} +1 -1
  123. package/dist/{chunk-6CZXY5BD.js → chunk-N7YI2ZRJ.js} +5 -5
  124. package/dist/{chunk-IO5FR7BZ.js → chunk-NIXTDUOC.js} +3 -3
  125. package/dist/{chunk-6UTP7AIH.js → chunk-NLDKJJDM.js} +1 -1
  126. package/dist/{chunk-PUAA3P47.js → chunk-NXZ2RSEO.js} +4 -4
  127. package/dist/{chunk-W3REQ37P.js → chunk-OFXQO43S.js} +2 -2
  128. package/dist/{chunk-Z5DTZ464.js → chunk-OIS5VIAH.js} +6 -0
  129. package/dist/{chunk-Y4JA5V22.js → chunk-OP7M5N5R.js} +1 -1
  130. package/dist/{chunk-CI3YVCUY.js → chunk-ORPELDVP.js} +1 -1
  131. package/dist/{chunk-PUNCHUEX.js → chunk-PTOJPD26.js} +3 -3
  132. package/dist/{chunk-TQ4O5A4S.js → chunk-Q5AFCR57.js} +1 -1
  133. package/dist/{chunk-6WAJJN5W.js → chunk-QJCFUUSB.js} +3 -3
  134. package/dist/{chunk-YQ7IZPVC.js → chunk-QQQ4I5IZ.js} +1 -1
  135. package/dist/{chunk-JKOEOHOD.js → chunk-R7F6HKTH.js} +6 -21
  136. package/dist/{chunk-CQPFNVWY.js → chunk-RGKB272D.js} +3 -3
  137. package/dist/{chunk-HAOZB4W6.js → chunk-SCR5Q5PI.js} +1 -1
  138. package/dist/{chunk-ES4XE6AU.js → chunk-SKTGLMUJ.js} +4 -4
  139. package/dist/{chunk-AJGTBW3N.js → chunk-SU3GMJT5.js} +1 -1
  140. package/dist/{chunk-JLXJMDKG.js → chunk-T6V4XURD.js} +1 -1
  141. package/dist/{chunk-KP3PLOGC.js → chunk-U5KZQP7R.js} +2 -2
  142. package/dist/{chunk-M5DPPJLS.js → chunk-U7I4YINB.js} +39 -7
  143. package/dist/{chunk-RZSPCNLY.js → chunk-UBVYDXTU.js} +1 -1
  144. package/dist/chunk-V3W3SATA.js +135 -0
  145. package/dist/{chunk-IT4TFJTK.js → chunk-V6QMFX46.js} +3 -3
  146. package/dist/{chunk-EQQYCP6D.js → chunk-VI4LQLD2.js} +1 -1
  147. package/dist/{chunk-WHQYVFE2.js → chunk-VIIOEVAF.js} +22 -15
  148. package/dist/{chunk-WL3CT5KX.js → chunk-VJACZJD2.js} +2 -2
  149. package/dist/{chunk-X7CWCQ5S.js → chunk-VJRLBE2R.js} +1 -1
  150. package/dist/{chunk-VU2MZ7BP.js → chunk-VNK3MNZE.js} +40 -3
  151. package/dist/{chunk-MVYB76QG.js → chunk-VRTCVZND.js} +16 -20
  152. package/dist/{chunk-LVZZ7YS3.js → chunk-W64WE36F.js} +2 -2
  153. package/dist/{chunk-7FKC2TIB.js → chunk-WA3ZB6TK.js} +1 -1
  154. package/dist/{chunk-ZWXSO4FN.js → chunk-WIKYYOHP.js} +9 -9
  155. package/dist/{chunk-DZNXWCJN.js → chunk-WKHC54KH.js} +1 -1
  156. package/dist/{chunk-SFSB64NK.js → chunk-WTTCNZ6J.js} +1 -1
  157. package/dist/{chunk-72GUU6Z4.js → chunk-WXUTAQX2.js} +3 -3
  158. package/dist/{chunk-OBWTTM7E.js → chunk-YPZTTTFH.js} +2 -2
  159. package/dist/chunk-YQGMSXT5.js +33 -0
  160. package/dist/{chunk-5Q2J6P4T.js → chunk-YVCKSEF6.js} +3 -3
  161. package/dist/{chunk-34MIJGQS.js → chunk-YXWAPO6F.js} +1 -1
  162. package/dist/{chunk-4KCLB4TY.js → chunk-YXY5AEPG.js} +1 -1
  163. package/dist/{chunk-ABM3DZF3.js → chunk-ZANQKOBC.js} +1 -1
  164. package/dist/{chunk-AW3WT3TJ.js → chunk-ZJB26D36.js} +119 -119
  165. package/dist/{cleanup-graph-garbage-XUNHVCRR.js → cleanup-graph-garbage-5DFMJQTV.js} +10 -8
  166. package/dist/{cloud-sync-shutdown-JRAERBUO.js → cloud-sync-shutdown-H36HDBZQ.js} +5 -3
  167. package/dist/{co-activation-5AN2CF23.js → co-activation-GWRPFKYT.js} +5 -3
  168. package/dist/{co-occurrence-A7E774ZX.js → co-occurrence-TBDCT3EB.js} +8 -6
  169. package/dist/{conversation-entity-extractor-2XI2GC4N.js → conversation-entity-extractor-CAFZFIDB.js} +3 -3
  170. package/dist/{crdt-sync-2IUU6GZ6.js → crdt-sync-DE6P7FHB.js} +1 -1
  171. package/dist/{crm-webhook-BQCP77TI.js → crm-webhook-GXUJOMHX.js} +2 -2
  172. package/dist/{cto-delegation-gate-UHHNMWCL.js → cto-delegation-gate-EKA7LOY7.js} +15 -13
  173. package/dist/{daemon-orchestration-7WS3X5DQ.js → daemon-orchestration-WEHBZJW4.js} +20 -19
  174. package/dist/{daemon-ready-signal-TVCPSG7J.js → daemon-ready-signal-CKXPUMJ2.js} +3 -1
  175. package/dist/{daemon-restart-report-QDRGKLL6.js → daemon-restart-report-HZU5LWXN.js} +2 -1
  176. package/dist/{daemon-timer-report-NM44WQRH.js → daemon-timer-report-TNJH5SFY.js} +2 -1
  177. package/dist/{doc-graph-extractor-NFERAJNP.js → doc-graph-extractor-QCT4CCBN.js} +8 -6
  178. package/dist/{documents-SW2MJUXY.js → documents-NJRAJKAS.js} +9 -7
  179. package/dist/{dreaming-KSNJVNFH.js → dreaming-MRNOUJKA.js} +19 -17
  180. package/dist/{exe-drift-NBLYKQBQ.js → exe-drift-CSOXQU4J.js} +6 -4
  181. package/dist/{exe-export-44IWTJHL.js → exe-export-ER75RRLD.js} +11 -9
  182. package/dist/{exe-import-PPECH3KO.js → exe-import-TYTAQ6AY.js} +11 -9
  183. package/dist/{exe-key-ZCRJQYA7.js → exe-key-HM4FZRL2.js} +77 -72
  184. package/dist/{exe-snapshot-OVINJ6MC.js → exe-snapshot-NS6PVGJL.js} +20 -18
  185. package/dist/{fast-db-init-B5Q3SJQG.js → fast-db-init-LRC6RZ6U.js} +1 -1
  186. package/dist/{founder-context-5OFTZNDO.js → founder-context-K5NWGKX7.js} +2 -2
  187. package/dist/gateway/index.js +11 -9
  188. package/dist/{git-staleness-XQJTOSGZ.js → git-staleness-VLVOG2SH.js} +5 -3
  189. package/dist/{global-procedures-YCJ3JPAP.js → global-procedures-EMTNFAMU.js} +7 -5
  190. package/dist/{graph-auto-extract-XJN6PQH3.js → graph-auto-extract-56OOJLRB.js} +8 -6
  191. package/dist/{graph-rag-HCQCZ2W7.js → graph-rag-WUM5JUB7.js} +3 -3
  192. package/dist/{hook-prefetch-FKXDTCDS.js → hook-prefetch-WQBVWWSD.js} +16 -14
  193. package/dist/hooks/bug-report-worker.js +18 -16
  194. package/dist/hooks/codex-stop-task-finalizer.js +19 -17
  195. package/dist/hooks/commit-complete.js +18 -16
  196. package/dist/hooks/error-recall.js +10 -8
  197. package/dist/hooks/exe-heartbeat-hook.js +6 -4
  198. package/dist/hooks/ingest.js +11 -9
  199. package/dist/hooks/instructions-loaded.js +7 -5
  200. package/dist/hooks/manifest.json +19 -19
  201. package/dist/hooks/notification.js +7 -5
  202. package/dist/hooks/post-compact.js +17 -15
  203. package/dist/hooks/post-tool-combined.js +10 -10
  204. package/dist/hooks/pre-compact.js +18 -16
  205. package/dist/hooks/pre-tool-use.js +23 -21
  206. package/dist/hooks/prompt-submit.js +34 -33
  207. package/dist/hooks/session-end.js +22 -20
  208. package/dist/hooks/session-start.js +13 -13
  209. package/dist/hooks/stop.js +21 -19
  210. package/dist/hooks/subagent-stop.js +19 -17
  211. package/dist/hooks/summary-worker.js +22 -25
  212. package/dist/index.js +25 -23
  213. package/dist/{installer-YSCUE6MT.js → installer-KBOFELYW.js} +8 -6
  214. package/dist/{installer-YTT5OSRL.js → installer-UDRUKMVA.js} +8 -6
  215. package/dist/{installer-G3DVMNC6.js → installer-VZYXKVLO.js} +8 -6
  216. package/dist/{intercom-queue-5D52JF3Q.js → intercom-queue-QWUEMESK.js} +15 -13
  217. package/dist/lib/cloud-sync.js +14 -12
  218. package/dist/lib/consolidation.js +10 -8
  219. package/dist/lib/database.js +9 -3
  220. package/dist/lib/db-backup.js +1 -1
  221. package/dist/lib/db-checkpoint-worker.js +4 -0
  222. package/dist/lib/db-daemon-client.js +3 -1
  223. package/dist/lib/db-read-worker.js +4 -0
  224. package/dist/lib/db-write-worker.js +3 -3
  225. package/dist/lib/db.js +9 -3
  226. package/dist/lib/device-registry.js +1 -1
  227. package/dist/lib/employee-templates.js +8 -6
  228. package/dist/lib/employees.js +5 -3
  229. package/dist/lib/exe-daemon.js +202 -93
  230. package/dist/lib/hybrid-search.js +9 -7
  231. package/dist/lib/identity.js +5 -3
  232. package/dist/lib/license.js +2 -2
  233. package/dist/lib/messaging.js +16 -14
  234. package/dist/lib/registry-proxy.js +1 -1
  235. package/dist/lib/reminders.js +6 -4
  236. package/dist/lib/schedules.js +9 -7
  237. package/dist/lib/session-registry.js +7 -5
  238. package/dist/lib/skill-learning.js +10 -8
  239. package/dist/lib/store.js +8 -6
  240. package/dist/lib/task-router.js +6 -4
  241. package/dist/lib/tasks.js +17 -15
  242. package/dist/lib/tmux-routing.js +15 -13
  243. package/dist/lib/token-spend.js +8 -4
  244. package/dist/{license-gate-DKYHCAMN.js → license-gate-4FBFBGOS.js} +3 -3
  245. package/dist/{license-sync-JVEXPDHN.js → license-sync-PES4GIXL.js} +2 -2
  246. package/dist/mcp/register-tools.js +73 -71
  247. package/dist/mcp/server.js +74 -72
  248. package/dist/mcp/tools/complete-reminder.js +7 -5
  249. package/dist/mcp/tools/create-reminder.js +7 -5
  250. package/dist/mcp/tools/create-task.js +19 -17
  251. package/dist/mcp/tools/deactivate-behavior.js +11 -9
  252. package/dist/mcp/tools/list-reminders.js +7 -5
  253. package/dist/mcp/tools/list-tasks.js +19 -17
  254. package/dist/mcp/tools/send-message.js +18 -16
  255. package/dist/mcp/tools/update-task.js +18 -16
  256. package/dist/{mcp-health-WDOB6XUB.js → mcp-health-HNVSWKFA.js} +6 -1
  257. package/dist/{mcp-http-config-L5RDDU6P.js → mcp-http-config-SL43BGFQ.js} +6 -4
  258. package/dist/{mcp-session-identity-S6UCHBER.js → mcp-session-identity-G2NSIUWR.js} +15 -13
  259. package/dist/{memory-cards-65RGFT5M.js → memory-cards-GOSSB6QK.js} +8 -6
  260. package/dist/{memory-graph-extractor-ZDZ5VQUX.js → memory-graph-extractor-5S6AVC5L.js} +9 -7
  261. package/dist/{memory-poisoning-defense-EQUQNXRE.js → memory-poisoning-defense-6KFJEDCT.js} +5 -3
  262. package/dist/{memory-pressure-watchdog-CC344JBH.js → memory-pressure-watchdog-7BOUNASS.js} +16 -14
  263. package/dist/{memory-reflection-Q4OT4V55.js → memory-reflection-LIILYJAS.js} +5 -3
  264. package/dist/{notification-ledger-GL3ZPZNR.js → notification-ledger-54CAO4AS.js} +16 -14
  265. package/dist/{notifications-FGYNO2FY.js → notifications-MCJFLBAO.js} +15 -13
  266. package/dist/{orchestration-events-N5FQ4SKU.js → orchestration-events-SHRMUOV7.js} +6 -4
  267. package/dist/{orchestrator-XUJDK4EW.js → orchestrator-RVUAGQV6.js} +17 -15
  268. package/dist/{pipeline-router-YQOZ4M62.js → pipeline-router-CWB6QZ5E.js} +6 -4
  269. package/dist/{plan-limits-VBHKYKSK.js → plan-limits-APRN2I6H.js} +8 -6
  270. package/dist/{platform-procedures-F3XB6WWM.js → platform-procedures-2VQGBJU7.js} +1 -1
  271. package/dist/{projection-worker-NJUNGEXE.js → projection-worker-ECMC4XKX.js} +2 -2
  272. package/dist/{prospective-memory-3MKUPDVI.js → prospective-memory-ZLMPXBGE.js} +5 -3
  273. package/dist/{reranker-LGSIL6TX.js → reranker-TLECHHQH.js} +1 -1
  274. package/dist/{retrieval-health-AEEQ5IO6.js → retrieval-health-K4EPRPJU.js} +1 -1
  275. package/dist/{review-polling-2RMEZ5QO.js → review-polling-6NYH7IO2.js} +16 -14
  276. package/dist/runtime/index.js +19 -17
  277. package/dist/{session-events-5XSYCV4I.js → session-events-RL7JNGJK.js} +16 -14
  278. package/dist/{session-kill-telemetry-QJUHG3IG.js → session-kill-telemetry-IV4BFLSS.js} +16 -14
  279. package/dist/{session-scope-LIJ746K2.js → session-scope-ISVYSAC2.js} +15 -13
  280. package/dist/{setup-wizard-RLUCGGA7.js → setup-wizard-OQB6FMJM.js} +1 -1
  281. package/dist/{shard-manager-3L2NMJVJ.js → shard-manager-DFLCDZT5.js} +2 -1
  282. package/dist/{skill-refinement-FMN3WFSG.js → skill-refinement-7SANCL3P.js} +6 -4
  283. package/dist/{stack-promote-BGDGAYKG.js → stack-promote-I7H727IS.js} +29 -4
  284. package/dist/{stack-release-SOIHMI3I.js → stack-release-6I7GGSC7.js} +4 -4
  285. package/dist/{stack-update-AXFHJRK5.js → stack-update-2ZV6MBXF.js} +3 -3
  286. package/dist/{steward-gate-R2XWABMV.js → steward-gate-SW4UYGIH.js} +6 -4
  287. package/dist/{support-inbox-IITW66TG.js → support-inbox-OX3VJ2OF.js} +3 -3
  288. package/dist/{task-enforcement-SFZGBY27.js → task-enforcement-VLGRGIKW.js} +16 -14
  289. package/dist/{task-scope-74ZIFQRH.js → task-scope-NTANJZPS.js} +15 -13
  290. package/dist/{tasks-crud-N54JZCXU.js → tasks-crud-FDCGFA72.js} +15 -13
  291. package/dist/{tasks-notify-62IJZW55.js → tasks-notify-GGN2HRFW.js} +16 -14
  292. package/dist/{tasks-review-3LHBE6ZJ.js → tasks-review-KFUKHWMF.js} +15 -13
  293. package/dist/{telemetry-upload-HR3QIWZV.js → telemetry-upload-GFEOMNUY.js} +10 -8
  294. package/dist/{token-budget-DBXHLCMN.js → token-budget-TJJV6ZCC.js} +6 -4
  295. package/dist/{tool-telemetry-UFUTCNE3.js → tool-telemetry-EH6SIQHX.js} +1 -1
  296. package/dist/tui/App.js +24 -22
  297. package/dist/{tui-data-BPXEJKRQ.js → tui-data-W4M3MMLG.js} +15 -13
  298. package/dist/{update-support-HLZ7KMVM.js → update-support-67ADNRYC.js} +12 -10
  299. package/dist/{work-state-heartbeat-IQI3LCHN.js → work-state-heartbeat-34V6UFHR.js} +1 -1
  300. package/dist/{worker-gate-5ABYGLC2.js → worker-gate-7EXQ46BV.js} +1 -1
  301. package/dist/{workflow-engine-XSUWZK6I.js → workflow-engine-IK6SIMT5.js} +2 -2
  302. package/dist/{worktree-EUYBBABA.js → worktree-HRX5BSXT.js} +7 -5
  303. package/dist/{worktree-sweep-LSKFA2PK.js → worktree-sweep-W24XZKQO.js} +8 -6
  304. package/package.json +2 -1
  305. package/release-notes.json +29 -30
  306. package/dist/chunk-7HLWBYH7.js +0 -60
  307. /package/dist/{chunk-AK77MITT.js → chunk-4QDO2KT4.js} +0 -0
  308. /package/dist/{chunk-HABPXFHZ.js → chunk-B2F5BZJA.js} +0 -0
  309. /package/dist/{chunk-A627QFOE.js → chunk-BH2X3N6S.js} +0 -0
  310. /package/dist/{chunk-2267TRAO.js → chunk-CCQ3VCK2.js} +0 -0
  311. /package/dist/{chunk-IHKRHGKT.js → chunk-F766HECM.js} +0 -0
  312. /package/dist/{chunk-7GOSAV25.js → chunk-L6GEKT6M.js} +0 -0
  313. /package/dist/{chunk-GVU3BW6N.js → chunk-MZXYP2YA.js} +0 -0
  314. /package/dist/{chunk-HMBMHZ3S.js → chunk-UURVJW2K.js} +0 -0
  315. /package/dist/{chunk-VML2UQK7.js → chunk-ZOFI53LD.js} +0 -0
  316. /package/dist/{chunk-G2MXTLOD.js → chunk-ZP3224K3.js} +0 -0
  317. /package/dist/{core-memory-KXE4QMOA.js → core-memory-P7YBDZGM.js} +0 -0
  318. /package/dist/{memory-isolation-VSKUKTN4.js → memory-isolation-A4CRGWRS.js} +0 -0
  319. /package/dist/{oauth-server-JELOVN5D.js → oauth-server-MM4VE2YN.js} +0 -0
  320. /package/dist/{project-boot-LQ4CF6BI.js → project-boot-PT5HJT7E.js} +0 -0
  321. /package/dist/{wiki-acl-VR4AFJ3T.js → wiki-acl-SD3DF4IP.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  WORK_STATE_HEARTBEAT_TOOL
3
- } from "./chunk-IHKRHGKT.js";
3
+ } from "./chunk-F766HECM.js";
4
4
  import {
5
5
  extractKeywords,
6
6
  keywordsToString
@@ -12,7 +12,7 @@ import {
12
12
  findScopedDuplicate,
13
13
  governMemoryRecord,
14
14
  schedulePostWriteMemoryHygiene
15
- } from "./chunk-VML2UQK7.js";
15
+ } from "./chunk-ZOFI53LD.js";
16
16
  import {
17
17
  orgBus
18
18
  } from "./chunk-MP2AFCGL.js";
@@ -21,11 +21,15 @@ import {
21
21
  ensureSchema,
22
22
  getClient,
23
23
  initPostgresOnlyDatabase,
24
- initTurso
25
- } from "./chunk-M5DPPJLS.js";
24
+ initTurso,
25
+ isDaemonRoutingActive
26
+ } from "./chunk-U7I4YINB.js";
26
27
  import {
27
28
  isPostgresBackendEnabled
28
29
  } from "./chunk-YMUZWC33.js";
30
+ import {
31
+ directWriterAllowed
32
+ } from "./chunk-V3W3SATA.js";
29
33
  import {
30
34
  EMBEDDING_DIM
31
35
  } from "./chunk-FXU7JOXK.js";
@@ -78,7 +82,7 @@ function recordShardFailure(project, error) {
78
82
  `[store] Shard circuit OPEN for "${project}" after ${state.failures} consecutive failures. Will retry in ${SHARD_CB_COOLDOWN_MS / 6e4}min. Last error: ${error}
79
83
  `
80
84
  );
81
- void import("./orchestration-events-N5FQ4SKU.js").then(({ recordOrchestrationEventBestEffort }) => {
85
+ void import("./orchestration-events-SHRMUOV7.js").then(({ recordOrchestrationEventBestEffort }) => {
82
86
  recordOrchestrationEventBestEffort({
83
87
  eventType: "shard.circuit_open",
84
88
  source: "store.recordShardFailure",
@@ -156,17 +160,20 @@ async function initStore(options) {
156
160
  dbPath,
157
161
  encryptionKey: hexKey
158
162
  });
159
- await retryOnBusy(() => ensureSchema(), "ensureSchema");
160
163
  try {
161
164
  const { initDaemonClient } = await import("./lib/database.js");
162
165
  await initDaemonClient();
163
166
  } catch (e) {
164
167
  logStoreWarn("catch", e);
165
168
  }
169
+ const mayWriteSchemaDirectly = !isDaemonRoutingActive() && process.env.EXE_MCP_MODE !== "1" && await directWriterAllowed();
170
+ if (mayWriteSchemaDirectly) {
171
+ await retryOnBusy(() => ensureSchema(), "ensureSchema");
172
+ }
166
173
  if (!options?.lightweight) {
167
174
  try {
168
175
  if (process.env.EXE_DISABLE_SHARDING !== "1") {
169
- const { initShardManager } = await import("./shard-manager-3L2NMJVJ.js");
176
+ const { initShardManager } = await import("./shard-manager-DFLCDZT5.js");
170
177
  initShardManager(hexKey);
171
178
  }
172
179
  } catch (e) {
@@ -179,7 +186,7 @@ async function initStore(options) {
179
186
  );
180
187
  _nextVersion = (Number(vResult.rows[0]?.max_v) || 0) + 1;
181
188
  try {
182
- const { loadGlobalProcedures } = await import("./global-procedures-YCJ3JPAP.js");
189
+ const { loadGlobalProcedures } = await import("./global-procedures-EMTNFAMU.js");
183
190
  await loadGlobalProcedures();
184
191
  } catch (e) {
185
192
  logStoreWarn("catch", e);
@@ -307,7 +314,7 @@ async function writeMemory(record) {
307
314
  founder_id: record.founder_id ?? null
308
315
  };
309
316
  try {
310
- const { checkMemoryPoisoning } = await import("./memory-poisoning-defense-EQUQNXRE.js");
317
+ const { checkMemoryPoisoning } = await import("./memory-poisoning-defense-6KFJEDCT.js");
311
318
  const poisonResult = await checkMemoryPoisoning({
312
319
  memoryId: dbRow.id,
313
320
  vector: Array.isArray(dbRow.vector) ? dbRow.vector : void 0,
@@ -506,19 +513,19 @@ async function flushBatch() {
506
513
  _nextVersion = baseVersion;
507
514
  if (insertedBatch.length > 0) {
508
515
  try {
509
- const { insertMemoryCardsForBatch } = await import("./memory-cards-65RGFT5M.js");
516
+ const { insertMemoryCardsForBatch } = await import("./memory-cards-GOSSB6QK.js");
510
517
  await insertMemoryCardsForBatch(insertedBatch);
511
518
  } catch (e) {
512
519
  logStoreWarn("catch", e);
513
520
  }
514
521
  try {
515
- const { insertOntologyForBatch } = await import("./agentic-ontology-TNKI4FOM.js");
522
+ const { insertOntologyForBatch } = await import("./agentic-ontology-U5JHQDMG.js");
516
523
  await insertOntologyForBatch(insertedBatch);
517
524
  } catch (e) {
518
525
  logStoreWarn("catch", e);
519
526
  }
520
527
  try {
521
- const { extractGraphForBatch } = await import("./memory-graph-extractor-ZDZ5VQUX.js");
528
+ const { extractGraphForBatch } = await import("./memory-graph-extractor-5S6AVC5L.js");
522
529
  await extractGraphForBatch(insertedBatch);
523
530
  } catch (e) {
524
531
  logStoreWarn("catch", e);
@@ -527,7 +534,7 @@ async function flushBatch() {
527
534
  schedulePostWriteMemoryHygiene(insertedBatch.map((row) => row.id));
528
535
  _pendingRecords.splice(0, batch.length);
529
536
  try {
530
- const { isShardingEnabled, getReadyShardClient } = await import("./shard-manager-3L2NMJVJ.js");
537
+ const { isShardingEnabled, getReadyShardClient } = await import("./shard-manager-DFLCDZT5.js");
531
538
  if (process.env.EXE_DISABLE_SHARDING !== "1" && isShardingEnabled()) {
532
539
  const byProject = /* @__PURE__ */ new Map();
533
540
  let skippedUnknown = 0;
@@ -619,7 +626,7 @@ async function searchMemories(queryVector, agentId, options) {
619
626
  let client;
620
627
  let isMainDb = true;
621
628
  try {
622
- const { isShardingEnabled, shardExists, getReadyShardClient } = await import("./shard-manager-3L2NMJVJ.js");
629
+ const { isShardingEnabled, shardExists, getReadyShardClient } = await import("./shard-manager-DFLCDZT5.js");
623
630
  if (isShardingEnabled() && options?.projectName && shardExists(options.projectName)) {
624
631
  client = await getReadyShardClient(options.projectName);
625
632
  isMainDb = false;
@@ -658,7 +665,7 @@ async function searchMemories(queryVector, agentId, options) {
658
665
  args.push(activeEmbeddingModel);
659
666
  }
660
667
  try {
661
- const { founderScopeFilter } = await import("./founder-context-5OFTZNDO.js");
668
+ const { founderScopeFilter } = await import("./founder-context-K5NWGKX7.js");
662
669
  const founderFilter = founderScopeFilter(options?.founderId);
663
670
  sql += founderFilter.sql;
664
671
  args.push(...founderFilter.args.filter((a) => a !== null));
@@ -9,10 +9,10 @@ import {
9
9
  import {
10
10
  buildClaudeHttpMcpEntry,
11
11
  buildClaudeStdioProxyMcpEntry
12
- } from "./chunk-34MIJGQS.js";
12
+ } from "./chunk-YXWAPO6F.js";
13
13
  import {
14
14
  ensureAllAgentSymlinks
15
- } from "./chunk-X7CWCQ5S.js";
15
+ } from "./chunk-VJRLBE2R.js";
16
16
  import {
17
17
  MCP_LEGACY_KEY,
18
18
  MCP_PRIMARY_KEY
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadEmployees
3
- } from "./chunk-M5DPPJLS.js";
3
+ } from "./chunk-U7I4YINB.js";
4
4
 
5
5
  // src/lib/agent-symlinks.ts
6
6
  import os from "os";
@@ -7,6 +7,9 @@ import {
7
7
  isClientConnected,
8
8
  sendDaemonRequest
9
9
  } from "./chunk-W6UB2AWP.js";
10
+ import {
11
+ directWriterAllowed
12
+ } from "./chunk-V3W3SATA.js";
10
13
 
11
14
  // src/lib/db-daemon-client.ts
12
15
  function normalizeStatement(stmt) {
@@ -92,6 +95,9 @@ function createDaemonDbClient(fallbackClient) {
92
95
  return false;
93
96
  }
94
97
  const unavailableForMcp = (errMsg) => daemonMcpOpError(errMsg);
98
+ const daemonAliveNoWriterError = (context) => new Error(
99
+ `Daemon is alive but its socket was unavailable for a ${context}; refusing a direct SQLite WRITER fallback to preserve the single-writer gate (bug 4a6f8aaf). Retry \u2014 the daemon socket typically re-handshakes within a moment.`
100
+ );
95
101
  const client = {
96
102
  // Daemon-routed clients cannot span a transaction across requests —
97
103
  // BEGIN/COMMIT via execute() is rejected by the daemon SQL guard.
@@ -103,6 +109,10 @@ function createDaemonDbClient(fallbackClient) {
103
109
  const daemonReady = await ensureDaemonRoute();
104
110
  if (!daemonReady) {
105
111
  if (isMcpProcess()) throw unavailableForMcp();
112
+ const stmtSql = typeof stmt === "string" ? stmt : stmt.sql;
113
+ if (!isReadOnlySql(stmtSql) && !await directWriterAllowed()) {
114
+ throw daemonAliveNoWriterError("direct DB write");
115
+ }
106
116
  return fallbackClient.execute(stmt);
107
117
  }
108
118
  const { sql, args } = normalizeStatement(stmt);
@@ -146,6 +156,12 @@ function createDaemonDbClient(fallbackClient) {
146
156
  const daemonReady = await ensureDaemonRoute();
147
157
  if (!daemonReady) {
148
158
  if (isMcpProcess()) throw unavailableForMcp();
159
+ const readOnlyBatch = stmts.every(
160
+ (s) => isReadOnlySql(typeof s === "string" ? s : s.sql)
161
+ );
162
+ if (!readOnlyBatch && !await directWriterAllowed()) {
163
+ throw daemonAliveNoWriterError("direct DB batch write");
164
+ }
149
165
  return fallbackClient.batch(stmts, mode);
150
166
  }
151
167
  const statements = stmts.map(normalizeStatement);
@@ -192,16 +208,37 @@ function createDaemonDbClient(fallbackClient) {
192
208
  process.stderr.write("[db-daemon] Unexpected batch response shape, falling back to direct\n");
193
209
  return fallbackClient.batch(stmts, mode);
194
210
  },
195
- // Transaction support — delegate to fallback (transactions need direct connection)
211
+ // Transaction support — needs a direct connection. Single-writer gate (bug
212
+ // 4a6f8aaf / df26c896, ADR-016): these escape hatches must NOT open a direct
213
+ // WRITER while the daemon holds writer authority (including the boot window —
214
+ // an alive-but-slow daemon), or an external CLI holding this client could
215
+ // corrupt FTS5 under the live daemon. Authority is the STRONG async
216
+ // directWriterAllowed() (isDaemonWriterAuthority), not a stale sync flag. Fail
217
+ // closed exactly like execute()/batch(); daemonless / EXE_DB_DIRECT keep direct
218
+ // access. Multi-statement writes should use batch() (atomic, daemon-side).
219
+ // S1 (df26c896): an MCP process is refused UNCONDITIONALLY — even during a
220
+ // daemon outage (directWriterAllowed() === true) — mirroring execute()/batch().
221
+ // Otherwise N MCP agents in an outage could each open a direct writer and race
222
+ // FTS5. MCP work always funnels through the daemon; it never writes directly.
196
223
  async transaction(mode) {
224
+ if (isMcpProcess()) throw unavailableForMcp("direct DB transaction");
225
+ if (!await directWriterAllowed()) throw daemonAliveNoWriterError("direct DB transaction");
197
226
  return fallbackClient.transaction(mode);
198
227
  },
199
- // executeMultiple — delegate to fallback (used only for schema migrations)
228
+ // executeMultiple — delegate to fallback (used only for schema migrations).
229
+ // Same single-writer gate: DDL via a second direct writer is refused while
230
+ // the daemon holds writer authority. Schema is the daemon's responsibility
231
+ // (its own boot ensureSchema). S1: MCP refused unconditionally (see above).
200
232
  async executeMultiple(sql) {
233
+ if (isMcpProcess()) throw unavailableForMcp("direct DB executeMultiple");
234
+ if (!await directWriterAllowed()) throw daemonAliveNoWriterError("direct DB executeMultiple");
201
235
  return fallbackClient.executeMultiple(sql);
202
236
  },
203
- // migrate — delegate to fallback
237
+ // migrate — delegate to fallback. Same single-writer gate. S1: MCP refused
238
+ // unconditionally (see transaction()).
204
239
  async migrate(stmts) {
240
+ if (isMcpProcess()) throw unavailableForMcp("direct DB migrate");
241
+ if (!await directWriterAllowed()) throw daemonAliveNoWriterError("direct DB migrate");
205
242
  return fallbackClient.migrate(stmts);
206
243
  },
207
244
  // Sync mode — delegate to fallback
@@ -1,3 +1,10 @@
1
+ import {
2
+ SUSPEND_CLUSTER_MIN_MS,
3
+ SUSPEND_CLUSTER_MIN_TIMERS,
4
+ SUSPEND_CLUSTER_WINDOW_MS,
5
+ findTimerWakeClusterArtifacts
6
+ } from "./chunk-YQGMSXT5.js";
7
+
1
8
  // src/lib/daemon-timer-report.ts
2
9
  import { existsSync, readFileSync, statSync, openSync, readSync, closeSync } from "fs";
3
10
  import path from "path";
@@ -5,9 +12,9 @@ import os from "os";
5
12
  var TIMER_SLOW_THRESHOLD_MS = 500;
6
13
  var TIMER_BLOCK_THRESHOLD_MS = 1e4;
7
14
  var TIMER_SEVERE_MS = 5e3;
8
- var SUSPEND_CLUSTER_MIN_MS = 6e4;
9
- var SUSPEND_CLUSTER_WINDOW_MS = 2e3;
10
- var SUSPEND_CLUSTER_MIN_TIMERS = 2;
15
+ var SUSPEND_CLUSTER_MIN_MS2 = SUSPEND_CLUSTER_MIN_MS;
16
+ var SUSPEND_CLUSTER_WINDOW_MS2 = SUSPEND_CLUSTER_WINDOW_MS;
17
+ var SUSPEND_CLUSTER_MIN_TIMERS2 = SUSPEND_CLUSTER_MIN_TIMERS;
11
18
  function logDir() {
12
19
  return path.join(os.homedir(), ".exe-os", "logs");
13
20
  }
@@ -122,22 +129,11 @@ function buildTimerReport(opts = {}) {
122
129
  const candidates = [];
123
130
  for (const [timer, samples] of samplesByTimer) {
124
131
  for (const s of samples) {
125
- if (s.atMs !== null && s.durationMs >= SUSPEND_CLUSTER_MIN_MS) {
126
- candidates.push({ timer, sample: s });
127
- }
132
+ candidates.push({ timer, durationMs: s.durationMs, atMs: s.atMs, sample: s });
128
133
  }
129
134
  }
130
- candidates.sort((a, b) => a.sample.atMs - b.sample.atMs);
131
- let start = 0;
132
- for (let end = 0; end < candidates.length; end++) {
133
- while (candidates[end].sample.atMs - candidates[start].sample.atMs > SUSPEND_CLUSTER_WINDOW_MS) {
134
- start++;
135
- }
136
- const window = candidates.slice(start, end + 1);
137
- const distinct = new Set(window.map((c) => c.timer));
138
- if (distinct.size >= SUSPEND_CLUSTER_MIN_TIMERS) {
139
- for (const c of window) suspendArtifacts.add(c.sample);
140
- }
135
+ for (const c of findTimerWakeClusterArtifacts(candidates)) {
136
+ suspendArtifacts.add(c.sample);
141
137
  }
142
138
  for (const [timer, samples] of samplesByTimer) {
143
139
  const clean = samples.filter((s) => !suspendArtifacts.has(s));
@@ -331,9 +327,9 @@ export {
331
327
  TIMER_SLOW_THRESHOLD_MS,
332
328
  TIMER_BLOCK_THRESHOLD_MS,
333
329
  TIMER_SEVERE_MS,
334
- SUSPEND_CLUSTER_MIN_MS,
335
- SUSPEND_CLUSTER_WINDOW_MS,
336
- SUSPEND_CLUSTER_MIN_TIMERS,
330
+ SUSPEND_CLUSTER_MIN_MS2 as SUSPEND_CLUSTER_MIN_MS,
331
+ SUSPEND_CLUSTER_WINDOW_MS2 as SUSPEND_CLUSTER_WINDOW_MS,
332
+ SUSPEND_CLUSTER_MIN_TIMERS2 as SUSPEND_CLUSTER_MIN_TIMERS,
337
333
  buildTimerReport,
338
334
  fetchInFlightTimers,
339
335
  buildLiveTimerReport,
@@ -7,10 +7,10 @@ import {
7
7
  } from "./chunk-GUMRIUI5.js";
8
8
  import {
9
9
  WORK_STATE_HEARTBEAT_TOOL
10
- } from "./chunk-IHKRHGKT.js";
10
+ } from "./chunk-F766HECM.js";
11
11
  import {
12
12
  hashMemoryContent
13
- } from "./chunk-VML2UQK7.js";
13
+ } from "./chunk-ZOFI53LD.js";
14
14
 
15
15
  // src/lib/graph-rag.ts
16
16
  import crypto from "crypto";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  checkLicense,
3
3
  loadLicense
4
- } from "./chunk-4VU2VCEU.js";
4
+ } from "./chunk-6VUMFHWB.js";
5
5
 
6
6
  // src/lib/license-gate.ts
7
7
  var _cachedLicense = null;
@@ -11,7 +11,7 @@ import {
11
11
  buildSystemStateExclusionFilter,
12
12
  buildWikiScopeFilter,
13
13
  searchMemories
14
- } from "./chunk-WHQYVFE2.js";
14
+ } from "./chunk-VIIOEVAF.js";
15
15
  import {
16
16
  blobToVector
17
17
  } from "./chunk-OTVEIJUQ.js";
@@ -24,7 +24,7 @@ import {
24
24
  } from "./chunk-GJV3WDWM.js";
25
25
  import {
26
26
  getClient
27
- } from "./chunk-M5DPPJLS.js";
27
+ } from "./chunk-U7I4YINB.js";
28
28
 
29
29
  // src/lib/memory-reads.ts
30
30
  import crypto from "crypto";
@@ -566,7 +566,7 @@ async function hybridSearch(queryText, agentId, options) {
566
566
  let rerankerAvailable = false;
567
567
  if (process.env.EXE_IS_DAEMON === "1") {
568
568
  try {
569
- const { isRerankerAvailable } = await import("./reranker-LGSIL6TX.js");
569
+ const { isRerankerAvailable } = await import("./reranker-TLECHHQH.js");
570
570
  rerankerAvailable = isRerankerAvailable();
571
571
  } catch {
572
572
  }
@@ -635,7 +635,7 @@ async function hybridSearch(queryText, agentId, options) {
635
635
  ]).catch(() => []),
636
636
  includeStructuredCards ? (async () => {
637
637
  try {
638
- const { searchMemoryCards } = await import("./memory-cards-65RGFT5M.js");
638
+ const { searchMemoryCards } = await import("./memory-cards-GOSSB6QK.js");
639
639
  return await searchMemoryCards(effectiveQuery, agentId, fetchOptions);
640
640
  } catch {
641
641
  return [];
@@ -644,7 +644,7 @@ async function hybridSearch(queryText, agentId, options) {
644
644
  // Reflection insights: patterns, contradictions, summaries across sessions
645
645
  includeStructuredCards ? (async () => {
646
646
  try {
647
- const { searchReflections } = await import("./memory-reflection-Q4OT4V55.js");
647
+ const { searchReflections } = await import("./memory-reflection-LIILYJAS.js");
648
648
  const insights = await searchReflections(effectiveQuery, agentId, 5, {
649
649
  includeArchived: options?.includeArchived
650
650
  });
@@ -769,7 +769,7 @@ async function hybridSearch(queryText, agentId, options) {
769
769
  try {
770
770
  let rerankedRecords;
771
771
  if (graphContextMap.size > 0) {
772
- const { rerankWithContext } = await import("./reranker-LGSIL6TX.js");
772
+ const { rerankWithContext } = await import("./reranker-TLECHHQH.js");
773
773
  const candidates = merged.map((m) => ({
774
774
  text: m.raw_text,
775
775
  context: graphContextMap.get(m.id)
@@ -777,7 +777,7 @@ async function hybridSearch(queryText, agentId, options) {
777
777
  const scored = await rerankWithContext(effectiveQuery, candidates, rerankReturnLimit);
778
778
  rerankedRecords = scored.map((s) => merged[s.index]);
779
779
  } else {
780
- const { rerank } = await import("./reranker-LGSIL6TX.js");
780
+ const { rerank } = await import("./reranker-TLECHHQH.js");
781
781
  rerankedRecords = await rerank(effectiveQuery, merged, rerankReturnLimit);
782
782
  }
783
783
  if (rerankedRecords.length > 0) {
@@ -1191,7 +1191,7 @@ async function lightweightSearch(queryText, agentId, options) {
1191
1191
  }
1192
1192
  if (results.length >= 2) {
1193
1193
  try {
1194
- const { recordCoActivations } = await import("./co-activation-5AN2CF23.js");
1194
+ const { recordCoActivations } = await import("./co-activation-GWRPFKYT.js");
1195
1195
  const ids = results.slice(0, 10).map((r) => r.id);
1196
1196
  void recordCoActivations(ids).catch((e) => {
1197
1197
  try {
@@ -1207,7 +1207,7 @@ async function lightweightSearch(queryText, agentId, options) {
1207
1207
  }
1208
1208
  if (options?.includeStructuredCards !== true) return results;
1209
1209
  try {
1210
- const { searchMemoryCards } = await import("./memory-cards-65RGFT5M.js");
1210
+ const { searchMemoryCards } = await import("./memory-cards-GOSSB6QK.js");
1211
1211
  const cardResults = await searchMemoryCards(queryText, agentId, options);
1212
1212
  if (cardResults.length > 0) {
1213
1213
  return rrfMergeMulti([results, cardResults], limit, RRF_K, [1, 0.85]);
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getCurrentSessionScope,
3
3
  strictSessionScopeFilter
4
- } from "./chunk-YSUHXDQU.js";
4
+ } from "./chunk-IR6CEBWC.js";
5
5
  import {
6
6
  getProjectName
7
7
  } from "./chunk-OPU3NYOO.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-WCGNCH3Q.js";
4
4
  import {
5
5
  registerAllTools
6
- } from "./chunk-AW3WT3TJ.js";
6
+ } from "./chunk-ZJB26D36.js";
7
7
 
8
8
  // src/mcp/mcp-surface-hash.ts
9
9
  function computeMcpSurfaceHash() {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getClient
3
- } from "./chunk-M5DPPJLS.js";
3
+ } from "./chunk-U7I4YINB.js";
4
4
 
5
5
  // src/lib/pipeline-router.ts
6
6
  import crypto from "crypto";
@@ -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-2XI2GC4N.js");
144
- const { storeExtraction } = await import("./graph-rag-HCQCZ2W7.js");
143
+ const { extractFromConversation } = await import("./conversation-entity-extractor-CAFZFIDB.js");
144
+ const { storeExtraction } = await import("./graph-rag-WUM5JUB7.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);
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  ingest
3
- } from "./chunk-72GUU6Z4.js";
3
+ } from "./chunk-WXUTAQX2.js";
4
4
  import {
5
5
  listWorkflowDefinitions,
6
6
  runWorkflow,
7
7
  startWorkflow
8
- } from "./chunk-H4ZSOAP6.js";
8
+ } from "./chunk-72HSYKEQ.js";
9
9
  import {
10
10
  initCRMBridge
11
11
  } from "./chunk-ML4S5SHZ.js";
@@ -0,0 +1,33 @@
1
+ // src/lib/daemon-sleep-filter.ts
2
+ var SUSPEND_CLUSTER_MIN_MS = 6e4;
3
+ var SUSPEND_CLUSTER_WINDOW_MS = 2e3;
4
+ var SUSPEND_CLUSTER_MIN_TIMERS = 2;
5
+ function findTimerWakeClusterArtifacts(samples) {
6
+ const candidates = [...samples].filter((sample) => sample.atMs !== null && sample.durationMs >= SUSPEND_CLUSTER_MIN_MS).sort((a, b) => a.atMs - b.atMs);
7
+ const suspendArtifacts = /* @__PURE__ */ new Set();
8
+ let start = 0;
9
+ for (let end = 0; end < candidates.length; end++) {
10
+ while (candidates[end].atMs - candidates[start].atMs > SUSPEND_CLUSTER_WINDOW_MS) {
11
+ start++;
12
+ }
13
+ const window = candidates.slice(start, end + 1);
14
+ const distinctTimers = new Set(window.map((sample) => sample.timer));
15
+ if (distinctTimers.size >= SUSPEND_CLUSTER_MIN_TIMERS) {
16
+ for (const sample of window) suspendArtifacts.add(sample);
17
+ }
18
+ }
19
+ return suspendArtifacts;
20
+ }
21
+ function filterTimerWakeClusterArtifacts(samples) {
22
+ const allSamples = [...samples];
23
+ const suspendArtifacts = findTimerWakeClusterArtifacts(allSamples);
24
+ return allSamples.filter((sample) => !suspendArtifacts.has(sample));
25
+ }
26
+
27
+ export {
28
+ SUSPEND_CLUSTER_MIN_MS,
29
+ SUSPEND_CLUSTER_WINDOW_MS,
30
+ SUSPEND_CLUSTER_MIN_TIMERS,
31
+ findTimerWakeClusterArtifacts,
32
+ filterTimerWakeClusterArtifacts
33
+ };
@@ -4,10 +4,10 @@ import {
4
4
  extractIdentifiers,
5
5
  isGarbageEntity,
6
6
  normalizeEntityName
7
- } from "./chunk-LVZZ7YS3.js";
7
+ } from "./chunk-W64WE36F.js";
8
8
  import {
9
9
  getClient
10
- } from "./chunk-M5DPPJLS.js";
10
+ } from "./chunk-U7I4YINB.js";
11
11
 
12
12
  // src/lib/memory-graph-extractor.ts
13
13
  function relationshipId(sourceId, targetId, relType) {
@@ -404,7 +404,7 @@ async function upsertMemoryGraph(result, memoryId) {
404
404
  });
405
405
  }
406
406
  try {
407
- const { createCoOccurrenceEdges } = await import("./co-occurrence-A7E774ZX.js");
407
+ const { createCoOccurrenceEdges } = await import("./co-occurrence-TBDCT3EB.js");
408
408
  await createCoOccurrenceEdges(result.entities, memoryId);
409
409
  } catch {
410
410
  }
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-B6TI3TZT.js";
4
4
  import {
5
5
  loadEmployeesSync
6
- } from "./chunk-M5DPPJLS.js";
6
+ } from "./chunk-U7I4YINB.js";
7
7
 
8
8
  // src/adapters/mcp-http-config.ts
9
9
  import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createReminder
3
- } from "./chunk-VPMAC5VB.js";
3
+ } from "./chunk-JXQB7HHZ.js";
4
4
 
5
5
  // src/mcp/tools/create-reminder.ts
6
6
  import { z } from "zod";
@@ -2,7 +2,7 @@ import {
2
2
  getGitRoot,
3
3
  isWorktreeDirty,
4
4
  isWorktreeDirtyAsync
5
- } from "./chunk-TQ4O5A4S.js";
5
+ } from "./chunk-Q5AFCR57.js";
6
6
 
7
7
  // src/lib/worktree-sweep.ts
8
8
  import { execFile } from "child_process";