@askexenow/exe-os 0.9.227 → 0.9.228

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 (446) hide show
  1. package/dist/active-agent-TV77LOCD.js +24 -0
  2. package/dist/active-agent-ZAA4EQNM.js +25 -0
  3. package/dist/agent-context-ZPDQOAD2.js +9 -0
  4. package/dist/agent-heartbeat-AWTVGE4C.js +60 -0
  5. package/dist/agent-loop-7UM2ENGU.js +10 -0
  6. package/dist/agentic-ontology-QBHUIJPH.js +25 -0
  7. package/dist/asana-JN2UF47A.js +129 -0
  8. package/dist/assets/ghostty.conf +83 -0
  9. package/dist/assets/statusline-command.sh +44 -0
  10. package/dist/assets/tmux.conf +56 -0
  11. package/dist/assets/wezterm.lua +68 -0
  12. package/dist/backfill-metadata-R77LUJHF.js +596 -0
  13. package/dist/background-jobs-VTOMOTNA.js +25 -0
  14. package/dist/bash-XA65M6T6.js +8 -0
  15. package/dist/behaviors-P5SSPIVO.js +24 -0
  16. package/dist/bin/age-ontology-load.js +85 -0
  17. package/dist/bin/agentic-ontology-backfill.js +84 -0
  18. package/dist/bin/agentic-reflection-backfill.js +45 -0
  19. package/dist/bin/agentic-semantic-label.js +193 -0
  20. package/dist/bin/backfill-conversations.js +399 -0
  21. package/dist/bin/backfill-responses.js +227 -0
  22. package/dist/bin/backfill-vectors.js +149 -0
  23. package/dist/bin/bulk-sync-postgres.js +92 -0
  24. package/dist/bin/cc-doctor.js +51 -0
  25. package/dist/bin/cleanup-stale-review-tasks.js +139 -0
  26. package/dist/bin/cli.js +1076 -0
  27. package/dist/bin/customer-readiness.js +389 -0
  28. package/dist/bin/deferred-daemon-restart.js +123 -0
  29. package/dist/bin/exe-agent-config.js +87 -0
  30. package/dist/bin/exe-agent.js +190 -0
  31. package/dist/bin/exe-assign.js +93 -0
  32. package/dist/bin/exe-boot.js +1114 -0
  33. package/dist/bin/exe-call.js +127 -0
  34. package/dist/bin/exe-cloud.js +484 -0
  35. package/dist/bin/exe-dispatch.js +72 -0
  36. package/dist/bin/exe-doctor.js +48 -0
  37. package/dist/bin/exe-export-behaviors.js +48 -0
  38. package/dist/bin/exe-forget.js +204 -0
  39. package/dist/bin/exe-gateway.js +1137 -0
  40. package/dist/bin/exe-healthcheck.js +14 -0
  41. package/dist/bin/exe-heartbeat.js +233 -0
  42. package/dist/bin/exe-kill.js +126 -0
  43. package/dist/bin/exe-launch-agent.js +678 -0
  44. package/dist/bin/exe-new-employee.js +160 -0
  45. package/dist/bin/exe-pending-messages.js +60 -0
  46. package/dist/bin/exe-pending-notifications.js +107 -0
  47. package/dist/bin/exe-pending-reviews.js +81 -0
  48. package/dist/bin/exe-rename.js +219 -0
  49. package/dist/bin/exe-repo-drift.js +95 -0
  50. package/dist/bin/exe-review.js +251 -0
  51. package/dist/bin/exe-search.js +65 -0
  52. package/dist/bin/exe-session-cleanup.js +331 -0
  53. package/dist/bin/exe-settings.js +364 -0
  54. package/dist/bin/exe-start-codex.js +404 -0
  55. package/dist/bin/exe-start-opencode.js +233 -0
  56. package/dist/bin/exe-start.sh +194 -0
  57. package/dist/bin/exe-status.js +34 -0
  58. package/dist/bin/exe-support.js +17 -0
  59. package/dist/bin/exe-team.js +83 -0
  60. package/dist/bin/generate-hook-manifest.js +30 -0
  61. package/dist/bin/git-sweep.js +74 -0
  62. package/dist/bin/graph-backfill.js +78 -0
  63. package/dist/bin/graph-export.js +66 -0
  64. package/dist/bin/graph-layer-benchmark.js +113 -0
  65. package/dist/bin/import-history.js +84 -0
  66. package/dist/bin/install-launchd.js +41 -0
  67. package/dist/bin/install.js +422 -0
  68. package/dist/bin/intercom-check.js +137 -0
  69. package/dist/bin/list-providers.js +128 -0
  70. package/dist/bin/mcp-sessions.js +194 -0
  71. package/dist/bin/orchestration-metrics.js +61 -0
  72. package/dist/bin/postgres-agentic-reflection-backfill.js +123 -0
  73. package/dist/bin/postgres-agentic-semantic-backfill.js +126 -0
  74. package/dist/bin/pre-build-guard.js +98 -0
  75. package/dist/bin/pre-publish.js +224 -0
  76. package/dist/bin/registry-proxy.js +44 -0
  77. package/dist/bin/scan-tasks.js +265 -0
  78. package/dist/bin/setup.js +19 -0
  79. package/dist/bin/shard-migrate.js +162 -0
  80. package/dist/bin/stack-update.js +372 -0
  81. package/dist/bin/update.js +354 -0
  82. package/dist/bin/verify-stack.js +389 -0
  83. package/dist/bin/vps-backup.js +170 -0
  84. package/dist/bin/vps-health-gate.js +232 -0
  85. package/dist/branding-I2TDZFUH.js +97 -0
  86. package/dist/browser-sanitizer-MRSSEJZE.js +229 -0
  87. package/dist/browser-session-store-RF45DSJR.js +232 -0
  88. package/dist/capacity-monitor-VHBHMKF7.js +48 -0
  89. package/dist/catchup-brief-LBCPHOKB.js +150 -0
  90. package/dist/chunk-2VZ6SY2R.js +142 -0
  91. package/dist/chunk-3IRWSEMI.js +1088 -0
  92. package/dist/chunk-3JP3FY33.js +258 -0
  93. package/dist/chunk-3VJHNEPN.js +262 -0
  94. package/dist/chunk-426NVFWA.js +128 -0
  95. package/dist/chunk-46SQTBQW.js +207 -0
  96. package/dist/chunk-4JERP7NT.js +132 -0
  97. package/dist/chunk-557C2IGL.js +0 -0
  98. package/dist/chunk-5BS5ELMC.js +85 -0
  99. package/dist/chunk-5NFBE376.js +391 -0
  100. package/dist/chunk-6A7P74QV.js +53 -0
  101. package/dist/chunk-6ES7UEXD.js +77 -0
  102. package/dist/chunk-6KFICEAT.js +20 -0
  103. package/dist/chunk-6MP5NOOR.js +151 -0
  104. package/dist/chunk-6Y4B3QF6.js +19 -0
  105. package/dist/chunk-7GDCFV36.js +129 -0
  106. package/dist/chunk-7LKJBYBN.js +495 -0
  107. package/dist/chunk-7NNXBDOO.js +541 -0
  108. package/dist/chunk-7OM54FQY.js +627 -0
  109. package/dist/chunk-7WBEMFHW.js +1919 -0
  110. package/dist/chunk-A62JW3VH.js +382 -0
  111. package/dist/chunk-AHMUF6RO.js +147 -0
  112. package/dist/chunk-AJWFPKQS.js +573 -0
  113. package/dist/chunk-AR7J6K6W.js +363 -0
  114. package/dist/chunk-AVE2B4DQ.js +140 -0
  115. package/dist/chunk-AZSCW64F.js +190 -0
  116. package/dist/chunk-B3IPZ7DJ.js +38 -0
  117. package/dist/chunk-CDN4PWHZ.js +330 -0
  118. package/dist/chunk-CEGFVFT3.js +70 -0
  119. package/dist/chunk-CHCA3ZM2.js +167 -0
  120. package/dist/chunk-CHUGUZV3.js +90 -0
  121. package/dist/chunk-CLGB3FGL.js +48 -0
  122. package/dist/chunk-CVYC6DUW.js +78 -0
  123. package/dist/chunk-CX6GL3ZJ.js +274 -0
  124. package/dist/chunk-D2DRHXSV.js +197 -0
  125. package/dist/chunk-D4IVTUNN.js +377 -0
  126. package/dist/chunk-DD2ABSIG.js +348 -0
  127. package/dist/chunk-DGOGCPYU.js +390 -0
  128. package/dist/chunk-DHHTLRXE.js +1020 -0
  129. package/dist/chunk-E6ORBQHP.js +225 -0
  130. package/dist/chunk-ECDKU54I.js +240 -0
  131. package/dist/chunk-ECGTESAP.js +236 -0
  132. package/dist/chunk-ECSNSHZ7.js +431 -0
  133. package/dist/chunk-ECYFNBCU.js +290 -0
  134. package/dist/chunk-EGWPJQRQ.js +159 -0
  135. package/dist/chunk-EIT6J37V.js +119 -0
  136. package/dist/chunk-EQSQ4HBW.js +9 -0
  137. package/dist/chunk-ETSREHYC.js +55 -0
  138. package/dist/chunk-F6OEJ4AL.js +75 -0
  139. package/dist/chunk-F7LU65PQ.js +33 -0
  140. package/dist/chunk-FJV6WJS6.js +76 -0
  141. package/dist/chunk-FLSASUV3.js +177 -0
  142. package/dist/chunk-FV5FDWL3.js +121 -0
  143. package/dist/chunk-FWFFZGSC.js +94 -0
  144. package/dist/chunk-FXU7JOXK.js +6 -0
  145. package/dist/chunk-GAHM4SUR.js +171 -0
  146. package/dist/chunk-GFCQJZTO.js +1051 -0
  147. package/dist/chunk-GGV3PFUW.js +41 -0
  148. package/dist/chunk-GGZ4NTZH.js +333 -0
  149. package/dist/chunk-GJV3WDWM.js +14 -0
  150. package/dist/chunk-GMIXDGAT.js +280 -0
  151. package/dist/chunk-GNHN5HRQ.js +40 -0
  152. package/dist/chunk-GP6G6EQI.js +632 -0
  153. package/dist/chunk-GST2EPOG.js +2017 -0
  154. package/dist/chunk-GUMRIUI5.js +63 -0
  155. package/dist/chunk-GVP5U4WL.js +113 -0
  156. package/dist/chunk-H32Z73OY.js +81 -0
  157. package/dist/chunk-HF25XPZE.js +83 -0
  158. package/dist/chunk-HFRT4QZS.js +50 -0
  159. package/dist/chunk-HOKOOBDL.js +52 -0
  160. package/dist/chunk-HQMEOIUJ.js +69 -0
  161. package/dist/chunk-HYZV25LY.js +34 -0
  162. package/dist/chunk-I7AW4237.js +251 -0
  163. package/dist/chunk-IONVLDMB.js +297 -0
  164. package/dist/chunk-IPWTDGWM.js +356 -0
  165. package/dist/chunk-IQT43SDJ.js +357 -0
  166. package/dist/chunk-IUHWJRDM.js +614 -0
  167. package/dist/chunk-J4Y6FQ77.js +54 -0
  168. package/dist/chunk-JGGCKDMB.js +1090 -0
  169. package/dist/chunk-JGNCI7BA.js +159 -0
  170. package/dist/chunk-JQ6TLNIV.js +133 -0
  171. package/dist/chunk-JRXV6UES.js +214 -0
  172. package/dist/chunk-K2YWCFZ3.js +147 -0
  173. package/dist/chunk-KCUYRZSX.js +72 -0
  174. package/dist/chunk-KH5Y6RR4.js +360 -0
  175. package/dist/chunk-KQMP6TJZ.js +157 -0
  176. package/dist/chunk-KX6LS6XO.js +97 -0
  177. package/dist/chunk-L24HYX62.js +498 -0
  178. package/dist/chunk-L3TB7CC3.js +170 -0
  179. package/dist/chunk-LWVZLTMD.js +412 -0
  180. package/dist/chunk-LXDNFQNN.js +1073 -0
  181. package/dist/chunk-LYH5HE24.js +73 -0
  182. package/dist/chunk-M43RSLT4.js +213 -0
  183. package/dist/chunk-MLXJ5EZG.js +90 -0
  184. package/dist/chunk-MP2AFCGL.js +53 -0
  185. package/dist/chunk-MQPW7X4P.js +403 -0
  186. package/dist/chunk-MVW62NIZ.js +20 -0
  187. package/dist/chunk-MZIGUUDQ.js +42 -0
  188. package/dist/chunk-N2SIOC5S.js +463 -0
  189. package/dist/chunk-N5RRQOAC.js +134 -0
  190. package/dist/chunk-NB5HOHLB.js +135 -0
  191. package/dist/chunk-NBEX5NG6.js +284 -0
  192. package/dist/chunk-NC56276G.js +30 -0
  193. package/dist/chunk-NGJ5FIQV.js +3511 -0
  194. package/dist/chunk-NGP6LSV2.js +25 -0
  195. package/dist/chunk-NGVOA6ZQ.js +84 -0
  196. package/dist/chunk-NI2X6SFD.js +221 -0
  197. package/dist/chunk-NOSCT6NZ.js +210 -0
  198. package/dist/chunk-NRFVWJHP.js +575 -0
  199. package/dist/chunk-O377P7GM.js +100 -0
  200. package/dist/chunk-ONKIWA3R.js +249 -0
  201. package/dist/chunk-OPU3NYOO.js +55 -0
  202. package/dist/chunk-ORCCI2VV.js +140 -0
  203. package/dist/chunk-OYNKIAVW.js +181 -0
  204. package/dist/chunk-P7E37KXE.js +244 -0
  205. package/dist/chunk-PKJTWKKN.js +58 -0
  206. package/dist/chunk-PRKVT4KN.js +90 -0
  207. package/dist/chunk-PWMMIGVQ.js +332 -0
  208. package/dist/chunk-Q3V7K4ME.js +149 -0
  209. package/dist/chunk-Q7RGLXQO.js +574 -0
  210. package/dist/chunk-QGGH7LOU.js +93 -0
  211. package/dist/chunk-QI4IXJN7.js +132 -0
  212. package/dist/chunk-QNHI4XDN.js +346 -0
  213. package/dist/chunk-R4WMF32C.js +81 -0
  214. package/dist/chunk-R5U7XKVJ.js +16 -0
  215. package/dist/chunk-RJT7H2KR.js +349 -0
  216. package/dist/chunk-RKDATCH4.js +813 -0
  217. package/dist/chunk-SD6IDXF7.js +33 -0
  218. package/dist/chunk-SEPE2UMS.js +667 -0
  219. package/dist/chunk-SH45SJQW.js +0 -0
  220. package/dist/chunk-SUNYJ6YE.js +204 -0
  221. package/dist/chunk-SVXDCELZ.js +163 -0
  222. package/dist/chunk-TMEE7AT7.js +72 -0
  223. package/dist/chunk-TNTFEWU5.js +361 -0
  224. package/dist/chunk-TWR6EV57.js +3753 -0
  225. package/dist/chunk-U7XLP37W.js +85 -0
  226. package/dist/chunk-UBRE5MK7.js +183 -0
  227. package/dist/chunk-UBWE5LSJ.js +227 -0
  228. package/dist/chunk-UEBRQCJ7.js +1345 -0
  229. package/dist/chunk-UOI5DAYH.js +128 -0
  230. package/dist/chunk-V4TZI6EO.js +60 -0
  231. package/dist/chunk-VUVSYEGB.js +731 -0
  232. package/dist/chunk-X2Z5GT3V.js +118 -0
  233. package/dist/chunk-X2ZDES26.js +56 -0
  234. package/dist/chunk-X3AVWFWW.js +294 -0
  235. package/dist/chunk-XEKO37NM.js +43 -0
  236. package/dist/chunk-Y5AX66S3.js +1051 -0
  237. package/dist/chunk-YADYM2DE.js +42 -0
  238. package/dist/chunk-YGAAZN3E.js +47 -0
  239. package/dist/chunk-YIDLK73D.js +13097 -0
  240. package/dist/chunk-YLCSHPZE.js +123 -0
  241. package/dist/chunk-YSU7JB7H.js +0 -0
  242. package/dist/chunk-YZFZDJWZ.js +107 -0
  243. package/dist/chunk-YZKJLGWL.js +169 -0
  244. package/dist/chunk-ZCSI2XTD.js +204 -0
  245. package/dist/chunk-ZVSG2KKG.js +106 -0
  246. package/dist/co-activation-SEYZ6WBU.js +71 -0
  247. package/dist/co-occurrence-AO3AT5JK.js +73 -0
  248. package/dist/code-context-index-KHUYATRB.js +29 -0
  249. package/dist/content-extractor-CUJOBFBU.js +9 -0
  250. package/dist/conversation-entity-extractor-TW4W57K4.js +114 -0
  251. package/dist/conversation-wiki-populator-GNFRTS7X.js +105 -0
  252. package/dist/core-memory-SUM5RZX2.js +110 -0
  253. package/dist/crdt-sync-X53T4NUI.js +33 -0
  254. package/dist/crm-bridge-NG5WJMGF.js +19 -0
  255. package/dist/crm-webhook-3UMCZDFK.js +10 -0
  256. package/dist/cto-delegation-gate-R3BYZCXG.js +205 -0
  257. package/dist/daemon-auth-WFQMMNSD.js +13 -0
  258. package/dist/daemon-orchestration-JRA7CJGJ.js +133 -0
  259. package/dist/daemon-protocol-4FUHT5NH.js +17 -0
  260. package/dist/db-backup-STROKTGN.js +25 -0
  261. package/dist/devtools-J4QYYO7U.js +8 -0
  262. package/dist/discord-7UHIZNJ3.js +7 -0
  263. package/dist/dispatch-ack-RMVFHO4I.js +13 -0
  264. package/dist/dreaming-6POCE2CN.js +12 -0
  265. package/dist/email-T6PQUUY6.js +137 -0
  266. package/dist/entity-boost-7MB2IYAE.js +332 -0
  267. package/dist/exe-drift-FO4S2MIW.js +67 -0
  268. package/dist/exe-export-XRDCOZM2.js +72 -0
  269. package/dist/exe-import-QBTXHGTH.js +75 -0
  270. package/dist/exe-key-UGOHWRYG.js +573 -0
  271. package/dist/exe-org-JRBBON5H.js +73 -0
  272. package/dist/exe-snapshot-Z4AZPSGS.js +145 -0
  273. package/dist/factory-UQSRMKJW.js +67 -0
  274. package/dist/fast-db-init-CAC7HD5B.js +7 -0
  275. package/dist/file-edit-YORRFENG.js +8 -0
  276. package/dist/file-read-RMQFDE5L.js +8 -0
  277. package/dist/file-write-VO4MQW5Y.js +8 -0
  278. package/dist/founder-context-3N6BMG7B.js +96 -0
  279. package/dist/gateway/index.js +148 -0
  280. package/dist/gateway-client-V7NH35Q2.js +11 -0
  281. package/dist/git-staleness-UMHQDPQU.js +109 -0
  282. package/dist/git-task-sweep-WZ3LH6EV.js +39 -0
  283. package/dist/glob-2LXRC3F5.js +7 -0
  284. package/dist/global-procedures-NSZQNWXA.js +19 -0
  285. package/dist/graph-auto-extract-A5PHP3G3.js +161 -0
  286. package/dist/graph-query-YZ4RZEIL.js +26 -0
  287. package/dist/graph-rag-S5SBJW5J.js +29 -0
  288. package/dist/grep-OY7KCRLQ.js +7 -0
  289. package/dist/hook-integrity-OKSYTGVP.js +89 -0
  290. package/dist/hooks/bug-report-worker.js +179 -0
  291. package/dist/hooks/codex-stop-task-finalizer.js +258 -0
  292. package/dist/hooks/commit-complete.js +162 -0
  293. package/dist/hooks/error-recall.js +129 -0
  294. package/dist/hooks/exe-heartbeat-hook.js +78 -0
  295. package/dist/hooks/ingest-worker.js +51 -0
  296. package/dist/hooks/ingest.js +491 -0
  297. package/dist/hooks/instructions-loaded.js +119 -0
  298. package/dist/hooks/manifest.json +25 -0
  299. package/dist/hooks/notification.js +67 -0
  300. package/dist/hooks/post-compact.js +138 -0
  301. package/dist/hooks/post-tool-combined.js +152 -0
  302. package/dist/hooks/pre-compact.js +159 -0
  303. package/dist/hooks/pre-tool-use.js +512 -0
  304. package/dist/hooks/prompt-submit.js +699 -0
  305. package/dist/hooks/session-end.js +482 -0
  306. package/dist/hooks/session-start.js +362 -0
  307. package/dist/hooks/stop.js +332 -0
  308. package/dist/hooks/subagent-stop.js +85 -0
  309. package/dist/hooks/summary-worker.js +298 -0
  310. package/dist/hooks-RPTZV5KX.js +9 -0
  311. package/dist/imessage-CE5USLTI.js +7 -0
  312. package/dist/index.js +60 -0
  313. package/dist/installer-A5HRSX7C.js +37 -0
  314. package/dist/installer-JACODBI7.js +341 -0
  315. package/dist/installer-VWO4T7B6.js +295 -0
  316. package/dist/intercom-queue-USIXVVJQ.js +17 -0
  317. package/dist/key-backup-status-TVFMMWTT.js +39 -0
  318. package/dist/keyword-extractor-OGQRRVTB.js +11 -0
  319. package/dist/lib/agent-config.js +30 -0
  320. package/dist/lib/cloud-sync.js +103 -0
  321. package/dist/lib/cloudflare-dns.js +13 -0
  322. package/dist/lib/config.js +32 -0
  323. package/dist/lib/consolidation.js +38 -0
  324. package/dist/lib/crypto.js +13 -0
  325. package/dist/lib/database.js +31 -0
  326. package/dist/lib/db-daemon-client.js +141 -0
  327. package/dist/lib/db.js +31 -0
  328. package/dist/lib/device-registry.js +70 -0
  329. package/dist/lib/embed-worker.js +165 -0
  330. package/dist/lib/embedder.js +19 -0
  331. package/dist/lib/employee-templates.js +34 -0
  332. package/dist/lib/employees.js +63 -0
  333. package/dist/lib/error-detector.js +16 -0
  334. package/dist/lib/exe-daemon-client.js +25 -0
  335. package/dist/lib/exe-daemon.js +4417 -0
  336. package/dist/lib/file-grep.js +242 -0
  337. package/dist/lib/hybrid-search.js +28 -0
  338. package/dist/lib/identity-templates.js +650 -0
  339. package/dist/lib/identity.js +19 -0
  340. package/dist/lib/keychain.js +17 -0
  341. package/dist/lib/license.js +35 -0
  342. package/dist/lib/messaging.js +59 -0
  343. package/dist/lib/post-tool-memory.js +13 -0
  344. package/dist/lib/registry-proxy.js +15 -0
  345. package/dist/lib/reminders.js +16 -0
  346. package/dist/lib/runtime-table.js +9 -0
  347. package/dist/lib/schedules.js +24 -0
  348. package/dist/lib/session-registry.js +21 -0
  349. package/dist/lib/session-wrappers.js +7 -0
  350. package/dist/lib/skill-learning.js +29 -0
  351. package/dist/lib/status-brief.js +7 -0
  352. package/dist/lib/store.js +43 -0
  353. package/dist/lib/task-router.js +22 -0
  354. package/dist/lib/tasks.js +66 -0
  355. package/dist/lib/tmux-routing.js +70 -0
  356. package/dist/lib/tmux-status.js +29 -0
  357. package/dist/lib/tmux-transport.js +7 -0
  358. package/dist/lib/token-spend.js +12 -0
  359. package/dist/lib/transport.js +10 -0
  360. package/dist/lib/ws-auth.js +11 -0
  361. package/dist/lib/ws-client.js +190 -0
  362. package/dist/license-gate-7QVCYARF.js +14 -0
  363. package/dist/mcp/register-tools.js +102 -0
  364. package/dist/mcp/server.js +370 -0
  365. package/dist/mcp/tools/complete-reminder.js +13 -0
  366. package/dist/mcp/tools/create-reminder.js +13 -0
  367. package/dist/mcp/tools/create-task.js +34 -0
  368. package/dist/mcp/tools/deactivate-behavior.js +16 -0
  369. package/dist/mcp/tools/list-reminders.js +13 -0
  370. package/dist/mcp/tools/list-tasks.js +33 -0
  371. package/dist/mcp/tools/send-message.js +33 -0
  372. package/dist/mcp/tools/update-task.js +32 -0
  373. package/dist/mcp-diagnostics-5T5OZ52S.js +200 -0
  374. package/dist/mcp-disconnect-tracker-VINUVEZJ.js +79 -0
  375. package/dist/mcp-http-config-HMQWKLON.js +26 -0
  376. package/dist/memory-cards-N7LZUKHF.js +173 -0
  377. package/dist/memory-graph-extractor-GADBVHRC.js +16 -0
  378. package/dist/memory-poisoning-defense-LHAUEVKF.js +224 -0
  379. package/dist/memory-queue-WEVFXPZO.js +19 -0
  380. package/dist/memory-queue-client-5XBHYAQR.js +15 -0
  381. package/dist/memory-reflection-SHO2CV4L.js +237 -0
  382. package/dist/message-queue-client-FUKX43JD.js +92 -0
  383. package/dist/notifications-2UJNSWRB.js +44 -0
  384. package/dist/oauth-server-CCZPDTZJ.js +437 -0
  385. package/dist/orchestration-events-O7GWLTB2.js +24 -0
  386. package/dist/orchestration-phase-HXRKMZXM.js +23 -0
  387. package/dist/orchestrator-AXIBALJX.js +32 -0
  388. package/dist/permission-presets-UPVLJWZD.js +25 -0
  389. package/dist/permissions-C4EMHPDD.js +14 -0
  390. package/dist/pg-ssl-GD3332YS.js +7 -0
  391. package/dist/pipeline-router-3HUUYCV2.js +12 -0
  392. package/dist/plan-limits-TWD5VXMU.js +25 -0
  393. package/dist/prediction-log-C2BD3AHR.js +120 -0
  394. package/dist/preferences-5ARPMYE7.js +10 -0
  395. package/dist/preflight-TZOGLBZU.js +287 -0
  396. package/dist/project-boot-JIGOSGCN.js +254 -0
  397. package/dist/project-name-4SKOH2UO.js +10 -0
  398. package/dist/projection-worker-DUBKXKFL.js +877 -0
  399. package/dist/push-notifications-3GNJ5SZS.js +15 -0
  400. package/dist/reranker-4M6UVDRF.js +19 -0
  401. package/dist/review-gate-I66GDXNR.js +120 -0
  402. package/dist/review-polling-GCQV3TF6.js +123 -0
  403. package/dist/runtime/index.js +129 -0
  404. package/dist/self-query-router-QMK5ZSZR.js +188 -0
  405. package/dist/session-events-LW67P5MB.js +35 -0
  406. package/dist/session-kill-telemetry-JYEG7KSE.js +28 -0
  407. package/dist/session-scope-OOHP3EOV.js +85 -0
  408. package/dist/setup-wizard-XIPF5N2C.js +12 -0
  409. package/dist/shard-manager-ON2WWCRM.js +29 -0
  410. package/dist/signal-KF2LIO7Y.js +7 -0
  411. package/dist/signal-paths-5ZTWCBUX.js +19 -0
  412. package/dist/skill-refinement-I4UAAHLL.js +156 -0
  413. package/dist/slack-JRDUD5Z7.js +7 -0
  414. package/dist/stack-update-ZIMV4OEQ.js +50 -0
  415. package/dist/steward-gate-NZ5IUJFV.js +12 -0
  416. package/dist/support-outbox-HIJVUDA2.js +206 -0
  417. package/dist/task-enforcement-3DVLNFLX.js +292 -0
  418. package/dist/task-scanner-5OQBNC2N.js +11 -0
  419. package/dist/task-scope-NJIPLTZI.js +34 -0
  420. package/dist/tasks-crud-ET7MUU4V.js +76 -0
  421. package/dist/tasks-review-QPTYXCZX.js +46 -0
  422. package/dist/telegram-COCYUCT7.js +7 -0
  423. package/dist/telemetry-QKWQKAUC.js +9 -0
  424. package/dist/telemetry-upload-AL2IB3UE.js +609 -0
  425. package/dist/token-budget-TR2NN66K.js +83 -0
  426. package/dist/tool-capability-index-UUNF7VPA.js +10 -0
  427. package/dist/tool-gates-6A6LE4DZ.js +14 -0
  428. package/dist/tool-gates-RNWEH5IK.js +13 -0
  429. package/dist/tool-registry-KL24CAFR.js +11 -0
  430. package/dist/tool-telemetry-43ZIXZSK.js +17 -0
  431. package/dist/tui/App.js +10223 -0
  432. package/dist/tui-data-32PP76M6.js +161 -0
  433. package/dist/typed-messages-53Q7L3LB.js +17 -0
  434. package/dist/update-check-5IL5I3E2.js +11 -0
  435. package/dist/webhook-VXGIH7PN.js +96 -0
  436. package/dist/webhook-pipe-4WPFGGFD.js +114 -0
  437. package/dist/whatsapp-PSMKCDS7.js +9 -0
  438. package/dist/whatsapp-accounts-4OKWFRWL.js +15 -0
  439. package/dist/whatsapp-config-ZG5LX4O4.js +125 -0
  440. package/dist/wiki-acl-5OHOZNIX.js +111 -0
  441. package/dist/wiki-client-KE622HKY.js +157 -0
  442. package/dist/worker-gate-5ISRLLIM.js +21 -0
  443. package/dist/workflow-engine-UORUJRUR.js +28 -0
  444. package/dist/working-memory-Z3EB3FW6.js +77 -0
  445. package/dist/worktree-EPR6QDRF.js +25 -0
  446. package/package.json +1 -1
@@ -0,0 +1,13 @@
1
+ import {
2
+ registerCreateReminder
3
+ } from "../../chunk-NC56276G.js";
4
+ import "../../chunk-X2ZDES26.js";
5
+ import "../../chunk-NGJ5FIQV.js";
6
+ import "../../chunk-M43RSLT4.js";
7
+ import "../../chunk-FXU7JOXK.js";
8
+ import "../../chunk-TNTFEWU5.js";
9
+ import "../../chunk-LYH5HE24.js";
10
+ import "../../chunk-R5U7XKVJ.js";
11
+ export {
12
+ registerCreateReminder
13
+ };
@@ -0,0 +1,34 @@
1
+ import {
2
+ registerCreateTask
3
+ } from "../../chunk-N2SIOC5S.js";
4
+ import "../../chunk-MLXJ5EZG.js";
5
+ import "../../chunk-IUHWJRDM.js";
6
+ import "../../chunk-UBRE5MK7.js";
7
+ import "../../chunk-TWR6EV57.js";
8
+ import "../../chunk-GMIXDGAT.js";
9
+ import "../../chunk-QI4IXJN7.js";
10
+ import "../../chunk-4JERP7NT.js";
11
+ import "../../chunk-K2YWCFZ3.js";
12
+ import "../../chunk-MVW62NIZ.js";
13
+ import "../../chunk-OYNKIAVW.js";
14
+ import "../../chunk-CX6GL3ZJ.js";
15
+ import "../../chunk-7OM54FQY.js";
16
+ import "../../chunk-GVP5U4WL.js";
17
+ import "../../chunk-NGP6LSV2.js";
18
+ import "../../chunk-7GDCFV36.js";
19
+ import "../../chunk-CVYC6DUW.js";
20
+ import "../../chunk-OPU3NYOO.js";
21
+ import "../../chunk-GJV3WDWM.js";
22
+ import "../../chunk-MP2AFCGL.js";
23
+ import "../../chunk-CEGFVFT3.js";
24
+ import "../../chunk-HYZV25LY.js";
25
+ import "../../chunk-NGJ5FIQV.js";
26
+ import "../../chunk-M43RSLT4.js";
27
+ import "../../chunk-FXU7JOXK.js";
28
+ import "../../chunk-D4IVTUNN.js";
29
+ import "../../chunk-TNTFEWU5.js";
30
+ import "../../chunk-LYH5HE24.js";
31
+ import "../../chunk-R5U7XKVJ.js";
32
+ export {
33
+ registerCreateTask
34
+ };
@@ -0,0 +1,16 @@
1
+ import {
2
+ registerDeactivateBehavior
3
+ } from "../../chunk-U7XLP37W.js";
4
+ import "../../chunk-P7E37KXE.js";
5
+ import "../../chunk-UBRE5MK7.js";
6
+ import "../../chunk-CVYC6DUW.js";
7
+ import "../../chunk-GJV3WDWM.js";
8
+ import "../../chunk-NGJ5FIQV.js";
9
+ import "../../chunk-M43RSLT4.js";
10
+ import "../../chunk-FXU7JOXK.js";
11
+ import "../../chunk-TNTFEWU5.js";
12
+ import "../../chunk-LYH5HE24.js";
13
+ import "../../chunk-R5U7XKVJ.js";
14
+ export {
15
+ registerDeactivateBehavior
16
+ };
@@ -0,0 +1,13 @@
1
+ import {
2
+ registerListReminders
3
+ } from "../../chunk-B3IPZ7DJ.js";
4
+ import "../../chunk-X2ZDES26.js";
5
+ import "../../chunk-NGJ5FIQV.js";
6
+ import "../../chunk-M43RSLT4.js";
7
+ import "../../chunk-FXU7JOXK.js";
8
+ import "../../chunk-TNTFEWU5.js";
9
+ import "../../chunk-LYH5HE24.js";
10
+ import "../../chunk-R5U7XKVJ.js";
11
+ export {
12
+ registerListReminders
13
+ };
@@ -0,0 +1,33 @@
1
+ import {
2
+ registerListTasks
3
+ } from "../../chunk-6ES7UEXD.js";
4
+ import "../../chunk-IUHWJRDM.js";
5
+ import "../../chunk-UBRE5MK7.js";
6
+ import "../../chunk-TWR6EV57.js";
7
+ import "../../chunk-GMIXDGAT.js";
8
+ import "../../chunk-QI4IXJN7.js";
9
+ import "../../chunk-4JERP7NT.js";
10
+ import "../../chunk-K2YWCFZ3.js";
11
+ import "../../chunk-MVW62NIZ.js";
12
+ import "../../chunk-OYNKIAVW.js";
13
+ import "../../chunk-CX6GL3ZJ.js";
14
+ import "../../chunk-7OM54FQY.js";
15
+ import "../../chunk-GVP5U4WL.js";
16
+ import "../../chunk-NGP6LSV2.js";
17
+ import "../../chunk-7GDCFV36.js";
18
+ import "../../chunk-CVYC6DUW.js";
19
+ import "../../chunk-OPU3NYOO.js";
20
+ import "../../chunk-GJV3WDWM.js";
21
+ import "../../chunk-MP2AFCGL.js";
22
+ import "../../chunk-CEGFVFT3.js";
23
+ import "../../chunk-HYZV25LY.js";
24
+ import "../../chunk-NGJ5FIQV.js";
25
+ import "../../chunk-M43RSLT4.js";
26
+ import "../../chunk-FXU7JOXK.js";
27
+ import "../../chunk-D4IVTUNN.js";
28
+ import "../../chunk-TNTFEWU5.js";
29
+ import "../../chunk-LYH5HE24.js";
30
+ import "../../chunk-R5U7XKVJ.js";
31
+ export {
32
+ registerListTasks
33
+ };
@@ -0,0 +1,33 @@
1
+ import {
2
+ registerSendMessage
3
+ } from "../../chunk-HFRT4QZS.js";
4
+ import "../../chunk-CDN4PWHZ.js";
5
+ import "../../chunk-UBRE5MK7.js";
6
+ import "../../chunk-TWR6EV57.js";
7
+ import "../../chunk-GMIXDGAT.js";
8
+ import "../../chunk-QI4IXJN7.js";
9
+ import "../../chunk-4JERP7NT.js";
10
+ import "../../chunk-K2YWCFZ3.js";
11
+ import "../../chunk-MVW62NIZ.js";
12
+ import "../../chunk-OYNKIAVW.js";
13
+ import "../../chunk-CX6GL3ZJ.js";
14
+ import "../../chunk-7OM54FQY.js";
15
+ import "../../chunk-GVP5U4WL.js";
16
+ import "../../chunk-NGP6LSV2.js";
17
+ import "../../chunk-7GDCFV36.js";
18
+ import "../../chunk-CVYC6DUW.js";
19
+ import "../../chunk-OPU3NYOO.js";
20
+ import "../../chunk-GJV3WDWM.js";
21
+ import "../../chunk-MP2AFCGL.js";
22
+ import "../../chunk-CEGFVFT3.js";
23
+ import "../../chunk-HYZV25LY.js";
24
+ import "../../chunk-NGJ5FIQV.js";
25
+ import "../../chunk-M43RSLT4.js";
26
+ import "../../chunk-FXU7JOXK.js";
27
+ import "../../chunk-D4IVTUNN.js";
28
+ import "../../chunk-TNTFEWU5.js";
29
+ import "../../chunk-LYH5HE24.js";
30
+ import "../../chunk-R5U7XKVJ.js";
31
+ export {
32
+ registerSendMessage
33
+ };
@@ -0,0 +1,32 @@
1
+ import {
2
+ registerUpdateTask
3
+ } from "../../chunk-FV5FDWL3.js";
4
+ import "../../chunk-IUHWJRDM.js";
5
+ import "../../chunk-TWR6EV57.js";
6
+ import "../../chunk-GMIXDGAT.js";
7
+ import "../../chunk-QI4IXJN7.js";
8
+ import "../../chunk-4JERP7NT.js";
9
+ import "../../chunk-K2YWCFZ3.js";
10
+ import "../../chunk-MVW62NIZ.js";
11
+ import "../../chunk-OYNKIAVW.js";
12
+ import "../../chunk-CX6GL3ZJ.js";
13
+ import "../../chunk-7OM54FQY.js";
14
+ import "../../chunk-GVP5U4WL.js";
15
+ import "../../chunk-NGP6LSV2.js";
16
+ import "../../chunk-7GDCFV36.js";
17
+ import "../../chunk-CVYC6DUW.js";
18
+ import "../../chunk-OPU3NYOO.js";
19
+ import "../../chunk-GJV3WDWM.js";
20
+ import "../../chunk-MP2AFCGL.js";
21
+ import "../../chunk-CEGFVFT3.js";
22
+ import "../../chunk-HYZV25LY.js";
23
+ import "../../chunk-NGJ5FIQV.js";
24
+ import "../../chunk-M43RSLT4.js";
25
+ import "../../chunk-FXU7JOXK.js";
26
+ import "../../chunk-D4IVTUNN.js";
27
+ import "../../chunk-TNTFEWU5.js";
28
+ import "../../chunk-LYH5HE24.js";
29
+ import "../../chunk-R5U7XKVJ.js";
30
+ export {
31
+ registerUpdateTask
32
+ };
@@ -0,0 +1,200 @@
1
+ import "./chunk-R5U7XKVJ.js";
2
+
3
+ // src/adapters/claude/mcp-diagnostics.ts
4
+ import { existsSync, readFileSync } from "fs";
5
+ import path from "path";
6
+ import os from "os";
7
+ function readJson(filePath) {
8
+ if (!existsSync(filePath)) return null;
9
+ try {
10
+ return JSON.parse(readFileSync(filePath, "utf8"));
11
+ } catch {
12
+ return null;
13
+ }
14
+ }
15
+ function pathApplies(projectPath, cwd) {
16
+ const project = path.resolve(projectPath);
17
+ const current = path.resolve(cwd);
18
+ return current === project || current.startsWith(project + path.sep);
19
+ }
20
+ function findAncestorMcpJsons(cwd, homeDir) {
21
+ const files = [];
22
+ let dir = path.resolve(cwd);
23
+ const root = path.parse(dir).root;
24
+ const stop = path.resolve(homeDir);
25
+ while (dir !== root) {
26
+ const candidate = path.join(dir, ".mcp.json");
27
+ if (existsSync(candidate)) files.push(candidate);
28
+ if (dir === stop) break;
29
+ dir = path.dirname(dir);
30
+ }
31
+ return files;
32
+ }
33
+ function extractPermissionPrefixes(settings) {
34
+ const allow = settings?.permissions?.allow ?? [];
35
+ const prefixes = /* @__PURE__ */ new Set();
36
+ for (const entry of allow) {
37
+ const match = entry.match(/^mcp__(.+?)__/);
38
+ if (match?.[1]) prefixes.add(match[1]);
39
+ }
40
+ return [...prefixes].sort();
41
+ }
42
+ function serverAllowedByPermissions(serverName, prefixes) {
43
+ return prefixes.has(serverName) || prefixes.has(serverName.replace(/-/g, "_"));
44
+ }
45
+ function diagnoseClaudeMcpConfig(homeDir = os.homedir(), cwd = process.cwd(), env = process.env) {
46
+ const claudeJsonPath = path.join(homeDir, ".claude.json");
47
+ const settingsPath = path.join(homeDir, ".claude", "settings.json");
48
+ const claudeJson = readJson(claudeJsonPath);
49
+ const settings = readJson(settingsPath);
50
+ const issues = [];
51
+ if (!claudeJson) {
52
+ issues.push({
53
+ severity: "error",
54
+ code: "claude-json-missing-or-invalid",
55
+ message: "~/.claude.json is missing or invalid, so Claude MCP server config cannot be audited.",
56
+ fix: "Run exe-os claude install, then re-open Claude Code."
57
+ });
58
+ }
59
+ if (!settings) {
60
+ issues.push({
61
+ severity: "warn",
62
+ code: "settings-json-missing-or-invalid",
63
+ message: "~/.claude/settings.json is missing or invalid; MCP permissions cannot be audited.",
64
+ fix: "Run exe-os claude install, then re-open Claude Code."
65
+ });
66
+ }
67
+ const globalServers = Object.keys(claudeJson?.mcpServers ?? {}).sort();
68
+ const projectServers = [];
69
+ const applicableProjects = [];
70
+ for (const [projectPath, projectConfig] of Object.entries(claudeJson?.projects ?? {})) {
71
+ if (!pathApplies(projectPath, cwd)) continue;
72
+ applicableProjects.push([projectPath, projectConfig]);
73
+ for (const name of Object.keys(projectConfig.mcpServers ?? {})) {
74
+ projectServers.push({ name, source: "project", path: projectPath });
75
+ }
76
+ if (Array.isArray(projectConfig.enabledMcpServers)) {
77
+ issues.push({
78
+ severity: projectConfig.enabledMcpServers.length === 0 ? "warn" : "info",
79
+ code: "enabled-mcp-servers-present",
80
+ message: `Project ${projectPath} contains enabledMcpServers=${JSON.stringify(projectConfig.enabledMcpServers)}. This key is not the same as enabledMcpjsonServers and has caused confusing /mcp debugging reports.`,
81
+ fix: "If MCP tools are hidden, back up ~/.claude.json, remove only this key, restart Claude Code, and compare /mcp + ToolSearch."
82
+ });
83
+ }
84
+ }
85
+ const mcpJsonServers = [];
86
+ for (const mcpJsonPath of findAncestorMcpJsons(cwd, homeDir)) {
87
+ const mcpJson = readJson(mcpJsonPath);
88
+ for (const name of Object.keys(mcpJson?.mcpServers ?? {})) {
89
+ mcpJsonServers.push({ name, source: "mcp.json", path: mcpJsonPath });
90
+ }
91
+ }
92
+ const permissionPrefixes = extractPermissionPrefixes(settings);
93
+ const permissionPrefixSet = new Set(permissionPrefixes);
94
+ const allConfiguredServerNames = [...globalServers, ...projectServers.map((s) => s.name), ...mcpJsonServers.map((s) => s.name)];
95
+ const configuredServers = [...new Set(allConfiguredServerNames)].sort();
96
+ const nonExeServers = configuredServers.filter((s) => s !== "exe-os" && s !== "exe-mem");
97
+ const nonExeWithoutPermissions = nonExeServers.filter((s) => !serverAllowedByPermissions(s, permissionPrefixSet));
98
+ if (nonExeWithoutPermissions.length > 0 && permissionPrefixes.some((p) => p === "exe-os" || p === "exe-mem")) {
99
+ issues.push({
100
+ severity: "warn",
101
+ code: "non-exe-mcp-not-permission-allowlisted",
102
+ message: `Interactive Claude Code may only surface/auto-run permission-allowed MCP tools. exe-os is allowlisted, but these configured servers are not: ${nonExeWithoutPermissions.join(", ")}.`,
103
+ fix: "In Claude Code, run /permissions and allow the needed MCP server tools (for example mcp__figma__*), then restart. As a diagnostic only, test ENABLE_TOOL_SEARCH=false claude to compare tool injection."
104
+ });
105
+ }
106
+ const duplicateNames = allConfiguredServerNames.filter((name, index, arr) => arr.indexOf(name) !== index);
107
+ if (duplicateNames.length > 0) {
108
+ issues.push({
109
+ severity: "warn",
110
+ code: "duplicate-mcp-server-names",
111
+ message: `Duplicate MCP server names exist across global/project/.mcp.json scopes: ${[...new Set(duplicateNames)].join(", ")}. Claude Code can show Connected while dropping tools when scopes collide.`,
112
+ fix: "Use one source of truth per MCP server name; remove or rename duplicates."
113
+ });
114
+ }
115
+ const alwaysLoadServers = [];
116
+ for (const [name, config] of Object.entries(claudeJson?.mcpServers ?? {})) {
117
+ if (config && typeof config === "object" && config.alwaysLoad === true) {
118
+ alwaysLoadServers.push(`${name} (global)`);
119
+ }
120
+ }
121
+ for (const [projectPath, projectConfig] of applicableProjects) {
122
+ for (const [name, config] of Object.entries(projectConfig.mcpServers ?? {})) {
123
+ if (config && typeof config === "object" && config.alwaysLoad === true) {
124
+ alwaysLoadServers.push(`${name} (${projectPath})`);
125
+ }
126
+ }
127
+ }
128
+ if (alwaysLoadServers.length > 0) {
129
+ issues.push({
130
+ severity: "warn",
131
+ code: "always-load-mcp-present",
132
+ message: `alwaysLoad:true is set on MCP server(s): ${alwaysLoadServers.join(", ")}. Field reports from Claude Code 2.1.x show this can make servers appear Connected while tools do not inject in interactive sessions.`,
133
+ fix: "Back up ~/.claude.json, remove alwaysLoad:true from affected MCP entries, restart Claude Code, and compare ToolSearch + /mcp. exe-os will not remove this automatically because it is customer-owned config."
134
+ });
135
+ }
136
+ for (const server of mcpJsonServers) {
137
+ for (const [projectPath, projectConfig] of applicableProjects) {
138
+ if (!projectConfig.mcpServers?.[server.name]) continue;
139
+ const enabled = new Set(projectConfig.enabledMcpjsonServers ?? []);
140
+ if (!enabled.has(server.name)) {
141
+ issues.push({
142
+ severity: "error",
143
+ code: "disabled-mcp-json-shadows-project-server",
144
+ message: `${server.name} appears in ${server.path} and project ${projectPath}, but is not enabled in enabledMcpjsonServers. This can shadow the project server and yield Connected/0 tools.`,
145
+ fix: "Remove/rename the duplicate .mcp.json entry or enable that .mcp.json server explicitly."
146
+ });
147
+ }
148
+ }
149
+ }
150
+ if (env.ENABLE_TOOL_SEARCH && env.ENABLE_TOOL_SEARCH !== "auto") {
151
+ issues.push({
152
+ severity: "info",
153
+ code: "enable-tool-search-env-set",
154
+ message: `ENABLE_TOOL_SEARCH is set to ${env.ENABLE_TOOL_SEARCH}. This changes Claude Code's deferred tool injection path.`,
155
+ fix: "For debugging, compare interactive launches with ENABLE_TOOL_SEARCH=false, ENABLE_TOOL_SEARCH=auto, and unset."
156
+ });
157
+ }
158
+ if (configuredServers.length > 8) {
159
+ issues.push({
160
+ severity: "info",
161
+ code: "large-mcp-surface",
162
+ message: `${configuredServers.length} MCP servers are configured for this project. If pipe mode sees tools but interactive mode does not, reduce scope temporarily or enable only needed servers while debugging Claude Code tool injection.`,
163
+ fix: "Keep exe-os global, move project/design tools into the active project only, and use /permissions for the servers needed in that session."
164
+ });
165
+ }
166
+ return {
167
+ cwd: path.resolve(cwd),
168
+ globalServers,
169
+ projectServers: projectServers.sort((a, b) => a.name.localeCompare(b.name)),
170
+ mcpJsonServers: mcpJsonServers.sort((a, b) => a.name.localeCompare(b.name)),
171
+ permissionPrefixes,
172
+ issues
173
+ };
174
+ }
175
+ function formatMcpDiagnosticReport(report) {
176
+ const lines = [];
177
+ lines.push("Claude MCP Diagnostic");
178
+ lines.push(`cwd: ${report.cwd}`);
179
+ lines.push("");
180
+ lines.push(`global servers: ${report.globalServers.length ? report.globalServers.join(", ") : "none"}`);
181
+ lines.push(`project servers: ${report.projectServers.length ? report.projectServers.map((s) => `${s.name} (${s.path})`).join(", ") : "none"}`);
182
+ lines.push(`.mcp.json servers: ${report.mcpJsonServers.length ? report.mcpJsonServers.map((s) => `${s.name} (${s.path})`).join(", ") : "none"}`);
183
+ lines.push(`permission MCP prefixes: ${report.permissionPrefixes.length ? report.permissionPrefixes.join(", ") : "none"}`);
184
+ lines.push("");
185
+ if (report.issues.length === 0) {
186
+ lines.push("\u2713 No obvious MCP config hazards detected.");
187
+ return lines.join("\n");
188
+ }
189
+ lines.push("Issues / clues:");
190
+ for (const issue of report.issues) {
191
+ const icon = issue.severity === "error" ? "\u2717" : issue.severity === "warn" ? "!" : "i";
192
+ lines.push(`${icon} [${issue.code}] ${issue.message}`);
193
+ if (issue.fix) lines.push(` Fix/test: ${issue.fix}`);
194
+ }
195
+ return lines.join("\n");
196
+ }
197
+ export {
198
+ diagnoseClaudeMcpConfig,
199
+ formatMcpDiagnosticReport
200
+ };
@@ -0,0 +1,79 @@
1
+ import "./chunk-R5U7XKVJ.js";
2
+
3
+ // src/lib/mcp-disconnect-tracker.ts
4
+ import { appendFileSync, mkdirSync, existsSync, readFileSync } from "fs";
5
+ import path from "path";
6
+ import os from "os";
7
+ var LOG_DIR = path.join(os.homedir(), ".exe-os", "logs");
8
+ var DISCONNECT_LOG = path.join(LOG_DIR, "mcp-disconnects.log");
9
+ var RECONNECT_WARN_THRESHOLD = 3;
10
+ function logDisconnect(event) {
11
+ try {
12
+ if (!existsSync(LOG_DIR)) mkdirSync(LOG_DIR, { recursive: true });
13
+ const line = JSON.stringify(event) + "\n";
14
+ appendFileSync(DISCONNECT_LOG, line);
15
+ } catch {
16
+ }
17
+ }
18
+ function countRecentDisconnects(hours = 24) {
19
+ try {
20
+ if (!existsSync(DISCONNECT_LOG)) return 0;
21
+ const content = readFileSync(DISCONNECT_LOG, "utf-8");
22
+ const cutoff = new Date(Date.now() - hours * 36e5).toISOString();
23
+ let count = 0;
24
+ for (const line of content.split("\n")) {
25
+ if (!line.trim()) continue;
26
+ try {
27
+ const event = JSON.parse(line);
28
+ if (event.timestamp >= cutoff) count++;
29
+ } catch {
30
+ }
31
+ }
32
+ return count;
33
+ } catch {
34
+ return 0;
35
+ }
36
+ }
37
+ function isReconnectionRateHigh() {
38
+ const countLastHour = countRecentDisconnects(1);
39
+ const countLast24h = countRecentDisconnects(24);
40
+ return {
41
+ high: countLastHour > RECONNECT_WARN_THRESHOLD,
42
+ countLastHour,
43
+ countLast24h
44
+ };
45
+ }
46
+ function getDaemonHealthSummary() {
47
+ const disconnects = isReconnectionRateHigh();
48
+ const lines = [];
49
+ if (disconnects.countLast24h > 0) {
50
+ lines.push(
51
+ `MCP disconnects: ${disconnects.countLastHour}/hr, ${disconnects.countLast24h}/24h` + (disconnects.high ? " \u26A0\uFE0F HIGH \u2014 investigate stability" : "")
52
+ );
53
+ }
54
+ try {
55
+ const pidPath = path.join(os.homedir(), ".exe-os", "exed.pid");
56
+ if (existsSync(pidPath)) {
57
+ const pid = parseInt(readFileSync(pidPath, "utf-8").trim(), 10);
58
+ try {
59
+ process.kill(pid, 0);
60
+ lines.push(`Daemon PID ${pid}: running`);
61
+ } catch {
62
+ lines.push(`Daemon PID ${pid}: dead (stale PID file)`);
63
+ }
64
+ }
65
+ } catch {
66
+ }
67
+ try {
68
+ const rss = process.memoryUsage().rss;
69
+ lines.push(`RSS: ${(rss / 1024 / 1024).toFixed(0)}MB`);
70
+ } catch {
71
+ }
72
+ return lines.length > 0 ? lines.join("\n") : "No health data available";
73
+ }
74
+ export {
75
+ countRecentDisconnects,
76
+ getDaemonHealthSummary,
77
+ isReconnectionRateHigh,
78
+ logDisconnect
79
+ };
@@ -0,0 +1,26 @@
1
+ import {
2
+ DEFAULT_MCP_HTTP_AGENT_ID,
3
+ DEFAULT_MCP_HTTP_AGENT_ROLE,
4
+ DEFAULT_MCP_HTTP_PORT,
5
+ buildClaudeHttpMcpEntry,
6
+ buildMcpHttpHeaders,
7
+ mcpHttpPort,
8
+ mcpHttpUrl,
9
+ readOrCreateDaemonToken
10
+ } from "./chunk-CHUGUZV3.js";
11
+ import "./chunk-NGJ5FIQV.js";
12
+ import "./chunk-M43RSLT4.js";
13
+ import "./chunk-FXU7JOXK.js";
14
+ import "./chunk-TNTFEWU5.js";
15
+ import "./chunk-LYH5HE24.js";
16
+ import "./chunk-R5U7XKVJ.js";
17
+ export {
18
+ DEFAULT_MCP_HTTP_AGENT_ID,
19
+ DEFAULT_MCP_HTTP_AGENT_ROLE,
20
+ DEFAULT_MCP_HTTP_PORT,
21
+ buildClaudeHttpMcpEntry,
22
+ buildMcpHttpHeaders,
23
+ mcpHttpPort,
24
+ mcpHttpUrl,
25
+ readOrCreateDaemonToken
26
+ };
@@ -0,0 +1,173 @@
1
+ import {
2
+ getClient
3
+ } from "./chunk-NGJ5FIQV.js";
4
+ import "./chunk-M43RSLT4.js";
5
+ import "./chunk-FXU7JOXK.js";
6
+ import "./chunk-TNTFEWU5.js";
7
+ import "./chunk-LYH5HE24.js";
8
+ import "./chunk-R5U7XKVJ.js";
9
+
10
+ // src/lib/memory-cards.ts
11
+ import { createHash } from "crypto";
12
+ var MAX_CARDS_PER_MEMORY = 8;
13
+ var MAX_SEGMENT_CHARS = 500;
14
+ var MIN_SEGMENT_CHARS = 20;
15
+ function stableId(memoryId, type, content) {
16
+ return createHash("sha256").update(`${memoryId}:${type}:${content}`).digest("hex").slice(0, 32);
17
+ }
18
+ function cleanText(text) {
19
+ let cleaned = text.replace(
20
+ /```(\w*)\n(.*?)(?:\n[\s\S]*?)```/g,
21
+ (_m, lang, firstLine) => `[code${lang ? `:${lang}` : ""}] ${firstLine.trim()}`
22
+ );
23
+ cleaned = cleaned.replace(/<[^>]+>/g, " ").replace(/\s+/g, " ").trim();
24
+ return cleaned;
25
+ }
26
+ function splitSegments(text) {
27
+ const cleaned = cleanText(text);
28
+ const segments = cleaned.split(/(?<=[.!?:;])\s+|\n{2,}|(?<=\))\s+(?=[A-Z])|\s*[|│]\s*/).map((s) => s.trim()).filter((s) => s.length >= MIN_SEGMENT_CHARS && s.length <= MAX_SEGMENT_CHARS);
29
+ if (segments.length === 0 && cleaned.length >= MIN_SEGMENT_CHARS) {
30
+ const lines = cleaned.split(/\n+/).map((l) => l.trim()).filter((l) => l.length >= MIN_SEGMENT_CHARS && l.length <= MAX_SEGMENT_CHARS);
31
+ if (lines.length > 0) return lines;
32
+ if (cleaned.length >= MIN_SEGMENT_CHARS) {
33
+ return [cleaned.slice(0, MAX_SEGMENT_CHARS)];
34
+ }
35
+ }
36
+ return segments;
37
+ }
38
+ function inferCardType(sentence, toolName) {
39
+ const lower = sentence.toLowerCase();
40
+ if (toolName === "store_decision" || /\b(decided|decision|adr|approved|rejected)\b/.test(lower)) return "decision";
41
+ if (/\b(prefers|preference|likes|dislikes|wants|doesn't want|does not want)\b/.test(lower)) return "preference";
42
+ if (/\b(changed|updated|replaced|now|no longer|instead|supersedes)\b/.test(lower)) return "belief_update";
43
+ if (toolName && ["Read", "Write", "Edit", "Bash"].includes(toolName)) return "code";
44
+ if (/\b(meeting|deadline|shipped|launched|completed|failed|blocked|assigned|created)\b/.test(lower)) return "event";
45
+ return "fact";
46
+ }
47
+ function extractSubject(sentence, agentId) {
48
+ const explicit = sentence.match(/\b([A-Z][a-zA-Z0-9_-]{2,}(?:\s+[A-Z][a-zA-Z0-9_-]{2,})?)\b/);
49
+ return explicit?.[1] ?? agentId;
50
+ }
51
+ function predicateFor(type) {
52
+ switch (type) {
53
+ case "preference":
54
+ return "prefers";
55
+ case "belief_update":
56
+ return "updated";
57
+ case "decision":
58
+ return "decided";
59
+ case "event":
60
+ return "happened";
61
+ case "code":
62
+ return "implemented";
63
+ default:
64
+ return "states";
65
+ }
66
+ }
67
+ function extractMemoryCards(row) {
68
+ const segments = splitSegments(row.raw_text);
69
+ const cards = [];
70
+ for (const sentence of segments) {
71
+ const type = inferCardType(sentence, row.tool_name);
72
+ const subject = extractSubject(sentence, row.agent_id);
73
+ const content = sentence.length > MAX_SEGMENT_CHARS ? `${sentence.slice(0, MAX_SEGMENT_CHARS - 1)}\u2026` : sentence;
74
+ cards.push({
75
+ id: stableId(row.id, type, content),
76
+ memory_id: row.id,
77
+ agent_id: row.agent_id,
78
+ session_id: row.session_id,
79
+ project_name: row.project_name ?? null,
80
+ timestamp: row.timestamp,
81
+ card_type: type,
82
+ subject,
83
+ predicate: predicateFor(type),
84
+ object: content,
85
+ content,
86
+ source_ref: row.id,
87
+ confidence: type === "fact" ? 0.55 : 0.65
88
+ });
89
+ if (cards.length >= MAX_CARDS_PER_MEMORY) break;
90
+ }
91
+ return cards;
92
+ }
93
+ async function insertMemoryCardsForBatch(rows) {
94
+ const cards = rows.flatMap(extractMemoryCards);
95
+ if (cards.length === 0) return 0;
96
+ const now = (/* @__PURE__ */ new Date()).toISOString();
97
+ const client = getClient();
98
+ const stmts = cards.map((card) => ({
99
+ sql: `INSERT OR IGNORE INTO memory_cards
100
+ (id, memory_id, agent_id, session_id, project_name, timestamp, card_type,
101
+ subject, predicate, object, content, source_ref, confidence, active, created_at)
102
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1, ?)`,
103
+ args: [
104
+ card.id,
105
+ card.memory_id,
106
+ card.agent_id,
107
+ card.session_id,
108
+ card.project_name,
109
+ card.timestamp,
110
+ card.card_type,
111
+ card.subject,
112
+ card.predicate,
113
+ card.object,
114
+ card.content,
115
+ card.source_ref,
116
+ card.confidence,
117
+ now
118
+ ]
119
+ }));
120
+ await client.batch(stmts, "write");
121
+ return cards.length;
122
+ }
123
+ function buildMatchExpr(queryText) {
124
+ const terms = queryText.toLowerCase().split(/\s+/).filter((t) => t.length >= 3).map((t) => t.replace(/[^a-z0-9_]/g, "")).filter((t) => t.length >= 3).slice(0, 12);
125
+ if (terms.length === 0) return null;
126
+ return terms.map((t) => `${t}*`).join(terms.length >= 3 ? " AND " : " OR ");
127
+ }
128
+ async function searchMemoryCards(queryText, agentId, options) {
129
+ const limit = options?.limit ?? 10;
130
+ const matchExpr = buildMatchExpr(queryText);
131
+ if (!matchExpr) return [];
132
+ let sql = `SELECT c.id, c.memory_id, c.agent_id, c.session_id, c.project_name,
133
+ c.timestamp, c.card_type, c.content, c.source_ref, c.confidence
134
+ FROM memory_cards c
135
+ JOIN memory_cards_fts fts ON c.rowid = fts.rowid
136
+ WHERE memory_cards_fts MATCH ?
137
+ AND c.agent_id = ?
138
+ AND COALESCE(c.active, 1) = 1`;
139
+ const args = [matchExpr, agentId];
140
+ if (options?.projectName) {
141
+ sql += ` AND c.project_name = ?`;
142
+ args.push(options.projectName);
143
+ }
144
+ if (options?.since) {
145
+ sql += ` AND c.timestamp >= ?`;
146
+ args.push(options.since);
147
+ }
148
+ sql += ` ORDER BY rank LIMIT ?`;
149
+ args.push(limit);
150
+ const result = await getClient().execute({ sql, args });
151
+ return result.rows.map((row) => ({
152
+ id: `card:${String(row.id)}`,
153
+ agent_id: String(row.agent_id),
154
+ agent_role: "memory_card",
155
+ session_id: String(row.session_id),
156
+ timestamp: String(row.timestamp),
157
+ tool_name: `memory_card:${String(row.card_type)}`,
158
+ project_name: row.project_name == null ? "" : String(row.project_name),
159
+ has_error: false,
160
+ raw_text: `[${String(row.card_type)}] ${String(row.content)}
161
+ Source memory: ${String(row.source_ref ?? row.memory_id)}`,
162
+ vector: [],
163
+ importance: 6,
164
+ status: "active",
165
+ confidence: Number(row.confidence ?? 0.6),
166
+ last_accessed: String(row.timestamp)
167
+ }));
168
+ }
169
+ export {
170
+ extractMemoryCards,
171
+ insertMemoryCardsForBatch,
172
+ searchMemoryCards
173
+ };
@@ -0,0 +1,16 @@
1
+ import {
2
+ extractGraphForBatch,
3
+ extractMemoryGraph,
4
+ upsertMemoryGraph
5
+ } from "./chunk-IONVLDMB.js";
6
+ import "./chunk-NGJ5FIQV.js";
7
+ import "./chunk-M43RSLT4.js";
8
+ import "./chunk-FXU7JOXK.js";
9
+ import "./chunk-TNTFEWU5.js";
10
+ import "./chunk-LYH5HE24.js";
11
+ import "./chunk-R5U7XKVJ.js";
12
+ export {
13
+ extractGraphForBatch,
14
+ extractMemoryGraph,
15
+ upsertMemoryGraph
16
+ };