@askexenow/exe-os 0.9.357 → 0.9.359

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 (334) hide show
  1. package/deploy/stack-manifests/v0.9.json +3 -3
  2. package/dist/.dist-verified.json +6 -0
  3. package/dist/{active-agent-PYMOMGQ7.js → active-agent-DMKNHGSG.js} +6 -4
  4. package/dist/{active-agent-LCRV3HVS.js → active-agent-Y3DCBD7J.js} +6 -4
  5. package/dist/{agentic-ontology-TNKI4FOM.js → agentic-ontology-3233PNKV.js} +1 -1
  6. package/dist/{backfill-metadata-SFS4ARNR.js → backfill-metadata-4DS4A5U3.js} +8 -6
  7. package/dist/{backup-verify-7NLKR4S6.js → backup-verify-JNYKXIU2.js} +6 -1
  8. package/dist/{behavior-injection-OT7VX7M6.js → behavior-injection-CGAMI552.js} +10 -8
  9. package/dist/{behaviors-6GW5AFG4.js → behaviors-57AMN5IP.js} +9 -7
  10. package/dist/bin/agentic-ontology-backfill.js +9 -7
  11. package/dist/bin/agentic-reflection-backfill.js +10 -8
  12. package/dist/bin/agentic-semantic-label.js +9 -7
  13. package/dist/bin/backfill-conversations.js +8 -6
  14. package/dist/bin/backfill-responses.js +8 -6
  15. package/dist/bin/backfill-vectors.js +9 -7
  16. package/dist/bin/bulk-sync-postgres.js +18 -14
  17. package/dist/bin/cc-doctor.js +7 -5
  18. package/dist/bin/cleanup-stale-review-tasks.js +16 -14
  19. package/dist/bin/cli.js +19 -19
  20. package/dist/bin/deferred-daemon-restart.js +81 -77
  21. package/dist/bin/exe-agent-config.js +5 -3
  22. package/dist/bin/exe-agent.js +14 -12
  23. package/dist/bin/exe-assign.js +9 -7
  24. package/dist/bin/exe-boot.js +62 -28
  25. package/dist/bin/exe-call.js +8 -6
  26. package/dist/bin/exe-cloud.js +20 -16
  27. package/dist/bin/exe-config-dump.js +5 -3
  28. package/dist/bin/exe-dispatch.js +16 -14
  29. package/dist/bin/exe-doctor.js +9 -6
  30. package/dist/bin/exe-export-behaviors.js +11 -9
  31. package/dist/bin/exe-forget.js +10 -8
  32. package/dist/bin/exe-gateway.js +10 -8
  33. package/dist/bin/exe-grant.js +17 -4
  34. package/dist/bin/exe-healthcheck.js +7 -5
  35. package/dist/bin/exe-heartbeat.js +18 -16
  36. package/dist/bin/exe-kill.js +20 -18
  37. package/dist/bin/exe-launch-agent.js +27 -25
  38. package/dist/bin/exe-memory-reads.js +8 -6
  39. package/dist/bin/exe-new-employee.js +12 -10
  40. package/dist/bin/exe-os-mcp-proxy.js +6 -4
  41. package/dist/bin/exe-pending-messages.js +17 -15
  42. package/dist/bin/exe-pending-notifications.js +16 -14
  43. package/dist/bin/exe-pending-reviews.js +16 -14
  44. package/dist/bin/exe-rename.js +8 -6
  45. package/dist/bin/exe-review.js +19 -17
  46. package/dist/bin/exe-search.js +9 -7
  47. package/dist/bin/exe-session-cleanup.js +20 -18
  48. package/dist/bin/exe-settings.js +18 -14
  49. package/dist/bin/exe-start-codex.js +16 -14
  50. package/dist/bin/exe-start-opencode.js +12 -10
  51. package/dist/bin/exe-status.js +17 -15
  52. package/dist/bin/exe-support.js +3 -3
  53. package/dist/bin/exe-team.js +6 -4
  54. package/dist/bin/exe-timers.js +2 -1
  55. package/dist/bin/git-sweep.js +17 -15
  56. package/dist/bin/graph-backfill.js +10 -8
  57. package/dist/bin/graph-export.js +9 -7
  58. package/dist/bin/import-history.js +13 -11
  59. package/dist/bin/install.js +83 -79
  60. package/dist/bin/intercom-check.js +4 -4
  61. package/dist/bin/mcp-sessions.js +2 -2
  62. package/dist/bin/orchestration-metrics.js +7 -5
  63. package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
  64. package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
  65. package/dist/bin/pre-publish.js +1 -1
  66. package/dist/bin/reconcile-backlog.js +2 -2
  67. package/dist/bin/registry-proxy.js +1 -1
  68. package/dist/bin/scan-tasks.js +16 -14
  69. package/dist/bin/setup.js +1 -1
  70. package/dist/bin/shard-migrate.js +9 -7
  71. package/dist/bin/stack-update.js +4 -4
  72. package/dist/bin/vps-health-gate.js +1 -1
  73. package/dist/{boot-generation-7ZI7JYGR.js → boot-generation-4D3CTT7X.js} +6 -4
  74. package/dist/{boot-review-sections-3MSXM6V7.js → boot-review-sections-NDFE5443.js} +15 -13
  75. package/dist/build-manifest.json +2961 -0
  76. package/dist/{capability-cards-4RD2SB2K.js → capability-cards-OBB7BMMX.js} +5 -3
  77. package/dist/{capacity-monitor-5XUR3JTN.js → capacity-monitor-QLPEL6S5.js} +17 -15
  78. package/dist/{catchup-brief-AYJWMQUZ.js → catchup-brief-EN7QR6MP.js} +20 -18
  79. package/dist/{chunk-ZMVVKOOS.js → chunk-2EAYZ3BK.js} +7 -7
  80. package/dist/{chunk-4KCLB4TY.js → chunk-2KLVTRY2.js} +1 -1
  81. package/dist/{chunk-4VU2VCEU.js → chunk-2OVTGZYH.js} +1 -1
  82. package/dist/{chunk-5Q2J6P4T.js → chunk-2YGAKBRG.js} +3 -3
  83. package/dist/{chunk-2TL5RKMC.js → chunk-3BAGFZFN.js} +1 -1
  84. package/dist/{chunk-PM4TIRCR.js → chunk-3ODATKWH.js} +1 -1
  85. package/dist/{chunk-RUBXKPOT.js → chunk-3ZEVMZ4G.js} +1 -1
  86. package/dist/{chunk-H4ZSOAP6.js → chunk-44WFVMZ5.js} +1 -1
  87. package/dist/{chunk-Y4JA5V22.js → chunk-46RPEWTH.js} +1 -1
  88. package/dist/{chunk-EHL4RCND.js → chunk-4DYJ6NOK.js} +6 -5
  89. package/dist/{chunk-ZWXSO4FN.js → chunk-4FQIWAXA.js} +9 -9
  90. package/dist/{chunk-YG4LS7TI.js → chunk-4WSUP4CC.js} +8 -8
  91. package/dist/{chunk-EWOMZLR6.js → chunk-57GRYGDU.js} +1 -1
  92. package/dist/{chunk-VCKIV5WG.js → chunk-5I3YC7ER.js} +2 -2
  93. package/dist/{chunk-UQCYG6EI.js → chunk-5UAMBMNR.js} +1 -1
  94. package/dist/chunk-5YEUPUV4.js +53 -0
  95. package/dist/{chunk-34MIJGQS.js → chunk-6EOLGE7T.js} +1 -1
  96. package/dist/{chunk-AWB7M62V.js → chunk-6KREY2Q7.js} +4 -4
  97. package/dist/{chunk-FWJFKWYA.js → chunk-6LY3QSJA.js} +2 -2
  98. package/dist/{chunk-7FKC2TIB.js → chunk-6SK4MM5B.js} +1 -1
  99. package/dist/{chunk-P7EUKYSQ.js → chunk-6WHYSLGF.js} +1 -1
  100. package/dist/{chunk-YSUHXDQU.js → chunk-74R44E4S.js} +21 -19
  101. package/dist/{chunk-DF5K4JJL.js → chunk-A5WEEND7.js} +3 -3
  102. package/dist/{chunk-OBWTTM7E.js → chunk-AL7JMA54.js} +2 -2
  103. package/dist/{chunk-JZXHLDQN.js → chunk-APR556TY.js} +1 -1
  104. package/dist/{chunk-G2MXTLOD.js → chunk-C5YZMYQH.js} +1 -1
  105. package/dist/{chunk-X7CWCQ5S.js → chunk-CAEWPEBA.js} +1 -1
  106. package/dist/{chunk-SFSB64NK.js → chunk-DKRSKC5R.js} +1 -1
  107. package/dist/{chunk-IIHFSNL4.js → chunk-DQ75MEPU.js} +1 -1
  108. package/dist/{chunk-H4IZKSOY.js → chunk-DWKH2H7W.js} +1 -1
  109. package/dist/{chunk-M5DPPJLS.js → chunk-EA5FVACM.js} +39 -7
  110. package/dist/{chunk-S3THSOWV.js → chunk-EUQF3JOH.js} +28 -100
  111. package/dist/{chunk-2LM5GO5R.js → chunk-EX2SSLNU.js} +5 -5
  112. package/dist/{chunk-4GGP4Q5N.js → chunk-F3QTF4T7.js} +2 -2
  113. package/dist/{chunk-EQQYCP6D.js → chunk-FASR2WLT.js} +1 -1
  114. package/dist/{chunk-NT4GET5B.js → chunk-G2KK64UB.js} +4 -4
  115. package/dist/{chunk-ABM3DZF3.js → chunk-G37RG543.js} +1 -1
  116. package/dist/{chunk-AW3WT3TJ.js → chunk-GD7VXXW6.js} +141 -140
  117. package/dist/{chunk-IT4TFJTK.js → chunk-GSVQBBE5.js} +3 -3
  118. package/dist/{chunk-LVZZ7YS3.js → chunk-HK7SQDKJ.js} +5 -5
  119. package/dist/chunk-HKK7LLS5.js +408 -0
  120. package/dist/{chunk-W3IXTUCL.js → chunk-HLEZ5O5P.js} +77 -37
  121. package/dist/{chunk-A5P2MMII.js → chunk-HNPHPGGF.js} +2 -2
  122. package/dist/{chunk-QGLAMWQJ.js → chunk-HPHF5VTT.js} +3 -3
  123. package/dist/{chunk-IO5FR7BZ.js → chunk-IQWAYXVF.js} +3 -3
  124. package/dist/{chunk-PNTRRXAN.js → chunk-JBAMYKBL.js} +1 -1
  125. package/dist/{chunk-2WWGTOVP.js → chunk-JE34CB5H.js} +19 -1
  126. package/dist/{chunk-APRVAUOR.js → chunk-JY5GAZYC.js} +1 -0
  127. package/dist/{chunk-PUAA3P47.js → chunk-KIXNMTGC.js} +4 -4
  128. package/dist/{chunk-ES4XE6AU.js → chunk-LPKTGK7L.js} +4 -4
  129. package/dist/{chunk-KT4RUFYO.js → chunk-LRETL4I3.js} +3 -3
  130. package/dist/{chunk-JO6TS75M.js → chunk-LXG37RB2.js} +1 -1
  131. package/dist/{chunk-CI3YVCUY.js → chunk-MCNDZU5W.js} +1 -1
  132. package/dist/{chunk-JLXJMDKG.js → chunk-NE57GONM.js} +1 -1
  133. package/dist/{chunk-72GUU6Z4.js → chunk-NKDKB2RT.js} +3 -3
  134. package/dist/{chunk-KP3PLOGC.js → chunk-NP2Y7P3I.js} +2 -2
  135. package/dist/{chunk-ES6PDSEK.js → chunk-OAYTQ4RY.js} +8 -8
  136. package/dist/{chunk-Z5DTZ464.js → chunk-OIS5VIAH.js} +6 -0
  137. package/dist/{chunk-VPMAC5VB.js → chunk-OY2PWHYR.js} +1 -1
  138. package/dist/{chunk-YQ7IZPVC.js → chunk-PDRIIEFV.js} +1 -1
  139. package/dist/{chunk-W3REQ37P.js → chunk-PLOEFBFW.js} +2 -2
  140. package/dist/{chunk-X4EDW3FH.js → chunk-POZGQQEZ.js} +1 -1
  141. package/dist/{chunk-AJGTBW3N.js → chunk-QH2XAUZ5.js} +1 -1
  142. package/dist/{chunk-6CZXY5BD.js → chunk-QROIFRKI.js} +5 -5
  143. package/dist/{chunk-P2Y6S53G.js → chunk-R6LNQAUG.js} +1 -1
  144. package/dist/{chunk-JKOEOHOD.js → chunk-R7F6HKTH.js} +6 -21
  145. package/dist/{chunk-6WAJJN5W.js → chunk-RFUTLZ2U.js} +3 -3
  146. package/dist/{chunk-CQPFNVWY.js → chunk-RJ67HG2P.js} +3 -3
  147. package/dist/{chunk-6H4ZEU7P.js → chunk-SHEWTDPC.js} +4 -4
  148. package/dist/{chunk-XPGUSSG7.js → chunk-SIGAQQHW.js} +1 -1
  149. package/dist/{chunk-PUNCHUEX.js → chunk-SNWV44E5.js} +3 -3
  150. package/dist/{chunk-WJIGSNJM.js → chunk-SQBNN44X.js} +12 -12
  151. package/dist/{chunk-6UTP7AIH.js → chunk-STFR72YH.js} +1 -1
  152. package/dist/chunk-TWMWHDOY.js +79 -0
  153. package/dist/{chunk-RZSPCNLY.js → chunk-UZ5RJYL3.js} +1 -1
  154. package/dist/chunk-V3W3SATA.js +135 -0
  155. package/dist/{chunk-WL3CT5KX.js → chunk-VCCZQDCU.js} +2 -2
  156. package/dist/{chunk-VU2MZ7BP.js → chunk-VNK3MNZE.js} +40 -3
  157. package/dist/{chunk-MVYB76QG.js → chunk-VRTCVZND.js} +16 -20
  158. package/dist/{chunk-UEXJYSJX.js → chunk-VXL7PJ56.js} +39 -2
  159. package/dist/{chunk-4OMIENRX.js → chunk-VY5VU7SX.js} +1 -1
  160. package/dist/{chunk-JUE37LOD.js → chunk-W3XUU36X.js} +4 -4
  161. package/dist/{chunk-WHQYVFE2.js → chunk-W5YV2PZE.js} +22 -15
  162. package/dist/{chunk-DZNXWCJN.js → chunk-WA2MJGPT.js} +1 -1
  163. package/dist/{chunk-LDRMNJJJ.js → chunk-WCP4OQUL.js} +2 -2
  164. package/dist/{chunk-25X4JD2V.js → chunk-WDA2KAV7.js} +20 -3
  165. package/dist/{chunk-YNYISUMW.js → chunk-WRP5AG4D.js} +1 -1
  166. package/dist/{chunk-HAOZB4W6.js → chunk-X2F6Q7TW.js} +1 -1
  167. package/dist/{chunk-TQ4O5A4S.js → chunk-XV42EAVK.js} +1 -1
  168. package/dist/{chunk-TAR5J7WI.js → chunk-XVTKJEI2.js} +4 -4
  169. package/dist/{chunk-XQAELSOQ.js → chunk-XWWNRFRF.js} +2 -2
  170. package/dist/{chunk-6SAQSXT2.js → chunk-YKRNH5LU.js} +1 -1
  171. package/dist/{chunk-QXAE6S3A.js → chunk-YMCIZCNK.js} +3 -3
  172. package/dist/chunk-YQGMSXT5.js +33 -0
  173. package/dist/{chunk-LLXYWNCH.js → chunk-Z2PAVJJ4.js} +1 -1
  174. package/dist/{cleanup-graph-garbage-XUNHVCRR.js → cleanup-graph-garbage-XFGY4EEE.js} +11 -9
  175. package/dist/{cloud-sync-shutdown-JRAERBUO.js → cloud-sync-shutdown-XCOATIJW.js} +5 -3
  176. package/dist/{co-activation-5AN2CF23.js → co-activation-XNBLOGK3.js} +5 -3
  177. package/dist/{co-occurrence-A7E774ZX.js → co-occurrence-HO4PGQC4.js} +9 -7
  178. package/dist/{conversation-entity-extractor-2XI2GC4N.js → conversation-entity-extractor-5G5DGRJU.js} +4 -4
  179. package/dist/{crdt-sync-2IUU6GZ6.js → crdt-sync-6TD7LSZW.js} +3 -2
  180. package/dist/{crm-webhook-BQCP77TI.js → crm-webhook-WZAV5776.js} +2 -2
  181. package/dist/{cto-delegation-gate-UHHNMWCL.js → cto-delegation-gate-UHMYFM4D.js} +15 -13
  182. package/dist/{daemon-orchestration-7WS3X5DQ.js → daemon-orchestration-DT5M2ZAR.js} +20 -19
  183. package/dist/{daemon-ready-signal-TVCPSG7J.js → daemon-ready-signal-CKXPUMJ2.js} +3 -1
  184. package/dist/{daemon-restart-report-QDRGKLL6.js → daemon-restart-report-HZU5LWXN.js} +2 -1
  185. package/dist/{daemon-timer-report-NM44WQRH.js → daemon-timer-report-TNJH5SFY.js} +2 -1
  186. package/dist/{doc-graph-extractor-NFERAJNP.js → doc-graph-extractor-FNCYPFKY.js} +9 -7
  187. package/dist/{documents-SW2MJUXY.js → documents-GKDZDUED.js} +9 -7
  188. package/dist/{dreaming-KSNJVNFH.js → dreaming-WPMQJAXW.js} +19 -17
  189. package/dist/{exe-drift-NBLYKQBQ.js → exe-drift-QTKD2FHT.js} +6 -4
  190. package/dist/{exe-export-44IWTJHL.js → exe-export-ESJ6KP6J.js} +11 -9
  191. package/dist/{exe-import-PPECH3KO.js → exe-import-N4X3GEQB.js} +11 -9
  192. package/dist/{exe-key-ZCRJQYA7.js → exe-key-KZCCHX3W.js} +84 -77
  193. package/dist/{exe-snapshot-OVINJ6MC.js → exe-snapshot-SCRPHCPZ.js} +20 -18
  194. package/dist/{fast-db-init-B5Q3SJQG.js → fast-db-init-6H67K76Q.js} +1 -1
  195. package/dist/{founder-context-5OFTZNDO.js → founder-context-C7X7IRDA.js} +2 -2
  196. package/dist/founder-monitor-envelope-DHSUMBWU.js +83 -0
  197. package/dist/gateway/index.js +11 -9
  198. package/dist/{git-staleness-XQJTOSGZ.js → git-staleness-JCKVMWPO.js} +5 -3
  199. package/dist/{global-procedures-YCJ3JPAP.js → global-procedures-BR7WGSE7.js} +7 -5
  200. package/dist/{graph-auto-extract-XJN6PQH3.js → graph-auto-extract-EOXWQRBZ.js} +9 -7
  201. package/dist/{graph-rag-HCQCZ2W7.js → graph-rag-5FVC5JXH.js} +4 -4
  202. package/dist/{hook-prefetch-FKXDTCDS.js → hook-prefetch-2CN3MK4H.js} +16 -14
  203. package/dist/hooks/bug-report-worker.js +18 -16
  204. package/dist/hooks/codex-stop-task-finalizer.js +19 -17
  205. package/dist/hooks/commit-complete.js +18 -16
  206. package/dist/hooks/error-recall.js +10 -8
  207. package/dist/hooks/exe-heartbeat-hook.js +6 -4
  208. package/dist/hooks/ingest.js +14 -102
  209. package/dist/hooks/instructions-loaded.js +7 -5
  210. package/dist/hooks/manifest.json +19 -19
  211. package/dist/hooks/notification.js +7 -5
  212. package/dist/hooks/post-compact.js +17 -15
  213. package/dist/hooks/post-tool-combined.js +10 -10
  214. package/dist/hooks/pre-compact.js +18 -16
  215. package/dist/hooks/pre-tool-use.js +23 -21
  216. package/dist/hooks/prompt-submit.js +34 -38
  217. package/dist/hooks/session-end.js +22 -20
  218. package/dist/hooks/session-start.js +13 -18
  219. package/dist/hooks/stop.js +21 -19
  220. package/dist/hooks/subagent-stop.js +19 -17
  221. package/dist/hooks/summary-worker.js +22 -25
  222. package/dist/index.js +25 -23
  223. package/dist/{installer-YSCUE6MT.js → installer-7UV3CNWZ.js} +8 -6
  224. package/dist/{installer-YTT5OSRL.js → installer-VPNTM3X6.js} +8 -6
  225. package/dist/{installer-G3DVMNC6.js → installer-YDLSXGD2.js} +8 -6
  226. package/dist/{intercom-queue-5D52JF3Q.js → intercom-queue-KHKJJYCQ.js} +15 -13
  227. package/dist/lib/cloud-sync.js +18 -14
  228. package/dist/lib/consolidation.js +11 -9
  229. package/dist/lib/crypto.js +2 -1
  230. package/dist/lib/database.js +9 -3
  231. package/dist/lib/db-backup.js +1 -1
  232. package/dist/lib/db-checkpoint-worker.js +4 -0
  233. package/dist/lib/db-daemon-client.js +3 -1
  234. package/dist/lib/db-read-worker.js +4 -0
  235. package/dist/lib/db-write-worker.js +3 -3
  236. package/dist/lib/db.js +9 -3
  237. package/dist/lib/device-registry.js +1 -1
  238. package/dist/lib/employee-templates.js +8 -6
  239. package/dist/lib/employees.js +5 -3
  240. package/dist/lib/exe-daemon.js +202 -93
  241. package/dist/lib/hybrid-search.js +9 -7
  242. package/dist/lib/identity.js +5 -3
  243. package/dist/lib/license.js +2 -2
  244. package/dist/lib/messaging.js +16 -14
  245. package/dist/lib/registry-proxy.js +1 -1
  246. package/dist/lib/reminders.js +6 -4
  247. package/dist/lib/schedules.js +9 -7
  248. package/dist/lib/session-registry.js +7 -5
  249. package/dist/lib/skill-learning.js +10 -8
  250. package/dist/lib/store.js +8 -6
  251. package/dist/lib/task-router.js +6 -4
  252. package/dist/lib/tasks.js +17 -15
  253. package/dist/lib/tmux-routing.js +15 -13
  254. package/dist/lib/token-spend.js +8 -4
  255. package/dist/{license-gate-DKYHCAMN.js → license-gate-YXUSNA2I.js} +3 -3
  256. package/dist/{license-sync-JVEXPDHN.js → license-sync-XFDOXL3Z.js} +2 -2
  257. package/dist/mcp/register-tools.js +80 -76
  258. package/dist/mcp/server.js +81 -77
  259. package/dist/mcp/tools/complete-reminder.js +7 -5
  260. package/dist/mcp/tools/create-reminder.js +7 -5
  261. package/dist/mcp/tools/create-task.js +19 -17
  262. package/dist/mcp/tools/deactivate-behavior.js +11 -9
  263. package/dist/mcp/tools/list-reminders.js +7 -5
  264. package/dist/mcp/tools/list-tasks.js +19 -17
  265. package/dist/mcp/tools/send-message.js +18 -16
  266. package/dist/mcp/tools/update-task.js +18 -16
  267. package/dist/{mcp-health-WDOB6XUB.js → mcp-health-HNVSWKFA.js} +6 -1
  268. package/dist/{mcp-http-config-L5RDDU6P.js → mcp-http-config-HIP5CEDV.js} +6 -4
  269. package/dist/{mcp-session-identity-S6UCHBER.js → mcp-session-identity-RTNZ2ZLW.js} +15 -13
  270. package/dist/{memory-cards-65RGFT5M.js → memory-cards-KG4TPNKK.js} +8 -6
  271. package/dist/{memory-graph-extractor-ZDZ5VQUX.js → memory-graph-extractor-6HTBLO2N.js} +10 -8
  272. package/dist/{memory-poisoning-defense-EQUQNXRE.js → memory-poisoning-defense-3ZT57RSJ.js} +5 -3
  273. package/dist/{memory-pressure-watchdog-CC344JBH.js → memory-pressure-watchdog-ZOZBIMKC.js} +16 -14
  274. package/dist/{memory-reflection-Q4OT4V55.js → memory-reflection-EQC4FXSW.js} +5 -3
  275. package/dist/{monitor-grants-NWSQ7ZCQ.js → monitor-grants-BDLVFVDR.js} +3 -1
  276. package/dist/{notification-ledger-GL3ZPZNR.js → notification-ledger-NZ4HO3M5.js} +16 -14
  277. package/dist/{notifications-FGYNO2FY.js → notifications-74YECZ4V.js} +15 -13
  278. package/dist/{orchestration-events-N5FQ4SKU.js → orchestration-events-KRQI4ED5.js} +6 -4
  279. package/dist/{orchestrator-XUJDK4EW.js → orchestrator-WV2YCHTK.js} +17 -15
  280. package/dist/org-membership-B32NS5NI.js +34 -0
  281. package/dist/{pipeline-router-YQOZ4M62.js → pipeline-router-6ZZV7JMA.js} +6 -4
  282. package/dist/{plan-limits-VBHKYKSK.js → plan-limits-B7AZKZ6U.js} +8 -6
  283. package/dist/{platform-procedures-F3XB6WWM.js → platform-procedures-2VQGBJU7.js} +1 -1
  284. package/dist/{projection-worker-NJUNGEXE.js → projection-worker-LRFFQ6JB.js} +2 -2
  285. package/dist/{prospective-memory-3MKUPDVI.js → prospective-memory-A4GDTIWG.js} +5 -3
  286. package/dist/{reranker-LGSIL6TX.js → reranker-YVTLJCFC.js} +1 -1
  287. package/dist/{retrieval-health-AEEQ5IO6.js → retrieval-health-PK2ODTXM.js} +1 -1
  288. package/dist/{review-polling-2RMEZ5QO.js → review-polling-JFWRNQF6.js} +16 -14
  289. package/dist/runtime/index.js +19 -17
  290. package/dist/{session-events-5XSYCV4I.js → session-events-VMQBCUH3.js} +16 -14
  291. package/dist/{session-kill-telemetry-QJUHG3IG.js → session-kill-telemetry-Z3W256T5.js} +16 -14
  292. package/dist/{session-scope-LIJ746K2.js → session-scope-2ADEVY3C.js} +15 -13
  293. package/dist/{setup-wizard-RLUCGGA7.js → setup-wizard-26B36FMC.js} +1 -1
  294. package/dist/{shard-manager-3L2NMJVJ.js → shard-manager-DFLCDZT5.js} +2 -1
  295. package/dist/{skill-refinement-FMN3WFSG.js → skill-refinement-APBYOSGX.js} +6 -4
  296. package/dist/{stack-promote-BGDGAYKG.js → stack-promote-SZYIPTFT.js} +29 -4
  297. package/dist/{stack-release-SOIHMI3I.js → stack-release-EYRDEGPD.js} +4 -4
  298. package/dist/{stack-update-AXFHJRK5.js → stack-update-YWK2YXP6.js} +3 -3
  299. package/dist/{steward-gate-R2XWABMV.js → steward-gate-CIOBPNX6.js} +6 -4
  300. package/dist/{support-inbox-IITW66TG.js → support-inbox-OAWGFRKW.js} +3 -3
  301. package/dist/{support-outbox-WHGPUYL2.js → support-outbox-DSWU3IXH.js} +1 -1
  302. package/dist/{task-enforcement-SFZGBY27.js → task-enforcement-YAU6ZGDC.js} +16 -14
  303. package/dist/{task-scope-74ZIFQRH.js → task-scope-44N7XP5N.js} +15 -13
  304. package/dist/{tasks-crud-N54JZCXU.js → tasks-crud-IWVDREXG.js} +15 -13
  305. package/dist/{tasks-notify-62IJZW55.js → tasks-notify-WK5HA77D.js} +16 -14
  306. package/dist/{tasks-review-3LHBE6ZJ.js → tasks-review-VDFWFETP.js} +15 -13
  307. package/dist/{telemetry-upload-HR3QIWZV.js → telemetry-upload-3X5ESEKM.js} +20 -180
  308. package/dist/{token-budget-DBXHLCMN.js → token-budget-WZGO22ME.js} +6 -4
  309. package/dist/{tool-telemetry-UFUTCNE3.js → tool-telemetry-F7RWUNVK.js} +1 -1
  310. package/dist/tui/App.js +24 -22
  311. package/dist/{tui-data-BPXEJKRQ.js → tui-data-KT7YGVQS.js} +15 -13
  312. package/dist/{update-support-HLZ7KMVM.js → update-support-ZVRMECNQ.js} +13 -11
  313. package/dist/{work-state-heartbeat-IQI3LCHN.js → work-state-heartbeat-CA4CN7DQ.js} +1 -1
  314. package/dist/{worker-gate-5ABYGLC2.js → worker-gate-52MVKYGZ.js} +1 -1
  315. package/dist/{workflow-engine-XSUWZK6I.js → workflow-engine-ZAFBPVUP.js} +2 -2
  316. package/dist/{worktree-EUYBBABA.js → worktree-NNVXVV6A.js} +7 -5
  317. package/dist/{worktree-sweep-LSKFA2PK.js → worktree-sweep-IM2ZQG6Z.js} +8 -6
  318. package/package.json +14 -4
  319. package/release-notes.json +34 -30
  320. package/dist/chunk-7HLWBYH7.js +0 -60
  321. /package/dist/{chunk-AK77MITT.js → chunk-6JTKIXLU.js} +0 -0
  322. /package/dist/{chunk-HABPXFHZ.js → chunk-BGYCUZYK.js} +0 -0
  323. /package/dist/{chunk-GVU3BW6N.js → chunk-COHHVCFA.js} +0 -0
  324. /package/dist/{chunk-VML2UQK7.js → chunk-FVWI2AR4.js} +0 -0
  325. /package/dist/{chunk-2267TRAO.js → chunk-R62ITJDQ.js} +0 -0
  326. /package/dist/{chunk-HMBMHZ3S.js → chunk-U7RZIY74.js} +0 -0
  327. /package/dist/{chunk-7GOSAV25.js → chunk-XLEYCOHX.js} +0 -0
  328. /package/dist/{chunk-A627QFOE.js → chunk-YBX3G5OP.js} +0 -0
  329. /package/dist/{chunk-IHKRHGKT.js → chunk-ZMYXQU4L.js} +0 -0
  330. /package/dist/{core-memory-KXE4QMOA.js → core-memory-AATZRQEY.js} +0 -0
  331. /package/dist/{memory-isolation-VSKUKTN4.js → memory-isolation-CF6FYSXD.js} +0 -0
  332. /package/dist/{oauth-server-JELOVN5D.js → oauth-server-VE5ELXTF.js} +0 -0
  333. /package/dist/{project-boot-LQ4CF6BI.js → project-boot-WEQSKDD7.js} +0 -0
  334. /package/dist/{wiki-acl-VR4AFJ3T.js → wiki-acl-GNIXYWHJ.js} +0 -0
@@ -1,35 +1,41 @@
1
+ import {
2
+ orgMembershipsPath,
3
+ orgModeActive
4
+ } from "./chunk-HKK7LLS5.js";
1
5
  import {
2
6
  activeRecipientPubKeys,
7
+ assertGateAndGrantsColocated,
8
+ grantsPath,
3
9
  isGrantsMacPrimed,
4
10
  primeGrantsMacKey,
5
11
  warnActiveMonitoringOnce
6
- } from "./chunk-UEXJYSJX.js";
12
+ } from "./chunk-VXL7PJ56.js";
7
13
  import {
8
14
  isCrdtSyncEnabled
9
- } from "./chunk-G2MXTLOD.js";
15
+ } from "./chunk-C5YZMYQH.js";
10
16
  import {
11
17
  retryOnDaemonTransportError
12
- } from "./chunk-VU2MZ7BP.js";
18
+ } from "./chunk-VNK3MNZE.js";
13
19
  import {
14
20
  GHOST_BEHAVIOR_SQL,
15
21
  isGhostBehaviorRow
16
- } from "./chunk-FWJFKWYA.js";
22
+ } from "./chunk-6LY3QSJA.js";
17
23
  import {
18
24
  decryptSyncBlob,
19
25
  encryptSyncBlob,
20
26
  initSyncCrypto,
21
27
  isSyncCryptoInitialized
22
- } from "./chunk-S3THSOWV.js";
28
+ } from "./chunk-EUQF3JOH.js";
23
29
  import {
24
30
  getClient,
25
31
  isGenuineCorruptionError,
26
32
  loadEmployees,
27
33
  registerBinSymlinks,
28
34
  saveEmployees
29
- } from "./chunk-M5DPPJLS.js";
35
+ } from "./chunk-EA5FVACM.js";
30
36
  import {
31
37
  loadDeviceId
32
- } from "./chunk-4VU2VCEU.js";
38
+ } from "./chunk-2OVTGZYH.js";
33
39
  import {
34
40
  EXE_AI_DIR
35
41
  } from "./chunk-BCZF3AGJ.js";
@@ -43,9 +49,44 @@ import {
43
49
  // src/lib/cloud-sync.ts
44
50
  import { readFileSync, writeFileSync, existsSync, readdirSync, mkdirSync, appendFileSync, unlinkSync, openSync, closeSync, statSync } from "fs";
45
51
  import crypto from "crypto";
46
- import path from "path";
52
+ import path2 from "path";
47
53
  import { homedir } from "os";
48
54
 
55
+ // src/internal/sync-cipher.ts
56
+ import path from "path";
57
+ var _monitoredWriter = null;
58
+ var _resolved = null;
59
+ var _founderModuleLinked = false;
60
+ var _lastSealOrgMode = null;
61
+ async function getSyncCipher() {
62
+ if (_resolved) return _resolved;
63
+ if (!orgModeActive()) {
64
+ const mod = await import("./founder-monitor-envelope-DHSUMBWU.js");
65
+ _monitoredWriter = mod.encryptMonitoredSyncBlob;
66
+ _founderModuleLinked = true;
67
+ }
68
+ _resolved = {
69
+ seal: (data) => {
70
+ assertGateAndGrantsColocated(orgMembershipsPath(), grantsPath());
71
+ const orgMode = orgModeActive();
72
+ _lastSealOrgMode = orgMode;
73
+ if (orgMode) return encryptSyncBlob(data);
74
+ const recipients = activeRecipientPubKeys();
75
+ if (recipients.length === 0) return encryptSyncBlob(data);
76
+ if (!_monitoredWriter) {
77
+ process.stderr.write(
78
+ "[exe-os] \u26A0 monitoring grants are active but the monitor writer is not linked in this process \u2014 emitting a device-only (v=1) blob. Restart exe-os to enable monitoring.\n"
79
+ );
80
+ return encryptSyncBlob(data);
81
+ }
82
+ warnActiveMonitoringOnce(recipients);
83
+ return _monitoredWriter(data, recipients);
84
+ },
85
+ open: (ct) => decryptSyncBlob(ct)
86
+ };
87
+ return _resolved;
88
+ }
89
+
49
90
  // src/lib/compress.ts
50
91
  import { brotliCompressSync, brotliDecompressSync, constants } from "zlib";
51
92
  function compress(input) {
@@ -165,7 +206,7 @@ async function batchWriteYielding(client, stmts, batchSize = CLOUD_PULL_WRITE_BA
165
206
  }
166
207
  function logError(msg) {
167
208
  try {
168
- const logPath = path.join(homedir(), ".exe-os", "workers.log");
209
+ const logPath = path2.join(homedir(), ".exe-os", "workers.log");
169
210
  appendFileSync(logPath, `${(/* @__PURE__ */ new Date()).toISOString()} ${msg}
170
211
  `);
171
212
  } catch (e) {
@@ -226,7 +267,7 @@ var PUSH_BATCH_SIZE = 5e3;
226
267
  var CLOUD_MEMORY_PUSH_BACKGROUND_BATCH_SIZE = 250;
227
268
  var CLOUD_MEMORY_PUSH_BACKGROUND_TICK_BUDGET_MS = 250;
228
269
  var CLOUD_MEMORY_PUSH_SCAN_CURSOR_KEY = "cloud_memory_push_scan_cursor";
229
- var ROSTER_LOCK_PATH = path.join(EXE_AI_DIR, "roster-merge.lock");
270
+ var ROSTER_LOCK_PATH = path2.join(EXE_AI_DIR, "roster-merge.lock");
230
271
  var LOCK_STALE_MS = 3e4;
231
272
  var SYNC_PAGE_SIZE = 5e3;
232
273
  var SYNC_MAX_ROWS = 5e6;
@@ -281,7 +322,7 @@ function isTruthyEnv(value) {
281
322
  }
282
323
  function loadPgClient() {
283
324
  if (_pgFailed) return null;
284
- const configPath = path.join(EXE_AI_DIR, "config.json");
325
+ const configPath = path2.join(EXE_AI_DIR, "config.json");
285
326
  let cloudPostgresUrl;
286
327
  let configEnabled = false;
287
328
  try {
@@ -314,8 +355,8 @@ function loadPgClient() {
314
355
  if (!Ctor) throw new Error(`No PrismaClient at ${explicitPath}`);
315
356
  return new Ctor();
316
357
  }
317
- const exeDbRoot = process.env.EXE_DB_ROOT ?? path.join(homedir(), "exe-db");
318
- const packagePath = path.join(exeDbRoot, "package.json");
358
+ const exeDbRoot = process.env.EXE_DB_ROOT ?? path2.join(homedir(), "exe-db");
359
+ const packagePath = path2.join(exeDbRoot, "package.json");
319
360
  if (existsSync(packagePath)) {
320
361
  const req = createRequire(packagePath);
321
362
  const entry = req.resolve("@prisma/client");
@@ -506,9 +547,8 @@ async function cloudPush(records, maxVersion, config) {
506
547
  try {
507
548
  const json = JSON.stringify(records);
508
549
  const compressed = compress(Buffer.from(json, "utf8"));
509
- const monitoringRecipients = activeRecipientPubKeys();
510
- warnActiveMonitoringOnce(monitoringRecipients);
511
- const blob = encryptSyncBlob(compressed, monitoringRecipients);
550
+ const cipher = await getSyncCipher();
551
+ const blob = cipher.seal(compressed);
512
552
  const resp = await fetchWithRetry(`${config.endpoint}/sync/push`, {
513
553
  method: "POST",
514
554
  headers: {
@@ -947,7 +987,7 @@ async function cloudSync(config, options) {
947
987
  pullResult = await cloudPull(lastPullVersion, config);
948
988
  if (pullResult.records.length > 0) {
949
989
  if (shouldUseCrdtMergeForCloudSync()) {
950
- const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-2IUU6GZ6.js");
990
+ const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-6TD7LSZW.js");
951
991
  initCrdtDoc();
952
992
  importExistingMemories(
953
993
  pullResult.records.map((rec) => ({
@@ -1411,7 +1451,7 @@ async function cloudSync(config, options) {
1411
1451
  try {
1412
1452
  const employees = await loadEmployees();
1413
1453
  rosterResult.employees = employees.length;
1414
- const idDir = path.join(EXE_AI_DIR, "identity");
1454
+ const idDir = path2.join(EXE_AI_DIR, "identity");
1415
1455
  if (existsSync(idDir)) {
1416
1456
  rosterResult.identities = readdirSync(idDir).filter((f) => f.endsWith(".md")).length;
1417
1457
  }
@@ -1436,7 +1476,7 @@ async function cloudSync(config, options) {
1436
1476
  headers: { "Content-Type": "application/json", Authorization: `Bearer ${config.apiKey}` },
1437
1477
  body: JSON.stringify({
1438
1478
  device_id: deviceId,
1439
- filename: path.basename(latestBackup),
1479
+ filename: path2.basename(latestBackup),
1440
1480
  blob: encrypted,
1441
1481
  size: backupData.length
1442
1482
  })
@@ -1509,7 +1549,7 @@ async function cloudSync(config, options) {
1509
1549
  _cloudSyncInProgress = false;
1510
1550
  }
1511
1551
  }
1512
- var ROSTER_DELETIONS_PATH = path.join(EXE_AI_DIR, "roster-deletions.json");
1552
+ var ROSTER_DELETIONS_PATH = path2.join(EXE_AI_DIR, "roster-deletions.json");
1513
1553
  function recordRosterDeletion(name) {
1514
1554
  let deletions = [];
1515
1555
  try {
@@ -1534,9 +1574,9 @@ function consumeRosterDeletions() {
1534
1574
  }
1535
1575
  }
1536
1576
  function buildRosterBlob(paths) {
1537
- const rosterPath = paths?.rosterPath ?? path.join(EXE_AI_DIR, "exe-employees.json");
1538
- const identityDir = paths?.identityDir ?? path.join(EXE_AI_DIR, "identity");
1539
- const configPath = paths?.configPath ?? path.join(EXE_AI_DIR, "config.json");
1577
+ const rosterPath = paths?.rosterPath ?? path2.join(EXE_AI_DIR, "exe-employees.json");
1578
+ const identityDir = paths?.identityDir ?? path2.join(EXE_AI_DIR, "identity");
1579
+ const configPath = paths?.configPath ?? path2.join(EXE_AI_DIR, "config.json");
1540
1580
  let roster = [];
1541
1581
  if (existsSync(rosterPath)) {
1542
1582
  try {
@@ -1549,7 +1589,7 @@ function buildRosterBlob(paths) {
1549
1589
  if (existsSync(identityDir)) {
1550
1590
  for (const file of readdirSync(identityDir).filter((f) => f.endsWith(".md"))) {
1551
1591
  try {
1552
- identities[file] = readFileSync(path.join(identityDir, file), "utf-8");
1592
+ identities[file] = readFileSync(path2.join(identityDir, file), "utf-8");
1553
1593
  } catch (e) {
1554
1594
  process.stderr.write("[cloud-sync] identity file read failed (" + file + "): " + (e instanceof Error ? e.message : String(e)) + "\n");
1555
1595
  }
@@ -1564,7 +1604,7 @@ function buildRosterBlob(paths) {
1564
1604
  }
1565
1605
  }
1566
1606
  let agentConfig;
1567
- const agentConfigPath = path.join(EXE_AI_DIR, "agent-config.json");
1607
+ const agentConfigPath = path2.join(EXE_AI_DIR, "agent-config.json");
1568
1608
  if (existsSync(agentConfigPath)) {
1569
1609
  try {
1570
1610
  agentConfig = JSON.parse(readFileSync(agentConfigPath, "utf-8"));
@@ -1650,7 +1690,7 @@ async function cloudPullRoster(config) {
1650
1690
  }
1651
1691
  }
1652
1692
  function mergeConfig(remoteConfig, configPath) {
1653
- const cfgPath = configPath ?? path.join(EXE_AI_DIR, "config.json");
1693
+ const cfgPath = configPath ?? path2.join(EXE_AI_DIR, "config.json");
1654
1694
  let local = {};
1655
1695
  if (existsSync(cfgPath)) {
1656
1696
  try {
@@ -1660,7 +1700,7 @@ function mergeConfig(remoteConfig, configPath) {
1660
1700
  }
1661
1701
  }
1662
1702
  const merged = { ...remoteConfig, ...local };
1663
- const dir = path.dirname(cfgPath);
1703
+ const dir = path2.dirname(cfgPath);
1664
1704
  ensurePrivateDirSync(dir);
1665
1705
  atomicWriteSync(cfgPath, JSON.stringify(merged, null, 2) + "\n");
1666
1706
  enforcePrivateFileSync(cfgPath);
@@ -1668,7 +1708,7 @@ function mergeConfig(remoteConfig, configPath) {
1668
1708
  async function mergeRosterFromRemote(remote, paths) {
1669
1709
  return withRosterLock(async () => {
1670
1710
  const rosterPath = paths?.rosterPath ?? void 0;
1671
- const identityDir = paths?.identityDir ?? path.join(EXE_AI_DIR, "identity");
1711
+ const identityDir = paths?.identityDir ?? path2.join(EXE_AI_DIR, "identity");
1672
1712
  const localEmployees = await loadEmployees(rosterPath);
1673
1713
  const localNames = new Set(localEmployees.map((e) => e.name));
1674
1714
  let added = 0;
@@ -1691,7 +1731,7 @@ async function mergeRosterFromRemote(remote, paths) {
1691
1731
  const remoteIdentity = remote.identities[matchedKey];
1692
1732
  if (remoteIdentity) {
1693
1733
  if (!existsSync(identityDir)) mkdirSync(identityDir, { recursive: true });
1694
- const idPath = path.join(identityDir, `${remoteEmp.name}.md`);
1734
+ const idPath = path2.join(identityDir, `${remoteEmp.name}.md`);
1695
1735
  if (!existsSync(idPath)) {
1696
1736
  atomicWriteSync(idPath, remoteIdentity);
1697
1737
  identitiesUpdated++;
@@ -1710,11 +1750,11 @@ async function mergeRosterFromRemote(remote, paths) {
1710
1750
  );
1711
1751
  } else if (present.length > 0 && deletionsAllowed) {
1712
1752
  try {
1713
- const backupPath = path.join(
1753
+ const backupPath = path2.join(
1714
1754
  EXE_AI_DIR,
1715
1755
  `exe-employees.backup.${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}.json`
1716
1756
  );
1717
- ensurePrivateDirSync(path.dirname(backupPath));
1757
+ ensurePrivateDirSync(path2.dirname(backupPath));
1718
1758
  atomicWriteSync(backupPath, JSON.stringify(localEmployees, null, 2) + "\n");
1719
1759
  enforcePrivateFileSync(backupPath);
1720
1760
  process.stderr.write(
@@ -1748,7 +1788,7 @@ async function mergeRosterFromRemote(remote, paths) {
1748
1788
  }
1749
1789
  if (remote.agentConfig && Object.keys(remote.agentConfig).length > 0) {
1750
1790
  try {
1751
- const agentConfigPath = path.join(EXE_AI_DIR, "agent-config.json");
1791
+ const agentConfigPath = path2.join(EXE_AI_DIR, "agent-config.json");
1752
1792
  let local = {};
1753
1793
  if (existsSync(agentConfigPath)) {
1754
1794
  try {
@@ -1758,7 +1798,7 @@ async function mergeRosterFromRemote(remote, paths) {
1758
1798
  }
1759
1799
  }
1760
1800
  const merged = { ...remote.agentConfig, ...local };
1761
- ensurePrivateDirSync(path.dirname(agentConfigPath));
1801
+ ensurePrivateDirSync(path2.dirname(agentConfigPath));
1762
1802
  atomicWriteSync(agentConfigPath, JSON.stringify(merged, null, 2) + "\n");
1763
1803
  enforcePrivateFileSync(agentConfigPath);
1764
1804
  } catch (e) {
@@ -2590,7 +2630,7 @@ async function cloudPullDocuments(config) {
2590
2630
  }
2591
2631
  return { pulled };
2592
2632
  }
2593
- var CODE_CONTEXT_DIR = path.join(EXE_AI_DIR, "code-context");
2633
+ var CODE_CONTEXT_DIR = path2.join(EXE_AI_DIR, "code-context");
2594
2634
  async function cloudPushCodeContext(config) {
2595
2635
  assertSecureEndpoint(config.endpoint);
2596
2636
  if (!existsSync(CODE_CONTEXT_DIR)) return 0;
@@ -2598,7 +2638,7 @@ async function cloudPushCodeContext(config) {
2598
2638
  (f) => f.endsWith(".json") && !f.endsWith(".vectors.json") && !f.startsWith(".")
2599
2639
  );
2600
2640
  if (files.length === 0) return 0;
2601
- const metaPath = path.join(CODE_CONTEXT_DIR, ".sync-meta.json");
2641
+ const metaPath = path2.join(CODE_CONTEXT_DIR, ".sync-meta.json");
2602
2642
  let syncMeta = {};
2603
2643
  if (existsSync(metaPath)) {
2604
2644
  try {
@@ -2609,7 +2649,7 @@ async function cloudPushCodeContext(config) {
2609
2649
  }
2610
2650
  let pushed = 0;
2611
2651
  for (const file of files) {
2612
- const filePath = path.join(CODE_CONTEXT_DIR, file);
2652
+ const filePath = path2.join(CODE_CONTEXT_DIR, file);
2613
2653
  try {
2614
2654
  const stat = statSync(filePath);
2615
2655
  const lastPushed = syncMeta[file] ?? 0;
@@ -2663,7 +2703,7 @@ async function cloudPullCodeContext(config) {
2663
2703
  for (const { key, blob } of data.indexes) {
2664
2704
  try {
2665
2705
  if (key.endsWith(".vectors.json")) continue;
2666
- const localPath = path.join(CODE_CONTEXT_DIR, key);
2706
+ const localPath = path2.join(CODE_CONTEXT_DIR, key);
2667
2707
  const compressed = decryptSyncBlob(blob);
2668
2708
  const content = decompress(compressed).toString("utf8");
2669
2709
  if (!existsSync(localPath)) {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  sendMessage
3
- } from "./chunk-PUNCHUEX.js";
3
+ } from "./chunk-SNWV44E5.js";
4
4
  import {
5
5
  getActiveAgent
6
- } from "./chunk-YNYISUMW.js";
6
+ } from "./chunk-WRP5AG4D.js";
7
7
 
8
8
  // src/mcp/tools/send-message.ts
9
9
  import { z } from "zod";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  getActiveAgent
3
- } from "./chunk-YNYISUMW.js";
3
+ } from "./chunk-WRP5AG4D.js";
4
4
  import {
5
5
  listTasks
6
- } from "./chunk-YSUHXDQU.js";
6
+ } from "./chunk-74R44E4S.js";
7
7
  import {
8
8
  getAgentContext
9
9
  } from "./chunk-GJV3WDWM.js";
10
10
  import {
11
11
  isCoordinatorName
12
- } from "./chunk-M5DPPJLS.js";
12
+ } from "./chunk-EA5FVACM.js";
13
13
 
14
14
  // src/mcp/tools/list-tasks.ts
15
15
  import { z } from "zod";
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  cleanupCardsForMemories,
3
3
  cleanupGraphLinksForMemories
4
- } from "./chunk-LVZZ7YS3.js";
4
+ } from "./chunk-HK7SQDKJ.js";
5
5
  import {
6
6
  resolveAnthropicAuth
7
7
  } from "./chunk-VGMACSEV.js";
8
8
  import {
9
9
  buildSystemStateExclusionFilter,
10
10
  vectorToBlob
11
- } from "./chunk-WHQYVFE2.js";
11
+ } from "./chunk-W5YV2PZE.js";
12
12
  import {
13
13
  extractKeywords,
14
14
  keywordsToString
15
15
  } from "./chunk-CHCA3ZM2.js";
16
16
  import {
17
17
  isCoordinatorName
18
- } from "./chunk-M5DPPJLS.js";
18
+ } from "./chunk-EA5FVACM.js";
19
19
 
20
20
  // src/lib/consolidation.ts
21
21
  import { randomUUID } from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getClient
3
- } from "./chunk-M5DPPJLS.js";
3
+ } from "./chunk-EA5FVACM.js";
4
4
 
5
5
  // src/lib/boot-generation.ts
6
6
  var SYNC_META_KEY = "daemon_boot_generation";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getClient
3
- } from "./chunk-M5DPPJLS.js";
3
+ } from "./chunk-EA5FVACM.js";
4
4
  import {
5
5
  loadConfigSync
6
6
  } from "./chunk-BCZF3AGJ.js";
@@ -112,6 +112,23 @@ function evaluateGlobalSpendCap(totalCostUSD, period, config = getConfiguredGlob
112
112
  source: config.source
113
113
  };
114
114
  }
115
+ var SPEND_CAP_LEVEL_RANK = {
116
+ ok: 0,
117
+ near_cap: 1,
118
+ over_cap: 2
119
+ };
120
+ function evaluateSpendCapAlert(previousLevel, status) {
121
+ if (status.status === "unconfigured" || status.status === "ok") {
122
+ return { shouldAlert: false, level: "ok", summary: null };
123
+ }
124
+ const currentLevel = status.status;
125
+ const prevRank = previousLevel ? SPEND_CAP_LEVEL_RANK[previousLevel] : 0;
126
+ const currentRank = SPEND_CAP_LEVEL_RANK[currentLevel];
127
+ if (currentRank > prevRank) {
128
+ return { shouldAlert: true, level: currentLevel, summary: status.message };
129
+ }
130
+ return { shouldAlert: false, level: currentLevel, summary: null };
131
+ }
115
132
  var MODEL_PRICING = {
116
133
  // Opus 4.5+ ($5/$25 — Anthropic price drop from original Opus 4)
117
134
  "claude-opus-4-7": { input: 5 / 1e6, output: 25 / 1e6, cacheRead: 0.5 / 1e6, cacheWrite: 6.25 / 1e6 },
@@ -330,6 +347,7 @@ export {
330
347
  resolveGlobalSpendCapConfig,
331
348
  getConfiguredGlobalSpendCap,
332
349
  evaluateGlobalSpendCap,
350
+ evaluateSpendCapAlert,
333
351
  getPricing,
334
352
  getAgentSpend
335
353
  };
@@ -60,6 +60,7 @@ function isDaemonReady(maxAgeMs = 3e4) {
60
60
  }
61
61
 
62
62
  export {
63
+ exeDir,
63
64
  daemonReadyPath,
64
65
  eventLoopBlockedMarkerPath,
65
66
  eventLoopHeartbeatPath,
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  buildSystemStateMemoryTypeExclusion
3
- } from "./chunk-WHQYVFE2.js";
3
+ } from "./chunk-W5YV2PZE.js";
4
4
  import {
5
5
  sessionScopeFilter
6
- } from "./chunk-YSUHXDQU.js";
6
+ } from "./chunk-74R44E4S.js";
7
7
  import {
8
8
  getClient,
9
9
  getIdentity
10
- } from "./chunk-M5DPPJLS.js";
10
+ } from "./chunk-EA5FVACM.js";
11
11
  import {
12
12
  getEmotionalBaseline
13
13
  } from "./chunk-OMXJMOBD.js";
@@ -646,7 +646,7 @@ var DreamingEngine = class {
646
646
  }
647
647
  let overdueProspective = [];
648
648
  try {
649
- const { getOverdueProspective, completeProspective } = await import("./prospective-memory-3MKUPDVI.js");
649
+ const { getOverdueProspective, completeProspective } = await import("./prospective-memory-A4GDTIWG.js");
650
650
  const overdue = await getOverdueProspective(agentId);
651
651
  overdueProspective = overdue.map((o) => ({
652
652
  id: o.id,
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  updateTask
3
- } from "./chunk-ZMVVKOOS.js";
3
+ } from "./chunk-2EAYZ3BK.js";
4
4
  import {
5
5
  TASK_ALREADY_CLAIMED_PREFIX,
6
6
  TASK_CLAIM_NOT_HELD_PREFIX,
7
7
  TASK_SIDECHAIN_WRITE_BLOCKED_PREFIX
8
- } from "./chunk-YSUHXDQU.js";
8
+ } from "./chunk-74R44E4S.js";
9
9
  import {
10
10
  getAgentContext
11
11
  } from "./chunk-GJV3WDWM.js";
12
12
  import {
13
13
  isCoordinatorName
14
- } from "./chunk-M5DPPJLS.js";
14
+ } from "./chunk-EA5FVACM.js";
15
15
 
16
16
  // src/mcp/tools/update-task.ts
17
17
  import { z } from "zod";
@@ -72,7 +72,7 @@ function registerUpdateTask(server) {
72
72
  let callerSession;
73
73
  let callerIsSidechain = false;
74
74
  try {
75
- const { getActiveAgent: getAgent } = await import("./active-agent-LCRV3HVS.js");
75
+ const { getActiveAgent: getAgent } = await import("./active-agent-Y3DCBD7J.js");
76
76
  const active = getAgent();
77
77
  callerAgentId = active.agentId;
78
78
  callerSession = resolveCallerSessionForUpdate();
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  extractMemoryGraph
3
- } from "./chunk-5Q2J6P4T.js";
3
+ } from "./chunk-2YGAKBRG.js";
4
4
  import {
5
5
  flushBatch,
6
6
  writeMemory
7
- } from "./chunk-WHQYVFE2.js";
7
+ } from "./chunk-W5YV2PZE.js";
8
8
  import {
9
9
  extractKeywords
10
10
  } from "./chunk-CHCA3ZM2.js";
11
11
  import {
12
12
  getActiveAgent
13
- } from "./chunk-YNYISUMW.js";
13
+ } from "./chunk-WRP5AG4D.js";
14
14
 
15
15
  // src/mcp/tools/import-conversations.ts
16
16
  import { z } from "zod";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  listReminders
3
- } from "./chunk-VPMAC5VB.js";
3
+ } from "./chunk-OY2PWHYR.js";
4
4
 
5
5
  // src/mcp/tools/list-reminders.ts
6
6
  import { z } from "zod";
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  flushBatch,
6
6
  writeMemory
7
- } from "./chunk-WHQYVFE2.js";
7
+ } from "./chunk-W5YV2PZE.js";
8
8
  import {
9
9
  redactSecrets
10
10
  } from "./chunk-4QCFFW2H.js";
@@ -212,7 +212,7 @@ async function main(args) {
212
212
  console.log("[health-gate] Starting rollback...");
213
213
  restorePreDeployBackup();
214
214
  try {
215
- const { rollbackStackUpdate, defaultStackPaths } = await import("./stack-update-AXFHJRK5.js");
215
+ const { rollbackStackUpdate, defaultStackPaths } = await import("./stack-update-YWK2YXP6.js");
216
216
  const paths = defaultStackPaths();
217
217
  await rollbackStackUpdate({
218
218
  manifestRef: paths.manifestRef,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getClient
3
- } from "./chunk-M5DPPJLS.js";
3
+ } from "./chunk-EA5FVACM.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-5G5DGRJU.js");
144
+ const { storeExtraction } = await import("./graph-rag-5FVC5JXH.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,10 +1,10 @@
1
1
  import {
2
2
  PLATFORM_PROCEDURES,
3
3
  PLATFORM_PROCEDURE_TITLES
4
- } from "./chunk-2TL5RKMC.js";
4
+ } from "./chunk-3BAGFZFN.js";
5
5
  import {
6
6
  getClient
7
- } from "./chunk-M5DPPJLS.js";
7
+ } from "./chunk-EA5FVACM.js";
8
8
 
9
9
  // src/lib/global-procedures.ts
10
10
  import { randomUUID } from "crypto";
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  createTask
3
- } from "./chunk-ZMVVKOOS.js";
3
+ } from "./chunk-2EAYZ3BK.js";
4
4
  import {
5
5
  getActiveAgent
6
- } from "./chunk-YNYISUMW.js";
6
+ } from "./chunk-WRP5AG4D.js";
7
7
  import {
8
8
  ensureEmployeeAsync,
9
9
  isValidSessionScope,
10
10
  logTaskDispatch,
11
11
  resolveExeSession
12
- } from "./chunk-YSUHXDQU.js";
12
+ } from "./chunk-74R44E4S.js";
13
13
  import {
14
14
  recordOrchestrationEventBestEffort
15
- } from "./chunk-X4EDW3FH.js";
15
+ } from "./chunk-POZGQQEZ.js";
16
16
  import {
17
17
  releaseDispatchClaim,
18
18
  tryAcquireDispatchClaim,
@@ -25,13 +25,13 @@ import {
25
25
  } from "./chunk-VAY6IXWY.js";
26
26
  import {
27
27
  getLicenseSync
28
- } from "./chunk-4GGP4Q5N.js";
28
+ } from "./chunk-F3QTF4T7.js";
29
29
  import {
30
30
  getAgentContext
31
31
  } from "./chunk-GJV3WDWM.js";
32
32
  import {
33
33
  isCoordinatorName
34
- } from "./chunk-M5DPPJLS.js";
34
+ } from "./chunk-EA5FVACM.js";
35
35
 
36
36
  // src/mcp/tools/create-task.ts
37
37
  import { z } from "zod";
@@ -718,7 +718,7 @@ function registerCreateTask(server) {
718
718
  session_scope: sessionScope,
719
719
  created_at: (/* @__PURE__ */ new Date()).toISOString()
720
720
  }), "utf-8");
721
- const { recordOrchestrationEventBestEffort: recordOE } = await import("./orchestration-events-N5FQ4SKU.js");
721
+ const { recordOrchestrationEventBestEffort: recordOE } = await import("./orchestration-events-KRQI4ED5.js");
722
722
  recordOE({
723
723
  eventType: "signal.created",
724
724
  source: "create-task.mcp",
@@ -750,7 +750,7 @@ function registerCreateTask(server) {
750
750
  let projectConflictOpts = {};
751
751
  try {
752
752
  const { getClient } = await import("./lib/database.js");
753
- const { sessionScopeFilter } = await import("./task-scope-74ZIFQRH.js");
753
+ const { sessionScopeFilter } = await import("./task-scope-44N7XP5N.js");
754
754
  const client = getClient();
755
755
  const scope = sessionScopeFilter(task.sessionScope || callerRoot || exeSession || null);
756
756
  const existing = await client.execute({
@@ -1,6 +1,9 @@
1
1
  import {
2
2
  assertValidDbPath
3
3
  } from "./chunk-2I23RPSI.js";
4
+ import {
5
+ recordDbOpen
6
+ } from "./chunk-5YEUPUV4.js";
4
7
  import {
5
8
  EXE_AI_DIR
6
9
  } from "./chunk-BCZF3AGJ.js";
@@ -56,6 +59,7 @@ async function validateEncryptionKey() {
56
59
  const dbPath = path.join(SHARDS_DIR, shardFile);
57
60
  assertValidDbPath(dbPath, "shard-manager validateEncryptionKey");
58
61
  const testClient = createClient({ url: `file:${dbPath}`, encryptionKey: _encryptionKey });
62
+ recordDbOpen({ dbPath, source: "shard-manager-validate-key", writeCapable: true, checkpointTimer: false });
59
63
  try {
60
64
  await testClient.execute("SELECT COUNT(*) FROM sqlite_schema");
61
65
  testClient.close();
@@ -111,6 +115,7 @@ function getShardClient(projectName) {
111
115
  url: `file:${dbPath}`,
112
116
  encryptionKey: _encryptionKey
113
117
  });
118
+ recordDbOpen({ dbPath, source: "shard-manager-get-shard", writeCapable: true, checkpointTimer: false });
114
119
  _shards.set(safeName, client);
115
120
  _shardLastAccess.set(safeName, Date.now());
116
121
  return client;
@@ -152,6 +157,7 @@ async function auditShardHealth(options = {}) {
152
157
  url: `file:${dbPath}`,
153
158
  encryptionKey: _encryptionKey
154
159
  });
160
+ recordDbOpen({ dbPath, source: "shard-manager-health", writeCapable: true, checkpointTimer: false });
155
161
  try {
156
162
  await client.execute("SELECT COUNT(*) as cnt FROM sqlite_schema");
157
163
  const hasMemories = await client.execute(
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getClient
3
- } from "./chunk-M5DPPJLS.js";
3
+ } from "./chunk-EA5FVACM.js";
4
4
  import {
5
5
  loadConfig
6
6
  } from "./chunk-BCZF3AGJ.js";