@askexenow/exe-os 0.9.302 → 0.9.310

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 (311) hide show
  1. package/deploy/compose/.env.example +8 -2
  2. package/deploy/compose/README.md +7 -3
  3. package/deploy/compose/add-routes.sh +107 -0
  4. package/deploy/compose/docker-compose.yml +91 -18
  5. package/deploy/compose/gateway-watchdog.sh +223 -0
  6. package/deploy/compose/generate-env.ts +16 -4
  7. package/deploy/compose/setup.sh +7 -8
  8. package/deploy/stack-manifests/v0.9.json +125 -4
  9. package/dist/{active-agent-ODI6GGVD.js → active-agent-ORX47ZKW.js} +4 -3
  10. package/dist/{active-agent-GGQAP4QE.js → active-agent-S5T2YMOR.js} +4 -3
  11. package/dist/{agentic-ontology-M7T72M6V.js → agentic-ontology-6KBAXLSJ.js} +1 -1
  12. package/dist/{backfill-metadata-GSZP2BEW.js → backfill-metadata-FV7GX6AS.js} +5 -4
  13. package/dist/{behaviors-JM6KFSXL.js → behaviors-47CPEKJ7.js} +6 -5
  14. package/dist/bin/agentic-ontology-backfill.js +6 -5
  15. package/dist/bin/agentic-reflection-backfill.js +7 -6
  16. package/dist/bin/agentic-semantic-label.js +6 -5
  17. package/dist/bin/backfill-conversations.js +8 -7
  18. package/dist/bin/backfill-responses.js +8 -7
  19. package/dist/bin/backfill-vectors.js +10 -9
  20. package/dist/bin/bulk-sync-postgres.js +14 -13
  21. package/dist/bin/cc-doctor.js +5 -4
  22. package/dist/bin/cleanup-stale-review-tasks.js +13 -12
  23. package/dist/bin/cli.js +20 -17
  24. package/dist/bin/deferred-daemon-restart.js +4 -4
  25. package/dist/bin/exe-agent-config.js +3 -2
  26. package/dist/bin/exe-agent.js +12 -11
  27. package/dist/bin/exe-assign.js +10 -9
  28. package/dist/bin/exe-boot.js +21 -20
  29. package/dist/bin/exe-call.js +5 -4
  30. package/dist/bin/exe-cloud.js +14 -13
  31. package/dist/bin/exe-config-dump.js +525 -0
  32. package/dist/bin/exe-dispatch.js +13 -12
  33. package/dist/bin/exe-doctor.js +2 -2
  34. package/dist/bin/exe-export-behaviors.js +8 -7
  35. package/dist/bin/exe-forget.js +7 -6
  36. package/dist/bin/exe-gateway.js +22 -11
  37. package/dist/bin/exe-healthcheck.js +7 -4
  38. package/dist/bin/exe-heartbeat.js +13 -12
  39. package/dist/bin/exe-kill.js +16 -15
  40. package/dist/bin/exe-launch-agent.js +41 -25
  41. package/dist/bin/exe-new-employee.js +9 -8
  42. package/dist/bin/exe-pending-messages.js +14 -13
  43. package/dist/bin/exe-pending-notifications.js +13 -12
  44. package/dist/bin/exe-pending-reviews.js +13 -12
  45. package/dist/bin/exe-preflight.js +108 -0
  46. package/dist/bin/exe-rename.js +5 -4
  47. package/dist/bin/exe-review.js +15 -14
  48. package/dist/bin/exe-search-quality.js +282 -0
  49. package/dist/bin/exe-search.js +6 -5
  50. package/dist/bin/exe-session-cleanup.js +18 -17
  51. package/dist/bin/exe-settings.js +15 -14
  52. package/dist/bin/exe-start-codex.js +13 -12
  53. package/dist/bin/exe-start-opencode.js +9 -8
  54. package/dist/bin/exe-status.js +14 -13
  55. package/dist/bin/exe-support.js +4 -4
  56. package/dist/bin/exe-team.js +4 -3
  57. package/dist/bin/exe-timers.js +237 -0
  58. package/dist/bin/git-sweep.js +14 -13
  59. package/dist/bin/graph-backfill.js +7 -6
  60. package/dist/bin/graph-export.js +6 -5
  61. package/dist/bin/import-history.js +10 -9
  62. package/dist/bin/install-launchd.js +5 -2
  63. package/dist/bin/install.js +16 -15
  64. package/dist/bin/intercom-check.js +4 -4
  65. package/dist/bin/mcp-sessions.js +2 -2
  66. package/dist/bin/orchestration-metrics.js +5 -4
  67. package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
  68. package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
  69. package/dist/bin/prune-orphan-chunks.js +43 -10
  70. package/dist/bin/scan-tasks.js +13 -12
  71. package/dist/bin/setup.js +1 -1
  72. package/dist/bin/shard-migrate.js +5 -4
  73. package/dist/bin/stack-update.js +30 -5
  74. package/dist/bin/vps-health-gate.js +1 -1
  75. package/dist/{capability-cards-BCTFKT4G.js → capability-cards-WQVY7WSS.js} +3 -2
  76. package/dist/{capacity-monitor-B4S3XEDO.js → capacity-monitor-BUKYPSWR.js} +14 -13
  77. package/dist/{catchup-brief-I35KHK62.js → catchup-brief-X5IVQAOH.js} +16 -15
  78. package/dist/{chunk-74TUYU5A.js → chunk-255DIG4B.js} +1 -1
  79. package/dist/{chunk-CXKR5Z5F.js → chunk-2EJ636HI.js} +4 -0
  80. package/dist/{chunk-ST3X3YMZ.js → chunk-2NGPZCWX.js} +4 -4
  81. package/dist/{chunk-LD2JKEJT.js → chunk-2NVEKSSP.js} +7 -7
  82. package/dist/{chunk-V6P7TPPA.js → chunk-2UVN2NBN.js} +148 -2
  83. package/dist/{chunk-OZRO37JW.js → chunk-3KH6GXXX.js} +2 -2
  84. package/dist/{chunk-IMJNYREY.js → chunk-43R2GILO.js} +1 -1
  85. package/dist/{chunk-6X2YNVLB.js → chunk-4BANMHJ5.js} +3 -3
  86. package/dist/{chunk-QNJPDIWY.js → chunk-4L4R6AQJ.js} +1 -1
  87. package/dist/{chunk-QWLPAEG5.js → chunk-4Q5VNQTV.js} +3 -3
  88. package/dist/{chunk-VLSYKMCJ.js → chunk-4RJJ5FJ2.js} +14 -2
  89. package/dist/{chunk-4AN6KMVG.js → chunk-5DPE7B7K.js} +1 -1
  90. package/dist/{chunk-H7ZNSQ2E.js → chunk-62UZWGFX.js} +2 -2
  91. package/dist/{chunk-ZQ2QHGWE.js → chunk-66JPZELX.js} +20 -24
  92. package/dist/{chunk-BUGMW7YF.js → chunk-6LNSZADA.js} +11 -11
  93. package/dist/{chunk-PBCRUNIK.js → chunk-6OD2RVIA.js} +492 -157
  94. package/dist/chunk-7ODTYODO.js +350 -0
  95. package/dist/{chunk-5YL4Y27D.js → chunk-7WDIGRSO.js} +1 -1
  96. package/dist/{chunk-WIL6LXNG.js → chunk-AC6DKMVS.js} +1 -1
  97. package/dist/{chunk-HZEAAKCR.js → chunk-B2J3BBJC.js} +3 -3
  98. package/dist/{chunk-LE7CDIOA.js → chunk-BUOMSIXH.js} +1 -1
  99. package/dist/{chunk-XKGNKH6V.js → chunk-DFUCFLZH.js} +1 -1
  100. package/dist/{chunk-U724Z3S3.js → chunk-DKHBMIVE.js} +100 -37
  101. package/dist/{chunk-MY36XDUK.js → chunk-DNFU56ZS.js} +1 -1
  102. package/dist/{chunk-GSWGOGP5.js → chunk-EOS7VPVT.js} +5 -5
  103. package/dist/{chunk-P33JVGSP.js → chunk-FM7XZDZI.js} +1 -1
  104. package/dist/chunk-G6EJKYK3.js +33 -0
  105. package/dist/{chunk-OMCNFTSI.js → chunk-GMZMBLHT.js} +1 -1
  106. package/dist/{chunk-4LZ54YGA.js → chunk-GSY6HL3T.js} +5 -5
  107. package/dist/{chunk-OVKNFTCL.js → chunk-HED6D5KR.js} +132 -21
  108. package/dist/{chunk-ALH6QLYF.js → chunk-HQODUV3G.js} +2 -2
  109. package/dist/{chunk-US64UR5O.js → chunk-IIHE3FNC.js} +3 -3
  110. package/dist/{chunk-H2ISTRWU.js → chunk-IRIPGGGL.js} +1 -1
  111. package/dist/{chunk-Z3EXECOX.js → chunk-ISILDO7P.js} +1 -1
  112. package/dist/{chunk-6ERZFDBS.js → chunk-IZPO6IOZ.js} +1 -1
  113. package/dist/{chunk-W65Z4SJS.js → chunk-J3QZPDNH.js} +1 -1
  114. package/dist/{chunk-3IJCP6ZH.js → chunk-JDYO76PI.js} +1 -1
  115. package/dist/{chunk-ORNKGGFX.js → chunk-JNARUXDC.js} +1 -1
  116. package/dist/{chunk-VME3UH4D.js → chunk-JV225JBX.js} +1 -1
  117. package/dist/{chunk-EI7PBUIA.js → chunk-JZW5AOWI.js} +1 -1
  118. package/dist/{chunk-TLOILHSL.js → chunk-K7KBAJQL.js} +36 -18
  119. package/dist/{chunk-RHMWSUJB.js → chunk-KAVUTP5G.js} +2 -2
  120. package/dist/{chunk-7FNELLMX.js → chunk-KPVVTHPK.js} +8 -8
  121. package/dist/{chunk-35U72CD2.js → chunk-KSMITUGY.js} +3 -3
  122. package/dist/{chunk-D6UICP3C.js → chunk-LMX7UKGX.js} +81 -3
  123. package/dist/{chunk-7ZWC5HVG.js → chunk-MTIJ2NXY.js} +1 -1
  124. package/dist/{chunk-KVHPBQV4.js → chunk-NCC3F6GM.js} +1 -1
  125. package/dist/{chunk-AYMSIV7X.js → chunk-NIZQ3CIS.js} +1 -1
  126. package/dist/{chunk-LTI2DLHY.js → chunk-OBJXZII2.js} +2 -2
  127. package/dist/{chunk-WHOT5NZ7.js → chunk-OR3TAZL3.js} +14 -2
  128. package/dist/{chunk-RQUHAXMM.js → chunk-PHFPIUWU.js} +2 -0
  129. package/dist/{chunk-N76VTMMF.js → chunk-PMEOSD6S.js} +2 -2
  130. package/dist/{chunk-TCJEFW5V.js → chunk-PPXQE7AS.js} +4 -4
  131. package/dist/{chunk-KHZQVLNZ.js → chunk-QE7UVQDP.js} +46 -0
  132. package/dist/{chunk-SXJACGQ5.js → chunk-QEGXNJGR.js} +4 -4
  133. package/dist/{chunk-W3E4VEEJ.js → chunk-RPBTYQKJ.js} +1 -1
  134. package/dist/chunk-RQ7OVXUZ.js +81 -0
  135. package/dist/{chunk-7L2EV3XX.js → chunk-RVXWGPD3.js} +39 -6
  136. package/dist/{chunk-YNALY3SX.js → chunk-RZJ6DXVE.js} +1 -1
  137. package/dist/{chunk-P3SIFDES.js → chunk-SCYWCWKY.js} +16 -4
  138. package/dist/{chunk-7I43GVER.js → chunk-SOT23KWW.js} +3 -3
  139. package/dist/{chunk-T62GAN7I.js → chunk-SPOXL7HF.js} +7 -7
  140. package/dist/{chunk-3YJMI422.js → chunk-TN2YCFQE.js} +4 -4
  141. package/dist/{chunk-YMSWCERY.js → chunk-U63BZI2B.js} +3 -3
  142. package/dist/{chunk-KA5RK5HZ.js → chunk-V42BSVX6.js} +2 -2
  143. package/dist/{chunk-PJTRAFL4.js → chunk-V4BW5HFQ.js} +3 -3
  144. package/dist/{chunk-4FG6IX7U.js → chunk-VFSYVQX4.js} +1 -1
  145. package/dist/chunk-VQRTO7IS.js +290 -0
  146. package/dist/{chunk-OR7J7TIA.js → chunk-VT6P7FV4.js} +1 -1
  147. package/dist/{chunk-BEIYF4NS.js → chunk-W2J2RF5N.js} +3 -3
  148. package/dist/{chunk-Y5ASPRP7.js → chunk-WBJXJ2R4.js} +17 -13
  149. package/dist/chunk-WCGNCH3Q.js +72 -0
  150. package/dist/{chunk-2LJDLQNO.js → chunk-WJ2PZGRV.js} +1 -1
  151. package/dist/{chunk-AAPPSMPH.js → chunk-WZBUKC5N.js} +1 -1
  152. package/dist/{chunk-RO7EXVSJ.js → chunk-X4AFBL4N.js} +1 -1
  153. package/dist/{chunk-BR74NYEF.js → chunk-XV5HRIXG.js} +5 -5
  154. package/dist/chunk-XXJRZ75E.js +43 -0
  155. package/dist/{chunk-VDHUHXFF.js → chunk-XYG722JW.js} +2 -2
  156. package/dist/{chunk-MM7SWUQ4.js → chunk-YB7U4WTY.js} +4 -4
  157. package/dist/{chunk-RMRZXPUU.js → chunk-Z6H6Y4BS.js} +1 -1
  158. package/dist/{token-budget-UMHRRDBT.js → chunk-ZOVHXTGC.js} +2 -9
  159. package/dist/{chunk-HNLBHP6P.js → chunk-ZZXADKAP.js} +3 -3
  160. package/dist/{co-activation-OKAHEMPE.js → co-activation-WN25AJOC.js} +3 -2
  161. package/dist/{co-occurrence-IHSPB53O.js → co-occurrence-YP2Q3OEA.js} +5 -4
  162. package/dist/{code-context-index-KGY4LKCA.js → code-context-index-ZWONKBKX.js} +4 -4
  163. package/dist/{conversation-entity-extractor-KXJSHRGJ.js → conversation-entity-extractor-KYOBXNID.js} +2 -2
  164. package/dist/{crdt-sync-K2G3C6XY.js → crdt-sync-ZFIFL2QM.js} +1 -1
  165. package/dist/{crm-webhook-ERZSQ3CW.js → crm-webhook-DGPHULOO.js} +2 -2
  166. package/dist/{cto-delegation-gate-ZCJ53LBQ.js → cto-delegation-gate-OF2A3TSS.js} +12 -11
  167. package/dist/daemon-auth-N6P2MZAV.js +17 -0
  168. package/dist/{daemon-orchestration-V6HALVDS.js → daemon-orchestration-G4RRTPP7.js} +16 -15
  169. package/dist/daemon-ready-signal-3L2MJT7C.js +13 -0
  170. package/dist/{db-backup-VZHSFUVA.js → db-backup-EORG4LBO.js} +1 -1
  171. package/dist/{doc-graph-extractor-LQ2IFND2.js → doc-graph-extractor-APZS3DFD.js} +5 -4
  172. package/dist/{dreaming-QAKUASYV.js → dreaming-Q4E3WBGY.js} +13 -12
  173. package/dist/{exe-drift-H3UWNFFY.js → exe-drift-CI5R6GUT.js} +4 -3
  174. package/dist/{exe-export-MN5D4JMT.js → exe-export-HQIQASIT.js} +7 -6
  175. package/dist/{exe-import-IFFMEVD7.js → exe-import-ULZK56WC.js} +7 -6
  176. package/dist/{exe-key-RSZC72QK.js → exe-key-ILNSBGRN.js} +5 -4
  177. package/dist/{exe-snapshot-I622MPLS.js → exe-snapshot-RUZTWZOF.js} +16 -15
  178. package/dist/{factory-CTFAGZUA.js → factory-YHQZ6RZZ.js} +14 -6
  179. package/dist/{fast-db-init-QEFVT7Q3.js → fast-db-init-KNJRL7T3.js} +1 -1
  180. package/dist/{founder-context-3SOKEW76.js → founder-context-QCTMEK66.js} +2 -2
  181. package/dist/gateway/index.js +12 -11
  182. package/dist/{git-staleness-E7RPQA5U.js → git-staleness-KIA5YI4H.js} +3 -2
  183. package/dist/{git-task-sweep-D3A2C5BW.js → git-task-sweep-WH6QE7HL.js} +13 -12
  184. package/dist/{global-procedures-POG4V6IK.js → global-procedures-SYZZCGDS.js} +4 -3
  185. package/dist/{graph-auto-extract-E7KALNWA.js → graph-auto-extract-J2TIWZEE.js} +5 -4
  186. package/dist/{graph-rag-3RZN7JR3.js → graph-rag-HITZZ63L.js} +2 -2
  187. package/dist/hooks/bug-report-worker.js +15 -14
  188. package/dist/hooks/codex-stop-task-finalizer.js +15 -14
  189. package/dist/hooks/commit-complete.js +15 -14
  190. package/dist/hooks/error-recall.js +8 -7
  191. package/dist/hooks/exe-heartbeat-hook.js +4 -3
  192. package/dist/hooks/ingest-worker.js +4 -4
  193. package/dist/hooks/ingest.js +8 -7
  194. package/dist/hooks/instructions-loaded.js +5 -4
  195. package/dist/hooks/manifest.json +20 -20
  196. package/dist/hooks/notification.js +5 -4
  197. package/dist/hooks/post-compact.js +14 -13
  198. package/dist/hooks/post-tool-combined.js +7 -7
  199. package/dist/hooks/pre-compact.js +19 -18
  200. package/dist/hooks/pre-tool-use.js +18 -17
  201. package/dist/hooks/prompt-submit.js +28 -27
  202. package/dist/hooks/session-end.js +24 -23
  203. package/dist/hooks/session-start.js +46 -22
  204. package/dist/hooks/stop.js +22 -21
  205. package/dist/hooks/subagent-stop.js +14 -13
  206. package/dist/hooks/summary-worker.js +22 -21
  207. package/dist/index.js +25 -23
  208. package/dist/{installer-IXUX73JN.js → installer-3NB3IBHF.js} +10 -9
  209. package/dist/{installer-RCUPPZ7Y.js → installer-IIJFCTMH.js} +10 -9
  210. package/dist/{installer-HDD6OH5Z.js → installer-PSDYMGN7.js} +7 -6
  211. package/dist/lib/cloud-sync.js +14 -13
  212. package/dist/lib/consolidation.js +8 -7
  213. package/dist/lib/database.js +3 -2
  214. package/dist/lib/db-daemon-client.js +4 -4
  215. package/dist/lib/db.js +3 -2
  216. package/dist/lib/device-registry.js +3 -1
  217. package/dist/lib/embedder.js +4 -4
  218. package/dist/lib/employee-templates.js +5 -4
  219. package/dist/lib/employees.js +3 -2
  220. package/dist/lib/exe-daemon-client.js +3 -3
  221. package/dist/lib/exe-daemon.js +256 -406
  222. package/dist/lib/hybrid-search.js +6 -5
  223. package/dist/lib/identity.js +3 -2
  224. package/dist/lib/license.js +2 -2
  225. package/dist/lib/messaging.js +13 -12
  226. package/dist/lib/reminders.js +4 -3
  227. package/dist/lib/schedules.js +6 -5
  228. package/dist/lib/session-registry.js +5 -4
  229. package/dist/lib/skill-learning.js +7 -6
  230. package/dist/lib/store.js +7 -4
  231. package/dist/lib/task-router.js +4 -3
  232. package/dist/lib/tasks.js +14 -13
  233. package/dist/lib/tmux-routing.js +16 -11
  234. package/dist/lib/token-spend.js +4 -3
  235. package/dist/{license-gate-V2UCK4KJ.js → license-gate-7SDHCJUO.js} +3 -3
  236. package/dist/mcp/register-tools.js +74 -73
  237. package/dist/mcp/server.js +97 -79
  238. package/dist/mcp/tools/complete-reminder.js +5 -4
  239. package/dist/mcp/tools/create-reminder.js +5 -4
  240. package/dist/mcp/tools/create-task.js +16 -15
  241. package/dist/mcp/tools/deactivate-behavior.js +8 -7
  242. package/dist/mcp/tools/list-reminders.js +5 -4
  243. package/dist/mcp/tools/list-tasks.js +16 -15
  244. package/dist/mcp/tools/send-message.js +15 -14
  245. package/dist/mcp/tools/update-task.js +15 -14
  246. package/dist/{mcp-http-config-7LFFPNGV.js → mcp-http-config-QSOVFXHW.js} +4 -3
  247. package/dist/mcp-tool-surface-CSPFXL3F.js +15 -0
  248. package/dist/{memory-cards-BGI6MJRN.js → memory-cards-II67WFL2.js} +3 -2
  249. package/dist/{memory-graph-extractor-DTRRNWHZ.js → memory-graph-extractor-PM4Q2KJG.js} +6 -5
  250. package/dist/{memory-poisoning-defense-MOCWJK6S.js → memory-poisoning-defense-ECXSX7HK.js} +3 -2
  251. package/dist/{memory-queue-client-DD4E5SIZ.js → memory-queue-client-HLURQEV6.js} +4 -4
  252. package/dist/{memory-reflection-UKKTGZYR.js → memory-reflection-PXF6YFDU.js} +3 -2
  253. package/dist/{notifications-AMJ2K3MM.js → notifications-UP7WQGG4.js} +12 -11
  254. package/dist/{orchestration-events-MB4QVHTD.js → orchestration-events-PZLLPCKY.js} +4 -3
  255. package/dist/orchestration-health-read-EJWVUARG.js +191 -0
  256. package/dist/{orchestrator-M7DJH6TN.js → orchestrator-PUT45J4O.js} +14 -13
  257. package/dist/{pipeline-router-4LT5YG5P.js → pipeline-router-5CRWKESM.js} +4 -3
  258. package/dist/{plan-limits-ENS7OJWP.js → plan-limits-SH2NDFNX.js} +6 -5
  259. package/dist/{project-boot-6W5JPGSB.js → project-boot-2TCPDZ4S.js} +25 -1
  260. package/dist/{projection-worker-WWXZK7QD.js → projection-worker-HWY37MNC.js} +2 -2
  261. package/dist/{prospective-memory-VNGLPMS6.js → prospective-memory-FQSVMCGG.js} +3 -2
  262. package/dist/{reranker-6XBS55FA.js → reranker-AALRMGMM.js} +1 -1
  263. package/dist/{retrieval-health-ATX5TIQ2.js → retrieval-health-PNWJSJNG.js} +1 -1
  264. package/dist/{review-polling-E4ALHTQE.js → review-polling-65JZUE3T.js} +13 -12
  265. package/dist/runtime/index.js +24 -22
  266. package/dist/{session-events-3J6APMKN.js → session-events-EJ3OSAA6.js} +13 -12
  267. package/dist/session-kill-telemetry-3HGM7SNQ.js +63 -0
  268. package/dist/{session-scope-E54VIYTJ.js → session-scope-JGDYAMJO.js} +12 -11
  269. package/dist/{setup-wizard-XV736U5D.js → setup-wizard-44LMFM2C.js} +1 -1
  270. package/dist/shared-rate-limit-store-QZPQEVE2.js +80 -0
  271. package/dist/{skill-refinement-FTURVWFN.js → skill-refinement-DUOO6B7V.js} +3 -2
  272. package/dist/{stack-release-JZVTSBJJ.js → stack-release-XYMKU7NT.js} +53 -4
  273. package/dist/{stack-update-BIK2QHOE.js → stack-update-XHQJRJEP.js} +5 -3
  274. package/dist/{steward-gate-YGU4VXPP.js → steward-gate-6NWRDLX2.js} +4 -3
  275. package/dist/{task-enforcement-GY3VTY6L.js → task-enforcement-UOULTGFB.js} +12 -11
  276. package/dist/{task-scope-PYOK7OQ6.js → task-scope-P5STKYAC.js} +12 -11
  277. package/dist/{tasks-crud-HLJEJ2UU.js → tasks-crud-24HMTULR.js} +12 -11
  278. package/dist/{tasks-notify-NGS3DWUJ.js → tasks-notify-LAIU7UUI.js} +13 -12
  279. package/dist/{tasks-review-BP5V2X34.js → tasks-review-AFJAU2DY.js} +12 -11
  280. package/dist/{telemetry-upload-AXYPFAPS.js → telemetry-upload-DWFGC2XJ.js} +8 -7
  281. package/dist/token-budget-4RFZKWGH.js +16 -0
  282. package/dist/{tool-capability-index-RHPVMMDD.js → tool-capability-index-ZEXBWKUZ.js} +1 -1
  283. package/dist/{tool-telemetry-BLSVABFJ.js → tool-telemetry-BS5JXM5M.js} +1 -1
  284. package/dist/tui/App.js +21 -20
  285. package/dist/{tui-data-EYPOFYLS.js → tui-data-UNO5B7PU.js} +12 -11
  286. package/dist/{worker-gate-SMFOBMMX.js → worker-gate-C6CTTYMD.js} +1 -1
  287. package/dist/{workflow-engine-TDJZ3TXB.js → workflow-engine-4W2KYCDV.js} +2 -2
  288. package/dist/{worktree-XISIYRM4.js → worktree-2CXY6NEB.js} +5 -4
  289. package/dist/{worktree-sweep-AS6GAR6X.js → worktree-sweep-K3CJFSUL.js} +6 -5
  290. package/package.json +9 -4
  291. package/release-notes.json +17 -88
  292. package/stack.release.json +51 -4
  293. package/dist/chunk-PHOQAVTK.js +0 -42
  294. package/dist/daemon-auth-BK7ON5ZH.js +0 -13
  295. package/dist/session-kill-telemetry-KOAHLRBT.js +0 -31
  296. package/dist/{chunk-XDE5IGBX.js → chunk-2NS3QRMJ.js} +0 -0
  297. package/dist/{chunk-JTMKRUX6.js → chunk-A2YZG4AD.js} +0 -0
  298. package/dist/{chunk-UZATXREL.js → chunk-AE74NOE6.js} +0 -0
  299. package/dist/{chunk-LUGWK6QB.js → chunk-FF5DA4XP.js} +3 -3
  300. /package/dist/{chunk-BGOMFGSW.js → chunk-GWPICNSO.js} +0 -0
  301. /package/dist/{chunk-NLHUA3YB.js → chunk-I3DPCSDG.js} +0 -0
  302. /package/dist/{chunk-YM3367VC.js → chunk-J3SR5MGG.js} +0 -0
  303. /package/dist/{chunk-FKFVNV7X.js → chunk-K4BKJJ4F.js} +0 -0
  304. /package/dist/{chunk-PTDBHQX7.js → chunk-MQCTK6EF.js} +0 -0
  305. /package/dist/{chunk-GBV5PV5T.js → chunk-QNXM2HXW.js} +0 -0
  306. /package/dist/{chunk-GZSG2ZOX.js → chunk-YUBTHJVV.js} +0 -0
  307. /package/dist/{core-memory-4OM7LR77.js → core-memory-OC5ITKKV.js} +0 -0
  308. /package/dist/{entity-boost-SFHIRXT5.js → entity-boost-NF3LE6OJ.js} +0 -0
  309. /package/dist/{message-queue-client-QTC3VHJT.js → message-queue-client-4VDU6BZY.js} +0 -0
  310. /package/dist/{oauth-server-BPN55EJM.js → oauth-server-EWUL7DMD.js} +0 -0
  311. /package/dist/{wiki-acl-45SIGG4O.js → wiki-acl-CONNF6ES.js} +0 -0
@@ -3,18 +3,19 @@ import {
3
3
  } from "./chunk-2XZ6X3PJ.js";
4
4
  import {
5
5
  getOrchestrationMetrics
6
- } from "./chunk-WHOT5NZ7.js";
7
- import "./chunk-P3SIFDES.js";
6
+ } from "./chunk-OR3TAZL3.js";
7
+ import "./chunk-SCYWCWKY.js";
8
8
  import "./chunk-2I23RPSI.js";
9
- import "./chunk-BGOMFGSW.js";
9
+ import "./chunk-GWPICNSO.js";
10
10
  import "./chunk-PNQDP3OA.js";
11
+ import "./chunk-VQRTO7IS.js";
11
12
  import "./chunk-7HLWBYH7.js";
12
13
  import "./chunk-FXU7JOXK.js";
13
14
  import {
14
15
  loadLicense,
15
16
  readCachedLicenseToken
16
- } from "./chunk-VME3UH4D.js";
17
- import "./chunk-CXKR5Z5F.js";
17
+ } from "./chunk-JV225JBX.js";
18
+ import "./chunk-2EJ636HI.js";
18
19
  import {
19
20
  loadConfig
20
21
  } from "./chunk-DFIOOK5R.js";
@@ -397,14 +398,14 @@ async function buildTelemetryPayload(sinceHours = 24) {
397
398
  }
398
399
  let toolUsage;
399
400
  try {
400
- const { getToolUsageSummary } = await import("./tool-telemetry-BLSVABFJ.js");
401
+ const { getToolUsageSummary } = await import("./tool-telemetry-BS5JXM5M.js");
401
402
  const summary = getToolUsageSummary();
402
403
  if (Object.keys(summary).length > 0) toolUsage = summary;
403
404
  } catch {
404
405
  }
405
406
  let calibration;
406
407
  try {
407
- const { DreamingEngine } = await import("./dreaming-QAKUASYV.js");
408
+ const { DreamingEngine } = await import("./dreaming-Q4E3WBGY.js");
408
409
  const engine = new DreamingEngine();
409
410
  const cal = await engine.computeCalibration("*", sinceHours);
410
411
  if (cal.assertions.total > 0 || cal.estimation.total > 0) {
@@ -0,0 +1,16 @@
1
+ import {
2
+ createTokenBudgetMiddleware
3
+ } from "./chunk-ZOVHXTGC.js";
4
+ import "./chunk-SCYWCWKY.js";
5
+ import "./chunk-2I23RPSI.js";
6
+ import "./chunk-GWPICNSO.js";
7
+ import "./chunk-PNQDP3OA.js";
8
+ import "./chunk-VQRTO7IS.js";
9
+ import "./chunk-7HLWBYH7.js";
10
+ import "./chunk-FXU7JOXK.js";
11
+ import "./chunk-DFIOOK5R.js";
12
+ import "./chunk-65DBIEM2.js";
13
+ import "./chunk-MLKGABMK.js";
14
+ export {
15
+ createTokenBudgetMiddleware
16
+ };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ToolCapabilityIndex,
3
3
  getToolCapabilityIndex
4
- } from "./chunk-NLHUA3YB.js";
4
+ } from "./chunk-I3DPCSDG.js";
5
5
  import "./chunk-FXU7JOXK.js";
6
6
  import "./chunk-MLKGABMK.js";
7
7
  export {
@@ -5,7 +5,7 @@ import {
5
5
  startToolTelemetryFlush,
6
6
  stopToolTelemetryFlush,
7
7
  wrapServerWithTelemetry
8
- } from "./chunk-YM3367VC.js";
8
+ } from "./chunk-J3SR5MGG.js";
9
9
  import "./chunk-MLKGABMK.js";
10
10
  export {
11
11
  getToolUsageStats,
package/dist/tui/App.js CHANGED
@@ -1,43 +1,44 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  getSessionPrompt
4
- } from "../chunk-6ERZFDBS.js";
5
- import "../chunk-Z3EXECOX.js";
4
+ } from "../chunk-IZPO6IOZ.js";
5
+ import "../chunk-ISILDO7P.js";
6
6
  import "../chunk-VUH67PT4.js";
7
7
  import {
8
8
  sessionScopeFilter
9
- } from "../chunk-OVKNFTCL.js";
10
- import "../chunk-YNALY3SX.js";
9
+ } from "../chunk-HED6D5KR.js";
10
+ import "../chunk-RZJ6DXVE.js";
11
11
  import "../chunk-4JERP7NT.js";
12
12
  import "../chunk-4FVVJ7ME.js";
13
13
  import "../chunk-E23LNUWJ.js";
14
- import "../chunk-2LJDLQNO.js";
14
+ import "../chunk-WJ2PZGRV.js";
15
+ import "../chunk-SSTLTIF3.js";
15
16
  import "../chunk-KOO3J5PV.js";
16
17
  import "../chunk-22TVSRQQ.js";
17
- import "../chunk-SSTLTIF3.js";
18
- import "../chunk-WHOT5NZ7.js";
18
+ import "../chunk-OR3TAZL3.js";
19
19
  import "../chunk-QB5JOGPK.js";
20
20
  import "../chunk-NGP6LSV2.js";
21
- import "../chunk-VDHUHXFF.js";
21
+ import "../chunk-XYG722JW.js";
22
22
  import "../chunk-CVYC6DUW.js";
23
23
  import "../chunk-OPU3NYOO.js";
24
24
  import "../chunk-GJV3WDWM.js";
25
25
  import {
26
26
  orgBus
27
27
  } from "../chunk-MP2AFCGL.js";
28
- import "../chunk-AYMSIV7X.js";
28
+ import "../chunk-NIZQ3CIS.js";
29
29
  import "../chunk-HYZV25LY.js";
30
30
  import {
31
31
  DEFAULT_COORDINATOR_TEMPLATE_NAME,
32
32
  isCoordinatorName
33
- } from "../chunk-P3SIFDES.js";
33
+ } from "../chunk-SCYWCWKY.js";
34
34
  import "../chunk-2I23RPSI.js";
35
- import "../chunk-BGOMFGSW.js";
35
+ import "../chunk-GWPICNSO.js";
36
36
  import "../chunk-PNQDP3OA.js";
37
+ import "../chunk-VQRTO7IS.js";
37
38
  import "../chunk-7HLWBYH7.js";
38
39
  import "../chunk-FXU7JOXK.js";
39
- import "../chunk-VME3UH4D.js";
40
- import "../chunk-CXKR5Z5F.js";
40
+ import "../chunk-JV225JBX.js";
41
+ import "../chunk-2EJ636HI.js";
41
42
  import {
42
43
  THEME_MODES,
43
44
  tuiPalette
@@ -6698,7 +6699,7 @@ function CommandCenterView({
6698
6699
  if (!chatMode || agentConfig) return;
6699
6700
  (async () => {
6700
6701
  try {
6701
- const { createProvider } = await import("../factory-CTFAGZUA.js");
6702
+ const { createProvider } = await import("../factory-YHQZ6RZZ.js");
6702
6703
  const { ToolRegistry } = await import("../tool-registry-B2OLSYV6.js");
6703
6704
  const { createPermissionsFromPreset, EMPLOYEE_PERMISSIONS } = await import("../permissions-BTCYZNMN.js");
6704
6705
  const { getPresetByRole } = await import("../permission-presets-E3DZK46K.js");
@@ -7410,7 +7411,7 @@ function useOrchestrator(enabled = true) {
7410
7411
  let cancelled = false;
7411
7412
  async function init() {
7412
7413
  try {
7413
- const { MultiAgentOrchestrator } = await import("../orchestrator-M7DJH6TN.js");
7414
+ const { MultiAgentOrchestrator } = await import("../orchestrator-PUT45J4O.js");
7414
7415
  const { getCoordinatorName, isCoordinatorRole, loadEmployees } = await import("../lib/employees.js");
7415
7416
  const { isExeSession } = await import("../lib/tmux-routing.js");
7416
7417
  const { listTmuxSessions, inTmux } = await import("../lib/tmux-status.js");
@@ -7451,7 +7452,7 @@ function useOrchestrator(enabled = true) {
7451
7452
  setTotalInProgress(health.totalInProgress);
7452
7453
  try {
7453
7454
  const { getClient } = await import("../lib/database.js");
7454
- const { sessionScopeFilter: sessionScopeFilter2 } = await import("../task-scope-PYOK7OQ6.js");
7455
+ const { sessionScopeFilter: sessionScopeFilter2 } = await import("../task-scope-P5STKYAC.js");
7455
7456
  const client = getClient();
7456
7457
  const uoScope = sessionScopeFilter2();
7457
7458
  const result = await client.execute({
@@ -7483,7 +7484,7 @@ function useOrchestrator(enabled = true) {
7483
7484
  const spawnSession = useCallback5(
7484
7485
  async (agentId) => {
7485
7486
  try {
7486
- const { createTaskCore } = await import("../tasks-crud-HLJEJ2UU.js");
7487
+ const { createTaskCore } = await import("../tasks-crud-24HMTULR.js");
7487
7488
  const { ensureEmployee } = await import("../lib/tmux-routing.js");
7488
7489
  const { getCoordinatorName } = await import("../lib/employees.js");
7489
7490
  await createTaskCore({
@@ -8107,7 +8108,7 @@ function TasksView({ onBack }) {
8107
8108
  const { withTrace } = await import("../telemetry-43X3GT3R.js");
8108
8109
  return withTrace("tui.tasks.loadTasks", async () => {
8109
8110
  try {
8110
- const { loadTaskList } = await import("../tui-data-EYPOFYLS.js");
8111
+ const { loadTaskList } = await import("../tui-data-UNO5B7PU.js");
8111
8112
  const tasks = await loadTaskList();
8112
8113
  setAllTasks(
8113
8114
  tasks.map((task) => ({
@@ -8940,7 +8941,7 @@ function TeamView({ onBack, onViewSessions }) {
8940
8941
  let projectsByEmployee = /* @__PURE__ */ new Map();
8941
8942
  let currentTaskByEmployee = /* @__PURE__ */ new Map();
8942
8943
  try {
8943
- const { loadTeamBadgeCounts, loadTeamDetailMetrics } = await import("../tui-data-EYPOFYLS.js");
8944
+ const { loadTeamBadgeCounts, loadTeamDetailMetrics } = await import("../tui-data-UNO5B7PU.js");
8944
8945
  setBadgeInFlight(true);
8945
8946
  const badgeCountsPromise = loadTeamBadgeCounts();
8946
8947
  const detailsPromise = loadTeamDetailMetrics(roster.map((emp) => emp.name));
@@ -9306,7 +9307,7 @@ function WikiView({ onBack }) {
9306
9307
  }
9307
9308
  setSearchLoading(true);
9308
9309
  try {
9309
- const { searchWikiMemoryRows } = await import("../tui-data-EYPOFYLS.js");
9310
+ const { searchWikiMemoryRows } = await import("../tui-data-UNO5B7PU.js");
9310
9311
  setSearchResults(await searchWikiMemoryRows(query));
9311
9312
  } catch {
9312
9313
  setSearchResults([]);
@@ -1,34 +1,35 @@
1
1
  import {
2
2
  sessionScopeFilter
3
- } from "./chunk-OVKNFTCL.js";
4
- import "./chunk-YNALY3SX.js";
3
+ } from "./chunk-HED6D5KR.js";
4
+ import "./chunk-RZJ6DXVE.js";
5
5
  import "./chunk-4JERP7NT.js";
6
6
  import "./chunk-4FVVJ7ME.js";
7
7
  import "./chunk-E23LNUWJ.js";
8
- import "./chunk-2LJDLQNO.js";
8
+ import "./chunk-WJ2PZGRV.js";
9
+ import "./chunk-SSTLTIF3.js";
9
10
  import "./chunk-KOO3J5PV.js";
10
11
  import "./chunk-22TVSRQQ.js";
11
- import "./chunk-SSTLTIF3.js";
12
- import "./chunk-WHOT5NZ7.js";
12
+ import "./chunk-OR3TAZL3.js";
13
13
  import "./chunk-QB5JOGPK.js";
14
14
  import "./chunk-NGP6LSV2.js";
15
- import "./chunk-VDHUHXFF.js";
15
+ import "./chunk-XYG722JW.js";
16
16
  import "./chunk-CVYC6DUW.js";
17
17
  import "./chunk-OPU3NYOO.js";
18
18
  import "./chunk-GJV3WDWM.js";
19
19
  import "./chunk-MP2AFCGL.js";
20
- import "./chunk-AYMSIV7X.js";
20
+ import "./chunk-NIZQ3CIS.js";
21
21
  import "./chunk-HYZV25LY.js";
22
22
  import {
23
23
  getClient
24
- } from "./chunk-P3SIFDES.js";
24
+ } from "./chunk-SCYWCWKY.js";
25
25
  import "./chunk-2I23RPSI.js";
26
- import "./chunk-BGOMFGSW.js";
26
+ import "./chunk-GWPICNSO.js";
27
27
  import "./chunk-PNQDP3OA.js";
28
+ import "./chunk-VQRTO7IS.js";
28
29
  import "./chunk-7HLWBYH7.js";
29
30
  import "./chunk-FXU7JOXK.js";
30
- import "./chunk-VME3UH4D.js";
31
- import "./chunk-CXKR5Z5F.js";
31
+ import "./chunk-JV225JBX.js";
32
+ import "./chunk-2EJ636HI.js";
32
33
  import "./chunk-DFIOOK5R.js";
33
34
  import "./chunk-65DBIEM2.js";
34
35
  import "./chunk-MLKGABMK.js";
@@ -6,7 +6,7 @@ import {
6
6
  releaseBackfillLock,
7
7
  tryAcquireBackfillLock,
8
8
  tryAcquireWorkerSlot
9
- } from "./chunk-OMCNFTSI.js";
9
+ } from "./chunk-GMZMBLHT.js";
10
10
  import "./chunk-DFIOOK5R.js";
11
11
  import "./chunk-65DBIEM2.js";
12
12
  import "./chunk-MLKGABMK.js";
@@ -10,8 +10,8 @@ import {
10
10
  persistWorkflows,
11
11
  runWorkflow,
12
12
  startWorkflow
13
- } from "./chunk-RO7EXVSJ.js";
14
- import "./chunk-XDE5IGBX.js";
13
+ } from "./chunk-X4AFBL4N.js";
14
+ import "./chunk-2NS3QRMJ.js";
15
15
  import "./chunk-MLKGABMK.js";
16
16
  export {
17
17
  advanceWorkflow,
@@ -7,12 +7,13 @@ import {
7
7
  parseInstanceLabel,
8
8
  worktreeBranch,
9
9
  worktreePath
10
- } from "./chunk-YNALY3SX.js";
11
- import "./chunk-WHOT5NZ7.js";
12
- import "./chunk-P3SIFDES.js";
10
+ } from "./chunk-RZJ6DXVE.js";
11
+ import "./chunk-OR3TAZL3.js";
12
+ import "./chunk-SCYWCWKY.js";
13
13
  import "./chunk-2I23RPSI.js";
14
- import "./chunk-BGOMFGSW.js";
14
+ import "./chunk-GWPICNSO.js";
15
15
  import "./chunk-PNQDP3OA.js";
16
+ import "./chunk-VQRTO7IS.js";
16
17
  import "./chunk-7HLWBYH7.js";
17
18
  import "./chunk-FXU7JOXK.js";
18
19
  import "./chunk-DFIOOK5R.js";
@@ -2,13 +2,14 @@ import {
2
2
  cleanupAgentWorktree,
3
3
  discoverRepoPaths,
4
4
  sweepWorktrees
5
- } from "./chunk-7ZWC5HVG.js";
6
- import "./chunk-YNALY3SX.js";
7
- import "./chunk-WHOT5NZ7.js";
8
- import "./chunk-P3SIFDES.js";
5
+ } from "./chunk-MTIJ2NXY.js";
6
+ import "./chunk-RZJ6DXVE.js";
7
+ import "./chunk-OR3TAZL3.js";
8
+ import "./chunk-SCYWCWKY.js";
9
9
  import "./chunk-2I23RPSI.js";
10
- import "./chunk-BGOMFGSW.js";
10
+ import "./chunk-GWPICNSO.js";
11
11
  import "./chunk-PNQDP3OA.js";
12
+ import "./chunk-VQRTO7IS.js";
12
13
  import "./chunk-7HLWBYH7.js";
13
14
  import "./chunk-FXU7JOXK.js";
14
15
  import "./chunk-DFIOOK5R.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askexenow/exe-os",
3
- "version": "0.9.302",
3
+ "version": "0.9.310",
4
4
  "description": "AI employee operating system — persistent memory, task management, and multi-agent coordination for Claude Code.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "type": "module",
@@ -39,9 +39,13 @@
39
39
  "exe-pending-notifications": "./dist/bin/exe-pending-notifications.js",
40
40
  "exe-pending-reviews": "./dist/bin/exe-pending-reviews.js",
41
41
  "exe-os-orchestration-metrics": "./dist/bin/orchestration-metrics.js",
42
+ "exe-search-quality": "./dist/bin/exe-search-quality.js",
42
43
  "exe-healthcheck": "./dist/bin/exe-healthcheck.js",
43
44
  "exe-doctor": "./dist/bin/exe-doctor.js",
45
+ "exe-timers": "./dist/bin/exe-timers.js",
46
+ "exe-config-dump": "./dist/bin/exe-config-dump.js",
44
47
  "exe-stack-update": "./dist/bin/stack-update.js",
48
+ "exe-preflight": "./dist/bin/exe-preflight.js",
45
49
  "exe-cloud": "./dist/bin/exe-cloud.js",
46
50
  "exe-os-bulk-sync-postgres": "./dist/bin/bulk-sync-postgres.js"
47
51
  },
@@ -106,13 +110,14 @@
106
110
  "test:watch": "vitest",
107
111
  "lint": "eslint src/ --max-warnings 53",
108
112
  "typecheck": "tsc --noEmit",
109
- "build": "tsup && mkdir -p dist/assets && cp src/assets/tmux.conf dist/assets/ && cp src/assets/ghostty.conf dist/assets/ && cp src/assets/statusline-command.sh dist/assets/ && cp src/assets/wezterm.lua dist/assets/ && cp src/assets/com.askexe.exed.plist dist/assets/ && cp src/bin/exe-start.sh dist/bin/exe-start.sh && (node dist/bin/generate-hook-manifest.js 2>/dev/null || true) && (node dist/bin/prune-orphan-chunks.js || true)",
110
- "deploy": "node dist/bin/pre-build-guard.js 2>/dev/null; npm run build && npm install -g . && node dist/bin/install.js --global && echo '[exe-os] Deploy complete. Run /mcp in active sessions to reconnect.'",
113
+ "build": "bash scripts/build-lock.sh && mkdir -p dist/assets && cp src/assets/tmux.conf dist/assets/ && cp src/assets/ghostty.conf dist/assets/ && cp src/assets/statusline-command.sh dist/assets/ && cp src/assets/wezterm.lua dist/assets/ && cp src/assets/com.askexe.exed.plist dist/assets/ && cp src/bin/exe-start.sh dist/bin/exe-start.sh && (node dist/bin/generate-hook-manifest.js 2>/dev/null || true)",
114
+ "deploy": "node dist/bin/pre-build-guard.js 2>/dev/null; npm run build && (node dist/bin/prune-orphan-chunks.js || true) && npm install -g . && node dist/bin/install.js --global && echo '[exe-os] Deploy complete. Run /mcp in active sessions to reconnect.'",
111
115
  "postinstall": "node dist/bin/install.js --commands-only || true",
112
- "prepublishOnly": "npm run typecheck && npm run build && npm run guard:esm-require && node dist/bin/customer-readiness.js && node dist/bin/pre-publish.js",
116
+ "prepublishOnly": "npm run typecheck && npm run build && node dist/bin/prune-orphan-chunks.js --force && npm run guard:esm-require && npm run check:schema-version && node dist/bin/customer-readiness.js && node dist/bin/pre-publish.js",
113
117
  "test:publish": "npx vitest run --maxWorkers=4 --exclude 'tests/tui/**' --exclude 'tests/lib/tmux-routing.test.ts' --exclude 'tests/lib/intercom-routing.test.ts' --exclude 'tests/gateway/**' --exclude 'tests/mcp/ingest-document.test.ts' --exclude 'tests/lib/hybrid-search.test.ts' --exclude 'tests/lib/worker-gate.test.ts' --exclude 'tests/daemon-perf-stress.test.ts' --exclude 'tests/lib/gateway-client.test.ts' --exclude 'tests/lib/ws-client.test.ts' --exclude 'tests/lib/ws-auth.test.ts' --exclude 'tests/integration/clean-stack-projection.test.ts' && echo '::warning::clean-stack-projection quarantined (needs Docker); ws-client/ws-auth quarantined (30-120s timeouts flaky on Node 20 CI runner — passes locally). See cicd-audit-2026-06-18.md.' && npx vitest run --maxWorkers=1 tests/daemon-perf-stress.test.ts tests/lib/gateway-client.test.ts",
114
118
  "benchmark:longmemeval": "npx tsx tests/benchmarks/longmemeval.ts",
115
119
  "guard:esm-require": "node scripts/check-no-runtime-require.mjs",
120
+ "check:schema-version": "node scripts/check-schema-version.mjs",
116
121
  "test:stack-sim": "node scripts/stack-sim.mjs",
117
122
  "test:daemon-smoke": "vitest run --maxWorkers=1 tests/smoke/daemon-smoke-gate.test.ts"
118
123
  },
@@ -1,6 +1,22 @@
1
1
  {
2
- "current": "0.9.302",
2
+ "current": "0.9.310",
3
3
  "notes": {
4
+ "0.9.310": {
5
+ "version": "0.9.310",
6
+ "date": "2026-06-22",
7
+ "features": [],
8
+ "fixes": [
9
+ "kill the version-bump reload storm — surface-hash marker + reload debounce",
10
+ "enforce canonical 4096 daemon heap cap, correct stale 6144 (bug f215433d)",
11
+ "fail-closed BYOK env-contract — direct keys only on explicit BYOK (bug df8823d0)",
12
+ "erp healthHost localhost not askexe.com (preflight gate)"
13
+ ],
14
+ "security": [],
15
+ "other": [
16
+ "stack manifest v0.9.25 — 17 bug fixes, gateway v0.9.24 with WhatsApp/CRM/BYOK fixes"
17
+ ],
18
+ "migration_notes": []
19
+ },
4
20
  "0.9.302": {
5
21
  "version": "0.9.302",
6
22
  "date": "2026-06-22",
@@ -274,93 +290,6 @@
274
290
  "release v0.9.299 — published after 0.9.298 SQLCipher/boot/SSO/plist wave"
275
291
  ],
276
292
  "migration_notes": []
277
- },
278
- "0.9.298": {
279
- "version": "0.9.298",
280
- "date": "2026-06-19",
281
- "features": [
282
- "add comment capability to bug reports (admin route + MCP add_comment) (#211)",
283
- "unmerged-branch visibility (bug e324f244) (#208)",
284
- "5 P2 features — embed health dashboard, support reconcile, CC updater protection, LKG cache, error correlation IDs",
285
- "set CC autoUpdatesChannel to stable during install (feat 83552605)",
286
- "auto-reconcile local files with upstream status (feat 070bc025)",
287
- "expose embed worker fork status, PID, ready state in daemon health (feat 63c35469)",
288
- "deploy validation tests — IP collision, manifest parity, image tags, env parity",
289
- "session_deregister + session_cleanup — force-remove stale sessions (feat 2e55cbe4)",
290
- "OOM crash-loop backoff — circuit breaker after 3 crashes in 10min (feat 8e976fe0)",
291
- "Exe Embeddings v1.2 + Graph cross-repo contracts (features 36aa70d0, 9f6b3164)",
292
- "bump daemon heap cap 2048→4096MB in launchd plist (feat 6ee417ca)",
293
- "CI/CD Phase 3 — deploy validation + health gate tests + flaky test quarantine",
294
- "add CI Phase 3 deploy validation — 5 static checks for compose/manifest",
295
- "surface degradation/health in cloud_status, memory_audit, doctor (2c85e74b)",
296
- "owner-scoped self-service bug-report updates (7ed54c42)",
297
- "add image availability + platform verification to deploy gate",
298
- "'Why did the daemon restart?' telemetry report [3caa55e9]",
299
- "dark/light/system theme toggle on Exe Foundry Bold tokens [6df56277]",
300
- "prospective memory as native 5th cognition layer (9261d452)",
301
- "CPU-steal detection in health tooling (7b9386ad)",
302
- "host-access consent gate for monitor agent (f7ebb1fa)",
303
- "GoTrue JWT auth for MCP — exe-os login/logout/whoami",
304
- "admin backfill endpoint for api_key_hash — fixes all encrypted keys",
305
- "implement startMonitor for Slack/Discord/Telegram/WhatsApp + SMTP via nodemailer",
306
- "add dashboard + auth + otel to manifest as control-plane services"
307
- ],
308
- "fixes": [
309
- "keep SQLCipher heavy ops off the event loop + lazy boot decrypt (P0 unresponsiveness) (#234)",
310
- "hookSearchMode follows single source + non-destructive plist regeneration on update (#233)",
311
- "set JWT aud=authenticated (empty-aud tokens rejected by apps) (#232)",
312
- "robust MCP-port resolution + surface CC-native-binary warning at boot/spawn (#231)",
313
- "async timer ticks (event-loop block P0) + embed failure never self-exits (#230)",
314
- "honor originating-product redirect + parent-domain cookie for cross-product SSO (#229)",
315
- "manifest signature verification is opt-in (don't block updates when no key shipped) (#228)",
316
- "single short-timeout daemon attempt + instant SQLite fallback (73s → <3s) (#224)",
317
- "align worker RSS-kill with its heap + single config source of truth (0d5d5aa8/39a9174f) (#223)",
318
- "wire unified-auth redirect into deployed stack (crm/wiki/erp → auth) (#222)",
319
- "model loads ONLY in worker (own heap) + graceful degrade — daemon can never OOM on embeddings (P0) (#221)",
320
- "reaper survives large output (ENOBUFS) — orphaned tasks spawn workers (#220)",
321
- "force embed model to worker (P0 OOM) + persistent plist PATH + pre-restart backup cap (#219)",
322
- "enable LLM routing when available + clarify fallback signal (#218)",
323
- "reap ghost coordinator sessions (dead PID + absent tmux) (#217)",
324
- "reliably detect DISABLE_AUTOUPDATER (no flap) (#216)",
325
- "report real embed-worker state (no false 'stopped') (#215)",
326
- "migrate new required env vars + non-destructive rollback (HYGO upgrade) (#214)",
327
- "exe-auth backend network, cloudflared healthcheck, entrypoint port-conflict self-kill (HYGO) (#213)",
328
- "template nginx server_name + CORS from env at container start (no askexe.com fallback) (#212)",
329
- "submit message in Codex sessions (separate Enter keystroke, runtime-aware) (#210)",
330
- "ghost root-cause — UUID on pull + NOT NULL/non-empty schema guard (P0 26688a14)",
331
- "sync generateExampleEnv with .env.example (ERP final8 + backups/WAL block)",
332
- "caller-scoped spawn + real dispatch failure surfacing + boot identity/env guards (#202)",
333
- "atomic+verified launchd registration (correct heap flag) + crash-debris rotation"
334
- ],
335
- "security": [],
336
- "other": [
337
- "release v0.9.298 — Jack/HYGO 0.9.296 audit-wave fixes (0.9.297 published stale before these merged)",
338
- "revert build-and-test to self-hosted (build-my) + keep quarantine; move flaky tests to nightly extended-tests (#227)",
339
- "run build-and-test on GitHub-hosted runners (gate actually runs) + quarantine flaky tests (#225)",
340
- "bump v0.9.296 — exe-auth v0.2.0 SSO + redirect in manifest",
341
- "release v0.9.296 — Jack/HYGO embed+infra avalanche fixes",
342
- "bump v0.9.295 — exe-os daemon image v0.9.294 in manifest",
343
- "bump v0.9.294 — exe-auth repo + CI/CD on all 8 repos + branch hygiene",
344
- "pin actions to SHAs, drop stale disabled workflows, fail-closed release gate, manifest signing tool (#207)",
345
- "bump v0.9.293 — 17 salvaged branches merged",
346
- "bump v0.9.292 — 24 features shipped, CI/CD Phase 3, 10 bugs fixed",
347
- "post-deploy health gate tests — verify container health, missing, crash-loop",
348
- "bump v0.9.291 — 4 new features + CI fix",
349
- "add health gate coverage — verifyComposeServicesRunning, timeout precedence, rollback preservation",
350
- "bump v0.9.290 — wave 2 bug fixes (#173-#190)",
351
- "bump v0.9.289 — 22 bug fixes merged (#150-#171)",
352
- "bump v0.9.288 — wave 1 features + 114 auth tests + CI fixes",
353
- "bump v0.9.287 — deploy gate auth fix + exe-erp v0.2.1",
354
- "bump v0.9.286 — exe-erp final8 in manifest",
355
- "add cross-service SSO + key rotation + daemon restart tests (35 tests)",
356
- "45 tests for image validation, ${VAR:-default} resolution, platform checks",
357
- "add 16 activate fallback chain tests — covers bug 2f5d6166 failure modes",
358
- "add 18 key rotation tests — dual-key verify, grace, fallback chain",
359
- "bump v0.9.285 — deploy gate image verification",
360
- "bump v0.9.284 — otel deploy gate fix",
361
- "bump v0.9.283 — amd64 digest fix"
362
- ],
363
- "migration_notes": []
364
293
  }
365
294
  }
366
295
  }
@@ -4,15 +4,61 @@
4
4
  "repo": "AskExe/exe-os",
5
5
  "service": "exe-os",
6
6
  "packageName": "@askexenow/exe-os",
7
- "version": "0.9.270",
8
- "image": "ghcr.io/askexe/exe-os:v0.9.270",
7
+ "version": "0.9.310",
8
+ "image": "ghcr.io/askexe/exe-os:v0.9.310",
9
9
  "imageEnv": "EXE_OS_IMAGE_TAG",
10
10
  "components": {
11
11
  "erp": {
12
- "image": "ghcr.io/askexe/exe-erp:v0.2.0-final8",
12
+ "image": "ghcr.io/askexe/exe-erp:v0.9.310",
13
13
  "env": "ERP_IMAGE_TAG",
14
14
  "composeService": "exe-erp",
15
15
  "note": "Bug 790794e8: pinned to v0.2.0-final8 — first ERP image shipping the realtime/socketio entrypoint (exe-erp PR #15). Earlier final3/final7 crash-looped exe-erp-websocket (missing socketio.js)."
16
+ },
17
+ "exe-db": {
18
+ "image": "pgvector/pgvector:0.8.0-pg16@sha256:a132765ec351c65111b5b675928a3a0515a466a40f97277329db8b8209ad8bc9:v0.9.310",
19
+ "env": "EXE_DB_IMAGE",
20
+ "composeService": "exe-db",
21
+ "category": "infra",
22
+ "note": "Bug ee16e7ef: pinned to versioned 0.8.0-pg16 tag (was mutable :pg16)."
23
+ },
24
+ "redis": {
25
+ "image": "redis:7.4-alpine@sha256:6ab0b6e7381779332f97b8ca76193e45b0756f38d4c0dcda72dbb3c32061ab99:v0.9.310",
26
+ "env": "REDIS_IMAGE",
27
+ "composeService": "redis",
28
+ "category": "infra",
29
+ "note": "Bug 4948fc48: compose-pinned infra dep required by CRM, gateway, ERP."
30
+ },
31
+ "clickhouse": {
32
+ "image": "clickhouse/clickhouse-server:24.8.4.13-alpine@sha256:88a45f9e328549b2579256c46ee38e5c0e25ae58303d9eb6d9c7ed8d6d2bbf3c:v0.9.310",
33
+ "env": "CLICKHOUSE_IMAGE",
34
+ "composeService": "clickhouse",
35
+ "category": "infra",
36
+ "note": "Bug 4948fc48: compose-pinned infra dep required by CRM."
37
+ },
38
+ "cloudflared": {
39
+ "image": "cloudflare/cloudflared@sha256:ba461b8aa9c042156dbd39c38657fe7431bafa063220eab8d5330a523863da9f:v0.9.310",
40
+ "composeService": "cloudflared",
41
+ "category": "infra",
42
+ "note": "Bug 4948fc48: digest-pinned tunnel — no env override, managed in compose."
43
+ },
44
+ "exe-sso-edge": {
45
+ "image": "nginx:alpine@sha256:20316569d8f81a160065d7d2a5eeffc7ca97d79022462ee255fd23fa103a6b5c:v0.9.310",
46
+ "composeService": "exe-sso-edge",
47
+ "category": "infra",
48
+ "note": "Bug 4948fc48: SSO reverse proxy for CRM/wiki/ERP — uses stock nginx:alpine."
49
+ },
50
+ "exe-otel-collector": {
51
+ "image": "otel/opentelemetry-collector-contrib:0.114.0@sha256:37fa87091cfaaec7234a27e4e395a40c31c2bfaea97a349a4afef6d9e9681197:v0.9.310",
52
+ "env": "OTEL_COLLECTOR_IMAGE",
53
+ "composeService": "exe-otel-collector",
54
+ "category": "infra",
55
+ "note": "Bug 4948fc48: OTLP collector for traces/metrics/logs."
56
+ },
57
+ "gotrue": {
58
+ "image": "supabase/gotrue:v2.172.1@sha256:b0dd7aa28dd1f9a8bd31f136c8b912661f701d9b863171e5843cb08f18f49de4:v0.9.310",
59
+ "composeService": "gotrue",
60
+ "category": "infra",
61
+ "note": "Bug 4948fc48: GoTrue auth backend — digest-pinned in compose."
16
62
  }
17
63
  },
18
64
  "stackParticipation": {
@@ -43,6 +89,7 @@
43
89
  "envExample": "deploy/compose/.env.example",
44
90
  "requiredEnv": [
45
91
  "EXE_OS_IMAGE_TAG",
92
+ "EXE_DB_IMAGE",
46
93
  "EXED_MCP_TOKEN",
47
94
  "EXED_DEVICE_ID"
48
95
  ]
@@ -55,5 +102,5 @@
55
102
  },
56
103
  "deploymentScope": "customer",
57
104
  "highGhostStack": "0.9.9",
58
- "sourceVersion": "0.9.270"
105
+ "sourceVersion": "0.9.310"
59
106
  }
@@ -1,42 +0,0 @@
1
- import {
2
- EXE_AI_DIR
3
- } from "./chunk-DFIOOK5R.js";
4
- import {
5
- enforcePrivateFileSync,
6
- ensurePrivateDirSync
7
- } from "./chunk-65DBIEM2.js";
8
-
9
- // src/lib/daemon-auth.ts
10
- import crypto from "crypto";
11
- import path from "path";
12
- import { existsSync, readFileSync, writeFileSync } from "fs";
13
- var DAEMON_TOKEN_PATH = path.join(EXE_AI_DIR, "exed.token");
14
- function normalizeToken(token) {
15
- if (!token) return null;
16
- const trimmed = token.trim();
17
- return trimmed.length > 0 ? trimmed : null;
18
- }
19
- function readDaemonToken() {
20
- try {
21
- if (!existsSync(DAEMON_TOKEN_PATH)) return null;
22
- return normalizeToken(readFileSync(DAEMON_TOKEN_PATH, "utf8"));
23
- } catch {
24
- return null;
25
- }
26
- }
27
- function ensureDaemonToken(seed) {
28
- const existing = readDaemonToken();
29
- if (existing) return existing;
30
- const token = normalizeToken(seed) ?? crypto.randomBytes(32).toString("hex");
31
- ensurePrivateDirSync(EXE_AI_DIR);
32
- writeFileSync(DAEMON_TOKEN_PATH, `${token}
33
- `, "utf8");
34
- enforcePrivateFileSync(DAEMON_TOKEN_PATH);
35
- return token;
36
- }
37
-
38
- export {
39
- DAEMON_TOKEN_PATH,
40
- readDaemonToken,
41
- ensureDaemonToken
42
- };
@@ -1,13 +0,0 @@
1
- import {
2
- DAEMON_TOKEN_PATH,
3
- ensureDaemonToken,
4
- readDaemonToken
5
- } from "./chunk-PHOQAVTK.js";
6
- import "./chunk-DFIOOK5R.js";
7
- import "./chunk-65DBIEM2.js";
8
- import "./chunk-MLKGABMK.js";
9
- export {
10
- DAEMON_TOKEN_PATH,
11
- ensureDaemonToken,
12
- readDaemonToken
13
- };
@@ -1,31 +0,0 @@
1
- import {
2
- IDLE_KILL_MIN_LIVE_SESSIONS,
3
- IDLE_KILL_STREAK_META_KEY,
4
- IDLE_KILL_SUSPECT_DAY_THRESHOLD,
5
- TOKENS_PER_IDLE_MINUTE,
6
- computeIdleKillSuspectStreak,
7
- countKillsSince,
8
- parseStreakState,
9
- recordSessionKill,
10
- sumTokensSavedSince
11
- } from "./chunk-D6UICP3C.js";
12
- import "./chunk-P3SIFDES.js";
13
- import "./chunk-2I23RPSI.js";
14
- import "./chunk-BGOMFGSW.js";
15
- import "./chunk-PNQDP3OA.js";
16
- import "./chunk-7HLWBYH7.js";
17
- import "./chunk-FXU7JOXK.js";
18
- import "./chunk-DFIOOK5R.js";
19
- import "./chunk-65DBIEM2.js";
20
- import "./chunk-MLKGABMK.js";
21
- export {
22
- IDLE_KILL_MIN_LIVE_SESSIONS,
23
- IDLE_KILL_STREAK_META_KEY,
24
- IDLE_KILL_SUSPECT_DAY_THRESHOLD,
25
- TOKENS_PER_IDLE_MINUTE,
26
- computeIdleKillSuspectStreak,
27
- countKillsSince,
28
- parseStreakState,
29
- recordSessionKill,
30
- sumTokensSavedSince
31
- };
File without changes
File without changes
File without changes