@askexenow/exe-os 0.9.405 → 0.9.407

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 (398) hide show
  1. package/dist/.dist-verified.json +3 -3
  2. package/dist/{active-agent-KZFLZ4B6.js → active-agent-2OMOWJXI.js} +4 -4
  3. package/dist/{active-agent-IU3D6Y5Z.js → active-agent-U6JYIXZD.js} +4 -4
  4. package/dist/{agent-defs-generator-23FGUXVO.js → agent-defs-generator-TZC3QFTT.js} +3 -3
  5. package/dist/{agentic-ontology-7G44A5LE.js → agentic-ontology-GJI54CFX.js} +1 -1
  6. package/dist/{artifact-backup-GYNBR2I6.js → artifact-backup-4GCKVN3V.js} +3 -3
  7. package/dist/{backfill-metadata-QZND2XBD.js → backfill-metadata-EVJEKCY3.js} +7 -7
  8. package/dist/{backup-verify-E5UQJ4E6.js → backup-verify-PIH5GXLV.js} +1 -1
  9. package/dist/{behavior-injection-FJFD735A.js → behavior-injection-TKQETCCW.js} +10 -10
  10. package/dist/{behavior-promotion-XNO53I4M.js → behavior-promotion-TB53MVMQ.js} +9 -9
  11. package/dist/{behaviors-F6KA2XNB.js → behaviors-2XKHIDUD.js} +8 -8
  12. package/dist/bin/agentic-ontology-backfill.js +8 -8
  13. package/dist/bin/agentic-reflection-backfill.js +9 -9
  14. package/dist/bin/agentic-semantic-label.js +8 -8
  15. package/dist/bin/backfill-conversations.js +7 -7
  16. package/dist/bin/backfill-responses.js +7 -7
  17. package/dist/bin/backfill-vectors.js +7 -7
  18. package/dist/bin/bulk-sync-postgres.js +16 -16
  19. package/dist/bin/cc-doctor.js +8 -8
  20. package/dist/bin/cleanup-stale-review-tasks.js +16 -16
  21. package/dist/bin/cli.js +24 -24
  22. package/dist/bin/deferred-daemon-restart.js +95 -94
  23. package/dist/bin/exe-actions.js +2 -2
  24. package/dist/bin/exe-agent-config.js +3 -3
  25. package/dist/bin/exe-agent.js +14 -14
  26. package/dist/bin/exe-assign.js +8 -8
  27. package/dist/bin/exe-boot.js +36 -36
  28. package/dist/bin/exe-call.js +8 -8
  29. package/dist/bin/exe-cloud.js +17 -17
  30. package/dist/bin/exe-config-dump.js +3 -3
  31. package/dist/bin/exe-dispatch.js +17 -17
  32. package/dist/bin/exe-doctor.js +12 -5
  33. package/dist/bin/exe-export-behaviors.js +12 -12
  34. package/dist/bin/exe-forget.js +10 -10
  35. package/dist/bin/exe-gateway.js +9 -9
  36. package/dist/bin/exe-grant.js +6 -6
  37. package/dist/bin/exe-healthcheck.js +8 -8
  38. package/dist/bin/exe-heartbeat.js +22 -22
  39. package/dist/bin/exe-kill.js +21 -21
  40. package/dist/bin/exe-launch-agent.js +29 -29
  41. package/dist/bin/exe-mcp.js +5 -5
  42. package/dist/bin/exe-memory-reads.js +7 -7
  43. package/dist/bin/exe-new-employee.js +10 -10
  44. package/dist/bin/exe-os-mcp-proxy.js +5 -5
  45. package/dist/bin/exe-pending-messages.js +17 -17
  46. package/dist/bin/exe-pending-notifications.js +16 -16
  47. package/dist/bin/exe-pending-reviews.js +17 -17
  48. package/dist/bin/exe-rename.js +6 -6
  49. package/dist/bin/exe-review.js +20 -20
  50. package/dist/bin/exe-search.js +9 -9
  51. package/dist/bin/exe-session-cleanup.js +21 -21
  52. package/dist/bin/exe-settings.js +16 -16
  53. package/dist/bin/exe-start-codex.js +18 -18
  54. package/dist/bin/exe-start-opencode.js +16 -16
  55. package/dist/bin/exe-status.js +18 -18
  56. package/dist/bin/exe-support.js +3 -3
  57. package/dist/bin/exe-team.js +5 -5
  58. package/dist/bin/git-sweep.js +17 -17
  59. package/dist/bin/graph-backfill.js +8 -8
  60. package/dist/bin/graph-export.js +8 -8
  61. package/dist/bin/hooks-cli.js +1 -1
  62. package/dist/bin/import-history.js +11 -11
  63. package/dist/bin/install.js +175 -96
  64. package/dist/bin/intercom-check.js +5 -5
  65. package/dist/bin/mcp-sessions.js +2 -2
  66. package/dist/bin/orchestration-metrics.js +5 -5
  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/reconcile-backlog.js +2 -2
  70. package/dist/bin/registry-proxy.js +1 -1
  71. package/dist/bin/repair-document-chunks.js +7 -7
  72. package/dist/bin/scan-tasks.js +17 -17
  73. package/dist/bin/setup.js +2 -2
  74. package/dist/bin/shard-migrate.js +8 -8
  75. package/dist/bin/stack-update.js +48 -4
  76. package/dist/bin/vps-health-gate.js +1 -1
  77. package/dist/{boot-generation-2LMBR7S7.js → boot-generation-34GD265Q.js} +4 -4
  78. package/dist/{boot-review-sections-P4J6LGFF.js → boot-review-sections-JYDDUJH5.js} +15 -15
  79. package/dist/{bug-landed-reconciler-PWRXOBOE.js → bug-landed-reconciler-ORYLGRQI.js} +6 -6
  80. package/dist/build-info.json +3 -3
  81. package/dist/build-manifest.json +931 -921
  82. package/dist/{capability-cards-VKEXD3BA.js → capability-cards-IOFJOGID.js} +3 -3
  83. package/dist/{capacity-monitor-DIX6TOWZ.js → capacity-monitor-CJSDRDLR.js} +17 -17
  84. package/dist/{catchup-brief-JQIWOJEN.js → catchup-brief-ELSYIYVL.js} +22 -22
  85. package/dist/{chunk-Z4FVCXQN.js → chunk-232YVOFB.js} +2 -2
  86. package/dist/{chunk-3L5B655Z.js → chunk-323DU3UM.js} +3 -3
  87. package/dist/{chunk-ID3KTUXS.js → chunk-342ZBEDI.js} +2 -2
  88. package/dist/{chunk-KRNF2TTT.js → chunk-35PGCSNN.js} +4 -4
  89. package/dist/{chunk-MMQH7AM7.js → chunk-36QUBTID.js} +1 -1
  90. package/dist/{chunk-4BSOTASL.js → chunk-3AC6WJNP.js} +2 -2
  91. package/dist/{chunk-DQUGV7TQ.js → chunk-3AOPBH5S.js} +1 -1
  92. package/dist/{chunk-35XHS5ZL.js → chunk-3DIP37BT.js} +2 -2
  93. package/dist/{chunk-QGTP2A7P.js → chunk-3X733RHO.js} +1 -1
  94. package/dist/{chunk-OV5RG5UT.js → chunk-4MQDDFRN.js} +1 -1
  95. package/dist/{chunk-B4LS4IPJ.js → chunk-4SLKFUA7.js} +1 -1
  96. package/dist/{chunk-KPCUD5A3.js → chunk-4U2TAOW7.js} +1 -1
  97. package/dist/{chunk-QEGSRMGV.js → chunk-52JOFQOK.js} +1 -1
  98. package/dist/{chunk-TFUWNX5F.js → chunk-5F74HGSQ.js} +1 -1
  99. package/dist/{chunk-Y2OSYQCG.js → chunk-5FOJ6N3V.js} +1 -1
  100. package/dist/{chunk-JP6GZTZA.js → chunk-5GYA4ERO.js} +1 -1
  101. package/dist/{chunk-YWMAGQ6C.js → chunk-5QJEJA5H.js} +3 -3
  102. package/dist/{chunk-FBGQXSBL.js → chunk-6ENEX5UH.js} +6 -6
  103. package/dist/{chunk-HC7GQZLN.js → chunk-6GBGKSNQ.js} +5 -5
  104. package/dist/{chunk-A5YNPQBD.js → chunk-6RWTLW75.js} +7 -7
  105. package/dist/{chunk-R2X6IQAD.js → chunk-6SJ4SKWZ.js} +1 -1
  106. package/dist/{chunk-UXSLCTCQ.js → chunk-6XJYUC7K.js} +1 -1
  107. package/dist/{chunk-XIMUZQJT.js → chunk-6Y7TK4EA.js} +2 -2
  108. package/dist/{chunk-UAKAKWWJ.js → chunk-7DG3WBGN.js} +1 -1
  109. package/dist/{chunk-W76IFXGP.js → chunk-7E4KZIX7.js} +1 -1
  110. package/dist/{chunk-YPMI6DNO.js → chunk-7NR6LMGH.js} +2 -2
  111. package/dist/{chunk-HMOB3FPD.js → chunk-7OX2AACL.js} +2 -2
  112. package/dist/{chunk-56XINHPT.js → chunk-7VSPHUIB.js} +24 -24
  113. package/dist/{chunk-3RQHJYRK.js → chunk-AIDYWH4D.js} +2 -2
  114. package/dist/{chunk-3HDUO5XG.js → chunk-AO2HCOE6.js} +2 -2
  115. package/dist/{chunk-3AWX2CAI.js → chunk-AWNX33WP.js} +1 -1
  116. package/dist/{chunk-NXBLILKG.js → chunk-BER2YLZT.js} +1 -1
  117. package/dist/{chunk-LRRPSQ25.js → chunk-BG52IECQ.js} +27 -4
  118. package/dist/{chunk-Z3JFXAIN.js → chunk-BHKCSRJG.js} +3 -3
  119. package/dist/{chunk-SHGAH24B.js → chunk-BIBBNDM3.js} +1 -1
  120. package/dist/{chunk-LZGYRZAP.js → chunk-C7SKFVXQ.js} +4 -4
  121. package/dist/{chunk-BCOGIX5I.js → chunk-CCY37D3C.js} +1 -1
  122. package/dist/{chunk-QILKDHJ7.js → chunk-CP6XE35Z.js} +2 -2
  123. package/dist/{chunk-NG22OOND.js → chunk-D6PNMFPF.js} +4 -4
  124. package/dist/{chunk-6XH6ETY6.js → chunk-DDAOY3DL.js} +1 -1
  125. package/dist/{chunk-LGTGY32U.js → chunk-DEBKL7WW.js} +4 -4
  126. package/dist/{chunk-Z7DIOYLS.js → chunk-DG3DWHYJ.js} +3 -3
  127. package/dist/{chunk-FNWXPIP4.js → chunk-DOO6M2XM.js} +5 -5
  128. package/dist/{chunk-FKMNMSZE.js → chunk-DXZRXNIC.js} +1 -1
  129. package/dist/{chunk-EOIHESMU.js → chunk-EEY77PKF.js} +1 -1
  130. package/dist/{chunk-B42HMZSQ.js → chunk-ERIXGUSV.js} +1 -1
  131. package/dist/{chunk-PQVIARTA.js → chunk-FBB2YMKB.js} +1 -1
  132. package/dist/{chunk-LCC7SS6F.js → chunk-FEJK36FV.js} +1 -1
  133. package/dist/{chunk-UO766M5I.js → chunk-FKANX6A7.js} +1 -1
  134. package/dist/{chunk-AZIJQ6IM.js → chunk-G3ABALZ7.js} +77 -12
  135. package/dist/{chunk-AAAJKHJM.js → chunk-G4MVORCE.js} +5 -5
  136. package/dist/{chunk-Y3CXCRCP.js → chunk-G66AOAYN.js} +1 -1
  137. package/dist/{chunk-YGE6OCHC.js → chunk-G6D6U2EY.js} +4 -4
  138. package/dist/{chunk-QADGKJAC.js → chunk-GRIGIKC4.js} +3 -3
  139. package/dist/{chunk-3OFIIUGD.js → chunk-GVVWEBTD.js} +3 -3
  140. package/dist/{chunk-N4JBGOHA.js → chunk-HBOSSJWS.js} +3 -3
  141. package/dist/{chunk-YNBQSYY5.js → chunk-HJ2DJJIK.js} +120 -7
  142. package/dist/{chunk-YWH7XWOX.js → chunk-HPDR3EL7.js} +4 -4
  143. package/dist/{chunk-VHKJIGNR.js → chunk-IMI5ZAOA.js} +1 -1
  144. package/dist/{chunk-BPNPJVYP.js → chunk-IQI5LAEK.js} +1 -1
  145. package/dist/{chunk-A5TICGUL.js → chunk-IVX4CW6I.js} +2 -2
  146. package/dist/{chunk-2NNTKVDN.js → chunk-KAKURNNS.js} +1 -1
  147. package/dist/{chunk-APOS4EIO.js → chunk-KP3J52RW.js} +3 -3
  148. package/dist/{chunk-X44QG7ES.js → chunk-KVPCFVAH.js} +1 -1
  149. package/dist/{chunk-DPS33ERV.js → chunk-KZSBPAEJ.js} +2 -2
  150. package/dist/{chunk-GLMR5PRH.js → chunk-L23CONP7.js} +2 -2
  151. package/dist/{chunk-WH2TTW4G.js → chunk-LDYQPD5H.js} +3 -3
  152. package/dist/{chunk-YROE2BJ6.js → chunk-MAY4VWEG.js} +2 -2
  153. package/dist/{chunk-4XFVEIPV.js → chunk-MLIRYXZ2.js} +63 -10
  154. package/dist/{chunk-DLATN3UV.js → chunk-MNEVSKUY.js} +1 -1
  155. package/dist/{chunk-ZHHGFNTZ.js → chunk-NF7JS7XW.js} +1 -1
  156. package/dist/{chunk-ZB3ZSZSY.js → chunk-OAP66FCX.js} +2 -2
  157. package/dist/{chunk-DDWLI43S.js → chunk-PCLIU4BP.js} +156 -156
  158. package/dist/{chunk-XRPN4YJ3.js → chunk-Q2RTUZXB.js} +4 -4
  159. package/dist/{chunk-OAYFVKNM.js → chunk-QHQW3VHV.js} +1 -1
  160. package/dist/{chunk-DLJSC6YA.js → chunk-QJTG3DN7.js} +1 -1
  161. package/dist/{chunk-MRQIIVHK.js → chunk-QWXBLCVK.js} +1 -1
  162. package/dist/{chunk-S4SSKW2Q.js → chunk-QZJY4RMF.js} +3 -3
  163. package/dist/{chunk-MXEEMTCV.js → chunk-R5YD5DIP.js} +16 -16
  164. package/dist/{chunk-MKO45WBR.js → chunk-RHEIOXVL.js} +1 -1
  165. package/dist/{chunk-VWSJP5PY.js → chunk-RZTSXHWF.js} +9 -9
  166. package/dist/{chunk-JUJIKD6I.js → chunk-S5OI42DL.js} +3 -3
  167. package/dist/{chunk-ZXMNWYAU.js → chunk-SDJ3TONY.js} +3 -3
  168. package/dist/{chunk-76HWKZMH.js → chunk-SJTFU3YJ.js} +6 -6
  169. package/dist/{chunk-LZX43KPR.js → chunk-SLJDYBLE.js} +1 -1
  170. package/dist/{chunk-L3L4KCBJ.js → chunk-SPHPROWZ.js} +2 -2
  171. package/dist/{chunk-2M5IU5MA.js → chunk-SS3FTK77.js} +1 -1
  172. package/dist/{chunk-AQPS7W6G.js → chunk-TEHJ5TOU.js} +11 -11
  173. package/dist/{chunk-F546SXKC.js → chunk-THMMMWIT.js} +66 -18
  174. package/dist/{chunk-SI7JLNKV.js → chunk-TLELTVAN.js} +1 -1
  175. package/dist/{chunk-6JZPYITB.js → chunk-TRZXFWRO.js} +54 -23
  176. package/dist/{chunk-ZG3ZXYKX.js → chunk-U7A2EACP.js} +3 -3
  177. package/dist/{chunk-TCGYYUDX.js → chunk-UMLDPQ24.js} +2 -2
  178. package/dist/{chunk-DEQJVVAU.js → chunk-UNNOYMQI.js} +1 -1
  179. package/dist/{chunk-DFV4KVU7.js → chunk-VDSAXP3N.js} +1 -1
  180. package/dist/{chunk-3ACGTDYH.js → chunk-VFUMCL6H.js} +1 -1
  181. package/dist/{chunk-GS2I4OUQ.js → chunk-VGP4T2L6.js} +4 -4
  182. package/dist/{chunk-BU4NQU5R.js → chunk-VSJ3Y26C.js} +1 -1
  183. package/dist/{chunk-CKG3O7XJ.js → chunk-WQ7YIU4M.js} +3 -3
  184. package/dist/{chunk-GER43BIE.js → chunk-X4V5ZLNX.js} +1 -1
  185. package/dist/{chunk-FVEAYEMK.js → chunk-X6HOIDIR.js} +3 -3
  186. package/dist/{chunk-T56CQURA.js → chunk-XA5FPMYR.js} +1 -1
  187. package/dist/{chunk-HVT6NOTO.js → chunk-XC6EXJBA.js} +4 -4
  188. package/dist/{chunk-DTNA2PBW.js → chunk-XIJIFRPA.js} +10 -10
  189. package/dist/chunk-XMUG7XDN.js +546 -0
  190. package/dist/{chunk-RKEREP4O.js → chunk-XT7ZZJVD.js} +1 -1
  191. package/dist/{chunk-NSJUD5BW.js → chunk-Y73MI7UH.js} +12 -12
  192. package/dist/{chunk-H6ET4UWS.js → chunk-YB5IW32Y.js} +4 -4
  193. package/dist/{chunk-KOAWUIG6.js → chunk-YTP6L76N.js} +5 -5
  194. package/dist/{chunk-XB5G7WB3.js → chunk-YV5JIEYI.js} +2 -2
  195. package/dist/{chunk-SD5PWIUP.js → chunk-Z5ERWCOL.js} +1 -1
  196. package/dist/{chunk-7UXI2DMI.js → chunk-ZB34E2OV.js} +10 -10
  197. package/dist/{chunk-GAUPRBOT.js → chunk-ZGNMI2WJ.js} +1 -1
  198. package/dist/{chunk-A2TRWGTX.js → chunk-ZGRLIQLE.js} +3 -3
  199. package/dist/{chunk-QEFKJLEY.js → chunk-ZL3D7XTR.js} +1 -1
  200. package/dist/{chunk-KPJYEYGL.js → chunk-ZLMVXK4O.js} +10 -10
  201. package/dist/{chunk-OJPN3XEN.js → chunk-ZSZVJ2FR.js} +1 -1
  202. package/dist/{cleanup-graph-garbage-3LT5R5VO.js → cleanup-graph-garbage-M5OYEPRR.js} +8 -8
  203. package/dist/{cli-shutdown-M7SEMYVZ.js → cli-shutdown-AY2FMXD6.js} +1 -1
  204. package/dist/{cloud-sync-command-YZYG22F7.js → cloud-sync-command-PRC4GV62.js} +2 -2
  205. package/dist/{cloud-sync-db-init-3VYFHYEG.js → cloud-sync-db-init-IYXPCNSJ.js} +1 -1
  206. package/dist/{cloud-sync-shutdown-A4EIAFXO.js → cloud-sync-shutdown-3F6XASFF.js} +3 -3
  207. package/dist/{co-activation-DGPZOQNM.js → co-activation-LB56BYW2.js} +3 -3
  208. package/dist/{co-occurrence-XQZZCRWV.js → co-occurrence-TKPZB3IR.js} +6 -6
  209. package/dist/{consent-passphrase-XTAQJIKQ.js → consent-passphrase-YQLAAPPC.js} +2 -2
  210. package/dist/{conversation-entity-extractor-4PIYOIG5.js → conversation-entity-extractor-J2UZGFG3.js} +3 -3
  211. package/dist/{crdt-sync-ZLD5EI2T.js → crdt-sync-GE6DVV2F.js} +4 -4
  212. package/dist/{crm-webhook-7FG7XJIG.js → crm-webhook-6HXNLEQV.js} +2 -2
  213. package/dist/{cto-delegation-gate-QCFAZHKI.js → cto-delegation-gate-QSWDPH67.js} +15 -15
  214. package/dist/{daemon-orchestration-K5RWVZA6.js → daemon-orchestration-YJ4GMHVM.js} +21 -21
  215. package/dist/{doc-graph-extractor-IJHGWTTK.js → doc-graph-extractor-XLAUARWE.js} +6 -6
  216. package/dist/{documents-CND4LHQK.js → documents-SZ76YQ3Q.js} +8 -8
  217. package/dist/{dreaming-CM26M46X.js → dreaming-ZQGMOZ2E.js} +20 -20
  218. package/dist/{employee-boot-brief-FUKC7RGM.js → employee-boot-brief-SV5JHCJL.js} +24 -24
  219. package/dist/{entity-boost-EIE76PER.js → entity-boost-KTADWOGJ.js} +1 -1
  220. package/dist/{exe-drift-HZXHPQRX.js → exe-drift-CT36U5DX.js} +4 -4
  221. package/dist/{exe-export-KZRXDR6W.js → exe-export-EJ4B74OU.js} +9 -9
  222. package/dist/{exe-import-QRELY26K.js → exe-import-UA6OIZ4C.js} +9 -9
  223. package/dist/{exe-key-53GDRW6F.js → exe-key-SKOOVJCT.js} +95 -94
  224. package/dist/{exe-org-I3H5H5VL.js → exe-org-WQARAD3U.js} +32 -32
  225. package/dist/{exe-snapshot-VUXHUEAC.js → exe-snapshot-2OXDANU3.js} +23 -23
  226. package/dist/{fast-db-init-NGVQV5J2.js → fast-db-init-YFUMI4NH.js} +1 -1
  227. package/dist/{founder-context-3QW7IIRX.js → founder-context-DMWIIDJ2.js} +2 -2
  228. package/dist/{founder-monitor-envelope-56PUEATO.js → founder-monitor-envelope-JYFWXZQ4.js} +4 -4
  229. package/dist/gateway/index.js +14 -14
  230. package/dist/{gateway-client-KFW7FKSO.js → gateway-client-ELHI2DWX.js} +1 -1
  231. package/dist/{git-staleness-QZM6S6ZB.js → git-staleness-K7HHMBWI.js} +3 -3
  232. package/dist/{global-procedures-NJ7UXIBT.js → global-procedures-ERZJFJUA.js} +5 -5
  233. package/dist/{graph-auto-extract-YKCCVXN2.js → graph-auto-extract-LUQ6QZ4P.js} +6 -6
  234. package/dist/{graph-query-A7JYKBHM.js → graph-query-KRNMWF77.js} +1 -1
  235. package/dist/{graph-rag-4HCOSELM.js → graph-rag-2W26GEGZ.js} +3 -3
  236. package/dist/{hook-integrity-PE3ZR6PD.js → hook-integrity-QFBZE5FK.js} +1 -1
  237. package/dist/{hook-prefetch-MEABRYQ3.js → hook-prefetch-WP3PEE4H.js} +16 -16
  238. package/dist/hooks/bug-report-worker.js +20 -20
  239. package/dist/hooks/codex-stop-task-finalizer.js +22 -22
  240. package/dist/hooks/commit-complete.js +19 -19
  241. package/dist/hooks/error-recall.js +11 -11
  242. package/dist/hooks/exe-heartbeat-hook.js +5 -5
  243. package/dist/hooks/ingest-worker.js +7 -7
  244. package/dist/hooks/ingest.js +13 -13
  245. package/dist/hooks/instructions-loaded.js +7 -7
  246. package/dist/hooks/manifest.json +20 -20
  247. package/dist/hooks/notification.js +6 -6
  248. package/dist/hooks/post-compact.js +5 -5
  249. package/dist/hooks/post-tool-combined.js +13 -13
  250. package/dist/hooks/pre-compact.js +19 -19
  251. package/dist/hooks/pre-tool-use.js +2 -2
  252. package/dist/hooks/prompt-submit.js +37 -37
  253. package/dist/hooks/session-end.js +24 -24
  254. package/dist/hooks/session-start.js +18 -18
  255. package/dist/hooks/stop.js +22 -22
  256. package/dist/hooks/subagent-stop.js +21 -21
  257. package/dist/hooks/summary-worker.js +23 -23
  258. package/dist/index.js +29 -29
  259. package/dist/{installer-CHKYUF4F.js → installer-ADGJLDVY.js} +7 -7
  260. package/dist/{installer-EB5YC2DW.js → installer-HCFVVQ6F.js} +7 -7
  261. package/dist/{installer-UMC6ZHE4.js → installer-ZNP4S32U.js} +7 -7
  262. package/dist/{intercom-queue-Y2XUK4NR.js → intercom-queue-NRECOZFL.js} +15 -15
  263. package/dist/lib/cloud-sync.js +16 -16
  264. package/dist/lib/consolidation.js +9 -9
  265. package/dist/lib/crypto.js +3 -3
  266. package/dist/lib/database.js +3 -3
  267. package/dist/lib/db-backup.js +1 -1
  268. package/dist/lib/db-write-worker.js +3 -3
  269. package/dist/lib/db.js +3 -3
  270. package/dist/lib/device-registry.js +1 -1
  271. package/dist/lib/employee-templates.js +6 -6
  272. package/dist/lib/employees.js +3 -3
  273. package/dist/lib/exe-daemon.js +91 -91
  274. package/dist/lib/exe-shims.js +47 -0
  275. package/dist/lib/hybrid-search.js +9 -9
  276. package/dist/lib/identity.js +3 -3
  277. package/dist/lib/keychain.js +1 -1
  278. package/dist/lib/license.js +2 -2
  279. package/dist/lib/messaging.js +16 -16
  280. package/dist/lib/post-tool-memory.js +5 -5
  281. package/dist/lib/registry-proxy.js +1 -1
  282. package/dist/lib/reminders.js +4 -4
  283. package/dist/lib/schedules.js +8 -8
  284. package/dist/lib/session-registry.js +5 -5
  285. package/dist/lib/skill-learning.js +9 -9
  286. package/dist/lib/store.js +7 -7
  287. package/dist/lib/task-router.js +4 -4
  288. package/dist/lib/tasks.js +17 -17
  289. package/dist/lib/tmux-routing.js +15 -15
  290. package/dist/lib/token-spend.js +4 -4
  291. package/dist/lib/ws-client.js +1 -1
  292. package/dist/{license-gate-OZ7QAPSR.js → license-gate-CB2OCT2G.js} +3 -3
  293. package/dist/{license-recheck-KM7YKZQA.js → license-recheck-ZAEPWMY7.js} +1 -1
  294. package/dist/{license-sync-ZBDH7W22.js → license-sync-UW4UH7F5.js} +31 -18
  295. package/dist/{maintenance-worker-HGOCITGW.js → maintenance-worker-OY2E4BM5.js} +3 -1
  296. package/dist/mcp/register-tools.js +94 -93
  297. package/dist/mcp/server.js +97 -96
  298. package/dist/mcp/tools/complete-reminder.js +5 -5
  299. package/dist/mcp/tools/create-reminder.js +5 -5
  300. package/dist/mcp/tools/create-task.js +19 -19
  301. package/dist/mcp/tools/deactivate-behavior.js +10 -10
  302. package/dist/mcp/tools/list-reminders.js +5 -5
  303. package/dist/mcp/tools/list-tasks.js +19 -19
  304. package/dist/mcp/tools/send-message.js +18 -18
  305. package/dist/mcp/tools/update-task.js +18 -18
  306. package/dist/{mcp-http-config-EZVN4MTJ.js → mcp-http-config-IPXCT6Y5.js} +5 -5
  307. package/dist/{mcp-session-identity-JFVK5KWI.js → mcp-session-identity-GRKQ6X6M.js} +15 -15
  308. package/dist/{memory-cards-DR6VSUXF.js → memory-cards-JN32U2KA.js} +7 -7
  309. package/dist/{memory-graph-extractor-T4IT4I65.js → memory-graph-extractor-3LN2GSMZ.js} +7 -7
  310. package/dist/{memory-maintenance-ROT5N576.js → memory-maintenance-YTNSNHD5.js} +1 -1
  311. package/dist/{memory-poisoning-defense-WL4GVB6K.js → memory-poisoning-defense-ISKHR76K.js} +3 -3
  312. package/dist/{memory-pressure-watchdog-IHLTVILV.js → memory-pressure-watchdog-P4QHXE3Z.js} +16 -16
  313. package/dist/{memory-reflection-SR657DTL.js → memory-reflection-R6TAIUOR.js} +7 -7
  314. package/dist/{memory-write-repository-RWFVCHEL.js → memory-write-repository-JTJE3AG4.js} +1 -1
  315. package/dist/{monitor-grants-F7WGLWA6.js → monitor-grants-KX5J6AQ7.js} +3 -3
  316. package/dist/{monitor-identity-7PRT4U2X.js → monitor-identity-WXIGBLYH.js} +2 -2
  317. package/dist/{notification-ledger-QMQ5OU65.js → notification-ledger-DKHZKGZX.js} +16 -16
  318. package/dist/{notifications-WJY5SFDV.js → notifications-ZQVBRXG5.js} +15 -15
  319. package/dist/{orchestration-events-CV72DYKD.js → orchestration-events-B3OHNBR4.js} +4 -4
  320. package/dist/{orchestrator-HVNMWEKQ.js → orchestrator-OG6BEUHS.js} +17 -17
  321. package/dist/{org-brief-session-XABQAU5S.js → org-brief-session-MHDLBUO4.js} +15 -15
  322. package/dist/{org-consent-policy-QQYN2HFH.js → org-consent-policy-OP5L627O.js} +5 -5
  323. package/dist/{org-join-VQMMOCQF.js → org-join-H3PBH7US.js} +9 -9
  324. package/dist/{org-key-admin-WNSGDXLU.js → org-key-admin-UEDWV3F4.js} +11 -11
  325. package/dist/{org-key-epoch-VVF3BSM3.js → org-key-epoch-BW72L7RI.js} +5 -5
  326. package/dist/{org-key-pin-HMB7WW73.js → org-key-pin-XBLJOF4A.js} +3 -3
  327. package/dist/{org-membership-4U6YMOWQ.js → org-membership-UHVIK3UH.js} +4 -4
  328. package/dist/{org-partner-config-L63KMLYM.js → org-partner-config-G3BGVBQT.js} +8 -8
  329. package/dist/{org-partner-runtime-MBP7JUAM.js → org-partner-runtime-H6MROHM7.js} +15 -15
  330. package/dist/{org-row-visibility-BYV2V764.js → org-row-visibility-JK5REXVH.js} +1 -1
  331. package/dist/{pipeline-router-5U5QC4KJ.js → pipeline-router-7L7AV55A.js} +4 -4
  332. package/dist/{plan-limits-XB5F7LLD.js → plan-limits-RKGJXYKE.js} +6 -6
  333. package/dist/{pre-tool-use-impl-ALN4BK7X.js → pre-tool-use-impl-Q3JG5RNT.js} +34 -34
  334. package/dist/{project-name-FUSV5KYR.js → project-name-KQUBSY5O.js} +4 -4
  335. package/dist/{projection-worker-WP35CX6N.js → projection-worker-LGELT4E6.js} +2 -2
  336. package/dist/{prospective-memory-KDW7MLF6.js → prospective-memory-ZESC2I6H.js} +3 -3
  337. package/dist/{push-notifications-OMJABEMF.js → push-notifications-YL2DRTGQ.js} +16 -16
  338. package/dist/{reproject-worktree-memories-NJ235TUP.js → reproject-worktree-memories-VPZRYPQM.js} +15 -15
  339. package/dist/{reranker-YBVXW2ZZ.js → reranker-XC2LXYD3.js} +1 -1
  340. package/dist/{retrieval-health-DDJQFV4A.js → retrieval-health-H4QJN3UZ.js} +1 -1
  341. package/dist/{review-polling-5XYUDU77.js → review-polling-67WTTJHH.js} +16 -16
  342. package/dist/runtime/index.js +23 -23
  343. package/dist/{session-events-54MSRNRE.js → session-events-7XFO27M5.js} +16 -16
  344. package/dist/{session-kill-telemetry-WXINI7UW.js → session-kill-telemetry-2F5INRA6.js} +16 -16
  345. package/dist/{session-scope-Z6UWY4NL.js → session-scope-GEXQAEYT.js} +15 -15
  346. package/dist/{setup-wizard-DND3EEIN.js → setup-wizard-NQI6GC2N.js} +2 -2
  347. package/dist/{shard-manager-TKAQSRYN.js → shard-manager-TJ323N7P.js} +2 -2
  348. package/dist/{skill-refinement-NKMYHUPK.js → skill-refinement-EQ3YVAGM.js} +4 -4
  349. package/dist/{skill-retrieval-5DU6G5AT.js → skill-retrieval-LABSBPVT.js} +11 -11
  350. package/dist/{skill-usage-YDCLNH63.js → skill-usage-WNCOURZY.js} +4 -4
  351. package/dist/{stack-generate-manifest-WGOICIAB.js → stack-generate-manifest-RKQBTLEY.js} +4 -4
  352. package/dist/{stack-promote-F42CIN3Z.js → stack-promote-ZVOIMFRF.js} +4 -4
  353. package/dist/{stack-release-35E3D6R7.js → stack-release-ZCHLWJXF.js} +5 -5
  354. package/dist/{stack-update-V64H2645.js → stack-update-AP6OC7LU.js} +3 -3
  355. package/dist/{steward-gate-AICO7WO2.js → steward-gate-BNI4K3GP.js} +4 -4
  356. package/dist/{subagent-brief-injection-NMIRQ742.js → subagent-brief-injection-ZXKMB5TZ.js} +26 -26
  357. package/dist/{support-bug-actions-ASWOZHR5.js → support-bug-actions-OYM3K4RU.js} +3 -3
  358. package/dist/{support-inbox-K7T6WVJW.js → support-inbox-2JOCSJUT.js} +12 -12
  359. package/dist/{task-enforcement-ZYN67NIM.js → task-enforcement-LUXQXSE6.js} +16 -16
  360. package/dist/{task-request-inbox-CJF4XNSY.js → task-request-inbox-4TOOJ6IR.js} +5 -5
  361. package/dist/{task-scope-M3GVO3IK.js → task-scope-OEA6KUTX.js} +15 -15
  362. package/dist/{tasks-crud-K55N5YNO.js → tasks-crud-GBNROE5E.js} +15 -15
  363. package/dist/{tasks-notify-FM5PGZQ2.js → tasks-notify-FMSTX6Q5.js} +16 -16
  364. package/dist/{tasks-review-KUF6HEPS.js → tasks-review-EAOT3SKK.js} +15 -15
  365. package/dist/{telemetry-upload-DYE34SI5.js → telemetry-upload-OFNKPITF.js} +8 -8
  366. package/dist/{token-budget-AHFSPXIA.js → token-budget-7K5PMPP2.js} +4 -4
  367. package/dist/{tool-telemetry-2SAG4DCP.js → tool-telemetry-HC7NHNWD.js} +1 -1
  368. package/dist/tui/App.js +25 -25
  369. package/dist/{tui-data-BZ2RM634.js → tui-data-C6STFM4Z.js} +19 -19
  370. package/dist/{update-support-U44WRJEG.js → update-support-KOJIIKHY.js} +11 -11
  371. package/dist/{whatsapp-5OYLYPOW.js → whatsapp-JDAZGYPN.js} +2 -2
  372. package/dist/{wiki-acl-B5CI5FVD.js → wiki-acl-7JCCDS7U.js} +1 -1
  373. package/dist/{work-claims-GY7TTKUA.js → work-claims-MDJ3JEUD.js} +4 -4
  374. package/dist/{work-state-heartbeat-6ZG7YVYR.js → work-state-heartbeat-GFPR5OVW.js} +1 -1
  375. package/dist/{workflow-engine-AABOUOVF.js → workflow-engine-YYR2DNFP.js} +2 -2
  376. package/dist/{worktree-UFOTUXOL.js → worktree-XJITSSNN.js} +5 -5
  377. package/dist/{worktree-ownership-guard-XEYU6M2R.js → worktree-ownership-guard-WEJF2C5E.js} +1 -1
  378. package/dist/{worktree-sweep-DUZQ7T5H.js → worktree-sweep-3FJSAGNK.js} +6 -6
  379. package/package.json +1 -1
  380. package/release-notes.json +7 -7
  381. package/stack.release.json +3 -3
  382. /package/dist/{chunk-NEKVGGPF.js → chunk-3NHFXUWK.js} +0 -0
  383. /package/dist/{chunk-Z4MWS4PP.js → chunk-7GCPTNHK.js} +0 -0
  384. /package/dist/{chunk-2MRQBGTY.js → chunk-7QIEF6OZ.js} +0 -0
  385. /package/dist/{chunk-SBOUSFLP.js → chunk-DHRIW7RJ.js} +0 -0
  386. /package/dist/{chunk-FNEUZBKI.js → chunk-E5RCYOLD.js} +0 -0
  387. /package/dist/{chunk-NOJUQ7YQ.js → chunk-FLC2S4BD.js} +0 -0
  388. /package/dist/{chunk-BILTDY5P.js → chunk-GVTIDG37.js} +0 -0
  389. /package/dist/{chunk-2KH6MZL5.js → chunk-HEEKYE6D.js} +0 -0
  390. /package/dist/{chunk-KVZB65B5.js → chunk-MY6P4E5J.js} +0 -0
  391. /package/dist/{chunk-4RFLBGOW.js → chunk-OMMQNLFE.js} +0 -0
  392. /package/dist/{chunk-NV7C4XKQ.js → chunk-QYCRJ76J.js} +0 -0
  393. /package/dist/{chunk-7WYV32ZH.js → chunk-USDMXIPZ.js} +0 -0
  394. /package/dist/{chunk-DJKUA73M.js → chunk-ZWQWLUZA.js} +0 -0
  395. /package/dist/{core-memory-GUEI64AZ.js → core-memory-DQ5A24DD.js} +0 -0
  396. /package/dist/{memory-isolation-6DALQPS2.js → memory-isolation-2M3GFNWG.js} +0 -0
  397. /package/dist/{oauth-server-7VWBWDO5.js → oauth-server-NWVJ26NL.js} +0 -0
  398. /package/dist/{project-boot-RSVYDIZF.js → project-boot-JAGN65MZ.js} +0 -0
@@ -0,0 +1,546 @@
1
+ // src/lib/exe-shims.ts
2
+ import {
3
+ closeSync,
4
+ constants as fsConstants,
5
+ existsSync,
6
+ linkSync,
7
+ openSync,
8
+ readSync,
9
+ lstatSync,
10
+ mkdirSync,
11
+ readdirSync,
12
+ readFileSync,
13
+ realpathSync,
14
+ renameSync,
15
+ rmSync,
16
+ statSync,
17
+ writeFileSync
18
+ } from "fs";
19
+ import { randomBytes } from "crypto";
20
+ import { spawn, spawnSync } from "child_process";
21
+ import path from "path";
22
+ import os from "os";
23
+ var SHIM_MARKER = "# managed-by: exe-os postinstall";
24
+ function readBinEntries(packageRoot) {
25
+ const pkgPath = path.join(packageRoot, "package.json");
26
+ let pkg;
27
+ try {
28
+ pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
29
+ } catch {
30
+ return [];
31
+ }
32
+ const bin = pkg.bin;
33
+ if (!bin || typeof bin !== "object") return [];
34
+ return Object.entries(bin).filter((entry) => typeof entry[1] === "string").map(([name, distRelative]) => ({ name, distRelative }));
35
+ }
36
+ function isRealGlobalInstall(env = process.env) {
37
+ return env.npm_config_global === "true";
38
+ }
39
+ var MAX_CAPTURE_BYTES = 64 * 1024;
40
+ function spawnLoginShellCapture(shell, script, env, timeoutMs) {
41
+ return new Promise((resolve) => {
42
+ let settled = false;
43
+ let out = "";
44
+ let child;
45
+ try {
46
+ child = spawn(shell, ["-lic", script], {
47
+ env: { ...env },
48
+ detached: true,
49
+ stdio: ["ignore", "pipe", "pipe"]
50
+ });
51
+ } catch {
52
+ resolve(null);
53
+ return;
54
+ }
55
+ const timer = setTimeout(() => finish(null), timeoutMs);
56
+ function finish(result) {
57
+ if (settled) return;
58
+ settled = true;
59
+ try {
60
+ clearTimeout(timer);
61
+ } catch {
62
+ }
63
+ try {
64
+ child.stdout?.removeAllListeners();
65
+ child.stderr?.removeAllListeners();
66
+ child.removeAllListeners();
67
+ } catch {
68
+ }
69
+ try {
70
+ child.stdout?.destroy();
71
+ } catch {
72
+ }
73
+ try {
74
+ child.stderr?.destroy();
75
+ } catch {
76
+ }
77
+ if (child.pid) {
78
+ try {
79
+ process.kill(-child.pid, "SIGKILL");
80
+ } catch {
81
+ }
82
+ }
83
+ try {
84
+ resolve(result);
85
+ } catch {
86
+ }
87
+ }
88
+ try {
89
+ child.stdout?.on("data", (chunk) => {
90
+ try {
91
+ out += chunk.toString("utf8");
92
+ if (out.length > MAX_CAPTURE_BYTES) {
93
+ finish(null);
94
+ }
95
+ } catch {
96
+ finish(null);
97
+ }
98
+ });
99
+ } catch {
100
+ }
101
+ try {
102
+ child.stderr?.on("data", () => {
103
+ });
104
+ } catch {
105
+ }
106
+ try {
107
+ child.on("error", () => {
108
+ try {
109
+ finish(null);
110
+ } catch {
111
+ }
112
+ });
113
+ } catch {
114
+ }
115
+ try {
116
+ child.on("exit", () => {
117
+ try {
118
+ finish(out);
119
+ } catch {
120
+ }
121
+ });
122
+ } catch {
123
+ }
124
+ });
125
+ }
126
+ function extractMarked(haystack, begin, end) {
127
+ const startIdx = haystack.indexOf(begin);
128
+ if (startIdx === -1) return null;
129
+ const from = startIdx + begin.length;
130
+ const endIdx = haystack.indexOf(end, from);
131
+ if (endIdx === -1) return null;
132
+ return haystack.slice(from, endIdx);
133
+ }
134
+ var PATH_BEGIN = "__EXE_PATH_BEGIN__";
135
+ var PATH_END = "__EXE_PATH_END__";
136
+ async function resolveLoginPath(env = process.env, timeoutMs = 3e3) {
137
+ const shell = env.SHELL;
138
+ if (!shell) return { path: null, unknown: true };
139
+ const script = `printf '%s' "${PATH_BEGIN}\${PATH}${PATH_END}"`;
140
+ const stdout = await spawnLoginShellCapture(shell, script, env, timeoutMs);
141
+ if (stdout === null) return { path: null, unknown: true };
142
+ const extracted = extractMarked(stdout, PATH_BEGIN, PATH_END);
143
+ if (extracted === null) return { path: null, unknown: true };
144
+ return { path: extracted, unknown: false };
145
+ }
146
+ function splitPath(pathStr) {
147
+ return pathStr.split(path.delimiter).map((entry) => entry.trim()).filter(Boolean);
148
+ }
149
+ function parseProcessPath(pathStr) {
150
+ const entries = pathStr.split(":");
151
+ if (entries.some((entry) => entry === "")) return null;
152
+ return entries;
153
+ }
154
+ function indexOfDirOnPath(dir, entries) {
155
+ const target = path.resolve(dir);
156
+ return entries.findIndex((entry) => path.resolve(entry) === target);
157
+ }
158
+ function isDirOnPath(dir, pathStr) {
159
+ return indexOfDirOnPath(dir, splitPath(pathStr)) !== -1;
160
+ }
161
+ function shQuote(value) {
162
+ return `'${value.replace(/'/g, `'\\''`)}'`;
163
+ }
164
+ function shimScript(nodePath, entryPath, version) {
165
+ return [
166
+ "#!/bin/sh",
167
+ SHIM_MARKER,
168
+ `# version: ${version}`,
169
+ "# Generated by exe-os postinstall. Do not edit by hand \u2014 it is overwritten on",
170
+ "# every install/update. Delete it and reinstall if it is wrong.",
171
+ `NODE_BIN=${shQuote(nodePath)}`,
172
+ `ENTRY=${shQuote(entryPath)}`,
173
+ 'if [ ! -x "$NODE_BIN" ]; then',
174
+ ' echo "exe-os: $NODE_BIN not found \u2014 reinstall with: npm i -g @askexenow/exe-os" >&2',
175
+ " exit 127",
176
+ "fi",
177
+ 'if [ ! -f "$ENTRY" ]; then',
178
+ ' echo "exe-os: $ENTRY not found \u2014 reinstall with: npm i -g @askexenow/exe-os" >&2',
179
+ " exit 127",
180
+ "fi",
181
+ 'exec "$NODE_BIN" "$ENTRY" "$@"',
182
+ ""
183
+ ].join("\n");
184
+ }
185
+ function parseShimPaths(content) {
186
+ const nodeMatch = /^NODE_BIN=(.*)$/m.exec(content);
187
+ const entryMatch = /^ENTRY=(.*)$/m.exec(content);
188
+ const unquote = (raw) => {
189
+ if (!raw) return null;
190
+ const trimmed = raw.trim();
191
+ if (!trimmed.startsWith("'") || !trimmed.endsWith("'") || trimmed.length < 2) return null;
192
+ return trimmed.slice(1, -1).split("'\\''").join("'");
193
+ };
194
+ return { nodeBin: unquote(nodeMatch?.[1]), entry: unquote(entryMatch?.[1]) };
195
+ }
196
+ function safeReadHead(file, maxBytes = 1024) {
197
+ let fd = null;
198
+ try {
199
+ fd = openSync(file, fsConstants.O_RDONLY | fsConstants.O_NOFOLLOW);
200
+ const buf = Buffer.alloc(maxBytes);
201
+ const n = readSync(fd, buf, 0, maxBytes, 0);
202
+ return buf.subarray(0, n).toString("utf8");
203
+ } catch {
204
+ return "";
205
+ } finally {
206
+ if (fd !== null) {
207
+ try {
208
+ closeSync(fd);
209
+ } catch {
210
+ }
211
+ }
212
+ }
213
+ }
214
+ function safeLstat(file) {
215
+ try {
216
+ return lstatSync(file);
217
+ } catch {
218
+ return null;
219
+ }
220
+ }
221
+ function createTempFile(dir, name, content, opts) {
222
+ const attempts = opts?.attempts ?? 5;
223
+ const randomFn = opts?.randomFn ?? (() => randomBytes(6).toString("hex"));
224
+ let lastErr = new Error(`createTempFile: exhausted ${attempts} attempt(s) for ${name}`);
225
+ for (let i = 0; i < attempts; i++) {
226
+ const tmp = path.join(dir, `.${name}.exe-shim-tmp-${randomFn()}`);
227
+ try {
228
+ writeFileSync(tmp, content, { mode: 493, flag: "wx" });
229
+ return tmp;
230
+ } catch (err) {
231
+ if (err.code === "EEXIST") {
232
+ lastErr = err;
233
+ continue;
234
+ }
235
+ throw err;
236
+ }
237
+ }
238
+ throw lastErr;
239
+ }
240
+ function writeShimFile(dir, name, content, opts) {
241
+ const target = path.join(dir, name);
242
+ let tmp = null;
243
+ try {
244
+ const existing = safeLstat(target);
245
+ const isUpdate = existing !== null;
246
+ if (existing) {
247
+ if (existing.isSymbolicLink()) return { status: "skipped_symlink", path: target };
248
+ if (!existing.isFile()) return { status: "skipped_special", path: target };
249
+ if (!safeReadHead(target).includes(SHIM_MARKER)) return { status: "skipped_unmanaged", path: target };
250
+ }
251
+ tmp = createTempFile(dir, name, content);
252
+ opts?.beforePublish?.();
253
+ if (!isUpdate) {
254
+ try {
255
+ linkSync(tmp, target);
256
+ } catch (err) {
257
+ if (err.code === "EEXIST") {
258
+ return { status: "skipped_race", path: target };
259
+ }
260
+ throw err;
261
+ }
262
+ } else {
263
+ const recheck = safeLstat(target);
264
+ if (!recheck || recheck.isSymbolicLink() || !recheck.isFile() || !safeReadHead(target).includes(SHIM_MARKER)) {
265
+ return { status: "skipped_race", path: target };
266
+ }
267
+ renameSync(tmp, target);
268
+ }
269
+ return { status: "written", path: target };
270
+ } catch (err) {
271
+ return { status: "error", path: target, detail: err instanceof Error ? err.message : String(err) };
272
+ } finally {
273
+ if (tmp) {
274
+ try {
275
+ rmSync(tmp, { force: true });
276
+ } catch {
277
+ }
278
+ }
279
+ }
280
+ }
281
+ function isTempShimName(name) {
282
+ return name.includes(".exe-shim-tmp-");
283
+ }
284
+ function removeStaleManagedShims(dir, keepNames) {
285
+ const removed = [];
286
+ let entries;
287
+ try {
288
+ entries = readdirSync(dir);
289
+ } catch {
290
+ return removed;
291
+ }
292
+ const isStillAManagedRegularFile = (full) => {
293
+ const st = safeLstat(full);
294
+ if (!st || st.isSymbolicLink() || !st.isFile()) return false;
295
+ return safeReadHead(full).includes(SHIM_MARKER);
296
+ };
297
+ for (const entry of entries) {
298
+ if (keepNames.has(entry)) continue;
299
+ if (isTempShimName(entry)) continue;
300
+ const full = path.join(dir, entry);
301
+ if (!isStillAManagedRegularFile(full)) continue;
302
+ if (isTempShimName(entry) || !isStillAManagedRegularFile(full)) continue;
303
+ try {
304
+ rmSync(full, { force: true });
305
+ removed.push(full);
306
+ } catch {
307
+ }
308
+ }
309
+ return removed;
310
+ }
311
+ function isExecutableFile(p) {
312
+ try {
313
+ const st = statSync(p);
314
+ return st.isFile() && (st.mode & 73) !== 0;
315
+ } catch {
316
+ return false;
317
+ }
318
+ }
319
+ function isOwnExeOsPath(p) {
320
+ let real;
321
+ try {
322
+ real = realpathSync(p);
323
+ } catch {
324
+ real = p;
325
+ }
326
+ return /[\\/](@askexenow[\\/]exe-os|exe-os)(?:[\\/]|$)/.test(real);
327
+ }
328
+ function findShadowingExecutable(name, pathEntries, fromIndexExclusive) {
329
+ for (let i = fromIndexExclusive + 1; i < pathEntries.length; i++) {
330
+ const dir = pathEntries[i];
331
+ if (!dir) continue;
332
+ const candidate = path.join(dir, name);
333
+ if (!isExecutableFile(candidate)) continue;
334
+ if (isOwnExeOsPath(candidate)) continue;
335
+ return candidate;
336
+ }
337
+ return null;
338
+ }
339
+ function resolveNpmBinDir(opts) {
340
+ const env = opts.env ?? process.env;
341
+ if (env.npm_config_prefix) {
342
+ return path.join(env.npm_config_prefix, "bin");
343
+ }
344
+ const marker = `${path.sep}lib${path.sep}node_modules${path.sep}`;
345
+ const idx = opts.packageRoot.indexOf(marker);
346
+ if (idx !== -1) {
347
+ return path.join(opts.packageRoot.slice(0, idx), "bin");
348
+ }
349
+ const execDir = path.dirname(opts.execPath);
350
+ return execDir || null;
351
+ }
352
+ function verifyBinLink(binDir, name, expectedDistEntry) {
353
+ const binLinkPath = path.join(binDir, name);
354
+ let real;
355
+ try {
356
+ real = realpathSync(binLinkPath);
357
+ } catch {
358
+ return { binLinkPath, valid: false };
359
+ }
360
+ let expectedReal;
361
+ try {
362
+ expectedReal = realpathSync(expectedDistEntry);
363
+ } catch {
364
+ expectedReal = path.resolve(expectedDistEntry);
365
+ }
366
+ return { binLinkPath, valid: path.resolve(real) === path.resolve(expectedReal) };
367
+ }
368
+ function installStableShims(opts) {
369
+ const result = {
370
+ skipped: false,
371
+ written: [],
372
+ skippedUnmanaged: [],
373
+ skippedSymlinks: [],
374
+ skippedSpecial: [],
375
+ skippedRace: [],
376
+ skippedShadowed: [],
377
+ skippedNoBinLink: [],
378
+ removedStale: [],
379
+ errors: []
380
+ };
381
+ if (!opts.eligible) {
382
+ result.skipped = true;
383
+ result.reason = "not-eligible";
384
+ return result;
385
+ }
386
+ const homeDir = opts.homeDir ?? os.homedir();
387
+ const rawPath = opts.pathEnv ?? process.env.PATH ?? "";
388
+ const binDir = path.join(homeDir, ".local", "bin");
389
+ result.binDir = binDir;
390
+ const pathEntries = parseProcessPath(rawPath);
391
+ if (pathEntries === null) {
392
+ result.skipped = true;
393
+ result.reason = "path-unknown";
394
+ result.hint = `exe-os: your PATH could not be parsed cleanly (it contains an empty entry, which a shell reads as "current directory") \u2014 stable exe-* command shims were not installed, to avoid guessing. Fix your PATH and re-run \`npm i -g @askexenow/exe-os\` if you want them.`;
395
+ return result;
396
+ }
397
+ const binDirIndex = indexOfDirOnPath(binDir, pathEntries);
398
+ if (binDirIndex === -1) {
399
+ result.skipped = true;
400
+ result.reason = "not-on-path";
401
+ result.hint = `exe-os: ~/.local/bin is not on your PATH, so stable exe-* command shims were not installed. Add 'export PATH="$HOME/.local/bin:$PATH"' to your shell profile (e.g. ~/.zshrc or ~/.bashrc) to use them.`;
402
+ return result;
403
+ }
404
+ try {
405
+ mkdirSync(binDir, { recursive: true });
406
+ } catch (err) {
407
+ result.skipped = true;
408
+ result.reason = "mkdir-failed";
409
+ result.errors.push({ name: "mkdir", detail: err instanceof Error ? err.message : String(err) });
410
+ return result;
411
+ }
412
+ const binEntries = readBinEntries(opts.packageRoot);
413
+ const execPath = opts.execPath ?? process.execPath;
414
+ const npmBinDir = opts.npmBinDir ?? resolveNpmBinDir({ packageRoot: opts.packageRoot, execPath, env: opts.env });
415
+ const keep = /* @__PURE__ */ new Set();
416
+ for (const entry of binEntries) {
417
+ keep.add(entry.name);
418
+ const shadow = findShadowingExecutable(entry.name, pathEntries, binDirIndex);
419
+ if (shadow) {
420
+ result.skippedShadowed.push({ name: entry.name, shadowedBy: shadow });
421
+ continue;
422
+ }
423
+ try {
424
+ const entryPath = path.join(opts.packageRoot, entry.distRelative);
425
+ if (!npmBinDir) {
426
+ result.skippedNoBinLink.push({ name: entry.name, binLinkPath: "" });
427
+ continue;
428
+ }
429
+ const linkCheck = verifyBinLink(npmBinDir, entry.name, entryPath);
430
+ if (!linkCheck.valid) {
431
+ result.skippedNoBinLink.push({ name: entry.name, binLinkPath: linkCheck.binLinkPath });
432
+ continue;
433
+ }
434
+ const content = shimScript(execPath, linkCheck.binLinkPath, opts.version);
435
+ const writeResult = writeShimFile(binDir, entry.name, content);
436
+ switch (writeResult.status) {
437
+ case "written":
438
+ result.written.push(writeResult.path);
439
+ break;
440
+ case "skipped_symlink":
441
+ result.skippedSymlinks.push(writeResult.path);
442
+ break;
443
+ case "skipped_unmanaged":
444
+ result.skippedUnmanaged.push(writeResult.path);
445
+ break;
446
+ case "skipped_special":
447
+ result.skippedSpecial.push(writeResult.path);
448
+ break;
449
+ case "skipped_race":
450
+ result.skippedRace.push(writeResult.path);
451
+ break;
452
+ case "error":
453
+ result.errors.push({ name: entry.name, detail: writeResult.detail });
454
+ break;
455
+ }
456
+ } catch (err) {
457
+ result.errors.push({ name: entry.name, detail: err instanceof Error ? err.message : String(err) });
458
+ }
459
+ }
460
+ try {
461
+ result.removedStale = removeStaleManagedShims(binDir, keep);
462
+ } catch (err) {
463
+ result.errors.push({ name: "stale-cleanup", detail: err instanceof Error ? err.message : String(err) });
464
+ }
465
+ return result;
466
+ }
467
+ function uninstallStableShims(opts) {
468
+ const homeDir = opts.homeDir ?? os.homedir();
469
+ const binDir = path.join(homeDir, ".local", "bin");
470
+ return removeStaleManagedShims(binDir, /* @__PURE__ */ new Set());
471
+ }
472
+ var NODE_BEGIN = "__EXE_NODE_BEGIN__";
473
+ var NODE_END = "__EXE_NODE_END__";
474
+ var EXE_BEGIN = "__EXE_EXE_BEGIN__";
475
+ var EXE_END = "__EXE_EXE_END__";
476
+ async function probeLoginShellNode(env = process.env, timeoutMs = 5e3) {
477
+ const shell = env.SHELL;
478
+ if (!shell) return { unknown: true, loginNodePath: null, loginExePath: null };
479
+ const script = `printf '%s' "${NODE_BEGIN}$(command -v node)${NODE_END}"; printf '%s' "${EXE_BEGIN}$(command -v exe-launch-agent)${EXE_END}"`;
480
+ const stdout = await spawnLoginShellCapture(shell, script, env, timeoutMs);
481
+ if (stdout === null) return { unknown: true, loginNodePath: null, loginExePath: null };
482
+ const node = extractMarked(stdout, NODE_BEGIN, NODE_END);
483
+ const exe = extractMarked(stdout, EXE_BEGIN, EXE_END);
484
+ if (node === null || exe === null) return { unknown: true, loginNodePath: null, loginExePath: null };
485
+ return {
486
+ unknown: false,
487
+ loginNodePath: node.trim() || null,
488
+ loginExePath: exe.trim() || null
489
+ };
490
+ }
491
+ function nodeVersionAt(nodePath, timeoutMs = 3e3) {
492
+ try {
493
+ const result = spawnSync(nodePath, ["--version"], { encoding: "utf8", timeout: timeoutMs });
494
+ if (result.error || result.status !== 0 || typeof result.stdout !== "string") return null;
495
+ return result.stdout.trim() || null;
496
+ } catch {
497
+ return null;
498
+ }
499
+ }
500
+ function inspectManagedShim(binDir, name, exists = existsSync) {
501
+ const target = path.join(binDir, name);
502
+ const st = safeLstat(target);
503
+ if (!st) {
504
+ return { name, present: false, managed: false, nodeBin: null, entry: null, nodeExists: false, entryExists: false };
505
+ }
506
+ if (st.isSymbolicLink() || !st.isFile()) {
507
+ return { name, present: true, managed: false, nodeBin: null, entry: null, nodeExists: false, entryExists: false };
508
+ }
509
+ const content = safeReadHead(target, SHIM_INSPECT_MAX_BYTES);
510
+ const managed = content.includes(SHIM_MARKER);
511
+ const { nodeBin, entry } = parseShimPaths(content);
512
+ return {
513
+ name,
514
+ present: true,
515
+ managed,
516
+ nodeBin,
517
+ entry,
518
+ nodeExists: nodeBin ? exists(nodeBin) : false,
519
+ entryExists: entry ? exists(entry) : false
520
+ };
521
+ }
522
+ var SHIM_INSPECT_MAX_BYTES = 4096;
523
+
524
+ export {
525
+ SHIM_MARKER,
526
+ readBinEntries,
527
+ isRealGlobalInstall,
528
+ resolveLoginPath,
529
+ splitPath,
530
+ parseProcessPath,
531
+ indexOfDirOnPath,
532
+ isDirOnPath,
533
+ shimScript,
534
+ parseShimPaths,
535
+ createTempFile,
536
+ writeShimFile,
537
+ removeStaleManagedShims,
538
+ findShadowingExecutable,
539
+ resolveNpmBinDir,
540
+ verifyBinLink,
541
+ installStableShims,
542
+ uninstallStableShims,
543
+ probeLoginShellNode,
544
+ nodeVersionAt,
545
+ inspectManagedShim
546
+ };
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-WCGNCH3Q.js";
4
4
  import {
5
5
  registerAllTools
6
- } from "./chunk-DDWLI43S.js";
6
+ } from "./chunk-PCLIU4BP.js";
7
7
 
8
8
  // src/mcp/mcp-surface-hash.ts
9
9
  function computeMcpSurfaceHash() {
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-VMHZSZQJ.js";
7
7
  import {
8
8
  filterWikiRecallResults
9
- } from "./chunk-DJKUA73M.js";
9
+ } from "./chunk-ZWQWLUZA.js";
10
10
  import {
11
11
  attachDocumentMetadata,
12
12
  buildRawVisibilityFilter,
@@ -16,7 +16,7 @@ import {
16
16
  buildVisibilityTierFilter,
17
17
  buildWikiScopeFilter,
18
18
  searchMemories
19
- } from "./chunk-MXEEMTCV.js";
19
+ } from "./chunk-R5YD5DIP.js";
20
20
  import {
21
21
  blobToVector
22
22
  } from "./chunk-OTVEIJUQ.js";
@@ -35,7 +35,7 @@ import {
35
35
  getClient,
36
36
  isFtsShadowCorruptionMessage,
37
37
  repairFtsTable
38
- } from "./chunk-YWH7XWOX.js";
38
+ } from "./chunk-HPDR3EL7.js";
39
39
 
40
40
  // src/lib/memory-reads.ts
41
41
  import crypto from "crypto";
@@ -597,7 +597,7 @@ async function hybridSearch(queryText, agentId, options) {
597
597
  let rerankerAvailable = false;
598
598
  if (process.env.EXE_IS_DAEMON === "1") {
599
599
  try {
600
- const { isRerankerAvailable } = await import("./reranker-YBVXW2ZZ.js");
600
+ const { isRerankerAvailable } = await import("./reranker-XC2LXYD3.js");
601
601
  rerankerAvailable = isRerankerAvailable();
602
602
  } catch {
603
603
  }
@@ -637,7 +637,7 @@ ${hydeDoc}`;
637
637
  if (config.fileGrepEnabled === true && !process.env.VITEST && !onFailOpenHotPath) {
638
638
  try {
639
639
  if (process.env.EXE_IS_DAEMON !== "1") {
640
- const { getProjectName } = await import("./project-name-FUSV5KYR.js");
640
+ const { getProjectName } = await import("./project-name-KQUBSY5O.js");
641
641
  const projectRoot = process.cwd();
642
642
  const projectName = getProjectName(projectRoot);
643
643
  if (projectName && projectName !== "tmp") {
@@ -680,7 +680,7 @@ ${hydeDoc}`;
680
680
  runGraphArm(graphSearch(effectiveQuery, agentId, fetchOptions, Math.min(fetchLimit, 20))),
681
681
  includeStructuredCards ? (async () => {
682
682
  try {
683
- const { searchMemoryCards } = await import("./memory-cards-DR6VSUXF.js");
683
+ const { searchMemoryCards } = await import("./memory-cards-JN32U2KA.js");
684
684
  return await searchMemoryCards(effectiveQuery, agentId, fetchOptions);
685
685
  } catch {
686
686
  return [];
@@ -689,7 +689,7 @@ ${hydeDoc}`;
689
689
  // Reflection insights: patterns, contradictions, summaries across sessions
690
690
  includeStructuredCards ? (async () => {
691
691
  try {
692
- const { searchReflections } = await import("./memory-reflection-SR657DTL.js");
692
+ const { searchReflections } = await import("./memory-reflection-R6TAIUOR.js");
693
693
  const insights = await searchReflections(effectiveQuery, agentId, 5, fetchOptions);
694
694
  return insights.map((ins) => ({
695
695
  id: ins.id,
@@ -801,7 +801,7 @@ ${hydeDoc}`;
801
801
  let entityBoostRan = false;
802
802
  if (merged.length > 0) {
803
803
  try {
804
- const { applyEntityBoost } = await import("./entity-boost-EIE76PER.js");
804
+ const { applyEntityBoost } = await import("./entity-boost-KTADWOGJ.js");
805
805
  const boosted = await applyEntityBoost(merged, effectiveQuery, getClient());
806
806
  merged = boosted.results;
807
807
  graphContextMap = boosted.graphContext;
@@ -828,7 +828,7 @@ ${hydeDoc}`;
828
828
  try {
829
829
  let rerankedRecords;
830
830
  if (graphContextMap.size > 0) {
831
- const { rerankWithContext } = await import("./reranker-YBVXW2ZZ.js");
831
+ const { rerankWithContext } = await import("./reranker-XC2LXYD3.js");
832
832
  const candidates = merged.map((m) => ({
833
833
  text: m.raw_text,
834
834
  context: graphContextMap.get(m.id)
@@ -836,7 +836,7 @@ ${hydeDoc}`;
836
836
  const scored = await rerankWithContext(effectiveQuery, candidates, rerankReturnLimit);
837
837
  rerankedRecords = scored.map((s) => merged[s.index]);
838
838
  } else {
839
- const { rerank } = await import("./reranker-YBVXW2ZZ.js");
839
+ const { rerank } = await import("./reranker-XC2LXYD3.js");
840
840
  rerankedRecords = await rerank(effectiveQuery, merged, rerankReturnLimit);
841
841
  }
842
842
  if (rerankedRecords.length > 0) {
@@ -1293,7 +1293,7 @@ async function lightweightSearch(queryText, agentId, options) {
1293
1293
  }
1294
1294
  if (results.length >= 2) {
1295
1295
  try {
1296
- const { recordCoActivations } = await import("./co-activation-DGPZOQNM.js");
1296
+ const { recordCoActivations } = await import("./co-activation-LB56BYW2.js");
1297
1297
  const ids = results.slice(0, 10).map((r) => r.id);
1298
1298
  void recordCoActivations(ids).catch((e) => {
1299
1299
  try {
@@ -1309,7 +1309,7 @@ async function lightweightSearch(queryText, agentId, options) {
1309
1309
  }
1310
1310
  if (options?.includeStructuredCards !== true) return results;
1311
1311
  try {
1312
- const { searchMemoryCards } = await import("./memory-cards-DR6VSUXF.js");
1312
+ const { searchMemoryCards } = await import("./memory-cards-JN32U2KA.js");
1313
1313
  const cardResults = await searchMemoryCards(queryText, agentId, options);
1314
1314
  if (cardResults.length > 0) {
1315
1315
  return rrfMergeMulti([results, cardResults], limit, RRF_K, [1, 0.85]);
@@ -4,21 +4,21 @@ import {
4
4
  assertUsableEpoch,
5
5
  deriveOrgKeyIdentities,
6
6
  describeEpochRemedy
7
- } from "./chunk-A2TRWGTX.js";
7
+ } from "./chunk-ZGRLIQLE.js";
8
8
  import {
9
9
  InviteError,
10
10
  resolveAuth,
11
11
  resolveEndpoint
12
- } from "./chunk-AAAJKHJM.js";
12
+ } from "./chunk-G4MVORCE.js";
13
13
  import {
14
14
  asOrgBillablePlan
15
15
  } from "./chunk-W4H2MZAS.js";
16
16
  import {
17
17
  orgKeyFingerprintDisplay
18
- } from "./chunk-QEGSRMGV.js";
18
+ } from "./chunk-52JOFQOK.js";
19
19
  import {
20
20
  ed25519PrivateKeyFromSeed
21
- } from "./chunk-B42HMZSQ.js";
21
+ } from "./chunk-ERIXGUSV.js";
22
22
 
23
23
  // src/lib/org-key-admin.ts
24
24
  import { sign } from "crypto";