@askexenow/exe-os 0.9.410 → 0.9.412

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 (408) hide show
  1. package/delivery/catalog.json +29 -38
  2. package/deploy/compose/.env.customer.example +5 -5
  3. package/deploy/compose/.env.default +4 -4
  4. package/deploy/compose/.env.example +5 -5
  5. package/deploy/compose/docker-compose.yml +1 -1
  6. package/deploy/stack-manifests/v0.9.json +263 -2
  7. package/dist/.dist-verified.json +3 -3
  8. package/dist/{active-agent-2ELFTYNT.js → active-agent-3YCLS7GB.js} +4 -4
  9. package/dist/{active-agent-SS4SRXYZ.js → active-agent-MHWQDMML.js} +4 -4
  10. package/dist/{agent-defs-generator-6S2BSYCP.js → agent-defs-generator-DNXMO34I.js} +4 -4
  11. package/dist/{agentic-ontology-TJOAUAPD.js → agentic-ontology-RA6CMND6.js} +1 -1
  12. package/dist/{artifact-backup-STQQZDZ5.js → artifact-backup-EETHNFFP.js} +3 -3
  13. package/dist/{backfill-metadata-I2FVENKJ.js → backfill-metadata-WYT257VG.js} +7 -7
  14. package/dist/backup-verify-AG54CYGR.js +62 -0
  15. package/dist/{behavior-injection-CTSIKHTH.js → behavior-injection-G7GAUHGO.js} +10 -10
  16. package/dist/{behavior-promotion-NZMTTFHK.js → behavior-promotion-I2DIUFUR.js} +9 -9
  17. package/dist/{behaviors-RUNSC5WI.js → behaviors-SKVKPCRW.js} +8 -8
  18. package/dist/bin/agentic-ontology-backfill.js +8 -8
  19. package/dist/bin/agentic-reflection-backfill.js +9 -9
  20. package/dist/bin/agentic-semantic-label.js +8 -8
  21. package/dist/bin/backfill-conversations.js +7 -7
  22. package/dist/bin/backfill-responses.js +7 -7
  23. package/dist/bin/backfill-vectors.js +7 -7
  24. package/dist/bin/bulk-sync-postgres.js +16 -16
  25. package/dist/bin/cc-doctor.js +8 -8
  26. package/dist/bin/cleanup-stale-review-tasks.js +13 -13
  27. package/dist/bin/cli.js +24 -24
  28. package/dist/bin/deferred-daemon-restart.js +95 -95
  29. package/dist/bin/exe-actions.js +1 -1
  30. package/dist/bin/exe-agent-config.js +3 -3
  31. package/dist/bin/exe-agent.js +15 -15
  32. package/dist/bin/exe-assign.js +8 -8
  33. package/dist/bin/exe-boot.js +35 -35
  34. package/dist/bin/exe-call.js +9 -9
  35. package/dist/bin/exe-cloud.js +17 -17
  36. package/dist/bin/exe-config-dump.js +3 -3
  37. package/dist/bin/exe-dispatch.js +14 -14
  38. package/dist/bin/exe-doctor.js +5 -5
  39. package/dist/bin/exe-export-behaviors.js +12 -12
  40. package/dist/bin/exe-forget.js +10 -10
  41. package/dist/bin/exe-gateway.js +9 -9
  42. package/dist/bin/exe-grant.js +6 -6
  43. package/dist/bin/exe-healthcheck.js +8 -8
  44. package/dist/bin/exe-heartbeat.js +19 -19
  45. package/dist/bin/exe-kill.js +18 -18
  46. package/dist/bin/exe-launch-agent.js +75 -36
  47. package/dist/bin/exe-mcp.js +5 -5
  48. package/dist/bin/exe-memory-reads.js +7 -7
  49. package/dist/bin/exe-new-employee.js +11 -11
  50. package/dist/bin/exe-os-mcp-proxy.js +5 -5
  51. package/dist/bin/exe-pending-messages.js +14 -14
  52. package/dist/bin/exe-pending-notifications.js +13 -13
  53. package/dist/bin/exe-pending-reviews.js +14 -14
  54. package/dist/bin/exe-rename.js +7 -7
  55. package/dist/bin/exe-review.js +17 -17
  56. package/dist/bin/exe-search.js +9 -9
  57. package/dist/bin/exe-session-cleanup.js +18 -18
  58. package/dist/bin/exe-settings.js +16 -16
  59. package/dist/bin/exe-start-codex.js +37 -19
  60. package/dist/bin/exe-start-opencode.js +35 -17
  61. package/dist/bin/exe-status.js +15 -15
  62. package/dist/bin/exe-support.js +3 -3
  63. package/dist/bin/exe-team.js +5 -5
  64. package/dist/bin/git-sweep.js +15 -15
  65. package/dist/bin/graph-backfill.js +8 -8
  66. package/dist/bin/graph-export.js +8 -8
  67. package/dist/bin/hooks-cli.js +1 -1
  68. package/dist/bin/import-history.js +11 -11
  69. package/dist/bin/install.js +97 -97
  70. package/dist/bin/intercom-check.js +5 -5
  71. package/dist/bin/mcp-sessions.js +2 -2
  72. package/dist/bin/orchestration-metrics.js +5 -5
  73. package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
  74. package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
  75. package/dist/bin/pre-publish.js +1 -1
  76. package/dist/bin/reconcile-backlog.js +2 -2
  77. package/dist/bin/registry-proxy.js +1 -1
  78. package/dist/bin/repair-document-chunks.js +7 -7
  79. package/dist/bin/scan-tasks.js +14 -14
  80. package/dist/bin/setup.js +2 -2
  81. package/dist/bin/shard-migrate.js +8 -8
  82. package/dist/bin/stack-update.js +41 -16
  83. package/dist/bin/verify-stack.js +1 -1
  84. package/dist/bin/vps-health-gate.js +1 -1
  85. package/dist/{boot-generation-4W4CDJSX.js → boot-generation-RPJVFAQJ.js} +4 -4
  86. package/dist/{boot-review-sections-HJN25GMU.js → boot-review-sections-FOPPZTJI.js} +12 -12
  87. package/dist/{bug-landed-reconciler-GGQU6G2L.js → bug-landed-reconciler-FN5KPBRK.js} +6 -6
  88. package/dist/build-info.json +3 -3
  89. package/dist/build-manifest.json +936 -926
  90. package/dist/{capability-cards-EV7VHL3W.js → capability-cards-YQWBEG7A.js} +3 -3
  91. package/dist/{capacity-monitor-YO3WRSRY.js → capacity-monitor-7SMEJHYG.js} +14 -14
  92. package/dist/{catchup-brief-4XFFW3H2.js → catchup-brief-IBQ26LEB.js} +19 -19
  93. package/dist/{chunk-YJ7MCZSY.js → chunk-27NG2NTG.js} +2 -2
  94. package/dist/{chunk-2AXJRXA6.js → chunk-2BOLFLAU.js} +4 -2
  95. package/dist/{chunk-AGXV5HLA.js → chunk-2EYVXUGA.js} +4 -4
  96. package/dist/{chunk-2YZZR2BW.js → chunk-2YFMBXUU.js} +4 -4
  97. package/dist/{chunk-ZBXZFOIF.js → chunk-2YGBJHC2.js} +3 -3
  98. package/dist/{chunk-I35OMCL3.js → chunk-353XF4LU.js} +2 -2
  99. package/dist/{chunk-UF5BDAF6.js → chunk-3DXAJVXE.js} +6 -6
  100. package/dist/{chunk-AEOB4JCJ.js → chunk-3GGMHSY2.js} +3 -3
  101. package/dist/{chunk-K6XWIJN7.js → chunk-3N24FV22.js} +1 -1
  102. package/dist/{chunk-7WCYJXOF.js → chunk-47YGEM4N.js} +1 -1
  103. package/dist/{chunk-NVM3SKJ4.js → chunk-4CN3EE6U.js} +27 -21
  104. package/dist/{chunk-IQCC6WFI.js → chunk-4J77TCTX.js} +1 -1
  105. package/dist/{chunk-H5H2LGVE.js → chunk-5BWDUUMH.js} +3 -3
  106. package/dist/{chunk-O5RKAXCG.js → chunk-5DLZJ3MY.js} +1 -1
  107. package/dist/{chunk-E3ZO4EL3.js → chunk-5ZMNFSHV.js} +1 -1
  108. package/dist/{chunk-7QFRZT4H.js → chunk-657I6PUF.js} +3 -3
  109. package/dist/{chunk-IXRYS5X3.js → chunk-6777GNWI.js} +1 -1
  110. package/dist/{chunk-4THJIDJE.js → chunk-6BD6JYR2.js} +1 -1
  111. package/dist/{chunk-JTXXLNYD.js → chunk-6DMURUBY.js} +4 -4
  112. package/dist/{chunk-47UBJKS3.js → chunk-6HJF7IA3.js} +168 -205
  113. package/dist/{chunk-PONGX3YG.js → chunk-6J2J3VJS.js} +10 -10
  114. package/dist/{chunk-XBCIRNNU.js → chunk-6PXFF6IV.js} +1 -1
  115. package/dist/{chunk-DWK5HEKY.js → chunk-7HLAYQRG.js} +4 -4
  116. package/dist/{chunk-RWM6TZH6.js → chunk-7KPZQ65I.js} +3 -3
  117. package/dist/{chunk-BPXWWD7P.js → chunk-7PDZBPGW.js} +1 -1
  118. package/dist/{chunk-2K7IKLBL.js → chunk-7SHU5MOD.js} +1 -1
  119. package/dist/{chunk-APKEGWFB.js → chunk-A5I2GYVQ.js} +3 -3
  120. package/dist/{chunk-X4V5ZLNX.js → chunk-A75TAU2I.js} +628 -4
  121. package/dist/{chunk-T7W75LII.js → chunk-BE3UETW6.js} +3 -3
  122. package/dist/{chunk-575FWHQJ.js → chunk-BG6RAOCJ.js} +63 -9
  123. package/dist/{chunk-YSDSQRE2.js → chunk-BIPTWAEO.js} +1 -1
  124. package/dist/{chunk-FYKEL2L6.js → chunk-BLTXAUP6.js} +2 -2
  125. package/dist/{chunk-ASA2UJDH.js → chunk-CFFSHBQF.js} +1 -1
  126. package/dist/{chunk-XCKTCOK3.js → chunk-CJ6CS2IH.js} +5 -5
  127. package/dist/{chunk-V7AID6MC.js → chunk-CRW63CDI.js} +1 -1
  128. package/dist/{chunk-B34RSIUP.js → chunk-CWHTUNJX.js} +2 -2
  129. package/dist/{chunk-HKAWEIB2.js → chunk-D6NZNUVH.js} +1 -1
  130. package/dist/{chunk-CEHGXPMO.js → chunk-DHLJZDWI.js} +4 -4
  131. package/dist/{chunk-FCX2XHIC.js → chunk-DWRULKB3.js} +2 -2
  132. package/dist/{chunk-KNEEOZWN.js → chunk-EOWJXCYC.js} +25 -7
  133. package/dist/{chunk-5BWN6A5E.js → chunk-EWDBWOCX.js} +1 -1
  134. package/dist/{chunk-IUAW7FVX.js → chunk-FPF2PJFK.js} +3 -3
  135. package/dist/{chunk-B55U5BKF.js → chunk-FSXMKIDO.js} +1 -1
  136. package/dist/{chunk-2A556FNI.js → chunk-FUDXITKX.js} +1 -1
  137. package/dist/{chunk-FZT7CBXB.js → chunk-FYV2CTKP.js} +1 -1
  138. package/dist/{chunk-R2ZHPVF2.js → chunk-GATAYYAF.js} +3 -3
  139. package/dist/{chunk-CKRZBQ2K.js → chunk-GHYHNHDL.js} +1 -1
  140. package/dist/{chunk-IHBYJG7N.js → chunk-GL5ZG72X.js} +1 -1
  141. package/dist/{chunk-WSYIQKZ6.js → chunk-GM4UEZDE.js} +20 -20
  142. package/dist/{chunk-QKHQTHE6.js → chunk-GZVFHFO3.js} +10 -135
  143. package/dist/{chunk-XC2KAJK4.js → chunk-HA6BIZ6L.js} +5 -5
  144. package/dist/chunk-HDQAVAV6.js +248 -0
  145. package/dist/{chunk-5Q64Q5ZD.js → chunk-HDV2V25K.js} +1 -1
  146. package/dist/{chunk-26CY4EAR.js → chunk-HTFM7ZDD.js} +2 -2
  147. package/dist/{chunk-NUEDA2US.js → chunk-HUHR5CKJ.js} +4 -4
  148. package/dist/{chunk-BIHPY7JW.js → chunk-IC2AONBH.js} +9 -9
  149. package/dist/{chunk-2YK5HP2B.js → chunk-IHAXXDBH.js} +3 -3
  150. package/dist/{chunk-5JHIAGZY.js → chunk-IPUDXR67.js} +1 -1
  151. package/dist/{chunk-BBTNF72N.js → chunk-J6U4ZR77.js} +2 -2
  152. package/dist/{chunk-2OIVIPU7.js → chunk-JAIZCE6W.js} +3 -3
  153. package/dist/{chunk-WLV27PAO.js → chunk-JGBYZTWH.js} +1 -1
  154. package/dist/{chunk-4XY33GRO.js → chunk-JJZZXEAN.js} +3 -3
  155. package/dist/{chunk-3UEDFBDE.js → chunk-JNULO6I5.js} +3 -3
  156. package/dist/{chunk-JZ23D5YF.js → chunk-JTJP4JK7.js} +3 -3
  157. package/dist/{chunk-JDZNGC4O.js → chunk-JW5NUXPN.js} +11 -11
  158. package/dist/{chunk-GGT6Y5AN.js → chunk-K2HIXAIF.js} +12 -12
  159. package/dist/{chunk-NYV4A5IG.js → chunk-KEDZRQI3.js} +2 -2
  160. package/dist/{chunk-S2DTXCV6.js → chunk-KN5GAVCG.js} +2 -2
  161. package/dist/{chunk-LBEBSXZA.js → chunk-L5JFVK5T.js} +4 -4
  162. package/dist/{chunk-HNJLAMD3.js → chunk-LBSCOP25.js} +1 -1
  163. package/dist/{chunk-FOZSHNET.js → chunk-LLZUL7M2.js} +1 -1
  164. package/dist/{chunk-53GNYXNR.js → chunk-LQGLGSBY.js} +2 -2
  165. package/dist/{chunk-X2EBM5BQ.js → chunk-LSHUX7P4.js} +16 -16
  166. package/dist/{chunk-AWTLUJZL.js → chunk-M6AX64J2.js} +2 -2
  167. package/dist/{chunk-7RVTQXST.js → chunk-M6SUJLNP.js} +2 -2
  168. package/dist/{chunk-OUUNFTS4.js → chunk-MZNLQC6W.js} +1 -1
  169. package/dist/{chunk-PCF4QMJS.js → chunk-N7POJZJT.js} +10 -10
  170. package/dist/{chunk-2CG3LHI6.js → chunk-NCNT2C2P.js} +2 -2
  171. package/dist/{chunk-R3N5BCMM.js → chunk-O3BLL6MY.js} +1 -1
  172. package/dist/{chunk-SLG3T26A.js → chunk-O6KQAJCC.js} +3 -3
  173. package/dist/{chunk-2WOHFX4Z.js → chunk-OHHZNNUD.js} +1 -1
  174. package/dist/{chunk-HWP3WCLC.js → chunk-OPG237ZQ.js} +154 -50
  175. package/dist/{chunk-2LJ2GZEE.js → chunk-PDQGR5LZ.js} +1 -1
  176. package/dist/{chunk-UBTKHJCB.js → chunk-PTF5TB6O.js} +6 -6
  177. package/dist/{chunk-5F3E57TQ.js → chunk-PYXXL7N7.js} +1 -1
  178. package/dist/{chunk-HLNRLXUS.js → chunk-Q6KUBP6R.js} +5 -5
  179. package/dist/{chunk-AGY2KUQ6.js → chunk-QJWLQXR7.js} +1 -1
  180. package/dist/{chunk-ZEDLED43.js → chunk-QOFQY7BJ.js} +1 -1
  181. package/dist/{chunk-6T5RC3L4.js → chunk-QSW5DHMZ.js} +1 -1
  182. package/dist/{chunk-54Q7M2AG.js → chunk-QV26G2BF.js} +1 -1
  183. package/dist/{chunk-5WNZGNQL.js → chunk-RHHEYC6H.js} +3 -3
  184. package/dist/{chunk-K464YYT5.js → chunk-RHJOTGEU.js} +1 -1
  185. package/dist/{chunk-LZS2B2JT.js → chunk-RIKFXHLE.js} +247 -31
  186. package/dist/{chunk-6TOV7UVU.js → chunk-RJIH7JXM.js} +4 -4
  187. package/dist/{chunk-2Q2U3NB2.js → chunk-RMC2A6EE.js} +1 -1
  188. package/dist/{chunk-FUEKSCTN.js → chunk-RYMXD2NT.js} +1 -1
  189. package/dist/{chunk-MNWN3SQ3.js → chunk-RYYFFCJG.js} +1 -1
  190. package/dist/{chunk-E2346GKI.js → chunk-SINIRUYZ.js} +101 -9
  191. package/dist/{chunk-22XJWSWN.js → chunk-SXUABANK.js} +3 -3
  192. package/dist/{backup-verify-AOTKX5DA.js → chunk-T3AM52YT.js} +345 -89
  193. package/dist/{chunk-LCXWQVOD.js → chunk-TCBWHLKH.js} +4 -4
  194. package/dist/{chunk-YWZGDFAL.js → chunk-TS4LSNRI.js} +2 -2
  195. package/dist/{chunk-J6RTX7XT.js → chunk-TVWYMOZ4.js} +1 -1
  196. package/dist/{chunk-3WNDI5KT.js → chunk-VAHQOIQY.js} +1 -1
  197. package/dist/{chunk-QH2V67NX.js → chunk-VBYSAQJD.js} +1 -1
  198. package/dist/{chunk-MQD3JJCO.js → chunk-VQQPYI4X.js} +1 -1
  199. package/dist/{chunk-XJQGS4IM.js → chunk-VS7V5HNO.js} +1 -1
  200. package/dist/{chunk-CPC75PXE.js → chunk-W3ABSZ6G.js} +2 -2
  201. package/dist/{chunk-SUGAHHVR.js → chunk-W7VKGB42.js} +1 -1
  202. package/dist/{chunk-UG3YOQAC.js → chunk-X2ZHCNNB.js} +5 -5
  203. package/dist/{chunk-YC6SZFVD.js → chunk-X4FHT6ST.js} +5 -5
  204. package/dist/{chunk-RXICR3D7.js → chunk-XC5OASHV.js} +1 -1
  205. package/dist/{chunk-TU5Y5ZNC.js → chunk-XDOCXKHW.js} +58 -1
  206. package/dist/{chunk-DLHE4PCM.js → chunk-XEAZJXMZ.js} +4 -4
  207. package/dist/{chunk-XMMWBLQK.js → chunk-XQ7BIVLI.js} +6 -6
  208. package/dist/{chunk-FRJICRED.js → chunk-Z3LGAFMG.js} +1 -1
  209. package/dist/{chunk-HCBISGUU.js → chunk-ZJ6AMC4Y.js} +7 -7
  210. package/dist/{chunk-AEEAQZ3E.js → chunk-ZZR2WRNW.js} +4 -4
  211. package/dist/{cleanup-graph-garbage-N7FTWU6C.js → cleanup-graph-garbage-SYGPMPUM.js} +8 -8
  212. package/dist/{cli-shutdown-NCBQTN7G.js → cli-shutdown-JI7CASE4.js} +1 -1
  213. package/dist/{cloud-sync-command-UL7GNN3J.js → cloud-sync-command-ZV3P5FP6.js} +2 -2
  214. package/dist/{cloud-sync-db-init-ASM7ZXBH.js → cloud-sync-db-init-RQIHWKV4.js} +1 -1
  215. package/dist/{cloud-sync-shutdown-HER4ISBU.js → cloud-sync-shutdown-V2N7VLD3.js} +3 -3
  216. package/dist/{co-activation-V5XXR327.js → co-activation-SRE6DIRX.js} +3 -3
  217. package/dist/{co-occurrence-MKZ6YWSQ.js → co-occurrence-F5TMSEQZ.js} +6 -6
  218. package/dist/{consent-passphrase-YI3J4UEL.js → consent-passphrase-MWZRHJRC.js} +2 -2
  219. package/dist/{conversation-entity-extractor-66G7ROQ3.js → conversation-entity-extractor-XMOUHGMT.js} +3 -3
  220. package/dist/{crdt-sync-Z62SWOKD.js → crdt-sync-FXEKABM7.js} +4 -4
  221. package/dist/{crm-webhook-6GBACWJX.js → crm-webhook-D6IJOPRQ.js} +2 -2
  222. package/dist/{cto-delegation-gate-FUKPBFCM.js → cto-delegation-gate-BU3JRCYN.js} +12 -12
  223. package/dist/{daemon-orchestration-O3QPSJEP.js → daemon-orchestration-K4NKFYXO.js} +19 -19
  224. package/dist/{destructive-data-guard-JDUJ2ULM.js → destructive-data-guard-3TGAAE7K.js} +77 -23
  225. package/dist/{doc-graph-extractor-BBPKLIVM.js → doc-graph-extractor-TVK2NGAR.js} +6 -6
  226. package/dist/{documents-NILTWYSQ.js → documents-MDZ4VB5X.js} +8 -8
  227. package/dist/{dreaming-KMDGPIFY.js → dreaming-L24PSS35.js} +17 -17
  228. package/dist/{employee-boot-brief-KSH3MWIF.js → employee-boot-brief-GQVL3FQC.js} +21 -21
  229. package/dist/{entity-boost-XETN7C2S.js → entity-boost-OMFA5QCG.js} +1 -1
  230. package/dist/{exe-drift-SFD7SHXC.js → exe-drift-JDDG3OPT.js} +4 -4
  231. package/dist/{exe-export-NHWKEZL4.js → exe-export-EEGIE3JP.js} +10 -10
  232. package/dist/{exe-import-SPI5HJBU.js → exe-import-UJNC5Q2L.js} +10 -10
  233. package/dist/{exe-key-TY5LFUEM.js → exe-key-TYEY4W4E.js} +95 -95
  234. package/dist/{exe-org-LVQLXA7C.js → exe-org-B3ICTTEV.js} +32 -32
  235. package/dist/{exe-snapshot-WH2DSRZW.js → exe-snapshot-VBFBONYN.js} +20 -20
  236. package/dist/{fast-db-init-UN225WS7.js → fast-db-init-TFRTK6EH.js} +1 -1
  237. package/dist/{founder-context-DVHSVBM5.js → founder-context-3X4QUWKD.js} +2 -2
  238. package/dist/{founder-monitor-envelope-HMPPUBUT.js → founder-monitor-envelope-54UNZNY4.js} +4 -4
  239. package/dist/gateway/index.js +14 -14
  240. package/dist/{gateway-client-TXHCHOVM.js → gateway-client-OUDO5GGV.js} +1 -1
  241. package/dist/{git-staleness-CUVLXQOJ.js → git-staleness-73YZ5PGU.js} +3 -3
  242. package/dist/{global-procedures-T5W3S6OU.js → global-procedures-PYNE2BQG.js} +20 -6
  243. package/dist/{graph-auto-extract-S7OIZXYP.js → graph-auto-extract-PGUMEEQB.js} +6 -6
  244. package/dist/{graph-query-CRIH4DXF.js → graph-query-7YA3YNKL.js} +1 -1
  245. package/dist/{graph-rag-LH34CEGC.js → graph-rag-UWOTK4AQ.js} +3 -3
  246. package/dist/{hook-integrity-TSJYZFZ6.js → hook-integrity-6MNEPT6W.js} +1 -1
  247. package/dist/{hook-prefetch-SNW5DFCZ.js → hook-prefetch-JOF6YZSR.js} +13 -13
  248. package/dist/hooks/bug-report-worker.js +17 -17
  249. package/dist/hooks/codex-stop-task-finalizer.js +19 -19
  250. package/dist/hooks/commit-complete.js +16 -16
  251. package/dist/hooks/error-recall.js +11 -11
  252. package/dist/hooks/exe-heartbeat-hook.js +5 -5
  253. package/dist/hooks/ingest-worker.js +15 -15
  254. package/dist/hooks/ingest.js +13 -13
  255. package/dist/hooks/instructions-loaded.js +7 -7
  256. package/dist/hooks/manifest.json +20 -20
  257. package/dist/hooks/notification.js +6 -6
  258. package/dist/hooks/post-compact.js +5 -5
  259. package/dist/hooks/post-tool-combined.js +13 -13
  260. package/dist/hooks/pre-compact.js +16 -16
  261. package/dist/hooks/pre-tool-use.js +2 -2
  262. package/dist/hooks/prompt-submit.js +34 -34
  263. package/dist/hooks/session-end.js +21 -21
  264. package/dist/hooks/session-start.js +18 -18
  265. package/dist/hooks/stop.js +19 -19
  266. package/dist/hooks/subagent-stop.js +18 -18
  267. package/dist/hooks/summary-worker.js +20 -20
  268. package/dist/index.js +26 -26
  269. package/dist/{installer-4IVP2PTX.js → installer-34XZ7JMW.js} +6 -6
  270. package/dist/{installer-UFRZHMX5.js → installer-356RMQ2K.js} +6 -6
  271. package/dist/{installer-CJWNUASI.js → installer-7TN36Z7T.js} +112 -28
  272. package/dist/{intercom-queue-II6RRK3J.js → intercom-queue-ZJ3MNULM.js} +12 -12
  273. package/dist/lib/backup-verify-worker.js +157 -0
  274. package/dist/lib/cloud-sync.js +16 -20
  275. package/dist/lib/consolidation.js +9 -9
  276. package/dist/lib/crypto.js +3 -3
  277. package/dist/lib/database.js +3 -3
  278. package/dist/lib/db-backup.js +7 -3
  279. package/dist/lib/db-write-worker.js +3 -3
  280. package/dist/lib/db.js +3 -3
  281. package/dist/lib/device-registry.js +1 -1
  282. package/dist/lib/employee-templates.js +7 -7
  283. package/dist/lib/employees.js +3 -3
  284. package/dist/lib/exe-daemon.js +89 -84
  285. package/dist/lib/hybrid-search.js +9 -9
  286. package/dist/lib/identity.js +3 -3
  287. package/dist/lib/keychain.js +1 -1
  288. package/dist/lib/license.js +2 -2
  289. package/dist/lib/messaging.js +13 -13
  290. package/dist/lib/post-tool-memory.js +13 -13
  291. package/dist/lib/registry-proxy.js +1 -1
  292. package/dist/lib/reminders.js +4 -4
  293. package/dist/lib/schedules.js +8 -8
  294. package/dist/lib/session-registry.js +5 -5
  295. package/dist/lib/skill-learning.js +9 -9
  296. package/dist/lib/store.js +7 -7
  297. package/dist/lib/task-router.js +4 -4
  298. package/dist/lib/tasks.js +14 -14
  299. package/dist/lib/tmux-routing.js +12 -12
  300. package/dist/lib/token-spend.js +4 -4
  301. package/dist/lib/ws-client.js +1 -1
  302. package/dist/{license-gate-M7EDJLAA.js → license-gate-4BXUTHLB.js} +3 -3
  303. package/dist/{license-recheck-DLTOHAH2.js → license-recheck-QFPUKISQ.js} +1 -1
  304. package/dist/{license-sync-YTDCUN3S.js → license-sync-FDEDT4AC.js} +2 -2
  305. package/dist/mcp/register-tools.js +94 -94
  306. package/dist/mcp/server.js +97 -97
  307. package/dist/mcp/tools/complete-reminder.js +5 -5
  308. package/dist/mcp/tools/create-reminder.js +5 -5
  309. package/dist/mcp/tools/create-task.js +16 -16
  310. package/dist/mcp/tools/deactivate-behavior.js +10 -10
  311. package/dist/mcp/tools/list-reminders.js +5 -5
  312. package/dist/mcp/tools/list-tasks.js +16 -16
  313. package/dist/mcp/tools/send-message.js +15 -15
  314. package/dist/mcp/tools/update-task.js +15 -15
  315. package/dist/{mcp-http-config-652YK3CI.js → mcp-http-config-GKP5QGAO.js} +5 -5
  316. package/dist/{mcp-session-identity-6QGXD52Y.js → mcp-session-identity-JHAGRB7B.js} +12 -12
  317. package/dist/{memory-cards-FOPSLULE.js → memory-cards-O377ETAM.js} +7 -7
  318. package/dist/{memory-graph-extractor-7G3CIGN7.js → memory-graph-extractor-4KJCCUOP.js} +7 -7
  319. package/dist/{memory-maintenance-5XIGUPYL.js → memory-maintenance-RR5UPRW3.js} +1 -1
  320. package/dist/{memory-poisoning-defense-MI7Y5XBP.js → memory-poisoning-defense-Y5TTKGOP.js} +3 -3
  321. package/dist/{memory-pressure-watchdog-SPIDPGU2.js → memory-pressure-watchdog-NGXTI4HR.js} +13 -13
  322. package/dist/{memory-reflection-DVAT4QKS.js → memory-reflection-EXNHRZL7.js} +7 -7
  323. package/dist/{memory-write-repository-YC7HJTV5.js → memory-write-repository-S4TX7WQB.js} +1 -1
  324. package/dist/{monitor-grants-3A77O6XK.js → monitor-grants-57Q4NL25.js} +3 -3
  325. package/dist/{monitor-identity-BTFFMFEX.js → monitor-identity-3FQ52SYU.js} +2 -2
  326. package/dist/{notification-ledger-AV5242RM.js → notification-ledger-O6KQYYGK.js} +13 -13
  327. package/dist/{notifications-75FVPJLY.js → notifications-6FCQCJ4P.js} +12 -12
  328. package/dist/{orchestration-events-ARGZU6KS.js → orchestration-events-2Z2BMMA5.js} +4 -4
  329. package/dist/{orchestrator-TCXZMLSB.js → orchestrator-AGOSKPHD.js} +14 -14
  330. package/dist/{org-brief-session-B455POUI.js → org-brief-session-WJHZVXXJ.js} +15 -15
  331. package/dist/{org-consent-policy-7K5H6FOB.js → org-consent-policy-X43UGTHI.js} +5 -5
  332. package/dist/{org-join-ETR5KO27.js → org-join-M3UTBMHC.js} +9 -9
  333. package/dist/{org-key-admin-IRC6H3TL.js → org-key-admin-AA2DRHB2.js} +11 -11
  334. package/dist/{org-key-epoch-EG4YQ47A.js → org-key-epoch-Z5UIVUHT.js} +5 -5
  335. package/dist/{org-key-pin-GLQEU3P3.js → org-key-pin-FE6YHEZ3.js} +3 -3
  336. package/dist/{org-membership-JC5YVU6N.js → org-membership-3J2MIGE4.js} +4 -4
  337. package/dist/{org-partner-config-QFSVGHEA.js → org-partner-config-5HATZYG4.js} +8 -8
  338. package/dist/{org-partner-runtime-7AD7WY3Y.js → org-partner-runtime-UI35IHUC.js} +15 -15
  339. package/dist/{org-row-visibility-AXZKVOA6.js → org-row-visibility-TRJERVYP.js} +1 -1
  340. package/dist/{pipeline-router-2KY4X6PO.js → pipeline-router-EKQ6D7ZA.js} +4 -4
  341. package/dist/{plan-limits-PG6HG2DT.js → plan-limits-3BGHIHX6.js} +6 -6
  342. package/dist/{platform-procedures-QP3W2NLH.js → platform-procedures-RXW46WNY.js} +1 -1
  343. package/dist/{pre-tool-use-impl-45B4NFIF.js → pre-tool-use-impl-7BT5TJVM.js} +28 -28
  344. package/dist/{project-name-LHYHR4VN.js → project-name-PGJGUEJY.js} +4 -4
  345. package/dist/{projection-worker-POT2AOR5.js → projection-worker-3GEVFPAI.js} +2 -2
  346. package/dist/{prospective-memory-ECXSAEAW.js → prospective-memory-GEN7CN7H.js} +3 -3
  347. package/dist/{push-notifications-W3UNHDC5.js → push-notifications-QW4BWRC7.js} +13 -13
  348. package/dist/{reproject-worktree-memories-PIXMJBHG.js → reproject-worktree-memories-DIULBEBD.js} +12 -12
  349. package/dist/{reranker-ZBPYIRBB.js → reranker-LQ6OPJOI.js} +1 -1
  350. package/dist/{retrieval-health-42MFLOEP.js → retrieval-health-XDFYFEOP.js} +1 -1
  351. package/dist/{review-polling-V4CSK4TZ.js → review-polling-ED33YLFT.js} +13 -13
  352. package/dist/runtime/index.js +20 -20
  353. package/dist/{session-events-C3NUY6MR.js → session-events-7IJGTBVH.js} +13 -13
  354. package/dist/{session-kill-telemetry-ZOSAIYU2.js → session-kill-telemetry-RUTEARJ3.js} +13 -13
  355. package/dist/{session-scope-BZALGKYZ.js → session-scope-SSYA64L3.js} +12 -12
  356. package/dist/{setup-wizard-DNA2UT4J.js → setup-wizard-XD7FZVLJ.js} +2 -2
  357. package/dist/{shard-manager-NG4SXV7L.js → shard-manager-FH5JZRSE.js} +2 -2
  358. package/dist/{skill-refinement-Y3M7XBRE.js → skill-refinement-UHD4E6GV.js} +4 -4
  359. package/dist/{skill-retrieval-XDY352AS.js → skill-retrieval-F6PAJ3I5.js} +11 -11
  360. package/dist/{skill-usage-QOLIJQJC.js → skill-usage-2MBTF7Y4.js} +4 -4
  361. package/dist/{stack-generate-manifest-VFHCOLAD.js → stack-generate-manifest-MVJDTU4F.js} +13 -37
  362. package/dist/{stack-promote-24BY6AXF.js → stack-promote-BMGEY6SQ.js} +4 -4
  363. package/dist/{stack-release-AXH7ZIOR.js → stack-release-64UJ6Y4W.js} +17 -34
  364. package/dist/{stack-update-7ET7S3ED.js → stack-update-EBATTQPP.js} +5 -3
  365. package/dist/{steward-gate-2MUESY3V.js → steward-gate-EWG2BHYQ.js} +4 -4
  366. package/dist/{subagent-brief-injection-6PM3WMMR.js → subagent-brief-injection-YZGSWUEY.js} +23 -23
  367. package/dist/{support-bug-actions-WWKDXT74.js → support-bug-actions-RU6WZ3UV.js} +3 -3
  368. package/dist/{support-inbox-AN44HIOG.js → support-inbox-A3S52SPS.js} +12 -12
  369. package/dist/{task-enforcement-QO7RXYK2.js → task-enforcement-LVAS55AR.js} +13 -13
  370. package/dist/{task-request-inbox-RXAT2QJF.js → task-request-inbox-2TN4ZUH2.js} +5 -5
  371. package/dist/{task-scope-4EKZBTTM.js → task-scope-NLKUVCP5.js} +12 -12
  372. package/dist/{tasks-crud-MB7WXGPW.js → tasks-crud-NQDPLHNZ.js} +12 -12
  373. package/dist/{tasks-notify-BCWO7AP6.js → tasks-notify-BDM2NEHP.js} +13 -13
  374. package/dist/{tasks-review-HXHYA76X.js → tasks-review-3G7CAW2O.js} +12 -12
  375. package/dist/{telemetry-upload-Q7DLE5I3.js → telemetry-upload-6DR6AL3V.js} +8 -8
  376. package/dist/{token-budget-EL6BEBDP.js → token-budget-KNC2WGR7.js} +4 -4
  377. package/dist/{tool-telemetry-SNWF4WDH.js → tool-telemetry-I3SEU5M5.js} +1 -1
  378. package/dist/tui/App.js +23 -23
  379. package/dist/{tui-data-ZMSBEPJT.js → tui-data-KJDWP4CB.js} +16 -16
  380. package/dist/{update-support-QY7WALUZ.js → update-support-UYDYMHVR.js} +11 -11
  381. package/dist/{whatsapp-NCZ43BB3.js → whatsapp-5EMPZHF5.js} +2 -2
  382. package/dist/{wiki-acl-3L7BRJUV.js → wiki-acl-M7BTQJBZ.js} +1 -1
  383. package/dist/{work-claims-XQXT2VWJ.js → work-claims-5CFMZTML.js} +4 -4
  384. package/dist/{work-state-heartbeat-GAIQ7M73.js → work-state-heartbeat-7IA2DZ2E.js} +1 -1
  385. package/dist/{workflow-engine-FCOOI5M6.js → workflow-engine-S5JOE2YR.js} +2 -2
  386. package/dist/{worktree-GS4ODQ4C.js → worktree-7V4ZMF3D.js} +5 -5
  387. package/dist/{worktree-sweep-6LMC7H5Y.js → worktree-sweep-34MXJ7S6.js} +6 -6
  388. package/package.json +2 -1
  389. package/release-notes.json +21 -25
  390. package/stack.release.json +5 -5
  391. package/dist/chunk-WZPD4QSE.js +0 -113
  392. /package/dist/{chunk-IKJUZ3VO.js → chunk-542FBM5U.js} +0 -0
  393. /package/dist/{chunk-XJDSTA2C.js → chunk-6D2O5SAH.js} +0 -0
  394. /package/dist/{chunk-FDQXQBBC.js → chunk-6NRZLVK3.js} +0 -0
  395. /package/dist/{chunk-XDWIJBTY.js → chunk-CFO47VW4.js} +0 -0
  396. /package/dist/{chunk-R6H2IRCF.js → chunk-EULAP6L6.js} +0 -0
  397. /package/dist/{chunk-LK6OG47X.js → chunk-FYSKQPTE.js} +0 -0
  398. /package/dist/{chunk-LAWI42NC.js → chunk-J4B4M5PH.js} +0 -0
  399. /package/dist/{chunk-AC36VWNB.js → chunk-J635FA7T.js} +0 -0
  400. /package/dist/{chunk-UQKGV6SX.js → chunk-MOBZTIJQ.js} +0 -0
  401. /package/dist/{chunk-7ZP2PAW3.js → chunk-N45FAI6D.js} +0 -0
  402. /package/dist/{chunk-ZQS4S4AX.js → chunk-QDSNEGJE.js} +0 -0
  403. /package/dist/{chunk-CS4SHHLY.js → chunk-SKSXROKP.js} +0 -0
  404. /package/dist/{chunk-JXGOO53U.js → chunk-YVWXI2HM.js} +0 -0
  405. /package/dist/{core-memory-3TZV3ZDW.js → core-memory-PZEO3OWH.js} +0 -0
  406. /package/dist/{memory-isolation-TE4AOMQX.js → memory-isolation-MFNT2ITE.js} +0 -0
  407. /package/dist/{oauth-server-CWQ6EBGQ.js → oauth-server-CBGEWD6H.js} +0 -0
  408. /package/dist/{project-boot-MX2FNKTJ.js → project-boot-VESAYDIH.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  routeTask
3
- } from "./chunk-SUGAHHVR.js";
3
+ } from "./chunk-W7VKGB42.js";
4
4
  import {
5
5
  createTaskCore,
6
6
  employeeSessionName,
@@ -9,11 +9,11 @@ import {
9
9
  isEmployeeAlive,
10
10
  sessionScopeFilter,
11
11
  updateTaskStatus
12
- } from "./chunk-WSYIQKZ6.js";
12
+ } from "./chunk-GM4UEZDE.js";
13
13
  import {
14
14
  DEFAULT_COORDINATOR_TEMPLATE_NAME,
15
15
  getCoordinatorName
16
- } from "./chunk-LBEBSXZA.js";
16
+ } from "./chunk-L5JFVK5T.js";
17
17
 
18
18
  // src/runtime/orchestrator.ts
19
19
  var STALE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
@@ -1,13 +1,19 @@
1
1
  import {
2
2
  behaviorTruncationNotice
3
- } from "./chunk-JZ23D5YF.js";
3
+ } from "./chunk-JTJP4JK7.js";
4
4
  import {
5
5
  countActiveBehaviors,
6
6
  listBehaviors
7
- } from "./chunk-NYV4A5IG.js";
7
+ } from "./chunk-KEDZRQI3.js";
8
+ import {
9
+ isInitialized
10
+ } from "./chunk-L5JFVK5T.js";
8
11
  import {
9
12
  loadConfigSync
10
13
  } from "./chunk-MMS2HBRT.js";
14
+ import {
15
+ atomicWriteSync
16
+ } from "./chunk-HSGBZSCA.js";
11
17
 
12
18
  // src/lib/behaviors-export.ts
13
19
  import os from "os";
@@ -17,8 +23,7 @@ import {
17
23
  mkdirSync,
18
24
  readdirSync,
19
25
  statSync,
20
- unlinkSync,
21
- writeFileSync
26
+ unlinkSync
22
27
  } from "fs";
23
28
  var BEHAVIORS_EXPORT_DIR = path.join(
24
29
  os.homedir(),
@@ -35,6 +40,19 @@ function getBehaviorLimit() {
35
40
  return DEFAULT_BEHAVIOR_LIMIT;
36
41
  }
37
42
  }
43
+ var SWEEPABLE_EXPORT_SHAPES = [
44
+ // Session-scoped export: `<agent>-<safeProject>-<sessionKey>.md` (exportFilePath
45
+ // with a sessionKey; safeProject may be empty, giving `<agent>--<key>.md`).
46
+ /^[a-z][a-z0-9]*-[A-Za-z0-9_-]*-.+\.md$/,
47
+ // Spawn-scoped boot snapshot written by exe-launch-agent: `<agent>-boot.md`.
48
+ /^[a-z][a-z0-9]*-boot\.md$/,
49
+ // Orphaned atomic-write temp file (crash between write and rename):
50
+ // `<name>.tmp.<pid>.<uuid>`, see atomicWriteSync.
51
+ /\.tmp\.\d+\.[0-9a-f-]{36}$/
52
+ ];
53
+ function isSweepableBehaviorExport(entry) {
54
+ return SWEEPABLE_EXPORT_SHAPES.some((re) => re.test(entry));
55
+ }
38
56
  function sweepStaleBehaviorExports(now = Date.now()) {
39
57
  if (!existsSync(BEHAVIORS_EXPORT_DIR)) return;
40
58
  let entries;
@@ -44,6 +62,7 @@ function sweepStaleBehaviorExports(now = Date.now()) {
44
62
  return;
45
63
  }
46
64
  for (const entry of entries) {
65
+ if (!isSweepableBehaviorExport(entry)) continue;
47
66
  const filePath = path.join(BEHAVIORS_EXPORT_DIR, entry);
48
67
  try {
49
68
  const stat = statSync(filePath);
@@ -87,19 +106,54 @@ function exportFilePath(agentId, projectName, sessionKey) {
87
106
  `${agentId}-${safeProject}-${sessionKey}.md`
88
107
  );
89
108
  }
109
+ function existingExport(target) {
110
+ try {
111
+ return existsSync(target) && statSync(target).size > 0 ? target : null;
112
+ } catch {
113
+ return null;
114
+ }
115
+ }
90
116
  async function exportBehaviorsForAgent(agentId, projectName, sessionKey) {
91
117
  mkdirSync(BEHAVIORS_EXPORT_DIR, { recursive: true });
92
- sweepStaleBehaviorExports();
93
- const behaviors = await listBehaviors(agentId, projectName, getBehaviorLimit());
94
- if (behaviors.length === 0) return null;
118
+ const target = exportFilePath(agentId, projectName, sessionKey);
119
+ let behaviors;
120
+ try {
121
+ if (!isInitialized()) {
122
+ throw new Error(
123
+ "no DB client is registered in this process: the exe-os daemon did not answer in time (fastDbInit degraded to its no-op client rather than open the encrypted DB as a second writer, bug 96a28cf2) or the store was never initialised. Retry once the daemon is responsive (`exe-os daemon status`), or set EXE_DB_DIRECT=1 to force a direct open"
124
+ );
125
+ }
126
+ behaviors = await listBehaviors(agentId, projectName, getBehaviorLimit());
127
+ } catch (err) {
128
+ const reason = err instanceof Error ? err.message : String(err);
129
+ const cached = existingExport(target);
130
+ if (cached) {
131
+ process.stderr.write(
132
+ `[behaviors-export] STALE: could not refresh behaviors for ${agentId} (${reason}); keeping the previous export at ${cached}.
133
+ `
134
+ );
135
+ return cached;
136
+ }
137
+ throw new Error(
138
+ `behaviors unavailable for ${agentId}: ${reason}. No cached export exists at ${target}, so this session boots without behaviors.`
139
+ );
140
+ }
141
+ if (behaviors.length === 0) {
142
+ try {
143
+ if (existsSync(target)) unlinkSync(target);
144
+ } catch {
145
+ }
146
+ sweepStaleBehaviorExports();
147
+ return null;
148
+ }
95
149
  let counts = { total: behaviors.length, p0: 0 };
96
150
  try {
97
151
  counts = await countActiveBehaviors(agentId, projectName);
98
152
  } catch {
99
153
  }
100
154
  const body = renderBehaviorExport(behaviors, counts);
101
- const target = exportFilePath(agentId, projectName, sessionKey);
102
- writeFileSync(target, body, "utf-8");
155
+ atomicWriteSync(target, body, "utf-8");
156
+ sweepStaleBehaviorExports();
103
157
  return target;
104
158
  }
105
159
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isManagementRole
3
- } from "./chunk-LBEBSXZA.js";
3
+ } from "./chunk-L5JFVK5T.js";
4
4
 
5
5
  // src/lib/transcript-sidechain.ts
6
6
  import { readFileSync } from "fs";
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-BTSWFMEH.js";
11
11
  import {
12
12
  getClient
13
- } from "./chunk-LBEBSXZA.js";
13
+ } from "./chunk-L5JFVK5T.js";
14
14
 
15
15
  // src/lib/work-claims.ts
16
16
  var CLAIM_TTL_MINUTES = 90;
@@ -306,7 +306,7 @@ async function heartbeatClaims(holderSession, ttlMinutes = CLAIM_TTL_MINUTES) {
306
306
  }
307
307
  async function recordClaimEvent(eventType, sessionScope, agentId, payload, severity) {
308
308
  try {
309
- const { recordOrchestrationEventBestEffort } = await import("./orchestration-events-ARGZU6KS.js");
309
+ const { recordOrchestrationEventBestEffort } = await import("./orchestration-events-2Z2BMMA5.js");
310
310
  recordOrchestrationEventBestEffort({
311
311
  eventType,
312
312
  source: "work-claims",
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getClient
3
- } from "./chunk-LBEBSXZA.js";
3
+ } from "./chunk-L5JFVK5T.js";
4
4
 
5
5
  // src/lib/skill-refinement.ts
6
6
  import crypto from "crypto";
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  derivePartnerSealIdentity
3
- } from "./chunk-B34RSIUP.js";
3
+ } from "./chunk-CWHTUNJX.js";
4
4
  import {
5
5
  pinMismatchReason,
6
6
  pinnedOrgKeyEpochs,
7
7
  readOrgKeyPin
8
- } from "./chunk-XBCIRNNU.js";
8
+ } from "./chunk-6PXFF6IV.js";
9
9
  import {
10
10
  derivePartnerSignIdentity,
11
11
  displayFingerprint,
12
12
  signKeyFingerprint
13
- } from "./chunk-OUUNFTS4.js";
13
+ } from "./chunk-MZNLQC6W.js";
14
14
  import {
15
15
  orgMembershipPresent,
16
16
  readActiveOrgMemberships
17
- } from "./chunk-FOZSHNET.js";
17
+ } from "./chunk-LLZUL7M2.js";
18
18
  import {
19
19
  isValidX25519Recipient
20
- } from "./chunk-2K7IKLBL.js";
20
+ } from "./chunk-7SHU5MOD.js";
21
21
 
22
22
  // src/lib/org-partner-config.ts
23
23
  function pickString(rec, ...keys) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getClient
3
- } from "./chunk-LBEBSXZA.js";
3
+ } from "./chunk-L5JFVK5T.js";
4
4
  import {
5
5
  loadConfigSync
6
6
  } from "./chunk-MMS2HBRT.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  exportRawPublicKey,
3
3
  privateKeyFromScalar
4
- } from "./chunk-2K7IKLBL.js";
4
+ } from "./chunk-7SHU5MOD.js";
5
5
  import {
6
6
  getMasterKey
7
- } from "./chunk-IQCC6WFI.js";
7
+ } from "./chunk-4J77TCTX.js";
8
8
 
9
9
  // src/lib/partner-seal-identity.ts
10
10
  import crypto from "crypto";
@@ -2,7 +2,7 @@ import {
2
2
  getClient,
3
3
  isCoordinatorName,
4
4
  loadEmployeesSync
5
- } from "./chunk-LBEBSXZA.js";
5
+ } from "./chunk-L5JFVK5T.js";
6
6
 
7
7
  // src/lib/steward-gate.ts
8
8
  import crypto from "crypto";
@@ -8,13 +8,13 @@ import {
8
8
  queryTaskRows,
9
9
  resolveExeSession,
10
10
  sendIntercom
11
- } from "./chunk-WSYIQKZ6.js";
11
+ } from "./chunk-GM4UEZDE.js";
12
12
  import {
13
13
  getTransport
14
14
  } from "./chunk-VI4ATC6I.js";
15
15
  import {
16
16
  recordOrchestrationEventBestEffort
17
- } from "./chunk-WLV27PAO.js";
17
+ } from "./chunk-JGBYZTWH.js";
18
18
  import {
19
19
  releaseDispatchClaim,
20
20
  tryAcquireDispatchClaim
@@ -29,7 +29,7 @@ import {
29
29
  isCoordinatorName,
30
30
  isMultiInstance,
31
31
  shouldAutoInstance
32
- } from "./chunk-LBEBSXZA.js";
32
+ } from "./chunk-L5JFVK5T.js";
33
33
 
34
34
  // src/lib/tasks-notify.ts
35
35
  var VERIFY_DELAY_MS = 1e4;
@@ -91,7 +91,7 @@ async function dispatchTaskToEmployee(input) {
91
91
  let crossProject = false;
92
92
  if (input.projectName) {
93
93
  try {
94
- const { assertSessionScope } = await import("./session-scope-BZALGKYZ.js");
94
+ const { assertSessionScope } = await import("./session-scope-SSYA64L3.js");
95
95
  const check = assertSessionScope("dispatch_task", input.projectName);
96
96
  if (check.reason === "cross_session_denied") {
97
97
  crossProject = true;
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  sessionScopeFilter
3
- } from "./chunk-WSYIQKZ6.js";
3
+ } from "./chunk-GM4UEZDE.js";
4
4
  import {
5
5
  leaseExpiryIso
6
6
  } from "./chunk-E23LNUWJ.js";
7
7
  import {
8
8
  getProjectName
9
- } from "./chunk-J6RTX7XT.js";
9
+ } from "./chunk-TVWYMOZ4.js";
10
10
 
11
11
  // src/lib/subagent-observability.ts
12
12
  var MAX_RESULT_DIGEST_CHARS = 200;
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-3R7UDPVR.js";
4
4
  import {
5
5
  getDeviceInfo
6
- } from "./chunk-XJDSTA2C.js";
6
+ } from "./chunk-6D2O5SAH.js";
7
7
  import {
8
8
  EXE_AI_DIR
9
9
  } from "./chunk-MMS2HBRT.js";
@@ -15,6 +15,29 @@ import { createHash, randomUUID } from "crypto";
15
15
  import os from "os";
16
16
  import path from "path";
17
17
  import { jwtVerify, importSPKI } from "jose";
18
+
19
+ // src/lib/license-offline-window.ts
20
+ var MAX_OFFLINE_TRUST_DAYS = 7;
21
+ var OFFLINE_GRACE_CLAIM = "offline_grace_s";
22
+ function offlineTrustWindowMs(payload, maxDays) {
23
+ const local = maxDays * 24 * 60 * 60 * 1e3;
24
+ if (!payload || !(OFFLINE_GRACE_CLAIM in payload)) return local;
25
+ const claim = payload[OFFLINE_GRACE_CLAIM];
26
+ if (typeof claim !== "number" || !Number.isFinite(claim) || claim < 0) return 0;
27
+ return Math.min(local, claim * 1e3);
28
+ }
29
+ function withinOfflineTrustWindow(payload, maxDays) {
30
+ const iat = payload?.iat;
31
+ if (typeof iat !== "number" || !Number.isFinite(iat)) {
32
+ return !(payload && OFFLINE_GRACE_CLAIM in payload);
33
+ }
34
+ return Date.now() < iat * 1e3 + offlineTrustWindowMs(payload, maxDays);
35
+ }
36
+ function proofWithinOfflineTrust(payload) {
37
+ return withinOfflineTrustWindow(payload, MAX_OFFLINE_TRUST_DAYS);
38
+ }
39
+
40
+ // src/lib/license.ts
18
41
  var LICENSE_PATH = path.join(EXE_AI_DIR, "license.key");
19
42
  var GRANDFATHER_PATH = path.join(EXE_AI_DIR, "personal-free-grandfather.json");
20
43
  var PENDING_LICENSE_PATH = path.join(EXE_AI_DIR, "license.key.pending");
@@ -44,12 +67,6 @@ oR8NJBuiITKaerulCXiSiJMX1HP0+h5dHBVfCWQfIVk5BMdsheAMaP806w==
44
67
  -----END PUBLIC KEY-----`;
45
68
  var LICENSE_PUBLIC_KEYS = [LICENSE_PUBLIC_KEY_PEM_2026_06_17, LICENSE_PUBLIC_KEY_PEM, LICENSE_PUBLIC_KEY_PEM_PREV];
46
69
  var LICENSE_JWT_ALG = "ES256";
47
- var MAX_OFFLINE_TRUST_DAYS = 7;
48
- function withinOfflineTrustWindow(payload, maxDays) {
49
- const iat = payload?.iat;
50
- if (typeof iat !== "number" || !Number.isFinite(iat)) return true;
51
- return Date.now() < iat * 1e3 + maxDays * 24 * 60 * 60 * 1e3;
52
- }
53
70
  function suppliedNumber(value) {
54
71
  return typeof value === "number" && Number.isFinite(value) ? value : null;
55
72
  }
@@ -997,6 +1014,7 @@ function stopLicenseRevalidation() {
997
1014
  }
998
1015
 
999
1016
  export {
1017
+ proofWithinOfflineTrust,
1000
1018
  LICENSE_PUBLIC_KEY_PEM,
1001
1019
  resolveClientLimits,
1002
1020
  markPersonalFreeGrandfather,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  completeReminder,
3
3
  formatAmbiguousReminder
4
- } from "./chunk-MNWN3SQ3.js";
4
+ } from "./chunk-RYYFFCJG.js";
5
5
 
6
6
  // src/mcp/tools/complete-reminder.ts
7
7
  import { z } from "zod";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getClient
3
- } from "./chunk-LBEBSXZA.js";
3
+ } from "./chunk-L5JFVK5T.js";
4
4
 
5
5
  // src/lib/pipeline-router.ts
6
6
  import crypto from "crypto";
@@ -140,8 +140,8 @@ Agent response: ${agentResponse}` : ""
140
140
  }
141
141
  async function sinkEntityExtraction(msg, agentResponse, agentName) {
142
142
  try {
143
- const { extractFromConversation } = await import("./conversation-entity-extractor-66G7ROQ3.js");
144
- const { storeExtraction } = await import("./graph-rag-LH34CEGC.js");
143
+ const { extractFromConversation } = await import("./conversation-entity-extractor-XMOUHGMT.js");
144
+ const { storeExtraction } = await import("./graph-rag-UWOTK4AQ.js");
145
145
  if ((msg.text?.length ?? 0) < 20) return false;
146
146
  if (msg.isHistorical) return false;
147
147
  const extraction = await extractFromConversation(msg, agentResponse, agentName);
@@ -2,7 +2,7 @@ import {
2
2
  decryptSyncBlob,
3
3
  encryptSyncBlob,
4
4
  isSyncCryptoInitialized
5
- } from "./chunk-54Q7M2AG.js";
5
+ } from "./chunk-QV26G2BF.js";
6
6
 
7
7
  // src/lib/crdt-sync.ts
8
8
  import * as Y from "yjs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  listReminders
3
- } from "./chunk-MNWN3SQ3.js";
3
+ } from "./chunk-RYYFFCJG.js";
4
4
 
5
5
  // src/mcp/tools/list-reminders.ts
6
6
  import { z } from "zod";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isExeSession
3
- } from "./chunk-WSYIQKZ6.js";
3
+ } from "./chunk-GM4UEZDE.js";
4
4
  import {
5
5
  loadConfigSync
6
6
  } from "./chunk-MMS2HBRT.js";
@@ -7,7 +7,7 @@ import {
7
7
  supportProductSchema,
8
8
  supportTaskIdSchema,
9
9
  supportVersionSchema
10
- } from "./chunk-R3N5BCMM.js";
10
+ } from "./chunk-O3BLL6MY.js";
11
11
  import {
12
12
  queueSupportStatusUpdateSync
13
13
  } from "./chunk-L4ISXVC5.js";
@@ -37,11 +37,11 @@ import {
37
37
  } from "./chunk-BYP3DOUU.js";
38
38
  import {
39
39
  getActiveAgent
40
- } from "./chunk-IHBYJG7N.js";
40
+ } from "./chunk-GL5ZG72X.js";
41
41
  import {
42
42
  loadLicense,
43
43
  readCachedLicenseToken
44
- } from "./chunk-KNEEOZWN.js";
44
+ } from "./chunk-EOWJXCYC.js";
45
45
  import {
46
46
  EXE_AI_DIR,
47
47
  loadConfig
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  executeAction,
3
3
  substituteTemplate
4
- } from "./chunk-XDWIJBTY.js";
4
+ } from "./chunk-CFO47VW4.js";
5
5
 
6
6
  // src/automation/workflow-engine.ts
7
7
  import { randomUUID } from "crypto";
@@ -14,7 +14,7 @@ import {
14
14
  getEmployee,
15
15
  isCoordinatorRole,
16
16
  loadEmployeesSync
17
- } from "./chunk-LBEBSXZA.js";
17
+ } from "./chunk-L5JFVK5T.js";
18
18
  import {
19
19
  EXE_AI_DIR
20
20
  } from "./chunk-MMS2HBRT.js";
@@ -1,9 +1,9 @@
1
+ import {
2
+ resolveRowVisibility
3
+ } from "./chunk-PYXXL7N7.js";
1
4
  import {
2
5
  runBudgetedSweep
3
6
  } from "./chunk-ZKGWHT56.js";
4
- import {
5
- resolveRowVisibility
6
- } from "./chunk-5F3E57TQ.js";
7
7
  import {
8
8
  LEASE_MINUTES,
9
9
  isLeaseExpired,
@@ -25,7 +25,7 @@ import {
25
25
  } from "./chunk-QDMZ5DX2.js";
26
26
  import {
27
27
  listSessions
28
- } from "./chunk-6T5RC3L4.js";
28
+ } from "./chunk-QSW5DHMZ.js";
29
29
  import {
30
30
  getTransport
31
31
  } from "./chunk-VI4ATC6I.js";
@@ -34,7 +34,7 @@ import {
34
34
  } from "./chunk-6L4VIYLZ.js";
35
35
  import {
36
36
  recordOrchestrationEventBestEffort
37
- } from "./chunk-WLV27PAO.js";
37
+ } from "./chunk-JGBYZTWH.js";
38
38
  import {
39
39
  appendDispatchJournalEvent,
40
40
  releaseDispatchClaim,
@@ -43,7 +43,7 @@ import {
43
43
  } from "./chunk-T5SM4RXY.js";
44
44
  import {
45
45
  incrementSkillSuccess
46
- } from "./chunk-ASA2UJDH.js";
46
+ } from "./chunk-CFFSHBQF.js";
47
47
  import {
48
48
  assertRuntimeModelCompatible,
49
49
  getAgentRuntime,
@@ -52,13 +52,13 @@ import {
52
52
  import {
53
53
  PlanLimitError,
54
54
  assertEmployeeLimitSync
55
- } from "./chunk-2AXJRXA6.js";
55
+ } from "./chunk-2BOLFLAU.js";
56
56
  import {
57
57
  isValidSessionScope
58
58
  } from "./chunk-BTSWFMEH.js";
59
59
  import {
60
60
  getProjectName
61
- } from "./chunk-J6RTX7XT.js";
61
+ } from "./chunk-TVWYMOZ4.js";
62
62
  import {
63
63
  getSessionKey
64
64
  } from "./chunk-CVYC6DUW.js";
@@ -82,10 +82,10 @@ import {
82
82
  loadEmployeesSync,
83
83
  offloadReadIfMain,
84
84
  offloadReadQuery
85
- } from "./chunk-LBEBSXZA.js";
85
+ } from "./chunk-L5JFVK5T.js";
86
86
  import {
87
87
  loadDeviceId
88
- } from "./chunk-KNEEOZWN.js";
88
+ } from "./chunk-EOWJXCYC.js";
89
89
  import {
90
90
  EXE_AI_DIR
91
91
  } from "./chunk-MMS2HBRT.js";
@@ -1456,7 +1456,7 @@ async function createTaskCore(input, deps = {}) {
1456
1456
  if (isCoordinatorSession) {
1457
1457
  earlySessionScope = resolved;
1458
1458
  } else {
1459
- const { getSessionProject } = await import("./session-scope-BZALGKYZ.js");
1459
+ const { getSessionProject } = await import("./session-scope-SSYA64L3.js");
1460
1460
  const sessionProject = getSessionProject(resolved);
1461
1461
  if (sessionProject && sessionProject !== input.projectName) {
1462
1462
  scopeMismatchWarning = `session/project mismatch: session "${resolved}" owns "${sessionProject}" but task targets "${input.projectName}". Routed to default scope.`;
@@ -1726,7 +1726,7 @@ ${scopeMismatchWarning}` : scopeMismatchWarning;
1726
1726
  });
1727
1727
  await writeTaskMarkdownAtomic(mdPath, mdContent);
1728
1728
  try {
1729
- const { injectBehaviors } = await import("./behavior-injection-CTSIKHTH.js");
1729
+ const { injectBehaviors } = await import("./behavior-injection-G7GAUHGO.js");
1730
1730
  await injectBehaviors({
1731
1731
  taskFile: mdPath,
1732
1732
  title: input.title,
@@ -1821,7 +1821,7 @@ async function buildTaskRowsStatement(opts) {
1821
1821
  }
1822
1822
  if (opts.founderId !== null) {
1823
1823
  try {
1824
- const { founderScopeFilter } = await import("./founder-context-DVHSVBM5.js");
1824
+ const { founderScopeFilter } = await import("./founder-context-3X4QUWKD.js");
1825
1825
  const founderFilter = founderScopeFilter(opts.founderId);
1826
1826
  const cleaned = founderFilter.sql.replace(/^\s*AND\s+/, "");
1827
1827
  conditions.push(cleaned);
@@ -5096,7 +5096,7 @@ async function verifyPaneAtCapacity(sessionName) {
5096
5096
  reason: `capture-pane failed: ${err instanceof Error ? err.message : String(err)}`
5097
5097
  };
5098
5098
  }
5099
- const { isAtCapacity } = await import("./capacity-monitor-YO3WRSRY.js");
5099
+ const { isAtCapacity } = await import("./capacity-monitor-7SMEJHYG.js");
5100
5100
  if (!isAtCapacity(pane)) {
5101
5101
  return {
5102
5102
  atCapacity: false,
@@ -5403,7 +5403,7 @@ async function countScopedPendingReviews(targetSession, reviewer) {
5403
5403
  }
5404
5404
  async function countScopedOpenTasks(targetSession, agentId) {
5405
5405
  try {
5406
- const { fastDbInit } = await import("./fast-db-init-UN225WS7.js");
5406
+ const { fastDbInit } = await import("./fast-db-init-TFRTK6EH.js");
5407
5407
  const client = await fastDbInit();
5408
5408
  const scope = extractRootExe(targetSession);
5409
5409
  if (!scope) return 0;
@@ -5460,7 +5460,7 @@ function buildScopedInProgressTaskQuery(targetSession) {
5460
5460
  async function findScopedInProgressTaskId(targetSession) {
5461
5461
  const q = buildScopedInProgressTaskQuery(targetSession);
5462
5462
  if (!q) return null;
5463
- const { fastDbInit } = await import("./fast-db-init-UN225WS7.js");
5463
+ const { fastDbInit } = await import("./fast-db-init-TFRTK6EH.js");
5464
5464
  const client = await fastDbInit();
5465
5465
  const result = await client.execute(q);
5466
5466
  const id = result.rows[0]?.id;
@@ -5581,7 +5581,7 @@ function sendIntercom(targetSession, opts) {
5581
5581
  const ledgerEnv = (process.env.EXE_NOTIFICATION_LEDGER ?? "").trim().toLowerCase();
5582
5582
  if (ledgerEnv === "shadow") {
5583
5583
  const ledgerScope = opts && "callerSessionScope" in opts ? opts.callerSessionScope : void 0;
5584
- void import("./notification-ledger-AV5242RM.js").then((m) => m.recordShadowNudge(targetSession, reason, ledgerScope, { force: opts?.force })).catch(() => {
5584
+ void import("./notification-ledger-O6KQYYGK.js").then((m) => m.recordShadowNudge(targetSession, reason, ledgerScope, { force: opts?.force })).catch(() => {
5585
5585
  });
5586
5586
  }
5587
5587
  if (!opts?.force && isDebounced(targetSession)) {
@@ -5763,7 +5763,7 @@ async function sendIntercomAsync(targetSession, opts) {
5763
5763
  let ledgerClaim = null;
5764
5764
  if (authoritativeLedger) {
5765
5765
  try {
5766
- const { claimAuthoritativeNudge } = await import("./notification-ledger-AV5242RM.js");
5766
+ const { claimAuthoritativeNudge } = await import("./notification-ledger-O6KQYYGK.js");
5767
5767
  const claim2 = await claimAuthoritativeNudge(
5768
5768
  targetSession,
5769
5769
  reason,
@@ -5786,7 +5786,7 @@ async function sendIntercomAsync(targetSession, opts) {
5786
5786
  const markLedgerDelivered = async () => {
5787
5787
  if (!ledgerClaim) return;
5788
5788
  try {
5789
- const { markNudgeDelivered } = await import("./notification-ledger-AV5242RM.js");
5789
+ const { markNudgeDelivered } = await import("./notification-ledger-O6KQYYGK.js");
5790
5790
  await markNudgeDelivered(ledgerClaim.id, ledgerClaim.sessionScope);
5791
5791
  } catch {
5792
5792
  }
@@ -5794,7 +5794,7 @@ async function sendIntercomAsync(targetSession, opts) {
5794
5794
  const markLedgerFailed = async (error) => {
5795
5795
  if (!ledgerClaim) return;
5796
5796
  try {
5797
- const { markNudgeDeliveryFailed } = await import("./notification-ledger-AV5242RM.js");
5797
+ const { markNudgeDeliveryFailed } = await import("./notification-ledger-O6KQYYGK.js");
5798
5798
  await markNudgeDeliveryFailed(ledgerClaim.id, error, ledgerClaim.sessionScope);
5799
5799
  } catch {
5800
5800
  }