@askexenow/exe-os 0.9.145 → 0.9.147

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 (342) hide show
  1. package/dist/{active-agent-HUDSZRUG.js → active-agent-KMQCNXXD.js} +6 -6
  2. package/dist/{active-agent-GJOJUEMF.js → active-agent-NCZCDDZ2.js} +6 -6
  3. package/dist/{agent-context-HH7TL5ZP.js → agent-context-AZTTMUHP.js} +1 -1
  4. package/dist/agent-heartbeat-I5UPGXAU.js +60 -0
  5. package/dist/{agent-loop-OCJFYO72.js → agent-loop-NUIWAL3Z.js} +1 -1
  6. package/dist/{agentic-ontology-5PGUVMDP.js → agentic-ontology-SQR74CO7.js} +2 -2
  7. package/dist/{asana-BSDR6NW4.js → asana-MRQ2OQMJ.js} +1 -1
  8. package/dist/assets/wezterm.lua +68 -0
  9. package/dist/{backfill-metadata-ZDJ5B37R.js → backfill-metadata-KMDWLDXU.js} +7 -7
  10. package/dist/{background-jobs-4N4JSZVZ.js → background-jobs-IUB22CRF.js} +4 -4
  11. package/dist/{bash-X54PZMOG.js → bash-HOHKSOU3.js} +1 -1
  12. package/dist/{behaviors-TXLHEM5J.js → behaviors-4U2N5L4E.js} +6 -6
  13. package/dist/bin/age-ontology-load.js +4 -4
  14. package/dist/bin/agentic-ontology-backfill.js +9 -9
  15. package/dist/bin/agentic-reflection-backfill.js +10 -10
  16. package/dist/bin/agentic-semantic-label.js +9 -9
  17. package/dist/bin/backfill-conversations.js +9 -9
  18. package/dist/bin/backfill-responses.js +9 -9
  19. package/dist/bin/backfill-vectors.js +12 -14
  20. package/dist/bin/bulk-sync-postgres.js +10 -10
  21. package/dist/bin/cc-doctor.js +5 -5
  22. package/dist/bin/cleanup-stale-review-tasks.js +12 -11
  23. package/dist/bin/cli.js +19 -19
  24. package/dist/bin/customer-readiness.js +47 -0
  25. package/dist/bin/exe-agent-config.js +6 -6
  26. package/dist/bin/exe-agent.js +8 -8
  27. package/dist/bin/exe-assign.js +11 -11
  28. package/dist/bin/exe-boot.js +39 -32
  29. package/dist/bin/exe-call.js +9 -11
  30. package/dist/bin/exe-cloud.js +10 -12
  31. package/dist/bin/exe-dispatch.js +12 -11
  32. package/dist/bin/exe-doctor.js +2 -2
  33. package/dist/bin/exe-export-behaviors.js +10 -10
  34. package/dist/bin/exe-forget.js +9 -9
  35. package/dist/bin/exe-gateway.js +18 -18
  36. package/dist/bin/exe-healthcheck.js +5 -5
  37. package/dist/bin/exe-heartbeat.js +19 -14
  38. package/dist/bin/exe-kill.js +9 -9
  39. package/dist/bin/exe-launch-agent.js +16 -18
  40. package/dist/bin/exe-new-employee.js +11 -11
  41. package/dist/bin/exe-pending-messages.js +13 -12
  42. package/dist/bin/exe-pending-notifications.js +12 -11
  43. package/dist/bin/exe-pending-reviews.js +20 -13
  44. package/dist/bin/exe-rename.js +9 -11
  45. package/dist/bin/exe-review.js +14 -13
  46. package/dist/bin/exe-search.js +8 -10
  47. package/dist/bin/exe-session-cleanup.js +19 -19
  48. package/dist/bin/exe-settings.js +11 -13
  49. package/dist/bin/exe-start-codex.js +15 -15
  50. package/dist/bin/exe-start-opencode.js +11 -11
  51. package/dist/bin/exe-status.js +13 -12
  52. package/dist/bin/exe-support.js +5 -5
  53. package/dist/bin/exe-team.js +6 -6
  54. package/dist/bin/git-sweep.js +12 -11
  55. package/dist/bin/graph-backfill.js +10 -10
  56. package/dist/bin/graph-export.js +8 -8
  57. package/dist/bin/graph-layer-benchmark.js +1 -1
  58. package/dist/bin/install.js +38 -12
  59. package/dist/bin/intercom-check.js +14 -8
  60. package/dist/bin/list-providers.js +1 -1
  61. package/dist/bin/postgres-agentic-reflection-backfill.js +6 -6
  62. package/dist/bin/postgres-agentic-semantic-backfill.js +5 -5
  63. package/dist/bin/pre-publish.js +2 -2
  64. package/dist/bin/registry-proxy.js +1 -1
  65. package/dist/bin/scan-tasks.js +48 -49
  66. package/dist/bin/setup.js +6 -5
  67. package/dist/bin/shard-migrate.js +8 -8
  68. package/dist/bin/stack-update.js +66 -10
  69. package/dist/bin/update.js +1 -1
  70. package/dist/{branding-52J2ILJX.js → branding-EHDA3CCK.js} +4 -6
  71. package/dist/{capacity-monitor-HWN2JX5W.js → capacity-monitor-Q5M5SVRC.js} +13 -12
  72. package/dist/{catchup-brief-UERCIVM5.js → catchup-brief-IPNSW7RQ.js} +14 -13
  73. package/dist/{chunk-GK5VMHSN.js → chunk-26UVGP3I.js} +1 -1
  74. package/dist/{chunk-CDDRSIGK.js → chunk-2BPO7VQF.js} +80 -70
  75. package/dist/{chunk-7PTII6F4.js → chunk-2OATM2JZ.js} +1 -1
  76. package/dist/{chunk-AJ2XDY27.js → chunk-3FIWKONP.js} +10 -12
  77. package/dist/{chunk-53VUIKOE.js → chunk-3MLGUSKS.js} +1 -1
  78. package/dist/{chunk-OYCQ6PFC.js → chunk-4EINMZNO.js} +6 -6
  79. package/dist/{chunk-JUITBJ7J.js → chunk-4GLEFA2X.js} +1 -1
  80. package/dist/{chunk-BY4OTURZ.js → chunk-4MN44ORL.js} +1 -1
  81. package/dist/{chunk-MUVPQCQA.js → chunk-6HFZ2KUC.js} +1 -3
  82. package/dist/{chunk-F7JVVLGH.js → chunk-6YUACQQA.js} +2 -4
  83. package/dist/{chunk-UVH6FA5E.js → chunk-7B5DQGXG.js} +1 -1
  84. package/dist/{chunk-XEA6DSLR.js → chunk-AERGE6GC.js} +4 -6
  85. package/dist/{chunk-NQAZ2CP7.js → chunk-AGFWOII2.js} +11 -11
  86. package/dist/{chunk-RWJY7KMP.js → chunk-ARGBV4PP.js} +46 -13
  87. package/dist/{chunk-VRD452MQ.js → chunk-B4HAUSVQ.js} +2 -2
  88. package/dist/{chunk-VX4X2O6J.js → chunk-CGQ5PWS3.js} +6 -6
  89. package/dist/{chunk-RNN4MZDN.js → chunk-DBXKWFTK.js} +3 -3
  90. package/dist/{chunk-Y2VVTK2E.js → chunk-DTLASDQM.js} +1 -1
  91. package/dist/{chunk-K3PSCQLK.js → chunk-DW6P7UVY.js} +4 -6
  92. package/dist/{chunk-B6Q6WAD7.js → chunk-EHNSK2Y4.js} +1 -1
  93. package/dist/{chunk-7PEYIW53.js → chunk-EHXOWGQG.js} +2 -2
  94. package/dist/{chunk-6BUUY7FG.js → chunk-EOO32RJZ.js} +2 -4
  95. package/dist/{chunk-MFGARIVE.js → chunk-EYQIEK5M.js} +2 -4
  96. package/dist/{chunk-NT6R4ATM.js → chunk-FG4Z2XFU.js} +1 -1
  97. package/dist/{chunk-32LFUJVG.js → chunk-FNMNKYVH.js} +221 -110
  98. package/dist/{chunk-CWPE6QVM.js → chunk-GNHN5HRQ.js} +2 -4
  99. package/dist/{chunk-WLEVAIL5.js → chunk-GP6G6EQI.js} +1 -1
  100. package/dist/{chunk-KLRP6ZG3.js → chunk-HHMHL4FB.js} +251 -96
  101. package/dist/{chunk-O7YD7JYE.js → chunk-I7AW4237.js} +18 -4
  102. package/dist/{chunk-TFZZL3QF.js → chunk-ICKEGWWP.js} +2 -4
  103. package/dist/{chunk-SR6D65DA.js → chunk-IFACD7E6.js} +3 -3
  104. package/dist/{chunk-I4WAKJ6W.js → chunk-J4RAXKTC.js} +3 -3
  105. package/dist/{chunk-65UQ7H5U.js → chunk-JF3Q5YKI.js} +4 -6
  106. package/dist/{chunk-RWURKLS3.js → chunk-JH7Z2AZ7.js} +1 -1
  107. package/dist/{chunk-5WTYETQO.js → chunk-K4KAPZC7.js} +4 -8
  108. package/dist/{chunk-G3VR3MJI.js → chunk-KIUU4PNX.js} +4 -8
  109. package/dist/{chunk-4F56OUR7.js → chunk-LC53LVOT.js} +2 -2
  110. package/dist/{chunk-W7NQE65M.js → chunk-LJML7HT2.js} +1 -1
  111. package/dist/{chunk-V4O2APMI.js → chunk-LL5EY6OQ.js} +1 -1
  112. package/dist/{chunk-DCJ42FEN.js → chunk-LWJ4AMMY.js} +2 -4
  113. package/dist/{chunk-GCMT6RWI.js → chunk-LYH5HE24.js} +3 -14
  114. package/dist/{chunk-63UVIM7S.js → chunk-MBA4NNTS.js} +2 -4
  115. package/dist/{chunk-7KR5PV4P.js → chunk-MKPSMRVX.js} +1 -1
  116. package/dist/{chunk-C4EVFN7J.js → chunk-MKUVEDUE.js} +2 -2
  117. package/dist/chunk-MLKGABMK.js +9 -0
  118. package/dist/chunk-MLXJ5EZG.js +90 -0
  119. package/dist/{chunk-BXCJOACQ.js → chunk-NFHFNPTN.js} +3 -5
  120. package/dist/{chunk-2R3N4DQY.js → chunk-NJKERRSG.js} +3 -3
  121. package/dist/{chunk-I5VJNTDL.js → chunk-NNT2ZNMC.js} +5 -7
  122. package/dist/{chunk-O7CTVDC3.js → chunk-ODEGQCWW.js} +8 -8
  123. package/dist/{chunk-H4YONWQX.js → chunk-ONMRBKAX.js} +229 -108
  124. package/dist/{chunk-NE6RPW5C.js → chunk-PMWDO5FR.js} +1 -1
  125. package/dist/{chunk-IPSFAUK5.js → chunk-QB66MH2V.js} +4 -4
  126. package/dist/{chunk-XAHIVBTU.js → chunk-QHQJ7DLL.js} +6 -6
  127. package/dist/{chunk-NA3MXUU6.js → chunk-TH6HTK2L.js} +17 -15
  128. package/dist/{chunk-H4KUTL2T.js → chunk-TKEDF7KV.js} +1 -1
  129. package/dist/{chunk-KHV55ME4.js → chunk-TOWAZ5IV.js} +95 -118
  130. package/dist/{chunk-IBVB2NGY.js → chunk-TOXHEZN5.js} +47 -4
  131. package/dist/{chunk-H6OEU54G.js → chunk-UJMDHPIN.js} +91 -39
  132. package/dist/{chunk-UWBU44UP.js → chunk-UPL5FEZY.js} +1 -1
  133. package/dist/{chunk-ER3UJ2VL.js → chunk-UPMKSFBU.js} +2 -2
  134. package/dist/{chunk-X7DJ2QZW.js → chunk-V4MKR32F.js} +4 -6
  135. package/dist/{chunk-HV75RBMK.js → chunk-VB23RNNI.js} +1 -1
  136. package/dist/{chunk-56T5TMNK.js → chunk-VK2AWQ6D.js} +2 -2
  137. package/dist/{chunk-UXDQ4ERA.js → chunk-VNTDQUOG.js} +21 -18
  138. package/dist/{chunk-KQTGSD23.js → chunk-VYVESELG.js} +13 -9
  139. package/dist/{chunk-S465RWY7.js → chunk-W6SKR3HZ.js} +3 -5
  140. package/dist/{chunk-CQCURHDV.js → chunk-X2XE65WV.js} +12 -10
  141. package/dist/{chunk-XQ2ZBOAD.js → chunk-XK7VZFCC.js} +22 -9
  142. package/dist/{chunk-5F3EXHT7.js → chunk-XMRDT4PB.js} +2 -4
  143. package/dist/{chunk-MPXPPKJ4.js → chunk-XWQKCCCO.js} +3 -3
  144. package/dist/{chunk-7APRWURX.js → chunk-Y6TS42WD.js} +10 -12
  145. package/dist/{chunk-WTJS6PCC.js → chunk-YOG7TWMO.js} +1 -1
  146. package/dist/{chunk-QSSABSCM.js → chunk-YPSN64BU.js} +6 -6
  147. package/dist/{chunk-WJW564IP.js → chunk-ZBA74MMX.js} +2 -2
  148. package/dist/{chunk-VXQDZH5T.js → chunk-ZMJHXDZR.js} +3 -3
  149. package/dist/{chunk-BHV7PX5V.js → chunk-ZUAXTH6Z.js} +2 -2
  150. package/dist/{chunk-K6MMN6AW.js → chunk-ZZLTJXKR.js} +3 -5
  151. package/dist/{code-context-index-SRTAWCZQ.js → code-context-index-I5A7I4JQ.js} +7 -7
  152. package/dist/{content-extractor-H4IPL533.js → content-extractor-M7ISRONU.js} +1 -1
  153. package/dist/{conversation-entity-extractor-IZ3ECP4A.js → conversation-entity-extractor-EYSI4DKM.js} +3 -3
  154. package/dist/{conversation-wiki-populator-K4BQXHHO.js → conversation-wiki-populator-RSJ44BRO.js} +2 -2
  155. package/dist/{core-memory-JZ34WT5R.js → core-memory-C3JLISAU.js} +1 -1
  156. package/dist/{crdt-sync-4TOVD4QN.js → crdt-sync-XMC6LT2Q.js} +2 -2
  157. package/dist/{crm-bridge-27QVOWPI.js → crm-bridge-4QZRMOF7.js} +1 -1
  158. package/dist/{crm-webhook-77XHBWL7.js → crm-webhook-QMHD5YYQ.js} +3 -3
  159. package/dist/{cto-delegation-gate-AWENA4VT.js → cto-delegation-gate-BTZWAA4E.js} +11 -10
  160. package/dist/{daemon-auth-Z7O3LO23.js → daemon-auth-F47P6HTC.js} +4 -4
  161. package/dist/{daemon-orchestration-BG4NPWOK.js → daemon-orchestration-HFODCB52.js} +14 -13
  162. package/dist/{daemon-protocol-N7MOJ4U3.js → daemon-protocol-XW2OLNBS.js} +1 -1
  163. package/dist/{db-backup-E34JMBZD.js → db-backup-W56YOLMC.js} +4 -4
  164. package/dist/{devtools-ZL5NCINM.js → devtools-5PEATRYE.js} +1 -1
  165. package/dist/{discord-QOFQKX6S.js → discord-LMZKIYWB.js} +1 -1
  166. package/dist/dispatch-ack-JYCKAWKZ.js +13 -0
  167. package/dist/{email-NY5HB4WA.js → email-UENAIKRN.js} +1 -1
  168. package/dist/{entity-boost-V6KSRGG4.js → entity-boost-LIBVNNXO.js} +2 -2
  169. package/dist/{exe-drift-YFWCC26O.js → exe-drift-SED6KQTZ.js} +6 -6
  170. package/dist/{exe-export-YRACBEUY.js → exe-export-ADSWDE5U.js} +9 -9
  171. package/dist/{exe-import-DY57L2OI.js → exe-import-WFLNGJZP.js} +9 -9
  172. package/dist/{exe-key-U2JJH4MO.js → exe-key-4L32R46F.js} +5 -7
  173. package/dist/{exe-org-45OTYZZJ.js → exe-org-OOO7KJVZ.js} +4 -4
  174. package/dist/{factory-2PB537KA.js → factory-CTFAGZUA.js} +1 -1
  175. package/dist/fast-db-init-HVAVS35N.js +7 -0
  176. package/dist/{file-edit-GSXUFUDC.js → file-edit-AZAJPCA3.js} +1 -1
  177. package/dist/{file-read-Z3F3PUCK.js → file-read-VACF23NC.js} +1 -1
  178. package/dist/{file-write-X77JXZ2C.js → file-write-B2RPT5U7.js} +1 -1
  179. package/dist/gateway/index.js +10 -10
  180. package/dist/{gateway-client-IPKKEYKY.js → gateway-client-5EUMMEZZ.js} +2 -2
  181. package/dist/{git-staleness-I662R7RL.js → git-staleness-BY4ZK6MW.js} +5 -5
  182. package/dist/{git-task-sweep-XWFCP2HA.js → git-task-sweep-RSRASAHB.js} +12 -11
  183. package/dist/{glob-2PWAXTZ2.js → glob-7PWH7WKL.js} +1 -1
  184. package/dist/{global-procedures-IEIJBCAH.js → global-procedures-EKYSVONR.js} +7 -7
  185. package/dist/graph-auto-extract-HWZ5GVXZ.js +161 -0
  186. package/dist/{graph-query-NCDYOT4Y.js → graph-query-SE6T5XC4.js} +1 -1
  187. package/dist/{graph-rag-2YLGRBW5.js → graph-rag-G3EG5Q6L.js} +3 -3
  188. package/dist/{grep-GTV6WAZ4.js → grep-HWIDXHRC.js} +1 -1
  189. package/dist/{hook-integrity-LLPJPAXW.js → hook-integrity-PR4BPZBT.js} +2 -2
  190. package/dist/hooks/bug-report-worker.js +13 -12
  191. package/dist/hooks/codex-stop-task-finalizer.js +16 -13
  192. package/dist/hooks/commit-complete.js +14 -13
  193. package/dist/hooks/error-recall.js +9 -12
  194. package/dist/hooks/exe-heartbeat-hook.js +6 -6
  195. package/dist/hooks/ingest-worker.js +9 -9
  196. package/dist/hooks/ingest.js +16 -19
  197. package/dist/hooks/instructions-loaded.js +7 -7
  198. package/dist/hooks/notification.js +12 -10
  199. package/dist/hooks/post-compact.js +13 -12
  200. package/dist/hooks/post-tool-combined.js +6 -6
  201. package/dist/hooks/pre-compact.js +18 -17
  202. package/dist/hooks/pre-tool-use.js +19 -20
  203. package/dist/hooks/prompt-submit.js +78 -39
  204. package/dist/hooks/session-end.js +22 -21
  205. package/dist/hooks/session-start.js +31 -25
  206. package/dist/hooks/stop.js +20 -22
  207. package/dist/hooks/subagent-stop.js +13 -12
  208. package/dist/hooks/summary-worker.js +21 -20
  209. package/dist/{hooks-UK2AYRCA.js → hooks-LDCFYHDF.js} +1 -1
  210. package/dist/{imessage-LINH4V4D.js → imessage-6UOZB5VN.js} +1 -1
  211. package/dist/index.js +19 -18
  212. package/dist/{installer-PB63JTTG.js → installer-RLKOACKG.js} +9 -9
  213. package/dist/{installer-SSR2OOLO.js → installer-W4NY3OBF.js} +13 -11
  214. package/dist/{installer-ZONYB3XK.js → installer-X5FEYJIA.js} +9 -9
  215. package/dist/{intercom-queue-MMZT2MA2.js → intercom-queue-K3DVKSPJ.js} +1 -1
  216. package/dist/{key-backup-status-4WKIQOAS.js → key-backup-status-ORNMJEEA.js} +4 -6
  217. package/dist/lib/agent-config.js +4 -4
  218. package/dist/lib/cloud-sync.js +8 -8
  219. package/dist/lib/cloudflare-dns.js +1 -1
  220. package/dist/lib/config.js +3 -5
  221. package/dist/lib/consolidation.js +8 -8
  222. package/dist/lib/crypto.js +1 -1
  223. package/dist/lib/database.js +5 -5
  224. package/dist/lib/db-daemon-client.js +5 -5
  225. package/dist/lib/db.js +5 -5
  226. package/dist/lib/device-registry.js +4 -6
  227. package/dist/lib/embedder.js +6 -6
  228. package/dist/lib/employee-templates.js +8 -8
  229. package/dist/lib/employees.js +7 -5
  230. package/dist/lib/error-detector.js +1 -1
  231. package/dist/lib/exe-daemon-client.js +5 -5
  232. package/dist/lib/exe-daemon.js +143 -52
  233. package/dist/lib/file-grep.js +1 -1
  234. package/dist/lib/hybrid-search.js +8 -8
  235. package/dist/lib/identity-templates.js +1 -1
  236. package/dist/lib/identity.js +5 -5
  237. package/dist/lib/keychain.js +1 -1
  238. package/dist/lib/license.js +4 -4
  239. package/dist/lib/messaging.js +12 -11
  240. package/dist/lib/post-tool-memory.js +3 -3
  241. package/dist/lib/registry-proxy.js +1 -1
  242. package/dist/lib/reminders.js +6 -6
  243. package/dist/lib/runtime-table.js +1 -1
  244. package/dist/lib/schedules.js +8 -8
  245. package/dist/lib/session-registry.js +1 -1
  246. package/dist/lib/session-wrappers.js +1 -1
  247. package/dist/lib/skill-learning.js +7 -7
  248. package/dist/lib/status-brief.js +1 -1
  249. package/dist/lib/store.js +7 -7
  250. package/dist/lib/task-router.js +6 -6
  251. package/dist/lib/tasks.js +14 -11
  252. package/dist/lib/tmux-routing.js +11 -10
  253. package/dist/lib/tmux-status.js +1 -1
  254. package/dist/lib/tmux-transport.js +1 -1
  255. package/dist/lib/token-spend.js +6 -6
  256. package/dist/lib/transport.js +1 -1
  257. package/dist/lib/ws-auth.js +1 -1
  258. package/dist/lib/ws-client.js +2 -2
  259. package/dist/license-gate-J5YN264E.js +14 -0
  260. package/dist/mcp/register-tools.js +63 -62
  261. package/dist/mcp/server.js +65 -64
  262. package/dist/mcp/tools/complete-reminder.js +7 -7
  263. package/dist/mcp/tools/create-reminder.js +7 -7
  264. package/dist/mcp/tools/create-task.js +15 -13
  265. package/dist/mcp/tools/deactivate-behavior.js +8 -8
  266. package/dist/mcp/tools/list-reminders.js +7 -7
  267. package/dist/mcp/tools/list-tasks.js +14 -14
  268. package/dist/mcp/tools/send-message.js +14 -13
  269. package/dist/mcp/tools/update-task.js +13 -12
  270. package/dist/{mcp-diagnostics-CWMVPHVC.js → mcp-diagnostics-TSBY62UQ.js} +1 -1
  271. package/dist/{mcp-disconnect-tracker-RM3GEERR.js → mcp-disconnect-tracker-MB23DRS6.js} +1 -1
  272. package/dist/{mcp-http-config-PDGSOYNQ.js → mcp-http-config-6YLW4PFG.js} +6 -6
  273. package/dist/{memory-cards-OLE6MGO7.js → memory-cards-UAQCO4QR.js} +5 -5
  274. package/dist/{memory-poisoning-defense-OOHJIXIX.js → memory-poisoning-defense-VWITZ4WO.js} +5 -7
  275. package/dist/{memory-queue-TGWXMENR.js → memory-queue-NYIGZNCG.js} +4 -4
  276. package/dist/memory-queue-client-YJOLYALV.js +15 -0
  277. package/dist/{memory-reflection-Z7CT6JLY.js → memory-reflection-JQC4ZSUD.js} +5 -5
  278. package/dist/{message-queue-client-TWIA2GIH.js → message-queue-client-NTLKYGVO.js} +1 -1
  279. package/dist/{notifications-SREXGSAQ.js → notifications-YDOKTVCH.js} +11 -10
  280. package/dist/{oauth-server-NSWGKLLA.js → oauth-server-TOWAZR4K.js} +1 -1
  281. package/dist/{orchestration-phase-WLQMEP4M.js → orchestration-phase-FXKZYK6R.js} +4 -4
  282. package/dist/{orchestrator-CHQURQSC.js → orchestrator-BZ2D6ZM6.js} +13 -12
  283. package/dist/{permission-presets-3XKJNM6N.js → permission-presets-E3DZK46K.js} +1 -1
  284. package/dist/{permissions-EZH3ULLD.js → permissions-6MCWUDCD.js} +1 -1
  285. package/dist/{pg-ssl-4ZNXKUNH.js → pg-ssl-7JXQFL4I.js} +1 -1
  286. package/dist/{plan-limits-7L75PB33.js → plan-limits-KUTODKG6.js} +7 -7
  287. package/dist/{preferences-K2GKUQSJ.js → preferences-ERXO6SMJ.js} +3 -3
  288. package/dist/{project-name-OBIDABHE.js → project-name-EWG5KAZP.js} +1 -1
  289. package/dist/{projection-worker-HSGE44JA.js → projection-worker-UY7R2EQJ.js} +85 -8
  290. package/dist/{push-notifications-EOTMKJ6B.js → push-notifications-KDYFOJRI.js} +4 -4
  291. package/dist/{reranker-ME4CK2ZQ.js → reranker-OMADCS3D.js} +4 -4
  292. package/dist/{review-gate-M3U2YAW6.js → review-gate-IUNS6GQU.js} +1 -1
  293. package/dist/{review-polling-DQCN4TNM.js → review-polling-DORNZ2KI.js} +12 -11
  294. package/dist/runtime/index.js +14 -13
  295. package/dist/{self-query-router-TRPHL54X.js → self-query-router-37VB3PKQ.js} +1 -1
  296. package/dist/{session-events-ZZBFYL5Z.js → session-events-5WR5RVDK.js} +12 -12
  297. package/dist/{session-kill-telemetry-MUFET632.js → session-kill-telemetry-DHSQV2CI.js} +6 -6
  298. package/dist/{session-scope-QUUDZM2L.js → session-scope-D4Q62ZOZ.js} +13 -13
  299. package/dist/setup-wizard-QVNTI3T4.js +12 -0
  300. package/dist/{shard-manager-VYMJM7NR.js → shard-manager-SP4YL5JQ.js} +4 -4
  301. package/dist/{signal-C263RUND.js → signal-7UIRTYGZ.js} +1 -1
  302. package/dist/{slack-N7PL6QMX.js → slack-GCOYBZUK.js} +1 -1
  303. package/dist/{task-enforcement-WJ3S6JTL.js → task-enforcement-OYCQXBBC.js} +11 -10
  304. package/dist/{task-scanner-YHWRG4ZJ.js → task-scanner-QEM5CO2Y.js} +1 -1
  305. package/dist/{task-scope-V2CTRHG7.js → task-scope-WWRNU2LU.js} +11 -10
  306. package/dist/{tasks-crud-W2XPUGKK.js → tasks-crud-75AUVZPO.js} +13 -10
  307. package/dist/{tasks-review-BR2SBSYG.js → tasks-review-UMZN5ZPQ.js} +11 -10
  308. package/dist/{telegram-B54FFOXD.js → telegram-RGVD4LUY.js} +1 -1
  309. package/dist/{telemetry-7IQCPV4Q.js → telemetry-43X3GT3R.js} +1 -1
  310. package/dist/{token-budget-H2XSWO4D.js → token-budget-62TYDIMI.js} +5 -5
  311. package/dist/{tool-capability-index-5X2CCGIK.js → tool-capability-index-OBZXORBP.js} +2 -2
  312. package/dist/{tool-gates-SGFMDREY.js → tool-gates-3IC7DK4R.js} +1 -1
  313. package/dist/{tool-gates-3DNTD7G3.js → tool-gates-GXSYBVK4.js} +1 -1
  314. package/dist/{tool-registry-2VUAZXTW.js → tool-registry-5XN3FUYL.js} +1 -1
  315. package/dist/{tool-telemetry-NVPSPRYP.js → tool-telemetry-JL6NY3KP.js} +2 -2
  316. package/dist/tui/App.js +44 -43
  317. package/dist/{tui-data-QN4O565C.js → tui-data-C5I2YU4C.js} +11 -10
  318. package/dist/{update-check-ERUKV2G6.js → update-check-MKHO7H6B.js} +1 -1
  319. package/dist/{webhook-L5FGAUPJ.js → webhook-LCW7UP4L.js} +1 -1
  320. package/dist/{webhook-pipe-B7GJCJAI.js → webhook-pipe-PJOFVBD3.js} +1 -1
  321. package/dist/{whatsapp-7FK2PRWO.js → whatsapp-SILL4V64.js} +1 -1
  322. package/dist/{whatsapp-accounts-VIHRSLGB.js → whatsapp-accounts-BWRZUY23.js} +1 -1
  323. package/dist/{wiki-acl-R4IIHICT.js → wiki-acl-5EC5VNYG.js} +1 -1
  324. package/dist/{wiki-client-EUDJA7O2.js → wiki-client-MMVRPTPK.js} +1 -1
  325. package/dist/{worker-gate-3KDXLIJC.js → worker-gate-Q5Y6B5N7.js} +4 -4
  326. package/dist/{workflow-engine-GISKRYSO.js → workflow-engine-KAKVU7NC.js} +3 -3
  327. package/dist/{worktree-B3FHAHEM.js → worktree-OMPQEJH7.js} +1 -1
  328. package/package.json +2 -2
  329. package/release-notes.json +126 -126
  330. package/src/commands/exe/setup.md +1 -1
  331. package/dist/chunk-PNKVD2UK.js +0 -26
  332. package/dist/fast-db-init-67TQTHWT.js +0 -7
  333. package/dist/license-gate-JY2KFIKO.js +0 -14
  334. package/dist/memory-queue-client-RZP5F4EA.js +0 -15
  335. package/dist/setup-wizard-NXWCEK63.js +0 -12
  336. package/dist/{chunk-D5MPHVWH.js → chunk-524VLFFY.js} +0 -0
  337. package/dist/{chunk-HIQ5RDA7.js → chunk-A3A2E42I.js} +0 -0
  338. package/dist/{chunk-APRP5D27.js → chunk-H6ADW3YC.js} +0 -0
  339. package/dist/{chunk-AAVODJ4F.js → chunk-J2OPV5FE.js} +0 -0
  340. package/dist/{chunk-DBLBWWFS.js → chunk-S6DA6UKC.js} +3 -3
  341. /package/dist/{chunk-F3ULERRZ.js → chunk-TSCZMB3P.js} +0 -0
  342. /package/dist/{chunk-2HV2EQW2.js → chunk-WRU72I4S.js} +0 -0
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  getCachedLicenseGate
3
- } from "./chunk-HV75RBMK.js";
3
+ } from "./chunk-VB23RNNI.js";
4
4
  import {
5
5
  getToolUsageStats
6
- } from "./chunk-F3ULERRZ.js";
6
+ } from "./chunk-TSCZMB3P.js";
7
7
  import {
8
8
  AUTO_WAKE_MAX_RETRIES
9
- } from "./chunk-CDDRSIGK.js";
9
+ } from "./chunk-2BPO7VQF.js";
10
10
  import {
11
11
  getToolCapabilityIndex
12
- } from "./chunk-AAVODJ4F.js";
12
+ } from "./chunk-J2OPV5FE.js";
13
13
  import {
14
14
  isRerankerAvailable,
15
15
  rerankWithScores
16
- } from "./chunk-5F3EXHT7.js";
16
+ } from "./chunk-XMRDT4PB.js";
17
17
  import {
18
18
  getEntityByName,
19
19
  getEntityNeighbors,
@@ -28,7 +28,7 @@ import {
28
28
  } from "./chunk-E6ORBQHP.js";
29
29
  import {
30
30
  listRecentSessionEvents
31
- } from "./chunk-IPSFAUK5.js";
31
+ } from "./chunk-QB66MH2V.js";
32
32
  import {
33
33
  analyzeBlastRadius,
34
34
  buildCodeContextIndex,
@@ -37,66 +37,66 @@ import {
37
37
  searchCodeContext,
38
38
  searchCodeContextSemantic,
39
39
  traceCodeSymbol
40
- } from "./chunk-X7DJ2QZW.js";
40
+ } from "./chunk-V4MKR32F.js";
41
41
  import {
42
42
  runDriftProbes
43
- } from "./chunk-JUITBJ7J.js";
43
+ } from "./chunk-4GLEFA2X.js";
44
44
  import {
45
45
  exportOrchestration,
46
46
  importOrchestration,
47
47
  validatePackage
48
- } from "./chunk-65UQ7H5U.js";
48
+ } from "./chunk-JF3Q5YKI.js";
49
49
  import {
50
50
  loadOrchestrationPhase,
51
51
  setOrchestrationPhase
52
- } from "./chunk-MUVPQCQA.js";
52
+ } from "./chunk-6HFZ2KUC.js";
53
53
  import {
54
54
  createOrRefreshResumeTask
55
- } from "./chunk-I4WAKJ6W.js";
55
+ } from "./chunk-J4RAXKTC.js";
56
56
  import {
57
57
  registerCompleteReminder
58
- } from "./chunk-NT6R4ATM.js";
58
+ } from "./chunk-FG4Z2XFU.js";
59
59
  import {
60
60
  registerDeactivateBehavior
61
- } from "./chunk-SR6D65DA.js";
61
+ } from "./chunk-IFACD7E6.js";
62
62
  import {
63
63
  registerSendMessage
64
- } from "./chunk-56T5TMNK.js";
64
+ } from "./chunk-VK2AWQ6D.js";
65
65
  import {
66
66
  registerCreateTask
67
- } from "./chunk-XQ2ZBOAD.js";
67
+ } from "./chunk-XK7VZFCC.js";
68
68
  import {
69
69
  registerListTasks
70
- } from "./chunk-KQTGSD23.js";
70
+ } from "./chunk-VYVESELG.js";
71
71
  import {
72
72
  registerUpdateTask
73
- } from "./chunk-XAHIVBTU.js";
73
+ } from "./chunk-QHQJ7DLL.js";
74
74
  import {
75
75
  registerCreateReminder
76
- } from "./chunk-GK5VMHSN.js";
76
+ } from "./chunk-26UVGP3I.js";
77
77
  import {
78
78
  registerListReminders
79
- } from "./chunk-RWURKLS3.js";
79
+ } from "./chunk-JH7Z2AZ7.js";
80
80
  import {
81
81
  completeReminder,
82
82
  createReminder,
83
83
  listReminders
84
- } from "./chunk-7PTII6F4.js";
84
+ } from "./chunk-2OATM2JZ.js";
85
85
  import {
86
86
  status
87
- } from "./chunk-VXQDZH5T.js";
87
+ } from "./chunk-ZMJHXDZR.js";
88
88
  import {
89
89
  TOKENS_PER_IDLE_MINUTE,
90
90
  countKillsSince,
91
91
  sumTokensSavedSince
92
- } from "./chunk-NE6RPW5C.js";
92
+ } from "./chunk-PMWDO5FR.js";
93
93
  import {
94
94
  getAgentSpend
95
- } from "./chunk-7KR5PV4P.js";
95
+ } from "./chunk-MKPSMRVX.js";
96
96
  import {
97
97
  createSchedule,
98
98
  parseHumanCron
99
- } from "./chunk-BHV7PX5V.js";
99
+ } from "./chunk-ZUAXTH6Z.js";
100
100
  import {
101
101
  exportGraphHTML,
102
102
  generateGraphReport
@@ -104,52 +104,52 @@ import {
104
104
  import {
105
105
  entityId,
106
106
  mergeEntities
107
- } from "./chunk-WLEVAIL5.js";
107
+ } from "./chunk-GP6G6EQI.js";
108
108
  import {
109
109
  formatReport,
110
110
  runAudit
111
- } from "./chunk-OYCQ6PFC.js";
111
+ } from "./chunk-4EINMZNO.js";
112
112
  import {
113
113
  runHealthCheck
114
- } from "./chunk-O7CTVDC3.js";
114
+ } from "./chunk-ODEGQCWW.js";
115
115
  import {
116
116
  hasFailures,
117
117
  runHealth,
118
118
  runTest
119
- } from "./chunk-K3PSCQLK.js";
119
+ } from "./chunk-DW6P7UVY.js";
120
120
  import {
121
121
  findSimilarTrajectories,
122
122
  hashSignature
123
- } from "./chunk-K6MMN6AW.js";
123
+ } from "./chunk-ZZLTJXKR.js";
124
124
  import {
125
125
  deactivateBehavior,
126
126
  listBehaviorsByDomain,
127
127
  listSharedSkills,
128
128
  storeBehavior
129
- } from "./chunk-RWJY7KMP.js";
129
+ } from "./chunk-ARGBV4PP.js";
130
130
  import {
131
131
  countUnconsolidated,
132
132
  groupMemories,
133
133
  runConsolidation,
134
134
  selectUnconsolidated
135
- } from "./chunk-C4EVFN7J.js";
135
+ } from "./chunk-MKUVEDUE.js";
136
136
  import {
137
137
  renderClientCOOTemplate
138
- } from "./chunk-53VUIKOE.js";
138
+ } from "./chunk-3MLGUSKS.js";
139
139
  import {
140
140
  deactivateGlobalProcedure,
141
141
  loadGlobalProcedures,
142
142
  storeGlobalProcedure
143
- } from "./chunk-ER3UJ2VL.js";
143
+ } from "./chunk-UPMKSFBU.js";
144
144
  import {
145
145
  PLATFORM_PROCEDURES
146
- } from "./chunk-MPXPPKJ4.js";
146
+ } from "./chunk-XWQKCCCO.js";
147
147
  import {
148
148
  clearCloudReuploadRequired,
149
149
  cloudSync,
150
150
  getCloudReuploadRequired,
151
151
  markCloudReuploadRequired
152
- } from "./chunk-UXDQ4ERA.js";
152
+ } from "./chunk-VNTDQUOG.js";
153
153
  import {
154
154
  encryptSyncBlob,
155
155
  isSyncCryptoInitialized
@@ -159,31 +159,28 @@ import {
159
159
  } from "./chunk-X2Z5GT3V.js";
160
160
  import {
161
161
  embed
162
- } from "./chunk-BY4OTURZ.js";
162
+ } from "./chunk-4MN44ORL.js";
163
163
  import {
164
164
  readMcpHttpEvents,
165
165
  summarizeMcpTransport,
166
166
  writeMcpTransportSummary
167
- } from "./chunk-DCJ42FEN.js";
167
+ } from "./chunk-LWJ4AMMY.js";
168
168
  import {
169
169
  updateTask
170
- } from "./chunk-AJ2XDY27.js";
170
+ } from "./chunk-3FIWKONP.js";
171
171
  import {
172
172
  fastDbInit
173
- } from "./chunk-UVH6FA5E.js";
173
+ } from "./chunk-7B5DQGXG.js";
174
174
  import {
175
175
  MAX_CONCURRENT_WORKERS
176
- } from "./chunk-QSSABSCM.js";
177
- import {
178
- getProjectName
179
- } from "./chunk-OPU3NYOO.js";
176
+ } from "./chunk-YPSN64BU.js";
180
177
  import {
181
178
  hybridSearch,
182
179
  recentRecords
183
- } from "./chunk-NQAZ2CP7.js";
180
+ } from "./chunk-AGFWOII2.js";
184
181
  import {
185
182
  getActiveAgent
186
- } from "./chunk-BXCJOACQ.js";
183
+ } from "./chunk-NFHFNPTN.js";
187
184
  import {
188
185
  attachDocumentMetadata,
189
186
  flushBatch,
@@ -191,7 +188,7 @@ import {
191
188
  reserveVersions,
192
189
  vectorToBlob,
193
190
  writeMemory
194
- } from "./chunk-7APRWURX.js";
191
+ } from "./chunk-Y6TS42WD.js";
195
192
  import {
196
193
  getMySession,
197
194
  resolveExeSession,
@@ -199,7 +196,7 @@ import {
199
196
  sessionScopeFilter,
200
197
  updateTaskStatus,
201
198
  writeCheckpoint
202
- } from "./chunk-H4YONWQX.js";
199
+ } from "./chunk-ONMRBKAX.js";
203
200
  import {
204
201
  listSessions
205
202
  } from "./chunk-64WZEXXA.js";
@@ -210,7 +207,7 @@ import {
210
207
  getAgentRuntime,
211
208
  loadAgentConfig,
212
209
  setAgentRuntime
213
- } from "./chunk-G3VR3MJI.js";
210
+ } from "./chunk-KIUU4PNX.js";
214
211
  import {
215
212
  DEFAULT_RUNTIME
216
213
  } from "./chunk-NGP6LSV2.js";
@@ -219,7 +216,10 @@ import {
219
216
  assertEmployeeLimit,
220
217
  assertFeature,
221
218
  assertMemoryLimit
222
- } from "./chunk-XEA6DSLR.js";
219
+ } from "./chunk-AERGE6GC.js";
220
+ import {
221
+ getProjectName
222
+ } from "./chunk-OPU3NYOO.js";
223
223
  import {
224
224
  getAccountByName,
225
225
  getDefaultAccount
@@ -229,7 +229,7 @@ import {
229
229
  isScheduledTrigger,
230
230
  loadTriggers,
231
231
  sanitizeParam
232
- } from "./chunk-WJW564IP.js";
232
+ } from "./chunk-ZBA74MMX.js";
233
233
  import {
234
234
  pushConversationToCRM
235
235
  } from "./chunk-GCNWCYJI.js";
@@ -249,7 +249,7 @@ import {
249
249
  loadEmployeesSync,
250
250
  saveEmployees,
251
251
  updateIdentity
252
- } from "./chunk-NA3MXUU6.js";
252
+ } from "./chunk-TH6HTK2L.js";
253
253
  import {
254
254
  getMasterKey
255
255
  } from "./chunk-6D23UNXU.js";
@@ -265,12 +265,11 @@ import {
265
265
  readCachedLicenseToken,
266
266
  saveLicense,
267
267
  validateLicense
268
- } from "./chunk-I5VJNTDL.js";
268
+ } from "./chunk-NNT2ZNMC.js";
269
269
  import {
270
270
  EXE_AI_DIR,
271
- init_config,
272
271
  loadConfig
273
- } from "./chunk-KHV55ME4.js";
272
+ } from "./chunk-TOWAZ5IV.js";
274
273
 
275
274
  // src/mcp/tools/memory.ts
276
275
  import { z as z10 } from "zod";
@@ -439,6 +438,61 @@ function registerRecallMyMemory(server) {
439
438
  results = await recentRecords(agentId, searchOptions, limit);
440
439
  }
441
440
  }
441
+ const FEDERATION_THRESHOLD = 3;
442
+ let federatedCount = 0;
443
+ if (!recent && query && results.length < FEDERATION_THRESHOLD) {
444
+ try {
445
+ const { searchCodeContextSemantic: searchCodeContextSemantic2 } = await import("./code-context-index-I5A7I4JQ.js");
446
+ const codeResults = await Promise.race([
447
+ searchCodeContextSemantic2(query, { limit: 5 }),
448
+ new Promise((_, rej) => setTimeout(() => rej(new Error("timeout")), 2e3))
449
+ ]);
450
+ for (let i = 0; i < codeResults.length; i++) {
451
+ const cr = codeResults[i];
452
+ results.push({
453
+ id: `federated-code_context-${results.length}`,
454
+ raw_text: `[code_context] ${cr.filePath}:${cr.startLine}
455
+ ${cr.content}`,
456
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
457
+ tool_name: "code_context",
458
+ project_name: project_name ?? "federated",
459
+ has_error: false
460
+ });
461
+ }
462
+ } catch {
463
+ }
464
+ try {
465
+ const { getClient: getClient2 } = await import("./lib/database.js");
466
+ const client = getClient2();
467
+ const graphResults = await Promise.race([
468
+ client.execute({
469
+ sql: `SELECT e.name, e.type as entity_type, e.properties as description, r.type as relationship_type, r2.name as related_to
470
+ FROM entities e
471
+ LEFT JOIN relationships r ON e.id = r.source_entity_id
472
+ LEFT JOIN entities r2 ON r.target_entity_id = r2.id
473
+ WHERE e.name LIKE ? OR e.properties LIKE ?
474
+ LIMIT 5`,
475
+ args: [`%${query.slice(0, 50)}%`, `%${query.slice(0, 50)}%`]
476
+ }),
477
+ new Promise((_, rej) => setTimeout(() => rej(new Error("timeout")), 2e3))
478
+ ]);
479
+ for (let i = 0; i < (graphResults.rows?.length ?? 0); i++) {
480
+ const gr = graphResults.rows[i];
481
+ const relPart = gr.related_to ? ` \u2192 ${gr.relationship_type} \u2192 ${gr.related_to}` : "";
482
+ results.push({
483
+ id: `federated-graph-${results.length}`,
484
+ raw_text: `[graph] ${gr.name} (${gr.entity_type})${relPart}
485
+ ${gr.description ?? ""}`,
486
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
487
+ tool_name: "graph",
488
+ project_name: project_name ?? "federated",
489
+ has_error: false
490
+ });
491
+ }
492
+ } catch {
493
+ }
494
+ federatedCount = results.filter((r) => r.tool_name === "code_context" || r.tool_name === "graph").length;
495
+ }
442
496
  if (results.length === 0) {
443
497
  return {
444
498
  content: [
@@ -461,13 +515,16 @@ function registerRecallMyMemory(server) {
461
515
  parts.push(body);
462
516
  return parts.join("\n");
463
517
  }).join("\n\n---\n\n");
518
+ const federatedNote = federatedCount > 0 ? `
519
+
520
+ [Federated recall: ${federatedCount} result(s) from code_context/graph (memory had < ${FEDERATION_THRESHOLD} matches)]` : "";
464
521
  return {
465
522
  content: [
466
523
  {
467
524
  type: "text",
468
525
  text: `Found ${results.length} memories:
469
526
 
470
- ${formatted}`
527
+ ${formatted}${federatedNote}`
471
528
  }
472
529
  ]
473
530
  };
@@ -855,7 +912,7 @@ async function searchConversations(query, limit) {
855
912
  }
856
913
  async function searchWiki(query, limit) {
857
914
  try {
858
- const { createWikiClient, chatInWorkspace, listWorkspaces } = await import("./wiki-client-EUDJA7O2.js");
915
+ const { createWikiClient, chatInWorkspace, listWorkspaces } = await import("./wiki-client-MMVRPTPK.js");
859
916
  const client = await createWikiClient();
860
917
  if (!client) return [];
861
918
  const workspaces = await listWorkspaces(client);
@@ -1396,7 +1453,7 @@ async function handleSupersede(input) {
1396
1453
  }
1397
1454
  try {
1398
1455
  const { getClient: getClient2 } = await import("./lib/database.js");
1399
- const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-GJOJUEMF.js");
1456
+ const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-NCZCDDZ2.js");
1400
1457
  const { writeMemory: writeMemory2, flushBatch: flushBatch2 } = await import("./lib/store.js");
1401
1458
  const { randomUUID: randomUUID2 } = await import("crypto");
1402
1459
  const client = getClient2();
@@ -1414,7 +1471,7 @@ async function handleSupersede(input) {
1414
1471
  });
1415
1472
  const { agentId, agentRole } = getActiveAgent2();
1416
1473
  const sessionId = process.env.SESSION_ID ?? "manual";
1417
- const { getProjectName: getProjectName2 } = await import("./project-name-OBIDABHE.js");
1474
+ const { getProjectName: getProjectName2 } = await import("./project-name-EWG5KAZP.js");
1418
1475
  const projectName = input.project_name ?? getProjectName2();
1419
1476
  const newId = randomUUID2();
1420
1477
  await writeMemory2({
@@ -1505,9 +1562,9 @@ function registerMemory(server) {
1505
1562
  return handleSupersede(input);
1506
1563
  }
1507
1564
  if (action === "core_get" || action === "core_set" || action === "core_delete") {
1508
- const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-GJOJUEMF.js");
1565
+ const { getActiveAgent: getActiveAgent2 } = await import("./active-agent-NCZCDDZ2.js");
1509
1566
  const { agentId } = getActiveAgent2();
1510
- const { getCoreMemory, setCoreMemory, deleteCoreMemory, formatCoreMemoryBlock } = await import("./core-memory-JZ34WT5R.js");
1567
+ const { getCoreMemory, setCoreMemory, deleteCoreMemory, formatCoreMemoryBlock } = await import("./core-memory-C3JLISAU.js");
1511
1568
  if (action === "core_get") {
1512
1569
  const entries = await getCoreMemory(agentId);
1513
1570
  const block = formatCoreMemoryBlock(entries);
@@ -1877,12 +1934,13 @@ function registerCloseTask(server) {
1877
1934
  try {
1878
1935
  const { getClient: getClient2 } = await import("./lib/database.js");
1879
1936
  const client = getClient2();
1937
+ const mySession = resolveExeSession();
1938
+ const scope = sessionScopeFilter(mySession);
1880
1939
  const taskRow = await client.execute({
1881
- sql: "SELECT session_scope FROM tasks WHERE id = ? OR task_file LIKE ? OR title LIKE ? LIMIT 1",
1882
- args: [task_id, `%${task_id}%`, `%${task_id}%`]
1940
+ sql: `SELECT session_scope FROM tasks WHERE (id = ? OR task_file LIKE ? OR title LIKE ?) ${scope.sql} LIMIT 1`,
1941
+ args: [task_id, `%${task_id}%`, `%${task_id}%`, ...scope.args]
1883
1942
  });
1884
1943
  const taskScope = taskRow.rows[0]?.session_scope;
1885
- const mySession = resolveExeSession();
1886
1944
  if (taskScope && mySession && taskScope !== mySession) {
1887
1945
  return {
1888
1946
  content: [{
@@ -1898,9 +1956,10 @@ function registerCloseTask(server) {
1898
1956
  try {
1899
1957
  const { getClient: getClient2 } = await import("./lib/database.js");
1900
1958
  const client = getClient2();
1959
+ const mergeScope = sessionScopeFilter(resolveExeSession());
1901
1960
  const taskRow = await client.execute({
1902
- sql: "SELECT assigned_to FROM tasks WHERE id = ? OR task_file LIKE ? OR title LIKE ? LIMIT 1",
1903
- args: [task_id, `%${task_id}%`, `%${task_id}%`]
1961
+ sql: `SELECT assigned_to FROM tasks WHERE (id = ? OR task_file LIKE ? OR title LIKE ?) ${mergeScope.sql} LIMIT 1`,
1962
+ args: [task_id, `%${task_id}%`, `%${task_id}%`, ...mergeScope.args]
1904
1963
  });
1905
1964
  const assignee = taskRow.rows[0]?.assigned_to;
1906
1965
  if (assignee) {
@@ -1964,9 +2023,10 @@ File: ${task.taskFile}`;
1964
2023
  const rClient = getRespawnClient();
1965
2024
  const assignee = task.assignedTo;
1966
2025
  if (assignee) {
2026
+ const respawnScope = sessionScopeFilter(resolveExeSession());
1967
2027
  const remaining = await rClient.execute({
1968
- sql: "SELECT COUNT(*) as cnt FROM tasks WHERE assigned_to = ? AND status IN ('open', 'in_progress')",
1969
- args: [assignee]
2028
+ sql: `SELECT COUNT(*) as cnt FROM tasks WHERE assigned_to = ? AND status IN ('open', 'in_progress') ${respawnScope.sql}`,
2029
+ args: [assignee, ...respawnScope.args]
1970
2030
  });
1971
2031
  const count = Number(remaining.rows[0]?.cnt ?? 0);
1972
2032
  if (count > 0) {
@@ -2113,7 +2173,7 @@ function registerResumeEmployee(server) {
2113
2173
  };
2114
2174
  }
2115
2175
  try {
2116
- const { isTmuxSessionAlive } = await import("./tasks-crud-W2XPUGKK.js");
2176
+ const { isTmuxSessionAlive } = await import("./tasks-crud-75AUVZPO.js");
2117
2177
  const now = (/* @__PURE__ */ new Date()).toISOString();
2118
2178
  for (const row of openTasks.rows) {
2119
2179
  const status2 = String(row.status);
@@ -2361,7 +2421,9 @@ var ACTION_TO_LEGACY_TOOL2 = {
2361
2421
  close: "close_task",
2362
2422
  checkpoint: "checkpoint_task",
2363
2423
  resume: "resume_employee",
2364
- dependency_tree: "dependency_tree"
2424
+ dependency_tree: "dependency_tree",
2425
+ verify_dispatch: null
2426
+ // Handled inline — not a legacy tool
2365
2427
  };
2366
2428
  var REQUIRED_FIELDS2 = {
2367
2429
  create: ["title", "assigned_to", "project_name", "context"],
@@ -2371,7 +2433,8 @@ var REQUIRED_FIELDS2 = {
2371
2433
  close: ["task_id", "result"],
2372
2434
  checkpoint: ["task_id", "step", "context_summary"],
2373
2435
  resume: ["agent_id"],
2374
- dependency_tree: []
2436
+ dependency_tree: [],
2437
+ verify_dispatch: ["task_id"]
2375
2438
  };
2376
2439
  function errorResult2(text3) {
2377
2440
  return {
@@ -2405,9 +2468,9 @@ function registerTask(server) {
2405
2468
  "task",
2406
2469
  {
2407
2470
  title: "Task",
2408
- description: "Consolidated task domain tool. Use action=create/list/get/update/close/checkpoint/resume/dependency_tree instead of separate task tools. Legacy task tools remain available during migration.",
2471
+ description: "Consolidated task domain tool. Use action=create/list/get/update/close/checkpoint/resume/dependency_tree/verify_dispatch instead of separate task tools. verify_dispatch checks if a dispatched task was acknowledged by the agent. Legacy task tools remain available during migration.",
2409
2472
  inputSchema: {
2410
- action: z17.enum(["create", "list", "get", "update", "close", "checkpoint", "resume", "dependency_tree"]).describe("Task operation to perform"),
2473
+ action: z17.enum(["create", "list", "get", "update", "close", "checkpoint", "resume", "dependency_tree", "verify_dispatch"]).describe("Task operation to perform"),
2411
2474
  task_id: z17.string().optional().describe("Task identifier \u2014 UUID, slug, filename fragment, or title substring"),
2412
2475
  title: z17.string().optional().describe("Task title for action=create"),
2413
2476
  assigned_to: z17.string().optional().describe("Employee name for action=create/list filter"),
@@ -2433,6 +2496,19 @@ function registerTask(server) {
2433
2496
  },
2434
2497
  async (input, extra) => {
2435
2498
  const action = input.action;
2499
+ if (action === "verify_dispatch") {
2500
+ const taskId = input.task_id;
2501
+ if (!taskId) return errorResult2("verify_dispatch requires task_id");
2502
+ try {
2503
+ const { checkDispatchStatus } = await import("./dispatch-ack-JYCKAWKZ.js");
2504
+ const result3 = checkDispatchStatus(taskId);
2505
+ return {
2506
+ content: [{ type: "text", text: JSON.stringify(result3, null, 2) }]
2507
+ };
2508
+ } catch (err) {
2509
+ return errorResult2(`verify_dispatch failed: ${err instanceof Error ? err.message : String(err)}`);
2510
+ }
2511
+ }
2436
2512
  const legacyToolName = ACTION_TO_LEGACY_TOOL2[action];
2437
2513
  if (!legacyToolName) {
2438
2514
  return errorResult2(`Unknown task action: ${String(input.action)}`);
@@ -2475,10 +2551,11 @@ function registerStoreBehavior(server) {
2475
2551
  domain: z18.string().optional().describe("Category: workflow, code-style, tool-use, communication, architecture, testing"),
2476
2552
  priority: z18.enum(["p0", "p1", "p2"]).optional().describe("Priority tier. p0 = always included (orchestration rules, hard gates). p1 = standard (default). p2 = nice-to-have."),
2477
2553
  agent_id: z18.string().optional().describe("Employee name. Defaults to current agent."),
2478
- project_name: z18.string().optional().describe("Defaults to current project. Pass 'global' for a behavior that applies everywhere.")
2554
+ project_name: z18.string().optional().describe("Defaults to current project. Pass 'global' for a behavior that applies everywhere."),
2555
+ device_scoped: z18.boolean().optional().describe("When true, behavior only loads on this device. Default false (global \u2014 loads everywhere).")
2479
2556
  }
2480
2557
  },
2481
- async ({ content, domain, priority, agent_id, project_name }) => {
2558
+ async ({ content, domain, priority, agent_id, project_name, device_scoped }) => {
2482
2559
  const activeAgent = getActiveAgent();
2483
2560
  const resolvedAgent = agent_id ?? activeAgent.agentId;
2484
2561
  if (agent_id && agent_id !== activeAgent.agentId) {
@@ -2536,7 +2613,8 @@ function registerStoreBehavior(server) {
2536
2613
  content,
2537
2614
  domain: domain ?? void 0,
2538
2615
  projectName: resolvedProject,
2539
- priority: priority ?? void 0
2616
+ priority: priority ?? void 0,
2617
+ deviceScoped: device_scoped ?? false
2540
2618
  });
2541
2619
  let responseText = `Behavior stored for ${resolvedAgent}. ID: ${id}`;
2542
2620
  if (domain) {
@@ -2649,7 +2727,8 @@ function rowToBehavior(r) {
2649
2727
  // Not needed for listing
2650
2728
  created_by_agent: r.created_by_agent ? String(r.created_by_agent) : null,
2651
2729
  created_by_device: r.created_by_device ? String(r.created_by_device) : null,
2652
- source_session_id: r.source_session_id ? String(r.source_session_id) : null
2730
+ source_session_id: r.source_session_id ? String(r.source_session_id) : null,
2731
+ device_id: r.device_id ? String(r.device_id) : null
2653
2732
  };
2654
2733
  }
2655
2734
  function registerListBehaviors(server) {
@@ -3135,8 +3214,8 @@ function registerIngestDocument(server) {
3135
3214
  },
3136
3215
  async (input) => {
3137
3216
  try {
3138
- const { assertFeature: assertFeature2 } = await import("./plan-limits-7L75PB33.js");
3139
- const { assertMemoryLimit: assertMemoryLimit2 } = await import("./plan-limits-7L75PB33.js");
3217
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-KUTODKG6.js");
3218
+ const { assertMemoryLimit: assertMemoryLimit2 } = await import("./plan-limits-KUTODKG6.js");
3140
3219
  await assertFeature2("wiki");
3141
3220
  await assertMemoryLimit2();
3142
3221
  const result3 = await ingestDocument(input);
@@ -3823,7 +3902,6 @@ function registerQueryConversations(server) {
3823
3902
  }
3824
3903
 
3825
3904
  // src/mcp/tools/query-company-brain.ts
3826
- init_config();
3827
3905
  import { z as z33 } from "zod";
3828
3906
  var FETCH_TIMEOUT_MS = 1e4;
3829
3907
  var QUERY_SCOPE = z33.enum(["raw", "crm", "wiki", "memory", "gateway", "all", "cross"]);
@@ -5021,7 +5099,7 @@ function registerGetDaemonHealth(server) {
5021
5099
  lines.push(`| Requests served | ${health.requests_served.toLocaleString()} |`);
5022
5100
  }
5023
5101
  try {
5024
- const { getQueryCacheStats } = await import("./self-query-router-TRPHL54X.js");
5102
+ const { getQueryCacheStats } = await import("./self-query-router-37VB3PKQ.js");
5025
5103
  const cache = getQueryCacheStats();
5026
5104
  lines.push(`| Query cache size | ${cache.size} / ${cache.maxSize} |`);
5027
5105
  lines.push(`| Query cache hit rate | ${cache.hitRate} |`);
@@ -5213,7 +5291,6 @@ function registerGetAutoWakeStatus(server) {
5213
5291
  import { z as z50 } from "zod";
5214
5292
  import { readdirSync, existsSync as existsSync4 } from "fs";
5215
5293
  import path5 from "path";
5216
- init_config();
5217
5294
  var WORKER_PID_DIR = path5.join(EXE_AI_DIR, "worker-pids");
5218
5295
  function countAliveWorkers() {
5219
5296
  let alive = 0;
@@ -5258,7 +5335,7 @@ async function getAgentSessionLoad() {
5258
5335
  return { sessions: [], totalLive: 0, busySessions: 0, idleSessions: 0 };
5259
5336
  }
5260
5337
  const { getClient: getClient2 } = await import("./lib/database.js");
5261
- const { sessionScopeFilter: sessionScopeFilter2 } = await import("./task-scope-V2CTRHG7.js");
5338
+ const { sessionScopeFilter: sessionScopeFilter2 } = await import("./task-scope-WWRNU2LU.js");
5262
5339
  const client = getClient2();
5263
5340
  const scope = sessionScopeFilter2();
5264
5341
  for (const s of liveAgentSessions) {
@@ -5391,7 +5468,6 @@ function registerRunMemoryAudit(server) {
5391
5468
 
5392
5469
  // src/mcp/tools/run-consolidation.ts
5393
5470
  import { z as z52 } from "zod";
5394
- init_config();
5395
5471
  function registerRunConsolidation(server) {
5396
5472
  server.registerTool(
5397
5473
  "run_consolidation",
@@ -5468,7 +5544,6 @@ function registerRunConsolidation(server) {
5468
5544
 
5469
5545
  // src/mcp/tools/cloud-sync.ts
5470
5546
  import { z as z53 } from "zod";
5471
- init_config();
5472
5547
  function result(text3, isError = false) {
5473
5548
  return { content: [{ type: "text", text: text3 }], ...isError ? { isError: true } : {} };
5474
5549
  }
@@ -6275,7 +6350,6 @@ var HostingerError = class extends Error {
6275
6350
  };
6276
6351
 
6277
6352
  // src/mcp/tools/deploy-client.ts
6278
- init_config();
6279
6353
  var execFileAsync = promisify(execFile);
6280
6354
  var POLL_INTERVAL_MS = 1e4;
6281
6355
  var POLL_MAX_ATTEMPTS = 60;
@@ -6854,7 +6928,7 @@ function registerCreateTrigger(server) {
6854
6928
  }
6855
6929
  },
6856
6930
  async ({ name, event, conditions, actions, project, enabled, schedule, query }) => {
6857
- const { assertFeature: assertFeature2 } = await import("./plan-limits-7L75PB33.js");
6931
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-KUTODKG6.js");
6858
6932
  const gatedActions = {
6859
6933
  send_whatsapp: "external_agents",
6860
6934
  update_wiki: "wiki"
@@ -7091,7 +7165,6 @@ function applyPack(industry, project) {
7091
7165
  }
7092
7166
 
7093
7167
  // src/lib/client-coo.ts
7094
- init_config();
7095
7168
  import { existsSync as existsSync7, mkdirSync, writeFileSync as writeFileSync3 } from "fs";
7096
7169
  import path10 from "path";
7097
7170
  var ClientCOOClobberError = class extends Error {
@@ -7759,7 +7832,7 @@ function registerConfig(server) {
7759
7832
  const existing = loadEmployeesSync2();
7760
7833
  if (existing.some((e) => e.name === employeeName)) return errorResult8(`Employee "${employeeName}" already exists.`);
7761
7834
  try {
7762
- const { assertEmployeeLimit: assertEmployeeLimit2 } = await import("./plan-limits-7L75PB33.js");
7835
+ const { assertEmployeeLimit: assertEmployeeLimit2 } = await import("./plan-limits-KUTODKG6.js");
7763
7836
  await assertEmployeeLimit2();
7764
7837
  } catch (e) {
7765
7838
  return errorResult8(e instanceof Error ? e.message : "Employee limit reached.");
@@ -7800,7 +7873,7 @@ You are ${employeeName}. Role: ${role}.`, "utf-8");
7800
7873
  }
7801
7874
  try {
7802
7875
  const { generateSessionWrappers } = await import("./lib/session-wrappers.js");
7803
- const { resolvePackageRoot } = await import("./installer-SSR2OOLO.js");
7876
+ const { resolvePackageRoot } = await import("./installer-W4NY3OBF.js");
7804
7877
  generateSessionWrappers(resolvePackageRoot());
7805
7878
  } catch {
7806
7879
  }
@@ -7836,7 +7909,7 @@ function registerListWikiPages(server) {
7836
7909
  }
7837
7910
  },
7838
7911
  async ({ workspace, folder }) => {
7839
- const { assertFeature: assertFeature2 } = await import("./plan-limits-7L75PB33.js");
7912
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-KUTODKG6.js");
7840
7913
  await assertFeature2("wiki");
7841
7914
  const apiUrl = process.env.EXE_WIKI_API_URL;
7842
7915
  const apiKey = process.env.EXE_WIKI_API_KEY;
@@ -7936,7 +8009,7 @@ function registerGetWikiPage(server) {
7936
8009
  }
7937
8010
  },
7938
8011
  async ({ workspace, document_id, title }) => {
7939
- const { assertFeature: assertFeature2 } = await import("./plan-limits-7L75PB33.js");
8012
+ const { assertFeature: assertFeature2 } = await import("./plan-limits-KUTODKG6.js");
7940
8013
  await assertFeature2("wiki");
7941
8014
  const apiUrl = process.env.EXE_WIKI_API_URL;
7942
8015
  const apiKey = process.env.EXE_WIKI_API_KEY;
@@ -8131,7 +8204,7 @@ function registerWiki(server) {
8131
8204
  if (!legacyToolName) return errorResult9(`Unknown wiki action: ${String(input.action)}`);
8132
8205
  const { action: _action, user_id, ...legacyArgs } = input;
8133
8206
  if (user_id && legacyArgs.workspace) {
8134
- const { checkWikiAccess } = await import("./wiki-acl-R4IIHICT.js");
8207
+ const { checkWikiAccess } = await import("./wiki-acl-5EC5VNYG.js");
8135
8208
  const { allowed } = await checkWikiAccess(
8136
8209
  String(user_id),
8137
8210
  String(legacyArgs.workspace),
@@ -8171,7 +8244,8 @@ function rowToBehavior2(r) {
8171
8244
  vector: null,
8172
8245
  created_by_agent: r.created_by_agent ? String(r.created_by_agent) : null,
8173
8246
  created_by_device: r.created_by_device ? String(r.created_by_device) : null,
8174
- source_session_id: r.source_session_id ? String(r.source_session_id) : null
8247
+ source_session_id: r.source_session_id ? String(r.source_session_id) : null,
8248
+ device_id: r.device_id ? String(r.device_id) : null
8175
8249
  };
8176
8250
  }
8177
8251
  function registerBehavior(server) {
@@ -8188,10 +8262,11 @@ function registerBehavior(server) {
8188
8262
  agent_id: z72.string().optional().describe("Employee name. Defaults to current agent. Pass 'all' to list everyone's (list only)."),
8189
8263
  project_name: z72.string().optional().describe("Defaults to current project. Pass 'global' for a behavior that applies everywhere (store)."),
8190
8264
  behavior_id: z72.string().optional().describe("UUID of the behavior (deactivate)"),
8191
- shared_skills: z72.boolean().optional().describe("When true with action=list, include skills (domain='skill') from ALL agents. Default: false.")
8265
+ shared_skills: z72.boolean().optional().describe("When true with action=list, include skills (domain='skill') from ALL agents. Default: false."),
8266
+ device_scoped: z72.boolean().optional().describe("When true, behavior only loads on this device. Default false (global \u2014 loads everywhere). (store)")
8192
8267
  }
8193
8268
  },
8194
- async ({ action, content, domain, priority, agent_id, project_name, behavior_id, shared_skills }) => {
8269
+ async ({ action, content, domain, priority, agent_id, project_name, behavior_id, shared_skills, device_scoped }) => {
8195
8270
  if (action === "list") {
8196
8271
  if (shared_skills) {
8197
8272
  const currentAgent = agent_id ?? getActiveAgent().agentId;
@@ -8319,7 +8394,8 @@ ${lines.join("\n")}`
8319
8394
  content,
8320
8395
  domain: domain ?? void 0,
8321
8396
  projectName: resolvedProject,
8322
- priority: priority ?? void 0
8397
+ priority: priority ?? void 0,
8398
+ deviceScoped: device_scoped ?? false
8323
8399
  });
8324
8400
  let responseText = `Behavior stored for ${resolvedAgent}. ID: ${id}`;
8325
8401
  if (domain) {
@@ -8797,7 +8873,6 @@ function registerGetDecision(server) {
8797
8873
  import { z as z78 } from "zod";
8798
8874
 
8799
8875
  // src/lib/people.ts
8800
- init_config();
8801
8876
  import { readFile, writeFile, mkdir } from "fs/promises";
8802
8877
  import { existsSync as existsSync8, readFileSync as readFileSync7 } from "fs";
8803
8878
  import path13 from "path";
@@ -8932,7 +9007,7 @@ async function getExeDbReadClient() {
8932
9007
  const readonlyUrl = process.env.MCP_READONLY_DATABASE_URL;
8933
9008
  if (readonlyUrl) {
8934
9009
  const { Pool } = await import("pg");
8935
- const { pgSslConfig } = await import("./pg-ssl-4ZNXKUNH.js");
9010
+ const { pgSslConfig } = await import("./pg-ssl-7JXQFL4I.js");
8936
9011
  const pool = new Pool({ connectionString: readonlyUrl, ...pgSslConfig() });
8937
9012
  return {
8938
9013
  async $queryRawUnsafe(query, ...values) {
@@ -9180,7 +9255,6 @@ function registerRawData(server) {
9180
9255
  }
9181
9256
 
9182
9257
  // src/mcp/tools/company-actions.ts
9183
- init_config();
9184
9258
  import { z as z81 } from "zod";
9185
9259
  var FETCH_TIMEOUT_MS4 = 15e3;
9186
9260
  var ACTION = z81.enum(["list_connectors", "describe_connector", "preview", "execute", "list_runs", "get_run"]);
@@ -9301,7 +9375,7 @@ function registerWorkflowTool(server) {
9301
9375
  getWorkflowInstance,
9302
9376
  listWorkflowInstances,
9303
9377
  approveWorkflowStep
9304
- } = await import("./workflow-engine-GISKRYSO.js");
9378
+ } = await import("./workflow-engine-KAKVU7NC.js");
9305
9379
  try {
9306
9380
  switch (input.action) {
9307
9381
  case "create_workflow": {
@@ -9553,7 +9627,6 @@ import { z as z84 } from "zod";
9553
9627
  import crypto5 from "crypto";
9554
9628
  import { mkdir as mkdir2, writeFile as writeFile2 } from "fs/promises";
9555
9629
  import path16 from "path";
9556
- init_config();
9557
9630
  var CLASSIFICATION = z84.enum([
9558
9631
  "upstream_bug",
9559
9632
  "customer_customization",
@@ -9624,7 +9697,7 @@ function prepareUpstreamPayload(payload) {
9624
9697
  async function maybeSendUpstream(payload) {
9625
9698
  const config = await loadConfig();
9626
9699
  const routerUrl = process.env.API_ROUTER_URL?.replace(/\/+$/, "");
9627
- const endpoint2 = config.support?.bugReportEndpoint || process.env.EXE_BUG_REPORT_ENDPOINT || (routerUrl ? `${routerUrl}/v1/support/bug-reports` : "https://cloud.askexe.com/v1/support/bug-reports");
9700
+ const endpoint2 = config.support?.bugReportEndpoint || process.env.EXE_BUG_REPORT_ENDPOINT || (routerUrl ? `${routerUrl}/v1/support/bug-reports` : "https://api.askexe.com/v1/support/bug-reports");
9628
9701
  const token = config.support?.bugReportToken || process.env.EXE_BUG_REPORT_TOKEN;
9629
9702
  const licenseKey = loadLicense() || process.env.EXE_LICENSE_KEY || config.cloud?.apiKey;
9630
9703
  const licenseToken = readCachedLicenseToken();
@@ -9804,7 +9877,6 @@ import { z as z85 } from "zod";
9804
9877
  import crypto6 from "crypto";
9805
9878
  import { mkdir as mkdir3, writeFile as writeFile3 } from "fs/promises";
9806
9879
  import path17 from "path";
9807
- init_config();
9808
9880
  var CATEGORY = z85.enum([
9809
9881
  "upstream_feature",
9810
9882
  "local_customization",
@@ -9843,7 +9915,7 @@ function buildMarkdown2(input) {
9843
9915
  async function maybeSendUpstream2(payload) {
9844
9916
  const config = await loadConfig();
9845
9917
  const routerUrl = process.env.API_ROUTER_URL?.replace(/\/+$/, "");
9846
- const endpoint2 = config.support?.featureRequestEndpoint || process.env.EXE_FEATURE_REQUEST_ENDPOINT || (routerUrl ? `${routerUrl}/v1/support/feature-requests` : "https://cloud.askexe.com/v1/support/feature-requests");
9918
+ const endpoint2 = config.support?.featureRequestEndpoint || process.env.EXE_FEATURE_REQUEST_ENDPOINT || (routerUrl ? `${routerUrl}/v1/support/feature-requests` : "https://api.askexe.com/v1/support/feature-requests");
9847
9919
  const token = config.support?.featureRequestToken || process.env.EXE_FEATURE_REQUEST_TOKEN;
9848
9920
  const licenseKey = loadLicense() || process.env.EXE_LICENSE_KEY || config.cloud?.apiKey;
9849
9921
  const licenseToken = readCachedLicenseToken();
@@ -10066,7 +10138,7 @@ function registerSupportTools(server) {
10066
10138
  isError: true
10067
10139
  };
10068
10140
  }
10069
- const endpoint2 = new URL("https://cloud.askexe.com/v1/support/my-reports");
10141
+ const endpoint2 = new URL("https://api.askexe.com/v1/support/my-reports");
10070
10142
  endpoint2.searchParams.set("status", status2);
10071
10143
  endpoint2.searchParams.set("limit", String(limit));
10072
10144
  const headers = { "content-type": "application/json" };
@@ -10132,7 +10204,7 @@ function registerSupportTools(server) {
10132
10204
  isError: true
10133
10205
  };
10134
10206
  }
10135
- const endpoint2 = new URL("https://cloud.askexe.com/v1/support/my-feature-requests");
10207
+ const endpoint2 = new URL("https://api.askexe.com/v1/support/my-feature-requests");
10136
10208
  endpoint2.searchParams.set("status", status2);
10137
10209
  endpoint2.searchParams.set("limit", String(limit));
10138
10210
  const headers = { "content-type": "application/json" };
@@ -10300,7 +10372,20 @@ function registerCliParityTools(server) {
10300
10372
  description: "Check npm for an available exe-os update without installing it.",
10301
10373
  inputSchema: {}
10302
10374
  }, async () => {
10303
- const packageRoot = new URL("../../..", import.meta.url).pathname;
10375
+ let packageRoot = new URL("../../..", import.meta.url).pathname;
10376
+ const { existsSync: existsSync10 } = await import("fs");
10377
+ const { dirname, join: join2, parse } = await import("path");
10378
+ if (!existsSync10(join2(packageRoot, "package.json"))) {
10379
+ let dir = dirname(new URL(import.meta.url).pathname);
10380
+ const { root } = parse(dir);
10381
+ while (dir !== root) {
10382
+ if (existsSync10(join2(dir, "package.json"))) {
10383
+ packageRoot = dir;
10384
+ break;
10385
+ }
10386
+ dir = dirname(dir);
10387
+ }
10388
+ }
10304
10389
  const info = checkForUpdate(packageRoot);
10305
10390
  const text3 = info.error ? `Update check failed: ${info.error}` : info.updateAvailable ? `Update available: v${info.localVersion} \u2192 v${info.remoteVersion}` : `exe-os is up to date (v${info.localVersion})`;
10306
10391
  return result2(text3, { ok: !info.error, ...info }, Boolean(info.error));
@@ -10468,6 +10553,12 @@ function registerCodeContext(server) {
10468
10553
  const opts = { projectRoot: project_root, force, maxFiles: max_files };
10469
10554
  if (action === "index") {
10470
10555
  const index = buildCodeContextIndex(opts);
10556
+ let graphExtract;
10557
+ try {
10558
+ const { autoExtractGraphEntities } = await import("./graph-auto-extract-HWZ5GVXZ.js");
10559
+ graphExtract = await autoExtractGraphEntities(opts.projectRoot);
10560
+ } catch {
10561
+ }
10471
10562
  return jsonResult({
10472
10563
  projectRoot: index.projectRoot,
10473
10564
  branch: index.branch,
@@ -10475,6 +10566,7 @@ function registerCodeContext(server) {
10475
10566
  files: Object.keys(index.files).length,
10476
10567
  symbols: Object.values(index.files).reduce((sum, file) => sum + file.symbols.length, 0),
10477
10568
  imports: Object.values(index.files).reduce((sum, file) => sum + file.resolvedImports.length, 0),
10569
+ ...graphExtract ? { graphAutoExtract: `${graphExtract.entities} entities, ${graphExtract.relationships} relationships` } : {},
10478
10570
  note: "Structural index only. Use action=index_embed to also generate vector embeddings for semantic search."
10479
10571
  });
10480
10572
  }
@@ -10539,7 +10631,7 @@ function registerCodeContext(server) {
10539
10631
 
10540
10632
  // src/mcp/tools/support-inbox.ts
10541
10633
  import { z as z90 } from "zod";
10542
- var DEFAULT_ENDPOINT = "https://cloud.askexe.com/admin/support/bug-reports";
10634
+ var DEFAULT_ENDPOINT = "https://api.askexe.com/admin/support/bug-reports";
10543
10635
  var STATUS = z90.enum(["open", "triaged", "fixed", "closed", "wontfix"]);
10544
10636
  function adminToken() {
10545
10637
  return process.env.ASKEXE_SUPPORT_ADMIN_TOKEN || process.env.EXE_SUPPORT_ADMIN_TOKEN;
@@ -10860,6 +10952,7 @@ function registerSupportConsolidated(server) {
10860
10952
  linked_task_id: z93.string().optional().describe("Linked task ID for triage"),
10861
10953
  linked_commit: z93.string().optional().describe("Linked commit hash for triage"),
10862
10954
  fixed_version: z93.string().optional().describe("Version that fixes this bug"),
10955
+ shipped_version: z93.string().optional().describe("Version that ships this feature (features only)"),
10863
10956
  limit: z93.coerce.number().optional().describe("Max results")
10864
10957
  }
10865
10958
  },
@@ -10936,12 +11029,12 @@ function buildHandlers9() {
10936
11029
  function registerDiagnostics(server) {
10937
11030
  const handlers = buildHandlers9();
10938
11031
  const toolNames = Array.from(handlers.keys());
10939
- toolNames.push("tool_search", "drift", "merge_agent_memories");
11032
+ toolNames.push("tool_search", "drift", "merge_agent_memories", "agent_liveness");
10940
11033
  server.registerTool(
10941
11034
  "diagnostics",
10942
11035
  {
10943
11036
  title: "Diagnostics",
10944
- description: `System diagnostics and admin operations. Actions: ${toolNames.join(", ")}. Covers health checks, update status, cloud status, key management, employee rename, semantic tool discovery (tool_search), identity drift detection (drift), and agent memory reassignment (merge_agent_memories).`,
11037
+ description: `System diagnostics and admin operations. Actions: ${toolNames.join(", ")}. Covers health checks, update status, cloud status, key management, employee rename, semantic tool discovery (tool_search), identity drift detection (drift), agent liveness monitoring (agent_liveness), and agent memory reassignment (merge_agent_memories).`,
10945
11038
  inputSchema: {
10946
11039
  action: z94.string().describe(`Diagnostic operation: ${toolNames.join(", ")}`),
10947
11040
  // Pass-through params used by various sub-tools
@@ -10958,6 +11051,24 @@ function registerDiagnostics(server) {
10958
11051
  },
10959
11052
  async (input, extra) => {
10960
11053
  const action = input.action;
11054
+ if (action === "agent_liveness") {
11055
+ try {
11056
+ const { getAgentLivenessReport } = await import("./agent-heartbeat-I5UPGXAU.js");
11057
+ const report = getAgentLivenessReport();
11058
+ if (report.length === 0) {
11059
+ return { content: [{ type: "text", text: "No agent heartbeats recorded yet. Agents send heartbeats via POST /v1/heartbeat every 60s." }] };
11060
+ }
11061
+ const lines = report.map((r) => {
11062
+ const icon = r.status === "alive" ? "\u{1F7E2}" : r.status === "stale" ? "\u{1F7E0}" : "\u{1F534}";
11063
+ const age = r.ageSeconds != null ? `${r.ageSeconds}s ago` : "never";
11064
+ const meta = r.meta?.taskId ? ` (task: ${r.meta.taskId.slice(0, 8)})` : "";
11065
+ return `${icon} ${r.agentId} [${r.sessionName}] \u2014 ${r.status} (${age})${meta}`;
11066
+ });
11067
+ return { content: [{ type: "text", text: lines.join("\n") }] };
11068
+ } catch (err) {
11069
+ return { content: [{ type: "text", text: `agent_liveness failed: ${err instanceof Error ? err.message : String(err)}` }], isError: true };
11070
+ }
11071
+ }
10961
11072
  if (action === "tool_search") {
10962
11073
  return handleToolSearch(input);
10963
11074
  }