@askexenow/exe-os 0.9.312 → 0.9.313

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 (344) hide show
  1. package/deploy/compose/.env.askexe-control-plane.example +1 -1
  2. package/deploy/compose/.env.customer.example +11 -7
  3. package/deploy/compose/.env.default +4 -4
  4. package/deploy/compose/.env.example +7 -7
  5. package/deploy/compose/docker-compose.yml +43 -19
  6. package/deploy/compose/gateway.json +2 -2
  7. package/deploy/compose/init-db.sql +6 -20
  8. package/deploy/compose/setup.sh +74 -132
  9. package/deploy/compose/status.sh +5 -0
  10. package/deploy/stack-manifests/v0.9.json +21 -0
  11. package/dist/{active-agent-ORX47ZKW.js → active-agent-EWF2HJ3W.js} +6 -6
  12. package/dist/{active-agent-S5T2YMOR.js → active-agent-FFN5ARMC.js} +6 -6
  13. package/dist/{agentic-ontology-6KBAXLSJ.js → agentic-ontology-AAUATKUS.js} +1 -1
  14. package/dist/{backfill-metadata-FV7GX6AS.js → backfill-metadata-FBYFDOTH.js} +7 -7
  15. package/dist/{background-jobs-A2LV36UX.js → background-jobs-2QZ5IQKE.js} +5 -3
  16. package/dist/{behaviors-47CPEKJ7.js → behaviors-PQ77IPJR.js} +8 -8
  17. package/dist/bin/age-ontology-load.js +3 -3
  18. package/dist/bin/agentic-ontology-backfill.js +9 -9
  19. package/dist/bin/agentic-reflection-backfill.js +10 -10
  20. package/dist/bin/agentic-semantic-label.js +9 -9
  21. package/dist/bin/backfill-conversations.js +10 -10
  22. package/dist/bin/backfill-responses.js +10 -10
  23. package/dist/bin/backfill-vectors.js +13 -13
  24. package/dist/bin/bulk-sync-postgres.js +16 -16
  25. package/dist/bin/cc-doctor.js +9 -9
  26. package/dist/bin/cleanup-stale-review-tasks.js +15 -15
  27. package/dist/bin/cli.js +21 -21
  28. package/dist/bin/deferred-daemon-restart.js +1 -1
  29. package/dist/bin/exe-agent-config.js +6 -6
  30. package/dist/bin/exe-agent.js +14 -14
  31. package/dist/bin/exe-assign.js +12 -12
  32. package/dist/bin/exe-boot.js +78 -57
  33. package/dist/bin/exe-call.js +7 -7
  34. package/dist/bin/exe-cloud.js +17 -17
  35. package/dist/bin/exe-config-dump.js +7 -7
  36. package/dist/bin/exe-dispatch.js +15 -15
  37. package/dist/bin/exe-doctor.js +11 -2
  38. package/dist/bin/exe-export-behaviors.js +10 -10
  39. package/dist/bin/exe-forget.js +9 -9
  40. package/dist/bin/exe-gateway.js +10 -10
  41. package/dist/bin/exe-healthcheck.js +9 -9
  42. package/dist/bin/exe-heartbeat.js +15 -15
  43. package/dist/bin/exe-kill.js +18 -18
  44. package/dist/bin/exe-launch-agent.js +30 -28
  45. package/dist/bin/exe-new-employee.js +36 -15
  46. package/dist/bin/exe-pending-messages.js +16 -16
  47. package/dist/bin/exe-pending-notifications.js +15 -15
  48. package/dist/bin/exe-pending-reviews.js +15 -15
  49. package/dist/bin/exe-preflight.js +1 -1
  50. package/dist/bin/exe-rename.js +19 -29
  51. package/dist/bin/exe-review.js +17 -17
  52. package/dist/bin/exe-search.js +8 -8
  53. package/dist/bin/exe-session-cleanup.js +41 -20
  54. package/dist/bin/exe-settings.js +18 -18
  55. package/dist/bin/exe-start-codex.js +15 -15
  56. package/dist/bin/exe-start-opencode.js +11 -11
  57. package/dist/bin/exe-status.js +16 -16
  58. package/dist/bin/exe-support.js +5 -5
  59. package/dist/bin/exe-team.js +6 -6
  60. package/dist/bin/exe-watchdog.js +32 -3
  61. package/dist/bin/git-sweep.js +16 -16
  62. package/dist/bin/graph-backfill.js +8 -8
  63. package/dist/bin/graph-export.js +8 -8
  64. package/dist/bin/import-history.js +10 -10
  65. package/dist/bin/install-launchd.js +2 -2
  66. package/dist/bin/install.js +15 -15
  67. package/dist/bin/intercom-check.js +4 -4
  68. package/dist/bin/mcp-sessions.js +2 -2
  69. package/dist/bin/orchestration-metrics.js +7 -7
  70. package/dist/bin/postgres-agentic-reflection-backfill.js +5 -5
  71. package/dist/bin/postgres-agentic-semantic-backfill.js +4 -4
  72. package/dist/bin/pre-build-guard.js +12 -1
  73. package/dist/bin/scan-tasks.js +15 -15
  74. package/dist/bin/setup.js +3 -3
  75. package/dist/bin/shard-migrate.js +8 -8
  76. package/dist/bin/stack-update.js +8 -8
  77. package/dist/bin/verify-stack.js +3 -1
  78. package/dist/bin/vps-health-gate.js +1 -1
  79. package/dist/{branding-SC4BOPUY.js → branding-EDUC7TUP.js} +2 -2
  80. package/dist/{browser-session-store-DV5TDXXD.js → browser-session-store-CXQMOSEC.js} +1 -1
  81. package/dist/{capability-cards-WQVY7WSS.js → capability-cards-2U3XWCDP.js} +5 -5
  82. package/dist/{capacity-monitor-BUKYPSWR.js → capacity-monitor-ZRLW7TVL.js} +16 -16
  83. package/dist/{catchup-brief-X5IVQAOH.js → catchup-brief-FSBZVYPL.js} +18 -18
  84. package/dist/{chunk-PMEOSD6S.js → chunk-24BUDF3J.js} +9 -6
  85. package/dist/{chunk-2NVEKSSP.js → chunk-2FULKRDO.js} +56 -38
  86. package/dist/{chunk-QB5JOGPK.js → chunk-2PI6JBJL.js} +5 -4
  87. package/dist/{chunk-MTIJ2NXY.js → chunk-2PWRUIKZ.js} +1 -1
  88. package/dist/{chunk-NIZQ3CIS.js → chunk-3AMGSCRH.js} +1 -1
  89. package/dist/{chunk-7ODTYODO.js → chunk-3LGID56M.js} +10 -7
  90. package/dist/{chunk-GSY6HL3T.js → chunk-4JI54RHR.js} +5 -5
  91. package/dist/{chunk-ISILDO7P.js → chunk-4THK7IA4.js} +1 -1
  92. package/dist/{chunk-IRIPGGGL.js → chunk-4UHQYBMQ.js} +1 -1
  93. package/dist/{chunk-HQODUV3G.js → chunk-552IGUBB.js} +2 -2
  94. package/dist/{chunk-IRHNV4GY.js → chunk-5KLQCGI5.js} +72 -18
  95. package/dist/{chunk-SOT23KWW.js → chunk-63UEWYM3.js} +4 -4
  96. package/dist/{chunk-QE7UVQDP.js → chunk-6PR2RAKM.js} +1 -1
  97. package/dist/{chunk-ZZXADKAP.js → chunk-6SPUK67A.js} +2 -2
  98. package/dist/{chunk-RVXWGPD3.js → chunk-75TM3APG.js} +29 -6
  99. package/dist/{chunk-IZPO6IOZ.js → chunk-7QSXARI3.js} +1 -1
  100. package/dist/{chunk-A2YZG4AD.js → chunk-AIUXE3ZJ.js} +6 -6
  101. package/dist/{chunk-U63BZI2B.js → chunk-AJERMFD6.js} +3 -3
  102. package/dist/{chunk-BUOMSIXH.js → chunk-BMNX3YWX.js} +2 -2
  103. package/dist/{chunk-YUBTHJVV.js → chunk-BRSMAFBN.js} +1 -1
  104. package/dist/{chunk-JZW5AOWI.js → chunk-BSPALHIR.js} +2 -2
  105. package/dist/{chunk-VDYUKTNS.js → chunk-CLAYNAXC.js} +4 -5
  106. package/dist/{chunk-J3QZPDNH.js → chunk-CNQ25C4C.js} +1 -1
  107. package/dist/{chunk-GWPICNSO.js → chunk-CSTL7BMK.js} +49 -4
  108. package/dist/{chunk-5DPE7B7K.js → chunk-CTYHSVHP.js} +1 -1
  109. package/dist/{chunk-EM4EYF3P.js → chunk-CVTWQZOR.js} +13 -5
  110. package/dist/{chunk-JNARUXDC.js → chunk-CW3FPWUW.js} +2 -2
  111. package/dist/{chunk-V42BSVX6.js → chunk-CWACO2D4.js} +51 -4
  112. package/dist/{chunk-RPBTYQKJ.js → chunk-CWUCD7C7.js} +1 -1
  113. package/dist/{chunk-DFUCFLZH.js → chunk-D4EMVYI7.js} +2 -2
  114. package/dist/{chunk-W2J2RF5N.js → chunk-DIHMGQGV.js} +3 -3
  115. package/dist/{chunk-YB7U4WTY.js → chunk-DJ4RG3RK.js} +2 -2
  116. package/dist/{chunk-KSMITUGY.js → chunk-DR7QPGX4.js} +3 -3
  117. package/dist/{chunk-QNXM2HXW.js → chunk-ELFFRVNL.js} +1 -1
  118. package/dist/{chunk-QEGXNJGR.js → chunk-EV2SMRLF.js} +4 -4
  119. package/dist/{chunk-VFSYVQX4.js → chunk-F3QMXKKJ.js} +8 -2
  120. package/dist/{chunk-NCC3F6GM.js → chunk-F5XPKUPK.js} +2 -2
  121. package/dist/{chunk-43R2GILO.js → chunk-FIBL4JRZ.js} +2 -2
  122. package/dist/{chunk-B2J3BBJC.js → chunk-FQH4R6UG.js} +2 -2
  123. package/dist/{chunk-AC6DKMVS.js → chunk-FSAKWKWU.js} +1 -1
  124. package/dist/{chunk-GL5NU6IK.js → chunk-FXS5OFGH.js} +1 -1
  125. package/dist/{chunk-K7KBAJQL.js → chunk-GHJRLETI.js} +10 -10
  126. package/dist/{chunk-VQRTO7IS.js → chunk-H73TUI4Y.js} +9 -2
  127. package/dist/{chunk-IIHE3FNC.js → chunk-HSXWUZOD.js} +3 -3
  128. package/dist/{chunk-JV225JBX.js → chunk-I6RHLHVW.js} +2 -2
  129. package/dist/{chunk-S6HVQF27.js → chunk-IEDCQRGG.js} +88 -4
  130. package/dist/{chunk-4Q5VNQTV.js → chunk-IFSOVXGN.js} +3 -3
  131. package/dist/{chunk-JMHKK7A5.js → chunk-ITVMRPCQ.js} +1 -1
  132. package/dist/{chunk-VT6P7FV4.js → chunk-IU44MPY3.js} +1 -1
  133. package/dist/{chunk-6OD2RVIA.js → chunk-IXTDBQYU.js} +273 -397
  134. package/dist/{chunk-2NGPZCWX.js → chunk-JB7QUK3D.js} +3 -3
  135. package/dist/{chunk-VT2B5BHM.js → chunk-JBSCL2XT.js} +2 -1
  136. package/dist/{chunk-MPX3TRMQ.js → chunk-JD5S5AAV.js} +1 -1
  137. package/dist/{chunk-XYG722JW.js → chunk-JIJKUZIO.js} +3 -3
  138. package/dist/{chunk-KMIAYKIH.js → chunk-K5C6LC2G.js} +159 -39
  139. package/dist/{chunk-DAOHCXM2.js → chunk-KH6BCYLC.js} +1 -1
  140. package/dist/{chunk-4L4R6AQJ.js → chunk-KMI4TUTW.js} +1 -1
  141. package/dist/{chunk-PHFPIUWU.js → chunk-KWOAM7TA.js} +3 -0
  142. package/dist/{chunk-RZJ6DXVE.js → chunk-L6QI2NNG.js} +1 -1
  143. package/dist/{chunk-HED6D5KR.js → chunk-MMNMQNLD.js} +43 -29
  144. package/dist/{chunk-KAVUTP5G.js → chunk-N3CRJ2VW.js} +3 -3
  145. package/dist/{chunk-OBJXZII2.js → chunk-N7LBAQGK.js} +3 -3
  146. package/dist/{chunk-LMX7UKGX.js → chunk-OUAGTQC4.js} +17 -11
  147. package/dist/{chunk-WZBUKC5N.js → chunk-OUJI2ZTY.js} +2 -2
  148. package/dist/{chunk-YUGLOZOR.js → chunk-OXTZEKVA.js} +1 -1
  149. package/dist/{chunk-OR3TAZL3.js → chunk-P4ULFI2N.js} +1 -1
  150. package/dist/{chunk-6LNSZADA.js → chunk-PVC4RNHQ.js} +50 -11
  151. package/dist/{chunk-FM7XZDZI.js → chunk-R2WP3XIN.js} +1 -1
  152. package/dist/{chunk-IBDPPBFK.js → chunk-R5IPZ5ZC.js} +1 -1
  153. package/dist/{chunk-7WDIGRSO.js → chunk-R5TZ2FC3.js} +1 -1
  154. package/dist/{chunk-2UVN2NBN.js → chunk-RICNNGYH.js} +3 -3
  155. package/dist/{chunk-WBJXJ2R4.js → chunk-RLBVY5FE.js} +17 -14
  156. package/dist/{chunk-XXJRZ75E.js → chunk-RV634O2W.js} +5 -2
  157. package/dist/{chunk-3KH6GXXX.js → chunk-RYPFOZQH.js} +2 -2
  158. package/dist/{chunk-DNFU56ZS.js → chunk-SB7W6XI4.js} +1 -1
  159. package/dist/{chunk-PPXQE7AS.js → chunk-SE6MLUOK.js} +33 -34
  160. package/dist/{chunk-65DBIEM2.js → chunk-SHIICYJW.js} +7 -1
  161. package/dist/{chunk-KPVVTHPK.js → chunk-SRMNWAHN.js} +15 -10
  162. package/dist/chunk-T2DJR7ND.js +367 -0
  163. package/dist/{chunk-Z6H6Y4BS.js → chunk-TA22MGGN.js} +1 -1
  164. package/dist/{chunk-ZOVHXTGC.js → chunk-TN7SC2ZQ.js} +1 -1
  165. package/dist/{chunk-XV5HRIXG.js → chunk-TRPGNCVB.js} +8 -8
  166. package/dist/{chunk-4BANMHJ5.js → chunk-UDZP2SHJ.js} +3 -3
  167. package/dist/{chunk-GMZMBLHT.js → chunk-UM6WUSQ7.js} +2 -2
  168. package/dist/{chunk-2EJ636HI.js → chunk-UST3MKK7.js} +1 -1
  169. package/dist/{chunk-RQ7OVXUZ.js → chunk-V2CZVZUO.js} +2 -2
  170. package/dist/{chunk-4RJJ5FJ2.js → chunk-V4UKBUUA.js} +1 -1
  171. package/dist/{chunk-EOS7VPVT.js → chunk-VA2MDALR.js} +8 -8
  172. package/dist/{chunk-SCYWCWKY.js → chunk-VG4ZH2Z3.js} +24 -10
  173. package/dist/{chunk-255DIG4B.js → chunk-VHLI6CTD.js} +1 -1
  174. package/dist/{chunk-DFIOOK5R.js → chunk-WCES22KG.js} +4 -3
  175. package/dist/{chunk-5A6KTWQL.js → chunk-WOTKNUKK.js} +126 -2
  176. package/dist/{chunk-62UZWGFX.js → chunk-WZZBGGSD.js} +63 -2
  177. package/dist/{chunk-ELXR65AN.js → chunk-X2FHTDIU.js} +6 -3
  178. package/dist/{chunk-V4BW5HFQ.js → chunk-X5I5QRC2.js} +3 -3
  179. package/dist/{chunk-X4AFBL4N.js → chunk-XCORXJ3M.js} +1 -1
  180. package/dist/{chunk-66JPZELX.js → chunk-Y5CNGG4F.js} +24 -16
  181. package/dist/{chunk-SPOXL7HF.js → chunk-YEWNIBNA.js} +9 -9
  182. package/dist/{chunk-WJ2PZGRV.js → chunk-ZAA344BL.js} +29 -2
  183. package/dist/{chunk-TN2YCFQE.js → chunk-ZGLJ2VD7.js} +5 -5
  184. package/dist/{co-activation-WN25AJOC.js → co-activation-RH46OQ3N.js} +5 -5
  185. package/dist/{co-occurrence-YP2Q3OEA.js → co-occurrence-MJWERUWY.js} +5 -5
  186. package/dist/{code-context-index-ZWONKBKX.js → code-context-index-WFUBYGQT.js} +6 -6
  187. package/dist/{content-extractor-EYRVGD6O.js → content-extractor-RHITF2KM.js} +1 -1
  188. package/dist/{conversation-wiki-populator-XFUC7S5P.js → conversation-wiki-populator-SK233TL4.js} +1 -1
  189. package/dist/{crdt-sync-ZFIFL2QM.js → crdt-sync-4R7SXTNB.js} +1 -1
  190. package/dist/{crm-webhook-DGPHULOO.js → crm-webhook-YDXX5FDK.js} +2 -2
  191. package/dist/{cto-delegation-gate-OF2A3TSS.js → cto-delegation-gate-ZJHLPK4Y.js} +14 -14
  192. package/dist/{daemon-auth-N6P2MZAV.js → daemon-auth-5FCYVQIZ.js} +3 -3
  193. package/dist/{daemon-orchestration-G4RRTPP7.js → daemon-orchestration-NBU5RZ2O.js} +18 -18
  194. package/dist/{daemon-ready-signal-3L2MJT7C.js → daemon-ready-signal-KXLL6ZFL.js} +1 -1
  195. package/dist/{db-backup-EORG4LBO.js → db-backup-BTL2FBBL.js} +9 -3
  196. package/dist/{db-restore-events-3R7G4FP4.js → db-restore-events-3A57GMLW.js} +2 -2
  197. package/dist/{doc-graph-extractor-APZS3DFD.js → doc-graph-extractor-ADYRG7DB.js} +5 -5
  198. package/dist/documents-VWPZTDFA.js +56 -0
  199. package/dist/{dreaming-Q4E3WBGY.js → dreaming-76WKGTL6.js} +15 -15
  200. package/dist/embeddings-config-FANLORDH.js +21 -0
  201. package/dist/{exe-drift-CI5R6GUT.js → exe-drift-T3IO2SPX.js} +6 -6
  202. package/dist/{exe-export-HQIQASIT.js → exe-export-6YEHSJMP.js} +9 -9
  203. package/dist/{exe-import-ULZK56WC.js → exe-import-3NERK63O.js} +9 -9
  204. package/dist/{exe-key-ILNSBGRN.js → exe-key-RCMBMLSQ.js} +8 -8
  205. package/dist/{exe-org-WQWQZRLR.js → exe-org-KCOOLUTW.js} +3 -3
  206. package/dist/{exe-snapshot-RUZTWZOF.js → exe-snapshot-JIY7MNRI.js} +18 -18
  207. package/dist/{fast-db-init-KNJRL7T3.js → fast-db-init-PVJ72264.js} +1 -1
  208. package/dist/{founder-context-QCTMEK66.js → founder-context-A4VUEKDH.js} +4 -4
  209. package/dist/gateway/index.js +17 -17
  210. package/dist/{git-staleness-KIA5YI4H.js → git-staleness-IOAHAGBI.js} +5 -5
  211. package/dist/{git-task-sweep-WH6QE7HL.js → git-task-sweep-IGM5RILF.js} +17 -15
  212. package/dist/{global-procedures-SYZZCGDS.js → global-procedures-VZL2X4RK.js} +6 -6
  213. package/dist/{graph-auto-extract-J2TIWZEE.js → graph-auto-extract-TIXRGBC5.js} +5 -5
  214. package/dist/{hook-integrity-I6PWJQER.js → hook-integrity-XNPNCMAS.js} +1 -1
  215. package/dist/hooks/bug-report-worker.js +47 -17
  216. package/dist/hooks/codex-stop-task-finalizer.js +47 -17
  217. package/dist/hooks/commit-complete.js +18 -18
  218. package/dist/hooks/error-recall.js +11 -11
  219. package/dist/hooks/exe-heartbeat-hook.js +7 -7
  220. package/dist/hooks/ingest-worker.js +39 -9
  221. package/dist/hooks/ingest.js +17 -17
  222. package/dist/hooks/instructions-loaded.js +8 -8
  223. package/dist/hooks/manifest.json +20 -20
  224. package/dist/hooks/notification.js +8 -8
  225. package/dist/hooks/post-compact.js +17 -17
  226. package/dist/hooks/post-tool-combined.js +60 -7
  227. package/dist/hooks/pre-compact.js +23 -23
  228. package/dist/hooks/pre-tool-use.js +64 -34
  229. package/dist/hooks/prompt-submit.js +40 -32
  230. package/dist/hooks/session-end.js +29 -29
  231. package/dist/hooks/session-start.js +17 -17
  232. package/dist/hooks/stop.js +24 -24
  233. package/dist/hooks/subagent-stop.js +17 -17
  234. package/dist/hooks/summary-worker.js +55 -25
  235. package/dist/index.js +27 -27
  236. package/dist/{installer-PSDYMGN7.js → installer-D7D5O4KL.js} +10 -10
  237. package/dist/{installer-3NB3IBHF.js → installer-EQP2EMNZ.js} +10 -10
  238. package/dist/{installer-IIJFCTMH.js → installer-IWRYH55Z.js} +10 -10
  239. package/dist/{key-backup-status-FNSN3NXH.js → key-backup-status-ZNGDSPLT.js} +2 -2
  240. package/dist/lib/agent-config.js +3 -3
  241. package/dist/lib/cloud-sync.js +16 -16
  242. package/dist/lib/config.js +2 -2
  243. package/dist/lib/consolidation.js +8 -8
  244. package/dist/lib/database.js +7 -5
  245. package/dist/lib/db-daemon-client.js +6 -6
  246. package/dist/lib/db.js +7 -5
  247. package/dist/lib/device-registry.js +3 -3
  248. package/dist/lib/embed-worker.js +2 -2
  249. package/dist/lib/embedder.js +6 -6
  250. package/dist/lib/employee-templates.js +7 -7
  251. package/dist/lib/employees.js +5 -5
  252. package/dist/lib/exe-daemon-client.js +5 -5
  253. package/dist/lib/exe-daemon.js +449 -89
  254. package/dist/lib/hybrid-search.js +8 -8
  255. package/dist/lib/identity.js +5 -5
  256. package/dist/lib/license.js +4 -4
  257. package/dist/lib/messaging.js +15 -15
  258. package/dist/lib/post-tool-memory.js +2 -2
  259. package/dist/lib/reminders.js +6 -6
  260. package/dist/lib/schedules.js +8 -8
  261. package/dist/lib/session-registry.js +9 -7
  262. package/dist/lib/session-wrappers.js +1 -1
  263. package/dist/lib/skill-learning.js +9 -9
  264. package/dist/lib/store.js +7 -7
  265. package/dist/lib/task-router.js +6 -6
  266. package/dist/lib/tasks.js +16 -16
  267. package/dist/lib/tmux-routing.js +14 -14
  268. package/dist/lib/token-spend.js +6 -6
  269. package/dist/{license-gate-7SDHCJUO.js → license-gate-PZOP7S2S.js} +5 -5
  270. package/dist/mcp/register-tools.js +73 -72
  271. package/dist/mcp/server.js +74 -73
  272. package/dist/mcp/tools/complete-reminder.js +7 -7
  273. package/dist/mcp/tools/create-reminder.js +7 -7
  274. package/dist/mcp/tools/create-task.js +18 -18
  275. package/dist/mcp/tools/deactivate-behavior.js +10 -10
  276. package/dist/mcp/tools/list-reminders.js +7 -7
  277. package/dist/mcp/tools/list-tasks.js +18 -18
  278. package/dist/mcp/tools/send-message.js +17 -17
  279. package/dist/mcp/tools/update-task.js +17 -17
  280. package/dist/{mcp-http-config-QSOVFXHW.js → mcp-http-config-23DHJAU4.js} +7 -7
  281. package/dist/{mcp-port-config-AWWRZA22.js → mcp-port-config-FFAMMLLE.js} +2 -1
  282. package/dist/{memory-cards-II67WFL2.js → memory-cards-CNLMHSZC.js} +5 -5
  283. package/dist/{memory-graph-extractor-PM4Q2KJG.js → memory-graph-extractor-HIXP2BQS.js} +6 -6
  284. package/dist/{memory-poisoning-defense-ECXSX7HK.js → memory-poisoning-defense-YL53IBBF.js} +5 -5
  285. package/dist/{memory-queue-VAE6WMSS.js → memory-queue-3Q5P43AM.js} +3 -3
  286. package/dist/memory-queue-client-YP2QKX6J.js +16 -0
  287. package/dist/{memory-reflection-PXF6YFDU.js → memory-reflection-VHQRUZWK.js} +5 -5
  288. package/dist/{notifications-UP7WQGG4.js → notifications-Q5NEAP6K.js} +14 -14
  289. package/dist/{orchestration-events-PZLLPCKY.js → orchestration-events-7SNWRJYE.js} +6 -6
  290. package/dist/{orchestration-phase-SJOXDB7X.js → orchestration-phase-U45T4VG3.js} +3 -3
  291. package/dist/{orchestrator-PUT45J4O.js → orchestrator-XWLKNWUG.js} +16 -16
  292. package/dist/{pipeline-router-5CRWKESM.js → pipeline-router-5IBJBH7P.js} +6 -6
  293. package/dist/{plan-limits-SH2NDFNX.js → plan-limits-PBEZVHRQ.js} +8 -8
  294. package/dist/{preferences-YWBTKW3M.js → preferences-TYTGDXQZ.js} +2 -2
  295. package/dist/{project-boot-2TCPDZ4S.js → project-boot-OHEGJD2L.js} +2 -2
  296. package/dist/{projection-worker-HWY37MNC.js → projection-worker-HELRBNDR.js} +5 -5
  297. package/dist/{prospective-memory-FQSVMCGG.js → prospective-memory-N55XRGJP.js} +5 -5
  298. package/dist/{push-notifications-DK6XA5B3.js → push-notifications-PAFNP3EC.js} +3 -3
  299. package/dist/{reranker-AALRMGMM.js → reranker-MNJSTOPR.js} +3 -3
  300. package/dist/{retrieval-health-PNWJSJNG.js → retrieval-health-W4HNR3WX.js} +1 -1
  301. package/dist/{review-polling-65JZUE3T.js → review-polling-SRYZU2PI.js} +15 -15
  302. package/dist/runtime/index.js +22 -22
  303. package/dist/{session-events-EJ3OSAA6.js → session-events-L4DK5J6J.js} +15 -15
  304. package/dist/{session-kill-telemetry-3HGM7SNQ.js → session-kill-telemetry-U2YHKHCB.js} +15 -15
  305. package/dist/{session-scope-JGDYAMJO.js → session-scope-JTPHECAU.js} +14 -14
  306. package/dist/{setup-wizard-44LMFM2C.js → setup-wizard-IP5R66LR.js} +3 -3
  307. package/dist/{shard-manager-KUCJPLC6.js → shard-manager-RASGFMGS.js} +3 -3
  308. package/dist/{skill-refinement-DUOO6B7V.js → skill-refinement-VTYL4OMJ.js} +5 -5
  309. package/dist/{stack-release-XYMKU7NT.js → stack-release-TOCCJQOF.js} +244 -45
  310. package/dist/{stack-update-TUBZTY7Z.js → stack-update-MRNVHUZZ.js} +11 -5
  311. package/dist/{steward-gate-6NWRDLX2.js → steward-gate-JEVUDTBI.js} +6 -6
  312. package/dist/{task-enforcement-UOULTGFB.js → task-enforcement-VFSAAZUN.js} +14 -14
  313. package/dist/{task-scope-P5STKYAC.js → task-scope-P4VLIQNP.js} +14 -14
  314. package/dist/{tasks-crud-24HMTULR.js → tasks-crud-SC3ERIUR.js} +14 -14
  315. package/dist/{tasks-notify-LAIU7UUI.js → tasks-notify-WJYBUCIB.js} +15 -15
  316. package/dist/{tasks-review-AFJAU2DY.js → tasks-review-XPVPHCGD.js} +14 -14
  317. package/dist/{telemetry-upload-DWFGC2XJ.js → telemetry-upload-4QEYQROW.js} +10 -10
  318. package/dist/{token-budget-4RFZKWGH.js → token-budget-UBOP3HVE.js} +6 -6
  319. package/dist/{tool-capability-index-ZEXBWKUZ.js → tool-capability-index-SHYCBE2Z.js} +1 -1
  320. package/dist/{tool-telemetry-BS5JXM5M.js → tool-telemetry-CDNPES5B.js} +1 -1
  321. package/dist/tui/App.js +27 -27
  322. package/dist/{tui-data-UNO5B7PU.js → tui-data-HVYY7GRK.js} +14 -14
  323. package/dist/{worker-gate-C6CTTYMD.js → worker-gate-KQTODSUQ.js} +3 -3
  324. package/dist/{workflow-engine-4W2KYCDV.js → workflow-engine-OP2DQISD.js} +2 -2
  325. package/dist/{working-memory-FXHQCJJE.js → working-memory-PY4AG577.js} +22 -2
  326. package/dist/{worktree-2CXY6NEB.js → worktree-Z2G4CP4Z.js} +7 -7
  327. package/dist/{worktree-sweep-K3CJFSUL.js → worktree-sweep-LWSCAZW6.js} +8 -8
  328. package/package.json +2 -2
  329. package/release-notes.json +56 -113
  330. package/stack.release.json +7 -7
  331. package/dist/memory-queue-client-HLURQEV6.js +0 -16
  332. /package/dist/{chunk-J3SR5MGG.js → chunk-GIS4GBZE.js} +0 -0
  333. /package/dist/{chunk-AE74NOE6.js → chunk-NAPBIDGH.js} +0 -0
  334. /package/dist/{chunk-I3DPCSDG.js → chunk-OJS2H5HR.js} +0 -0
  335. /package/dist/{chunk-K4BKJJ4F.js → chunk-PCRRDXGL.js} +0 -0
  336. /package/dist/{chunk-MQCTK6EF.js → chunk-RRYJTPVW.js} +0 -0
  337. /package/dist/{chunk-2NS3QRMJ.js → chunk-ZIVUMDHA.js} +0 -0
  338. /package/dist/{core-memory-OC5ITKKV.js → core-memory-4JWCAGJI.js} +0 -0
  339. /package/dist/{entity-boost-NF3LE6OJ.js → entity-boost-AU342QRK.js} +0 -0
  340. /package/dist/{message-queue-client-4VDU6BZY.js → message-queue-client-IXYLJJVJ.js} +0 -0
  341. /package/dist/{oauth-server-EWUL7DMD.js → oauth-server-F4QWESK2.js} +0 -0
  342. /package/dist/{webhook-pipe-DHIGZHPW.js → webhook-pipe-S4CWK6H5.js} +0 -0
  343. /package/dist/{wiki-acl-CONNF6ES.js → wiki-acl-6GZHUA44.js} +0 -0
  344. /package/dist/{wiki-client-N6PT5P7W.js → wiki-client-CIJXRMKL.js} +0 -0
@@ -4,41 +4,41 @@ import {
4
4
  import {
5
5
  hybridSearch,
6
6
  lightweightSearch
7
- } from "../chunk-66JPZELX.js";
7
+ } from "../chunk-Y5CNGG4F.js";
8
8
  import "../chunk-AB4PAQYK.js";
9
9
  import {
10
10
  initStore
11
- } from "../chunk-WBJXJ2R4.js";
11
+ } from "../chunk-RLBVY5FE.js";
12
12
  import "../chunk-CHCA3ZM2.js";
13
13
  import "../chunk-OTVEIJUQ.js";
14
- import "../chunk-MQCTK6EF.js";
14
+ import "../chunk-RRYJTPVW.js";
15
15
  import "../chunk-SH45SJQW.js";
16
16
  import {
17
17
  getActiveAgent
18
- } from "../chunk-BUOMSIXH.js";
18
+ } from "../chunk-BMNX3YWX.js";
19
19
  import "../chunk-Y25OJWOQ.js";
20
20
  import "../chunk-CVYC6DUW.js";
21
21
  import "../chunk-GJV3WDWM.js";
22
22
  import "../chunk-MP2AFCGL.js";
23
23
  import {
24
24
  resolveHookSearchEnabled
25
- } from "../chunk-PHFPIUWU.js";
25
+ } from "../chunk-KWOAM7TA.js";
26
26
  import "../chunk-HYZV25LY.js";
27
27
  import {
28
28
  getClient
29
- } from "../chunk-SCYWCWKY.js";
29
+ } from "../chunk-VG4ZH2Z3.js";
30
30
  import "../chunk-2I23RPSI.js";
31
- import "../chunk-GWPICNSO.js";
31
+ import "../chunk-CSTL7BMK.js";
32
32
  import "../chunk-PNQDP3OA.js";
33
- import "../chunk-VQRTO7IS.js";
33
+ import "../chunk-H73TUI4Y.js";
34
34
  import "../chunk-7HLWBYH7.js";
35
35
  import "../chunk-FXU7JOXK.js";
36
36
  import "../chunk-Z42MXYWW.js";
37
37
  import {
38
38
  loadConfig,
39
39
  loadConfigSync
40
- } from "../chunk-DFIOOK5R.js";
41
- import "../chunk-65DBIEM2.js";
40
+ } from "../chunk-WCES22KG.js";
41
+ import "../chunk-SHIICYJW.js";
42
42
  import "../chunk-MLKGABMK.js";
43
43
 
44
44
  // src/adapters/claude/hooks/error-recall.ts
@@ -51,7 +51,7 @@ process.on("unhandledRejection", (err) => {
51
51
  process.exit(1);
52
52
  });
53
53
  try {
54
- const { verifyOrBlock } = await import("../hook-integrity-I6PWJQER.js");
54
+ const { verifyOrBlock } = await import("../hook-integrity-XNPNCMAS.js");
55
55
  if (!await verifyOrBlock(new URL(import.meta.url).pathname)) process.exit(2);
56
56
  } catch (err) {
57
57
  const code = err?.code;
@@ -1,20 +1,20 @@
1
1
  import "../chunk-SH45SJQW.js";
2
2
  import {
3
3
  getActiveAgent
4
- } from "../chunk-BUOMSIXH.js";
4
+ } from "../chunk-BMNX3YWX.js";
5
5
  import "../chunk-CVYC6DUW.js";
6
6
  import "../chunk-GJV3WDWM.js";
7
7
  import {
8
8
  canCoordinate
9
- } from "../chunk-SCYWCWKY.js";
9
+ } from "../chunk-VG4ZH2Z3.js";
10
10
  import "../chunk-2I23RPSI.js";
11
- import "../chunk-GWPICNSO.js";
11
+ import "../chunk-CSTL7BMK.js";
12
12
  import "../chunk-PNQDP3OA.js";
13
- import "../chunk-VQRTO7IS.js";
13
+ import "../chunk-H73TUI4Y.js";
14
14
  import "../chunk-7HLWBYH7.js";
15
15
  import "../chunk-FXU7JOXK.js";
16
- import "../chunk-DFIOOK5R.js";
17
- import "../chunk-65DBIEM2.js";
16
+ import "../chunk-WCES22KG.js";
17
+ import "../chunk-SHIICYJW.js";
18
18
  import "../chunk-MLKGABMK.js";
19
19
 
20
20
  // src/adapters/claude/hooks/exe-heartbeat-hook.ts
@@ -30,7 +30,7 @@ process.on("unhandledRejection", (err) => {
30
30
  process.exit(1);
31
31
  });
32
32
  try {
33
- const { verifyOrBlock } = await import("../hook-integrity-I6PWJQER.js");
33
+ const { verifyOrBlock } = await import("../hook-integrity-XNPNCMAS.js");
34
34
  if (!await verifyOrBlock(new URL(import.meta.url).pathname)) process.exit(2);
35
35
  } catch (err) {
36
36
  const code = err?.code;
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  buildPostToolMemoryEntry
3
- } from "../chunk-MPX3TRMQ.js";
4
- import "../chunk-VT2B5BHM.js";
3
+ } from "../chunk-JD5S5AAV.js";
4
+ import "../chunk-JBSCL2XT.js";
5
5
  import {
6
6
  writeMemoryViaDaemon
7
- } from "../chunk-NCC3F6GM.js";
8
- import "../chunk-YUGLOZOR.js";
9
- import "../chunk-PPXQE7AS.js";
10
- import "../chunk-RQ7OVXUZ.js";
7
+ } from "../chunk-F5XPKUPK.js";
8
+ import "../chunk-OXTZEKVA.js";
9
+ import "../chunk-SE6MLUOK.js";
10
+ import "../chunk-V2CZVZUO.js";
11
11
  import "../chunk-AHMUF6RO.js";
12
12
  import "../chunk-Y25OJWOQ.js";
13
13
  import "../chunk-OPU3NYOO.js";
14
14
  import "../chunk-GJV3WDWM.js";
15
- import "../chunk-RVXWGPD3.js";
15
+ import "../chunk-75TM3APG.js";
16
16
  import "../chunk-7XGDTKHX.js";
17
17
  import "../chunk-HYZV25LY.js";
18
- import "../chunk-DFIOOK5R.js";
19
- import "../chunk-65DBIEM2.js";
18
+ import "../chunk-WCES22KG.js";
19
+ import "../chunk-SHIICYJW.js";
20
20
  import "../chunk-MLKGABMK.js";
21
21
 
22
22
  // src/adapters/claude/hooks/ingest-worker.ts
@@ -28,6 +28,36 @@ process.on("unhandledRejection", (err) => {
28
28
  console.error(`[exe-os:hook:ingest-worker] FATAL: ${err instanceof Error ? err.stack ?? err.message : String(err)}`);
29
29
  process.exit(1);
30
30
  });
31
+ try {
32
+ const { verifyHookIntegrity } = await import("../hook-integrity-XNPNCMAS.js");
33
+ const check = verifyHookIntegrity(new URL(import.meta.url).pathname);
34
+ if (!check.verified) {
35
+ process.stderr.write(`[SECURITY] Hook tamper detected: ingest-worker.js \u2014 ${check.reason} \u2014 refusing to run
36
+ `);
37
+ try {
38
+ const { pushNotifyAsync } = await import("../push-notifications-PAFNP3EC.js");
39
+ pushNotifyAsync({
40
+ event: "security_alert",
41
+ title: "Hook tamper detected",
42
+ body: `ingest-worker.js: ${check.reason}`,
43
+ priority: "urgent"
44
+ });
45
+ } catch {
46
+ }
47
+ process.exit(1);
48
+ }
49
+ } catch (err) {
50
+ const code = err?.code;
51
+ if (code === "ERR_MODULE_NOT_FOUND" || code === "MODULE_NOT_FOUND") {
52
+ process.stderr.write("[exe-os:hook:ingest-worker] hook-integrity module absent \u2014 running unverified (dev/first-install)\n");
53
+ } else {
54
+ process.stderr.write(
55
+ `[SECURITY] hook-integrity failed to load for ingest-worker \u2014 refusing to run: ${err instanceof Error ? err.message : String(err)}
56
+ `
57
+ );
58
+ process.exit(1);
59
+ }
60
+ }
31
61
  process.env.EXE_EMBED_PRIORITY = "low";
32
62
  var input = "";
33
63
  process.stdin.setEncoding("utf8");
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  registerWorkerPid,
3
3
  tryAcquireWorkerSlot
4
- } from "../chunk-GMZMBLHT.js";
4
+ } from "../chunk-UM6WUSQ7.js";
5
5
  import {
6
6
  classifyError,
7
7
  detectError,
@@ -15,7 +15,7 @@ import "../chunk-YSU7JB7H.js";
15
15
  import "../chunk-SH45SJQW.js";
16
16
  import {
17
17
  getActiveAgent
18
- } from "../chunk-BUOMSIXH.js";
18
+ } from "../chunk-BMNX3YWX.js";
19
19
  import {
20
20
  getSessionKey
21
21
  } from "../chunk-CVYC6DUW.js";
@@ -23,18 +23,18 @@ import "../chunk-GJV3WDWM.js";
23
23
  import "../chunk-HYZV25LY.js";
24
24
  import {
25
25
  getCoordinatorName
26
- } from "../chunk-SCYWCWKY.js";
26
+ } from "../chunk-VG4ZH2Z3.js";
27
27
  import "../chunk-2I23RPSI.js";
28
- import "../chunk-GWPICNSO.js";
28
+ import "../chunk-CSTL7BMK.js";
29
29
  import "../chunk-PNQDP3OA.js";
30
- import "../chunk-VQRTO7IS.js";
30
+ import "../chunk-H73TUI4Y.js";
31
31
  import "../chunk-7HLWBYH7.js";
32
32
  import "../chunk-FXU7JOXK.js";
33
33
  import {
34
34
  EXE_AI_DIR,
35
35
  loadConfigSync
36
- } from "../chunk-DFIOOK5R.js";
37
- import "../chunk-65DBIEM2.js";
36
+ } from "../chunk-WCES22KG.js";
37
+ import "../chunk-SHIICYJW.js";
38
38
  import "../chunk-MLKGABMK.js";
39
39
 
40
40
  // src/adapters/claude/hooks/ingest.ts
@@ -51,13 +51,13 @@ process.on("unhandledRejection", (err) => {
51
51
  process.exit(1);
52
52
  });
53
53
  try {
54
- const { verifyHookIntegrity } = await import("../hook-integrity-I6PWJQER.js");
54
+ const { verifyHookIntegrity } = await import("../hook-integrity-XNPNCMAS.js");
55
55
  const check = verifyHookIntegrity(new URL(import.meta.url).pathname);
56
56
  if (!check.verified) {
57
57
  process.stderr.write(`[SECURITY] Hook tamper detected: ingest.js \u2014 ${check.reason} \u2014 neutralizing (skipping ingestion, non-blocking)
58
58
  `);
59
59
  try {
60
- const { pushNotifyAsync } = await import("../push-notifications-DK6XA5B3.js");
60
+ const { pushNotifyAsync } = await import("../push-notifications-PAFNP3EC.js");
61
61
  pushNotifyAsync({
62
62
  event: "security_alert",
63
63
  title: "Hook tamper detected",
@@ -154,7 +154,7 @@ process.stdin.on("end", async () => {
154
154
  if (filePath) {
155
155
  const { initStore } = await import("../lib/store.js");
156
156
  await initStore({ lightweight: true });
157
- const { recordFileRead } = await import("../git-staleness-KIA5YI4H.js");
157
+ const { recordFileRead } = await import("../git-staleness-IOAHAGBI.js");
158
158
  await recordFileRead(
159
159
  data.session_id,
160
160
  agent.agentId,
@@ -253,7 +253,7 @@ Your output files must start with: exe/output/${agent.agentId}-`
253
253
  );
254
254
  if (existsSync(bugWorkerPath) && tryAcquireWorkerSlot()) {
255
255
  try {
256
- const { verifyHookIntegrity } = await import("../hook-integrity-I6PWJQER.js");
256
+ const { verifyHookIntegrity } = await import("../hook-integrity-XNPNCMAS.js");
257
257
  const c = verifyHookIntegrity(bugWorkerPath);
258
258
  if (!c.verified) {
259
259
  process.stderr.write(`[SECURITY] Hook tamper: bug-report-worker.js \u2014 ${c.reason}
@@ -321,7 +321,7 @@ Your output files must start with: exe/output/${agent.agentId}-`
321
321
  );
322
322
  if (existsSync(summaryWorkerPath) && tryAcquireWorkerSlot()) {
323
323
  try {
324
- const { verifyHookIntegrity } = await import("../hook-integrity-I6PWJQER.js");
324
+ const { verifyHookIntegrity } = await import("../hook-integrity-XNPNCMAS.js");
325
325
  const c = verifyHookIntegrity(summaryWorkerPath);
326
326
  if (!c.verified) {
327
327
  process.stderr.write(`[SECURITY] Hook tamper: summary-worker.js \u2014 ${c.reason}
@@ -372,7 +372,7 @@ Your output files must start with: exe/output/${agent.agentId}-`
372
372
  if (taskData.taskId) {
373
373
  const { initStore: cpInit } = await import("../lib/store.js");
374
374
  await cpInit();
375
- const { writeCheckpoint } = await import("../tasks-crud-24HMTULR.js");
375
+ const { writeCheckpoint } = await import("../tasks-crud-SC3ERIUR.js");
376
376
  await writeCheckpoint({
377
377
  taskId: taskData.taskId,
378
378
  step: `auto_checkpoint_${counter.total}`,
@@ -409,7 +409,7 @@ WARNING: You are writing code without running the build pipeline. If this task a
409
409
  );
410
410
  if (existsSync(commitWorkerPath) && tryAcquireWorkerSlot()) {
411
411
  try {
412
- const { verifyHookIntegrity } = await import("../hook-integrity-I6PWJQER.js");
412
+ const { verifyHookIntegrity } = await import("../hook-integrity-XNPNCMAS.js");
413
413
  const c = verifyHookIntegrity(commitWorkerPath);
414
414
  if (!c.verified) {
415
415
  process.stderr.write(`[SECURITY] Hook tamper: commit-complete.js \u2014 ${c.reason}
@@ -453,10 +453,10 @@ WARNING: You are writing code without running the build pipeline. If this task a
453
453
  try {
454
454
  const socketPath = process.env.EXE_DAEMON_SOCK ?? process.env.EXE_EMBED_SOCK ?? path.join(EXE_AI_DIR, "exed.sock");
455
455
  if (existsSync(socketPath)) {
456
- const { extractSemanticText } = await import("../content-extractor-EYRVGD6O.js");
456
+ const { extractSemanticText } = await import("../content-extractor-RHITF2KM.js");
457
457
  const { getProjectName } = await import("../project-name-EWG5KAZP.js");
458
458
  const { canCoordinate } = await import("../lib/employees.js");
459
- const { readDaemonToken } = await import("../daemon-auth-N6P2MZAV.js");
459
+ const { readDaemonToken } = await import("../daemon-auth-5FCYVQIZ.js");
460
460
  const rawText = extractSemanticText(data.tool_name, data.tool_input ?? {}, data.tool_response ?? {});
461
461
  if (rawText.length >= 50) {
462
462
  let taskId = null;
@@ -519,7 +519,7 @@ WARNING: You are writing code without running the build pipeline. If this task a
519
519
  process.exit(0);
520
520
  }
521
521
  try {
522
- const { verifyHookIntegrity } = await import("../hook-integrity-I6PWJQER.js");
522
+ const { verifyHookIntegrity } = await import("../hook-integrity-XNPNCMAS.js");
523
523
  const check = verifyHookIntegrity(workerPath);
524
524
  if (!check.verified) {
525
525
  process.stderr.write(`[SECURITY] Hook tamper detected: ingest-worker.js \u2014 ${check.reason}
@@ -1,20 +1,20 @@
1
1
  import "../chunk-SH45SJQW.js";
2
2
  import {
3
3
  getActiveAgent
4
- } from "../chunk-BUOMSIXH.js";
4
+ } from "../chunk-BMNX3YWX.js";
5
5
  import "../chunk-CVYC6DUW.js";
6
6
  import "../chunk-GJV3WDWM.js";
7
7
  import {
8
8
  getIdentityInjection
9
- } from "../chunk-SCYWCWKY.js";
9
+ } from "../chunk-VG4ZH2Z3.js";
10
10
  import "../chunk-2I23RPSI.js";
11
- import "../chunk-GWPICNSO.js";
11
+ import "../chunk-CSTL7BMK.js";
12
12
  import "../chunk-PNQDP3OA.js";
13
- import "../chunk-VQRTO7IS.js";
13
+ import "../chunk-H73TUI4Y.js";
14
14
  import "../chunk-7HLWBYH7.js";
15
15
  import "../chunk-FXU7JOXK.js";
16
- import "../chunk-DFIOOK5R.js";
17
- import "../chunk-65DBIEM2.js";
16
+ import "../chunk-WCES22KG.js";
17
+ import "../chunk-SHIICYJW.js";
18
18
  import "../chunk-MLKGABMK.js";
19
19
 
20
20
  // src/adapters/claude/hooks/instructions-loaded.ts
@@ -27,7 +27,7 @@ process.on("unhandledRejection", (err) => {
27
27
  process.exit(1);
28
28
  });
29
29
  try {
30
- const { verifyOrBlock } = await import("../hook-integrity-I6PWJQER.js");
30
+ const { verifyOrBlock } = await import("../hook-integrity-XNPNCMAS.js");
31
31
  if (!await verifyOrBlock(new URL(import.meta.url).pathname)) process.exit(2);
32
32
  } catch (err) {
33
33
  const code = err?.code;
@@ -74,7 +74,7 @@ process.stdin.on("end", async () => {
74
74
  pass = false;
75
75
  }
76
76
  try {
77
- const { fastDbInit } = await import("../fast-db-init-KNJRL7T3.js");
77
+ const { fastDbInit } = await import("../fast-db-init-PVJ72264.js");
78
78
  await fastDbInit();
79
79
  const { getClient } = await import("../lib/database.js");
80
80
  const client = getClient();
@@ -1,25 +1,25 @@
1
1
  {
2
2
  "version": 1,
3
- "generatedAt": "2026-06-23T04:10:46.733Z",
3
+ "generatedAt": "2026-06-29T09:34:47.433Z",
4
4
  "hashes": {
5
- "bug-report-worker.js": "de2c15a312082f7dbc40c0cc54401fd09125e55f49bc88243b209a2d0b8cc74c",
6
- "codex-stop-task-finalizer.js": "7c2e9ec456c478b8bf87acb66f1c06a5e9a416049fb94deffe83e286832ba4e8",
7
- "commit-complete.js": "22a35c34c5a9ad4ed05518e8ecad1fe2ebde361216b9d330bfd32855461db8c2",
8
- "error-recall.js": "86b98338fa5feb346631a61b6584ce7ce3ed27f5de3886090dedfaaf9422e9d8",
9
- "exe-heartbeat-hook.js": "ebdb5e37ba832439c20c92917e658bde69b9730bfee48791b648a08f201c4cd1",
10
- "ingest-worker.js": "252bc4875fa76415b11512a3511dc647d6a57797de26a318b725d0c8bcea90e2",
11
- "ingest.js": "8f38a2697d2b302b94f85000dd778f58fc915858df2fc5722b3f26b32889c30f",
12
- "instructions-loaded.js": "ec7e76b7916bd2e5de691d603490541fe486922b61ced5021a9b8bb5c20ed76c",
13
- "notification.js": "b1add39687cc9811fb9a4f0bb9894a9fbb7a19753d7aef470051232008af6de0",
14
- "post-compact.js": "744322b56a86bf963efaed22252950f1cf9eee57e4a32f4c7d94a387738410f7",
15
- "post-tool-combined.js": "89c6078463c22c2d7ccd37a155f1d7e8c9c24d7fab5f046281bd90ddd79e4454",
16
- "pre-compact.js": "eb9982e6bfecad4657e612d3a4bdd348d8456fcbd6b53ba67ec91644fb75964b",
17
- "pre-tool-use.js": "2f2ca0b6a0f1dce99bb5d1fc4a7c7f67eb78cbd1a9742eebe7be60d58ff15b97",
18
- "prompt-submit.js": "2f5be853a6c073ccf23913cd5bacaac1f9cadd414bac34b5bb615b0236082186",
19
- "session-end.js": "e955afabe7b8db9066a25a69788bdcf80eba629b1d755ea11c68637fc010c852",
20
- "session-start.js": "4eb22f2015926a731c461fe2ce5da303ebd39eee863e805e8e92c5863ee0f6c7",
21
- "stop.js": "e2d1e6fe904f9c8ba2c549000780a6e535cee4f0c09c2732d815a2b1b457959d",
22
- "subagent-stop.js": "dfd3a434b52bebc6f02aad5f9d78248f4a90d2a950676de4c0f7088feabec9ec",
23
- "summary-worker.js": "56feb173e0f7d853cb4c14d8f6a8ad525c3ccd59a4a9d12f1ecc6d9c183076f5"
5
+ "bug-report-worker.js": "4880fa1b1bc0642b66fba2e01c21b1d38b7f39ff95d9508711acd2e70aa3f2b9",
6
+ "codex-stop-task-finalizer.js": "eeed7d502801a4913e26390639797cde380e67159cd9d30b214e9c5e4056d846",
7
+ "commit-complete.js": "e980c372bd0aa76aa36bf2cea8daceb2f156f28e16797c0c224b9cdd4df105c2",
8
+ "error-recall.js": "12615597c07e9d6c6b00767cdd310d2d10abc8d8c6f6ece8574358238eebb69f",
9
+ "exe-heartbeat-hook.js": "631989154032310968460be3868412f4213e1245ad833ea5512367e25712a6c6",
10
+ "ingest-worker.js": "5f2a4482fbc6dbb288de0e61f51e723af24e7c7a8636400f88ebd3dfedd102bd",
11
+ "ingest.js": "acccb7d32808b2c0fc3297908d92bb6705d265c815d7f5e44cf50346e33c7a2d",
12
+ "instructions-loaded.js": "4c9ec401cdbb0b38e6dc5c44405e41dd9d0a8e3dfb5885bd01e5ef2a0489e364",
13
+ "notification.js": "4fb5135c5516dc7b8536e58a5f57d5cf775104c1df87372079a8b4bc15c3bacb",
14
+ "post-compact.js": "ae7ed6805ef26f2e6d86f231c9a7ec1850f1cb15df0f92f40ad50e99e7170492",
15
+ "post-tool-combined.js": "6f7e56c9d2ed3e7533ef2154b1c8b535f31ba94eca4a21b4b82a83dcf83ab159",
16
+ "pre-compact.js": "b0d99c33aa62f179b903d5d00f7b5a693d8d5a72f78c7eb7910bc4813fd554e2",
17
+ "pre-tool-use.js": "90876034c476ba7a8d23664f36337233c731a5bc305a54bbb7d7a194566f85f9",
18
+ "prompt-submit.js": "7f671b12b494bbdff11a7a9b206e747df8177cfeb26b891df084fea0a4c166c9",
19
+ "session-end.js": "3584fb797b93840203893264e18996cb14dbb1df22d22df5678fab145c3b5e7e",
20
+ "session-start.js": "1a75bea7f12a18ae9dde04d05150bb94b11b3e481ceca52f47230a244761fccd",
21
+ "stop.js": "9292bf7188a7e48d0cd94a35d32e5e16e807727fc3dc45810d08785178ce4ecf",
22
+ "subagent-stop.js": "c8d532702fe9cc69004f710317a21fe1a7174f246c3dc0156bd0b4a400acf715",
23
+ "summary-worker.js": "758f6f0438d77ca46c73e2927d80ae0e1172d7a8a0693d7a66be7d2928d52f36"
24
24
  }
25
25
  }
@@ -1,18 +1,18 @@
1
1
  import "../chunk-SH45SJQW.js";
2
2
  import {
3
3
  getActiveAgent
4
- } from "../chunk-BUOMSIXH.js";
4
+ } from "../chunk-BMNX3YWX.js";
5
5
  import "../chunk-CVYC6DUW.js";
6
6
  import "../chunk-GJV3WDWM.js";
7
- import "../chunk-SCYWCWKY.js";
7
+ import "../chunk-VG4ZH2Z3.js";
8
8
  import "../chunk-2I23RPSI.js";
9
- import "../chunk-GWPICNSO.js";
9
+ import "../chunk-CSTL7BMK.js";
10
10
  import "../chunk-PNQDP3OA.js";
11
- import "../chunk-VQRTO7IS.js";
11
+ import "../chunk-H73TUI4Y.js";
12
12
  import "../chunk-7HLWBYH7.js";
13
13
  import "../chunk-FXU7JOXK.js";
14
- import "../chunk-DFIOOK5R.js";
15
- import "../chunk-65DBIEM2.js";
14
+ import "../chunk-WCES22KG.js";
15
+ import "../chunk-SHIICYJW.js";
16
16
  import "../chunk-MLKGABMK.js";
17
17
 
18
18
  // src/adapters/claude/hooks/notification.ts
@@ -25,7 +25,7 @@ process.on("unhandledRejection", (err) => {
25
25
  process.exit(1);
26
26
  });
27
27
  try {
28
- const { verifyOrBlock } = await import("../hook-integrity-I6PWJQER.js");
28
+ const { verifyOrBlock } = await import("../hook-integrity-XNPNCMAS.js");
29
29
  if (!await verifyOrBlock(new URL(import.meta.url).pathname)) process.exit(2);
30
30
  } catch (err) {
31
31
  const code = err?.code;
@@ -61,7 +61,7 @@ process.stdin.on("end", async () => {
61
61
  process.exit(0);
62
62
  }
63
63
  try {
64
- const { fastDbInit } = await import("../fast-db-init-KNJRL7T3.js");
64
+ const { fastDbInit } = await import("../fast-db-init-PVJ72264.js");
65
65
  await fastDbInit();
66
66
  const { getClient } = await import("../lib/database.js");
67
67
  const { randomUUID } = await import("crypto");
@@ -1,39 +1,39 @@
1
1
  import "../chunk-SH45SJQW.js";
2
2
  import {
3
3
  getActiveAgent
4
- } from "../chunk-BUOMSIXH.js";
4
+ } from "../chunk-BMNX3YWX.js";
5
5
  import {
6
6
  sessionScopeFilter
7
- } from "../chunk-HED6D5KR.js";
8
- import "../chunk-RZJ6DXVE.js";
7
+ } from "../chunk-MMNMQNLD.js";
8
+ import "../chunk-L6QI2NNG.js";
9
9
  import "../chunk-4JERP7NT.js";
10
10
  import "../chunk-4FVVJ7ME.js";
11
11
  import "../chunk-E23LNUWJ.js";
12
- import "../chunk-WJ2PZGRV.js";
12
+ import "../chunk-ZAA344BL.js";
13
13
  import "../chunk-SSTLTIF3.js";
14
14
  import "../chunk-KOO3J5PV.js";
15
15
  import "../chunk-22TVSRQQ.js";
16
- import "../chunk-OR3TAZL3.js";
17
- import "../chunk-QB5JOGPK.js";
16
+ import "../chunk-P4ULFI2N.js";
17
+ import "../chunk-2PI6JBJL.js";
18
18
  import "../chunk-NGP6LSV2.js";
19
- import "../chunk-XYG722JW.js";
19
+ import "../chunk-JIJKUZIO.js";
20
20
  import "../chunk-CVYC6DUW.js";
21
21
  import "../chunk-OPU3NYOO.js";
22
22
  import "../chunk-GJV3WDWM.js";
23
23
  import "../chunk-MP2AFCGL.js";
24
- import "../chunk-NIZQ3CIS.js";
24
+ import "../chunk-3AMGSCRH.js";
25
25
  import "../chunk-HYZV25LY.js";
26
- import "../chunk-SCYWCWKY.js";
26
+ import "../chunk-VG4ZH2Z3.js";
27
27
  import "../chunk-2I23RPSI.js";
28
- import "../chunk-GWPICNSO.js";
28
+ import "../chunk-CSTL7BMK.js";
29
29
  import "../chunk-PNQDP3OA.js";
30
- import "../chunk-VQRTO7IS.js";
30
+ import "../chunk-H73TUI4Y.js";
31
31
  import "../chunk-7HLWBYH7.js";
32
32
  import "../chunk-FXU7JOXK.js";
33
- import "../chunk-JV225JBX.js";
34
- import "../chunk-2EJ636HI.js";
35
- import "../chunk-DFIOOK5R.js";
36
- import "../chunk-65DBIEM2.js";
33
+ import "../chunk-I6RHLHVW.js";
34
+ import "../chunk-UST3MKK7.js";
35
+ import "../chunk-WCES22KG.js";
36
+ import "../chunk-SHIICYJW.js";
37
37
  import "../chunk-MLKGABMK.js";
38
38
 
39
39
  // src/adapters/claude/hooks/post-compact.ts
@@ -46,7 +46,7 @@ process.on("unhandledRejection", (err) => {
46
46
  process.exit(1);
47
47
  });
48
48
  try {
49
- const { verifyOrBlock } = await import("../hook-integrity-I6PWJQER.js");
49
+ const { verifyOrBlock } = await import("../hook-integrity-XNPNCMAS.js");
50
50
  if (!await verifyOrBlock(new URL(import.meta.url).pathname)) process.exit(2);
51
51
  } catch (err) {
52
52
  const code = err?.code;
@@ -95,7 +95,7 @@ ${identity}`);
95
95
  }
96
96
  }
97
97
  try {
98
- const { fastDbInit } = await import("../fast-db-init-KNJRL7T3.js");
98
+ const { fastDbInit } = await import("../fast-db-init-PVJ72264.js");
99
99
  await fastDbInit({ socketOnly: true });
100
100
  const { getClient } = await import("../lib/database.js");
101
101
  const client = getClient();
@@ -8,7 +8,7 @@ process.on("unhandledRejection", (err) => {
8
8
  process.exit(1);
9
9
  });
10
10
  try {
11
- const { verifyOrBlock } = await import("../hook-integrity-I6PWJQER.js");
11
+ const { verifyOrBlock } = await import("../hook-integrity-XNPNCMAS.js");
12
12
  if (!await verifyOrBlock(new URL(import.meta.url).pathname)) process.exit(2);
13
13
  } catch (err) {
14
14
  const code = err?.code;
@@ -36,6 +36,7 @@ process.stdin.on("data", (chunk) => {
36
36
  });
37
37
  process.stdin.on("end", async () => {
38
38
  if (input.length >= MAX_INPUT_SIZE) process.exit(0);
39
+ input = input.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])/g, "\uFFFD").replace(/(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g, "\uFFFD");
39
40
  try {
40
41
  const { loadConfigSync } = await import("../lib/config.js");
41
42
  const config = loadConfigSync();
@@ -68,7 +69,7 @@ ${context}`
68
69
  try {
69
70
  const payload = JSON.parse(input);
70
71
  const toolName = String(payload.tool_name ?? "");
71
- const { getActiveAgent } = await import("../active-agent-ORX47ZKW.js");
72
+ const { getActiveAgent } = await import("../active-agent-EWF2HJ3W.js");
72
73
  const driftAgent = getActiveAgent();
73
74
  if (driftAgent.agentId !== "default" && toolName) {
74
75
  const { existsSync: driftExists, readFileSync: driftRead, writeFileSync: driftWrite, mkdirSync: driftMkdir } = await import("fs");
@@ -124,7 +125,7 @@ You are **${driftAgent.agentId}**. You've used ${mismatches.length} tools outsid
124
125
  }
125
126
  try {
126
127
  const payload = JSON.parse(input);
127
- const { getActiveAgent: getInvAgent } = await import("../active-agent-ORX47ZKW.js");
128
+ const { getActiveAgent: getInvAgent } = await import("../active-agent-EWF2HJ3W.js");
128
129
  const invAgent = getInvAgent();
129
130
  const { trackToolResult } = await import("../investigation-tracker-WSCY4XBP.js");
130
131
  trackToolResult({
@@ -139,14 +140,66 @@ You are **${driftAgent.agentId}**. You've used ${mismatches.length} tools outsid
139
140
  });
140
141
  } catch {
141
142
  }
143
+ try {
144
+ const budgetData = JSON.parse(input);
145
+ const { getActiveAgent: getBudgetAgent } = await import("../active-agent-EWF2HJ3W.js");
146
+ const budgetAgent = getBudgetAgent();
147
+ if (budgetAgent.agentId !== "default") {
148
+ const budgetPath = await import("path");
149
+ const { existsSync: budgetExists, readFileSync: budgetRead, readdirSync: budgetReaddir } = await import("fs");
150
+ const budgetCacheDir = process.env.EXE_OS_DIR ?? budgetPath.join(process.env.HOME ?? "", ".exe-os");
151
+ const sessionCacheDir = budgetPath.join(budgetCacheDir, "session-cache");
152
+ let taskCachePath = budgetPath.join(sessionCacheDir, `current-task-${budgetAgent.agentId}.json`);
153
+ if (!budgetExists(taskCachePath)) {
154
+ try {
155
+ const want = `current-task-${budgetAgent.agentId}.json`.toLowerCase();
156
+ const hit = budgetReaddir(sessionCacheDir).find((f) => f.toLowerCase() === want);
157
+ if (hit) taskCachePath = budgetPath.join(sessionCacheDir, hit);
158
+ } catch {
159
+ }
160
+ }
161
+ if (budgetExists(taskCachePath)) {
162
+ const cached = JSON.parse(budgetRead(taskCachePath, "utf8"));
163
+ if (cached.taskId) {
164
+ const toolInputStr = JSON.stringify(budgetData.tool_input ?? {});
165
+ const toolOutputStr = JSON.stringify(budgetData.tool_response ?? budgetData.tool_result ?? {});
166
+ const estimatedInputTokens = Math.ceil(toolInputStr.length / 4);
167
+ const estimatedOutputTokens = Math.ceil(toolOutputStr.length / 4);
168
+ const { createTokenBudgetMiddleware } = await import("../token-budget-UBOP3HVE.js");
169
+ const middleware = createTokenBudgetMiddleware(cached.taskId);
170
+ const budgetResult = await middleware.onTokenUsed(estimatedInputTokens, estimatedOutputTokens);
171
+ if (budgetResult.warned) {
172
+ process.stderr.write(
173
+ `[post-tool] Token budget 80% warning for task ${cached.taskId} (${budgetResult.percentUsed}% used)
174
+ `
175
+ );
176
+ }
177
+ if (budgetResult.exceeded) {
178
+ process.stderr.write(
179
+ `[post-tool] Token budget EXCEEDED for task ${cached.taskId} (${budgetResult.percentUsed}% used)
180
+ `
181
+ );
182
+ process.stdout.write(JSON.stringify({
183
+ hookSpecificOutput: {
184
+ hookEventName: "PostToolUse",
185
+ additionalContext: `## TOKEN BUDGET EXCEEDED
186
+ Your task token budget has been reached (${budgetResult.percentUsed}% used). Wrap up your current work immediately: commit any changes, call update_task with status "done" and a summary of what you accomplished and what remains.` + (budgetResult.fallback ? ` Budget fallback model: ${budgetResult.fallback}` : "")
187
+ }
188
+ }));
189
+ }
190
+ }
191
+ }
192
+ }
193
+ } catch {
194
+ }
142
195
  try {
143
196
  const data = JSON.parse(input);
144
- const { getActiveAgent } = await import("../active-agent-ORX47ZKW.js");
197
+ const { getActiveAgent } = await import("../active-agent-EWF2HJ3W.js");
145
198
  const { detectError } = await import("../lib/error-detector.js");
146
199
  const agent = getActiveAgent();
147
200
  try {
148
- const { fastDbInit } = await import("../fast-db-init-KNJRL7T3.js");
149
- const { recordSessionEvent } = await import("../session-events-EJ3OSAA6.js");
201
+ const { fastDbInit } = await import("../fast-db-init-PVJ72264.js");
202
+ const { recordSessionEvent } = await import("../session-events-L4DK5J6J.js");
150
203
  const client = await fastDbInit({ daemonOnly: true });
151
204
  const toolName = String(data.tool_name ?? "unknown");
152
205
  const toolInput = JSON.stringify(data.tool_input ?? {});
@@ -170,7 +223,7 @@ result: ${toolResponse.slice(0, 8e3)}`,
170
223
  }
171
224
  const { loadConfigSync } = await import("../lib/config.js");
172
225
  if (loadConfigSync().autoIngestion) {
173
- const { writeMemoryViaDaemon } = await import("../memory-queue-client-HLURQEV6.js");
226
+ const { writeMemoryViaDaemon } = await import("../memory-queue-client-YP2QKX6J.js");
174
227
  const { buildPostToolMemoryEntry } = await import("../lib/post-tool-memory.js");
175
228
  const entry = buildPostToolMemoryEntry(data, agent);
176
229
  if (entry) await writeMemoryViaDaemon(entry);