@ashx-j/lunr-dev 0.2.13-dev.8.1 → 0.2.19-dev.10.1

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 (484) hide show
  1. package/CHANGELOG.md +60 -1
  2. package/README.md +7 -1
  3. package/dist/builtin-extensions/ashxj-thinking.d.ts +1 -0
  4. package/dist/builtin-extensions/ashxj-thinking.d.ts.map +1 -1
  5. package/dist/builtin-extensions/ashxj-thinking.js +44 -19
  6. package/dist/builtin-extensions/ashxj-thinking.js.map +1 -1
  7. package/dist/builtin-extensions/ashxj-tui.d.ts +14 -0
  8. package/dist/builtin-extensions/ashxj-tui.d.ts.map +1 -1
  9. package/dist/builtin-extensions/ashxj-tui.js +37 -3
  10. package/dist/builtin-extensions/ashxj-tui.js.map +1 -1
  11. package/dist/builtin-extensions/index.d.ts +1 -15
  12. package/dist/builtin-extensions/index.d.ts.map +1 -1
  13. package/dist/builtin-extensions/index.js +8 -21
  14. package/dist/builtin-extensions/index.js.map +1 -1
  15. package/dist/builtin-extensions/lunr-computer-use.d.ts +3 -0
  16. package/dist/builtin-extensions/lunr-computer-use.d.ts.map +1 -0
  17. package/dist/builtin-extensions/lunr-computer-use.js +157 -0
  18. package/dist/builtin-extensions/lunr-computer-use.js.map +1 -0
  19. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.d.ts.map +1 -1
  20. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js +6 -2
  21. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js.map +1 -1
  22. package/dist/builtin-extensions/pi-lsp-extension/src/index.d.ts +4 -0
  23. package/dist/builtin-extensions/pi-lsp-extension/src/index.d.ts.map +1 -1
  24. package/dist/builtin-extensions/pi-lsp-extension/src/index.js +172 -171
  25. package/dist/builtin-extensions/pi-lsp-extension/src/index.js.map +1 -1
  26. package/dist/builtin-extensions/pi-lsp-extension/src/runtime.d.ts +50 -0
  27. package/dist/builtin-extensions/pi-lsp-extension/src/runtime.d.ts.map +1 -0
  28. package/dist/builtin-extensions/pi-lsp-extension/src/runtime.js +131 -0
  29. package/dist/builtin-extensions/pi-lsp-extension/src/runtime.js.map +1 -0
  30. package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.d.ts +7 -0
  31. package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.d.ts.map +1 -0
  32. package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.js +211 -0
  33. package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.js.map +1 -0
  34. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.d.ts +0 -5
  35. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.d.ts.map +1 -1
  36. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.js +0 -202
  37. package/dist/builtin-extensions/pi-mcp-adapter/direct-tools.js.map +1 -1
  38. package/dist/builtin-extensions/pi-mcp-adapter/index.d.ts.map +1 -1
  39. package/dist/builtin-extensions/pi-mcp-adapter/index.js +276 -109
  40. package/dist/builtin-extensions/pi-mcp-adapter/index.js.map +1 -1
  41. package/dist/builtin-extensions/pi-mcp-adapter/init.d.ts +4 -1
  42. package/dist/builtin-extensions/pi-mcp-adapter/init.d.ts.map +1 -1
  43. package/dist/builtin-extensions/pi-mcp-adapter/init.js +10 -3
  44. package/dist/builtin-extensions/pi-mcp-adapter/init.js.map +1 -1
  45. package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.d.ts.map +1 -1
  46. package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.js +6 -1
  47. package/dist/builtin-extensions/pi-mcp-adapter/metadata-cache.js.map +1 -1
  48. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.d.ts +6 -1
  49. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.d.ts.map +1 -1
  50. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js +33 -8
  51. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js.map +1 -1
  52. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.d.ts.map +1 -1
  53. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js +2 -1
  54. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js.map +1 -1
  55. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.d.ts +1 -1
  56. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.d.ts.map +1 -1
  57. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js +1 -1
  58. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js.map +1 -1
  59. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts +1 -1
  60. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
  61. package/dist/builtin-extensions/pi-subagents/src/extension/index.js +68 -15
  62. package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
  63. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts.map +1 -1
  64. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js +6 -2
  65. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js.map +1 -1
  66. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts +1 -1
  67. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.d.ts.map +1 -1
  68. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js +5 -2
  69. package/dist/builtin-extensions/pi-subagents/src/runs/background/wait-tool.js.map +1 -1
  70. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/request-params.d.ts +10 -0
  71. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/request-params.d.ts.map +1 -0
  72. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/request-params.js +38 -0
  73. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/request-params.js.map +1 -0
  74. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
  75. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +3 -16
  76. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
  77. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.d.ts +1 -1
  78. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.d.ts.map +1 -1
  79. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js +2 -0
  80. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js.map +1 -1
  81. package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.d.ts.map +1 -1
  82. package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.js +1 -1
  83. package/dist/builtin-extensions/pi-subagents/src/shared/fork-context.js.map +1 -1
  84. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts +1 -1
  85. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts.map +1 -1
  86. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js +1 -1
  87. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js.map +1 -1
  88. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +2 -1
  89. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
  90. package/dist/builtin-extensions/pi-subagents/src/tui/render.js +72 -31
  91. package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
  92. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.d.ts +1 -1
  93. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.d.ts.map +1 -1
  94. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js +2 -1
  95. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js.map +1 -1
  96. package/dist/builtin-extensions/pi-web-access/extract.d.ts.map +1 -1
  97. package/dist/builtin-extensions/pi-web-access/extract.js +105 -54
  98. package/dist/builtin-extensions/pi-web-access/extract.js.map +1 -1
  99. package/dist/builtin-extensions/pi-web-access/gemini-search.d.ts +1 -1
  100. package/dist/builtin-extensions/pi-web-access/gemini-search.d.ts.map +1 -1
  101. package/dist/builtin-extensions/pi-web-access/gemini-search.js +82 -65
  102. package/dist/builtin-extensions/pi-web-access/gemini-search.js.map +1 -1
  103. package/dist/builtin-extensions/pi-web-access/github-extract.d.ts.map +1 -1
  104. package/dist/builtin-extensions/pi-web-access/github-extract.js +2 -0
  105. package/dist/builtin-extensions/pi-web-access/github-extract.js.map +1 -1
  106. package/dist/builtin-extensions/pi-web-access/index.d.ts.map +1 -1
  107. package/dist/builtin-extensions/pi-web-access/index.js +259 -168
  108. package/dist/builtin-extensions/pi-web-access/index.js.map +1 -1
  109. package/dist/builtin-extensions/pi-web-access/lazy.d.ts +18 -0
  110. package/dist/builtin-extensions/pi-web-access/lazy.d.ts.map +1 -0
  111. package/dist/builtin-extensions/pi-web-access/lazy.js +19 -0
  112. package/dist/builtin-extensions/pi-web-access/lazy.js.map +1 -0
  113. package/dist/builtin-extensions/pi-web-access/session-cleanup.d.ts +6 -0
  114. package/dist/builtin-extensions/pi-web-access/session-cleanup.d.ts.map +1 -0
  115. package/dist/builtin-extensions/pi-web-access/session-cleanup.js +17 -0
  116. package/dist/builtin-extensions/pi-web-access/session-cleanup.js.map +1 -0
  117. package/dist/catalog/publication.json +12 -12
  118. package/dist/cli-runtime.d.ts +3 -0
  119. package/dist/cli-runtime.d.ts.map +1 -0
  120. package/dist/cli-runtime.js +73 -0
  121. package/dist/cli-runtime.js.map +1 -0
  122. package/dist/cli.d.ts.map +1 -1
  123. package/dist/cli.js +14 -53
  124. package/dist/cli.js.map +1 -1
  125. package/dist/config.d.ts +1 -0
  126. package/dist/config.d.ts.map +1 -1
  127. package/dist/config.js +1 -0
  128. package/dist/config.js.map +1 -1
  129. package/dist/core/agent-session-services.d.ts.map +1 -1
  130. package/dist/core/agent-session-services.js +1 -1
  131. package/dist/core/agent-session-services.js.map +1 -1
  132. package/dist/core/agent-session.d.ts +3 -0
  133. package/dist/core/agent-session.d.ts.map +1 -1
  134. package/dist/core/agent-session.js +56 -12
  135. package/dist/core/agent-session.js.map +1 -1
  136. package/dist/core/compaction/compaction.d.ts.map +1 -1
  137. package/dist/core/compaction/compaction.js +10 -5
  138. package/dist/core/compaction/compaction.js.map +1 -1
  139. package/dist/core/computer-use/adapter.d.ts +23 -0
  140. package/dist/core/computer-use/adapter.d.ts.map +1 -0
  141. package/dist/core/computer-use/adapter.js +116 -0
  142. package/dist/core/computer-use/adapter.js.map +1 -0
  143. package/dist/core/computer-use/lease.d.ts +18 -0
  144. package/dist/core/computer-use/lease.d.ts.map +1 -0
  145. package/dist/core/computer-use/lease.js +129 -0
  146. package/dist/core/computer-use/lease.js.map +1 -0
  147. package/dist/core/computer-use/macos-runtime.d.ts +14 -0
  148. package/dist/core/computer-use/macos-runtime.d.ts.map +1 -0
  149. package/dist/core/computer-use/macos-runtime.js +148 -0
  150. package/dist/core/computer-use/macos-runtime.js.map +1 -0
  151. package/dist/core/computer-use/policy.d.ts +19 -0
  152. package/dist/core/computer-use/policy.d.ts.map +1 -0
  153. package/dist/core/computer-use/policy.js +66 -0
  154. package/dist/core/computer-use/policy.js.map +1 -0
  155. package/dist/core/computer-use/release.generated.d.ts +31 -0
  156. package/dist/core/computer-use/release.generated.d.ts.map +1 -0
  157. package/dist/core/computer-use/release.generated.js +36 -0
  158. package/dist/core/computer-use/release.generated.js.map +1 -0
  159. package/dist/core/computer-use/runtime.d.ts +13 -0
  160. package/dist/core/computer-use/runtime.d.ts.map +1 -0
  161. package/dist/core/computer-use/runtime.js +158 -0
  162. package/dist/core/computer-use/runtime.js.map +1 -0
  163. package/dist/core/computer-use/schemas.d.ts +88 -0
  164. package/dist/core/computer-use/schemas.d.ts.map +1 -0
  165. package/dist/core/computer-use/schemas.js +80 -0
  166. package/dist/core/computer-use/schemas.js.map +1 -0
  167. package/dist/core/computer-use/windows-desktop.d.ts +3 -0
  168. package/dist/core/computer-use/windows-desktop.d.ts.map +1 -0
  169. package/dist/core/computer-use/windows-desktop.js +48 -0
  170. package/dist/core/computer-use/windows-desktop.js.map +1 -0
  171. package/dist/core/computer-use/workflow.d.ts +24 -0
  172. package/dist/core/computer-use/workflow.d.ts.map +1 -0
  173. package/dist/core/computer-use/workflow.js +330 -0
  174. package/dist/core/computer-use/workflow.js.map +1 -0
  175. package/dist/core/extensions/host-static.d.ts.map +1 -1
  176. package/dist/core/extensions/host-static.js +34 -12
  177. package/dist/core/extensions/host-static.js.map +1 -1
  178. package/dist/core/extensions/loader.d.ts +1 -2
  179. package/dist/core/extensions/loader.d.ts.map +1 -1
  180. package/dist/core/extensions/loader.js +10 -64
  181. package/dist/core/extensions/loader.js.map +1 -1
  182. package/dist/core/extensions/types.d.ts +2 -2
  183. package/dist/core/extensions/types.d.ts.map +1 -1
  184. package/dist/core/extensions/types.js.map +1 -1
  185. package/dist/core/footer-data-provider.d.ts.map +1 -1
  186. package/dist/core/footer-data-provider.js +2 -0
  187. package/dist/core/footer-data-provider.js.map +1 -1
  188. package/dist/core/keybindings.d.ts +2 -2
  189. package/dist/core/keybindings.d.ts.map +1 -1
  190. package/dist/core/keybindings.js +2 -2
  191. package/dist/core/keybindings.js.map +1 -1
  192. package/dist/core/model-runtime.d.ts +0 -3
  193. package/dist/core/model-runtime.d.ts.map +1 -1
  194. package/dist/core/model-runtime.js +1 -10
  195. package/dist/core/model-runtime.js.map +1 -1
  196. package/dist/core/package-manager.d.ts.map +1 -1
  197. package/dist/core/package-manager.js +1 -1
  198. package/dist/core/package-manager.js.map +1 -1
  199. package/dist/core/permissions.d.ts +1 -3
  200. package/dist/core/permissions.d.ts.map +1 -1
  201. package/dist/core/permissions.js +33 -25
  202. package/dist/core/permissions.js.map +1 -1
  203. package/dist/core/plan-mode.d.ts.map +1 -1
  204. package/dist/core/plan-mode.js +9 -0
  205. package/dist/core/plan-mode.js.map +1 -1
  206. package/dist/core/rollback.d.ts.map +1 -1
  207. package/dist/core/rollback.js +13 -90
  208. package/dist/core/rollback.js.map +1 -1
  209. package/dist/core/sdk.d.ts +1 -1
  210. package/dist/core/sdk.d.ts.map +1 -1
  211. package/dist/core/sdk.js +1 -1
  212. package/dist/core/sdk.js.map +1 -1
  213. package/dist/core/session-manager.d.ts +0 -1
  214. package/dist/core/session-manager.d.ts.map +1 -1
  215. package/dist/core/session-manager.js +21 -79
  216. package/dist/core/session-manager.js.map +1 -1
  217. package/dist/core/settings-manager.d.ts +6 -0
  218. package/dist/core/settings-manager.d.ts.map +1 -1
  219. package/dist/core/settings-manager.js +19 -0
  220. package/dist/core/settings-manager.js.map +1 -1
  221. package/dist/core/slash-commands.d.ts.map +1 -1
  222. package/dist/core/slash-commands.js +0 -1
  223. package/dist/core/slash-commands.js.map +1 -1
  224. package/dist/core/timings.d.ts +2 -1
  225. package/dist/core/timings.d.ts.map +1 -1
  226. package/dist/core/timings.js +17 -2
  227. package/dist/core/timings.js.map +1 -1
  228. package/dist/dev-cli.js +0 -0
  229. package/dist/gateway/agent-bridge.d.ts +6 -1
  230. package/dist/gateway/agent-bridge.d.ts.map +1 -1
  231. package/dist/gateway/agent-bridge.js +23 -6
  232. package/dist/gateway/agent-bridge.js.map +1 -1
  233. package/dist/gateway/commands.d.ts +1 -1
  234. package/dist/gateway/commands.d.ts.map +1 -1
  235. package/dist/gateway/commands.js +1 -18
  236. package/dist/gateway/commands.js.map +1 -1
  237. package/dist/gateway/cron.d.ts +1 -1
  238. package/dist/gateway/cron.d.ts.map +1 -1
  239. package/dist/gateway/cron.js +23 -7
  240. package/dist/gateway/cron.js.map +1 -1
  241. package/dist/main.d.ts +2 -2
  242. package/dist/main.d.ts.map +1 -1
  243. package/dist/main.js +57 -48
  244. package/dist/main.js.map +1 -1
  245. package/dist/modes/interactive/components/footer.d.ts +4 -2
  246. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  247. package/dist/modes/interactive/components/footer.js +23 -32
  248. package/dist/modes/interactive/components/footer.js.map +1 -1
  249. package/dist/modes/interactive/components/processes-selector.d.ts +2 -3
  250. package/dist/modes/interactive/components/processes-selector.d.ts.map +1 -1
  251. package/dist/modes/interactive/components/processes-selector.js +5 -10
  252. package/dist/modes/interactive/components/processes-selector.js.map +1 -1
  253. package/dist/modes/interactive/components/settings-selector.d.ts +4 -0
  254. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  255. package/dist/modes/interactive/components/settings-selector.js +20 -0
  256. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  257. package/dist/modes/interactive/interactive-mode.d.ts +12 -21
  258. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  259. package/dist/modes/interactive/interactive-mode.js +138 -152
  260. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  261. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  262. package/dist/modes/interactive/theme/theme.js +95 -84
  263. package/dist/modes/interactive/theme/theme.js.map +1 -1
  264. package/dist/modes/interactive/thinking-level-slash.d.ts +4 -0
  265. package/dist/modes/interactive/thinking-level-slash.d.ts.map +1 -0
  266. package/dist/modes/interactive/thinking-level-slash.js +23 -0
  267. package/dist/modes/interactive/thinking-level-slash.js.map +1 -0
  268. package/dist/node-runtime/adapter-AZMY335J.js +279 -0
  269. package/dist/node-runtime/agent-session-services-RSGP5GDN.js +39 -0
  270. package/dist/node-runtime/benchmark-request-UC7PD3V3.js +57 -0
  271. package/dist/node-runtime/brave-UWDA3I22.js +143 -0
  272. package/dist/node-runtime/builtin-extensions-7STLFW3A.js +29 -0
  273. package/dist/node-runtime/chunk-2IDTZAG5.js +1415 -0
  274. package/dist/node-runtime/chunk-3GHXVUAK.js +21 -0
  275. package/dist/node-runtime/chunk-3RCWXWAY.js +466 -0
  276. package/dist/node-runtime/chunk-3WFAEVKS.js +115 -0
  277. package/dist/node-runtime/chunk-3X3KZKMI.js +49 -0
  278. package/dist/node-runtime/chunk-4HXHDDCF.js +16 -0
  279. package/dist/node-runtime/chunk-4SJWFTUP.js +24 -0
  280. package/dist/node-runtime/chunk-4ZWGEEAS.js +69 -0
  281. package/dist/node-runtime/chunk-53YJI7JU.js +137 -0
  282. package/dist/node-runtime/chunk-5NWQCSKR.js +19218 -0
  283. package/dist/node-runtime/chunk-5OLJGVCB.js +68 -0
  284. package/dist/node-runtime/chunk-5Q45AVQG.js +108 -0
  285. package/dist/node-runtime/chunk-5SQDLSZJ.js +949 -0
  286. package/dist/node-runtime/chunk-6SPPH4FY.js +1269 -0
  287. package/dist/node-runtime/chunk-6UB6NKA3.js +860 -0
  288. package/dist/node-runtime/chunk-7AFOFSDY.js +105 -0
  289. package/dist/node-runtime/chunk-7N3YHTYF.js +26 -0
  290. package/dist/node-runtime/chunk-ARC4KOTI.js +11178 -0
  291. package/dist/node-runtime/chunk-AUXVGBO4.js +19 -0
  292. package/dist/node-runtime/chunk-AY6CAJSL.js +30 -0
  293. package/dist/node-runtime/chunk-BHO7O6E5.js +296 -0
  294. package/dist/node-runtime/chunk-BI3DHYCN.js +8845 -0
  295. package/dist/node-runtime/chunk-BKAZ6BKX.js +2185 -0
  296. package/dist/node-runtime/chunk-BR7YDUKA.js +109 -0
  297. package/dist/node-runtime/chunk-BRJX2PRC.js +53 -0
  298. package/dist/node-runtime/chunk-C4O2RSQQ.js +37 -0
  299. package/dist/node-runtime/chunk-CCZJ3PYY.js +17 -0
  300. package/dist/node-runtime/chunk-CGBXPL3E.js +1171 -0
  301. package/dist/node-runtime/chunk-CH6OL6P2.js +295 -0
  302. package/dist/node-runtime/chunk-CJECDQKP.js +19 -0
  303. package/dist/node-runtime/chunk-DAPBPCBP.js +53 -0
  304. package/dist/node-runtime/chunk-DDGMHUOW.js +305 -0
  305. package/dist/node-runtime/chunk-DMMTJQMQ.js +43 -0
  306. package/dist/node-runtime/chunk-DVGWF6A2.js +1180 -0
  307. package/dist/node-runtime/chunk-EH2LJQPM.js +64 -0
  308. package/dist/node-runtime/chunk-EHMBW7FA.js +772 -0
  309. package/dist/node-runtime/chunk-FLYMHKCS.js +966 -0
  310. package/dist/node-runtime/chunk-FVDOXRUD.js +96 -0
  311. package/dist/node-runtime/chunk-GZQHMEWL.js +126 -0
  312. package/dist/node-runtime/chunk-H2EOZYMP.js +57 -0
  313. package/dist/node-runtime/chunk-HQCKFM2O.js +56 -0
  314. package/dist/node-runtime/chunk-HRS4HMDX.js +610 -0
  315. package/dist/node-runtime/chunk-HYHJIRDW.js +19 -0
  316. package/dist/node-runtime/chunk-I6R76AG7.js +22 -0
  317. package/dist/node-runtime/chunk-ISQDQIZN.js +296 -0
  318. package/dist/node-runtime/chunk-J7QGQD45.js +24921 -0
  319. package/dist/node-runtime/chunk-JHYKXIMM.js +378 -0
  320. package/dist/node-runtime/chunk-JT6YCS5B.js +5648 -0
  321. package/dist/node-runtime/chunk-JZHEUQRL.js +180 -0
  322. package/dist/node-runtime/chunk-K72NVGUB.js +2834 -0
  323. package/dist/node-runtime/chunk-KKSIVROT.js +88 -0
  324. package/dist/node-runtime/chunk-LCACDWHJ.js +1743 -0
  325. package/dist/node-runtime/chunk-LTXUQJI4.js +173 -0
  326. package/dist/node-runtime/chunk-LWJXTA6Z.js +6814 -0
  327. package/dist/node-runtime/chunk-M3LZLQW2.js +98 -0
  328. package/dist/node-runtime/chunk-MGSB2C3M.js +46 -0
  329. package/dist/node-runtime/chunk-MGWCVY6Y.js +47 -0
  330. package/dist/node-runtime/chunk-MJQDX3BA.js +72 -0
  331. package/dist/node-runtime/chunk-MUMMMTW4.js +8392 -0
  332. package/dist/node-runtime/chunk-MX3GJNXJ.js +986 -0
  333. package/dist/node-runtime/chunk-NUIFPZWX.js +209 -0
  334. package/dist/node-runtime/chunk-OBMWP3I5.js +68 -0
  335. package/dist/node-runtime/chunk-OR4L3IB2.js +42 -0
  336. package/dist/node-runtime/chunk-OTT6JMPU.js +807 -0
  337. package/dist/node-runtime/chunk-PCIGF2XK.js +250 -0
  338. package/dist/node-runtime/chunk-PL6JKXWI.js +3622 -0
  339. package/dist/node-runtime/chunk-PVCDKGR6.js +55 -0
  340. package/dist/node-runtime/chunk-Q4Q6D4IY.js +364 -0
  341. package/dist/node-runtime/chunk-Q5ZU2VRT.js +83 -0
  342. package/dist/node-runtime/chunk-QFWG2RVL.js +5477 -0
  343. package/dist/node-runtime/chunk-RQ2Q5IYR.js +72 -0
  344. package/dist/node-runtime/chunk-RQ5DNUNG.js +429 -0
  345. package/dist/node-runtime/chunk-RRIZE6QQ.js +17 -0
  346. package/dist/node-runtime/chunk-SN6G4OU6.js +4753 -0
  347. package/dist/node-runtime/chunk-SWSN6HAB.js +53 -0
  348. package/dist/node-runtime/chunk-T5GM5BFH.js +7558 -0
  349. package/dist/node-runtime/chunk-TAP7QTUT.js +1346 -0
  350. package/dist/node-runtime/chunk-U6C7VTR5.js +2033 -0
  351. package/dist/node-runtime/chunk-URD2SLIT.js +1019 -0
  352. package/dist/node-runtime/chunk-VRB2IYGG.js +53 -0
  353. package/dist/node-runtime/chunk-W3CVH5RX.js +62 -0
  354. package/dist/node-runtime/chunk-W7S2REEG.js +9478 -0
  355. package/dist/node-runtime/chunk-XBWPBZBN.js +125 -0
  356. package/dist/node-runtime/chunk-XTHQ7XR7.js +509 -0
  357. package/dist/node-runtime/chunk-ZCHMJ34K.js +130 -0
  358. package/dist/node-runtime/chunk-ZRDIMBEQ.js +651 -0
  359. package/dist/node-runtime/chunk-ZSEZY3II.js +247 -0
  360. package/dist/node-runtime/cli-runtime.js +81 -0
  361. package/dist/node-runtime/clipboard-OZ63BBC6.js +12 -0
  362. package/dist/node-runtime/clipboard-image-7QR6GXVA.js +13 -0
  363. package/dist/node-runtime/command-6UXQ6XZN.js +13 -0
  364. package/dist/node-runtime/commands-LGR5VT5X.js +293 -0
  365. package/dist/node-runtime/config-FMEOZSWE.js +77 -0
  366. package/dist/node-runtime/curator-server-XCM43VEF.js +3816 -0
  367. package/dist/node-runtime/customize-XEXL2DGQ.js +12 -0
  368. package/dist/node-runtime/direct-tool-executor-TDJS7TBD.js +191 -0
  369. package/dist/node-runtime/exa-LL64QZR2.js +329 -0
  370. package/dist/node-runtime/export-html-E4DT6ZJQ.js +150 -0
  371. package/dist/node-runtime/extension-input-RV5N6APL.js +14 -0
  372. package/dist/node-runtime/extension-selector-CPD5LWDD.js +14 -0
  373. package/dist/node-runtime/extract-IUCVZCWC.js +17 -0
  374. package/dist/node-runtime/file-sync-HCOP2QVF.js +117 -0
  375. package/dist/node-runtime/gateway-3OLC4GQN.js +2139 -0
  376. package/dist/node-runtime/gemini-api-QE7ANVDZ.js +29 -0
  377. package/dist/node-runtime/gemini-search-NCIDF7NE.js +330 -0
  378. package/dist/node-runtime/gemini-url-context-OKIN7AIP.js +103 -0
  379. package/dist/node-runtime/gemini-web-MM446SEH.js +14 -0
  380. package/dist/node-runtime/github-extract-F64RZOEA.js +619 -0
  381. package/dist/node-runtime/goal-CZQ7FFQJ.js +1831 -0
  382. package/dist/node-runtime/image-resize-6ZPBFMWW.js +11 -0
  383. package/dist/node-runtime/index.js +863 -0
  384. package/dist/node-runtime/init-EKE277AG.js +30 -0
  385. package/dist/node-runtime/install-cli-TH7IJJQQ.js +308 -0
  386. package/dist/node-runtime/interactive-mode-S5M26CQ7.js +59 -0
  387. package/dist/node-runtime/interactive-view-N6F4KUIT.js +247 -0
  388. package/dist/node-runtime/lsp-manager-3ASUSO4T.js +1104 -0
  389. package/dist/node-runtime/lunr-computer-use-4X3KUNF4.js +206 -0
  390. package/dist/node-runtime/lunr-cron-KKBOGAEF.js +274 -0
  391. package/dist/node-runtime/main.js +57 -0
  392. package/dist/node-runtime/mcp-auth-flow-YL6RWPYG.js +33 -0
  393. package/dist/node-runtime/mcp-panel-IIGMXQGP.js +501 -0
  394. package/dist/node-runtime/mcp-setup-panel-FEK7663I.js +355 -0
  395. package/dist/node-runtime/memory-cap-3S4XRLNP.js +20 -0
  396. package/dist/node-runtime/model-tiers-NJLHUEGK.js +20 -0
  397. package/dist/node-runtime/openai-search-B3MSNCQA.js +288 -0
  398. package/dist/node-runtime/package-manager-cli-C4EJOO5Q.js +751 -0
  399. package/dist/node-runtime/parallel-AI2MNSCU.js +265 -0
  400. package/dist/node-runtime/parser-manager-TQHWYDH7.js +152 -0
  401. package/dist/node-runtime/pdf-extract-IPE6H4HP.js +57 -0
  402. package/dist/node-runtime/perplexity-QVJW3I35.js +12 -0
  403. package/dist/node-runtime/pi-intercom-EEMBGQID.js +2215 -0
  404. package/dist/node-runtime/pi-mcp-adapter-DPTJGAAL.js +428 -0
  405. package/dist/node-runtime/pi-ollama-cloud-4VZRMULP.js +1440 -0
  406. package/dist/node-runtime/pi-prompt-template-model-4QT4LLXF.js +3946 -0
  407. package/dist/node-runtime/pi-subagents-VKCLYIBY.js +6050 -0
  408. package/dist/node-runtime/pi-web-access-BV6DSZOP.js +1867 -0
  409. package/dist/node-runtime/print-mode-VWIRFDAC.js +12 -0
  410. package/dist/node-runtime/proxy-modes-R64LU6WZ.js +688 -0
  411. package/dist/node-runtime/rpc-entry.js +65 -0
  412. package/dist/node-runtime/rpc-mode-SJNSOA4G.js +13 -0
  413. package/dist/node-runtime/runtime-3SB5ATHQ.js +21 -0
  414. package/dist/node-runtime/runtime-bridges-UJ5WJJLN.js +14 -0
  415. package/dist/node-runtime/session-manager-QEMZBMTM.js +33 -0
  416. package/dist/node-runtime/session-selector-URVJLOTK.js +14 -0
  417. package/dist/node-runtime/settings-manager-K6IPIQTI.js +23 -0
  418. package/dist/node-runtime/src-GPFAU3N6.js +2427 -0
  419. package/dist/node-runtime/subagent-executor-EFLTO32A.js +8501 -0
  420. package/dist/node-runtime/summary-review-YSMXKITO.js +228 -0
  421. package/dist/node-runtime/tavily-WEZFVFP7.js +154 -0
  422. package/dist/node-runtime/timings-UAD5BEAS.js +16 -0
  423. package/dist/node-runtime/tool-renderer-MV5O452K.js +204 -0
  424. package/dist/node-runtime/update-cli-I6OVDRPL.js +75 -0
  425. package/dist/node-runtime/v4-5MNC3H7G.js +424 -0
  426. package/dist/node-runtime/video-extract-ETA5RA7U.js +304 -0
  427. package/dist/node-runtime/workflow-SA34S4VX.js +325 -0
  428. package/dist/node-runtime/workspace-index-6DBXSTJ6.js +163 -0
  429. package/dist/node-runtime/youtube-extract-SRVGNN26.js +264 -0
  430. package/dist/rpc.d.ts +3 -0
  431. package/dist/rpc.d.ts.map +1 -0
  432. package/dist/rpc.js +18 -0
  433. package/dist/rpc.js.map +1 -0
  434. package/dist/startup/benchmark-request.d.ts +3 -0
  435. package/dist/startup/benchmark-request.d.ts.map +1 -0
  436. package/dist/startup/benchmark-request.js +65 -0
  437. package/dist/startup/benchmark-request.js.map +1 -0
  438. package/dist/startup/{interactive-shell.d.ts → interactive-view.d.ts} +18 -18
  439. package/dist/startup/interactive-view.d.ts.map +1 -0
  440. package/dist/startup/{interactive-shell.js → interactive-view.js} +119 -52
  441. package/dist/startup/interactive-view.js.map +1 -0
  442. package/dist/startup/launch-routing.d.ts.map +1 -1
  443. package/dist/startup/launch-routing.js +9 -10
  444. package/dist/startup/launch-routing.js.map +1 -1
  445. package/dist/startup/startup-milestones.d.ts +1 -1
  446. package/dist/startup/startup-milestones.d.ts.map +1 -1
  447. package/dist/startup/startup-milestones.js +3 -2
  448. package/dist/startup/startup-milestones.js.map +1 -1
  449. package/dist/utils/await-with-abort.d.ts +2 -0
  450. package/dist/utils/await-with-abort.d.ts.map +1 -0
  451. package/dist/utils/await-with-abort.js +19 -0
  452. package/dist/utils/await-with-abort.js.map +1 -0
  453. package/dist/utils/syntax-highlight.d.ts.map +1 -1
  454. package/dist/utils/syntax-highlight.js +10 -4
  455. package/dist/utils/syntax-highlight.js.map +1 -1
  456. package/docs/compaction.md +5 -3
  457. package/docs/computer-use.md +277 -0
  458. package/docs/development.md +5 -33
  459. package/docs/features.md +2 -3
  460. package/docs/interactive-startup.md +105 -0
  461. package/docs/keybindings.md +2 -2
  462. package/docs/terminal-setup.md +1 -1
  463. package/docs/usage.md +1 -2
  464. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  465. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  466. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  467. package/examples/extensions/gondolin/package-lock.json +2 -2
  468. package/examples/extensions/gondolin/package.json +1 -1
  469. package/examples/extensions/hidden-thinking-label.ts +1 -1
  470. package/examples/extensions/sandbox/package-lock.json +2 -2
  471. package/examples/extensions/sandbox/package.json +1 -1
  472. package/examples/extensions/with-deps/package-lock.json +2 -2
  473. package/examples/extensions/with-deps/package.json +1 -1
  474. package/install-lock/package-lock.json +3827 -0
  475. package/install-lock/package.json +18 -0
  476. package/native/computer-use/LICENSE.md +21 -0
  477. package/npm-shrinkwrap.json +3808 -0
  478. package/package.json +30 -24
  479. package/dist/core/swarm.d.ts +0 -23
  480. package/dist/core/swarm.d.ts.map +0 -1
  481. package/dist/core/swarm.js +0 -45
  482. package/dist/core/swarm.js.map +0 -1
  483. package/dist/startup/interactive-shell.d.ts.map +0 -1
  484. package/dist/startup/interactive-shell.js.map +0 -1
@@ -1,46 +1,238 @@
1
+ import { existsSync } from "node:fs";
1
2
  import { Type } from "typebox";
2
- import { showStatus, showTools, reconnectServers, authenticateServer, logoutServer, openMcpAuthPanel, openMcpPanel, openMcpSetup } from "./commands.js";
3
3
  import { loadMcpConfig } from "./config.js";
4
- import { buildProxyDescription, createDirectToolExecutor, getMissingConfiguredDirectToolServers, resolveDirectTools } from "./direct-tools.js";
5
- import { flushMetadataCache, initializeMcp, updateStatusBar } from "./init.js";
6
- import { loadMetadataCache } from "./metadata-cache.js";
7
- import { executeAuthComplete, executeAuthStart, executeCall, executeConnect, executeDescribe, executeList, executeSearch, executeStatus, executeUiMessages } from "./proxy-modes.js";
4
+ import { buildProxyDescription, getMissingConfiguredDirectToolServers, resolveDirectTools } from "./direct-tools.js";
5
+ import { getMetadataCachePath, loadMetadataCache } from "./metadata-cache.js";
8
6
  import { getConfigPathFromArgv, normalizeDirectToolInputSchema, truncateAtWord } from "./utils.js";
9
- import { initializeOAuth, shutdownOAuth } from "./mcp-auth-flow.js";
10
7
  import { createMcpDirectToolCallRenderer, renderMcpProxyToolCall, renderMcpToolResult } from "./tool-result-renderer.js";
11
8
  import { toolErrorOverride } from "./error-signal.js";
9
+ import { abortable, throwIfAborted } from "./abort.js";
10
+ function shouldBackgroundAutostart(config, cache) {
11
+ const serverEntries = Object.entries(config.mcpServers);
12
+ if (serverEntries.length === 0)
13
+ return false;
14
+ if (!existsSync(getMetadataCachePath()))
15
+ return true;
16
+ for (const [, definition] of serverEntries) {
17
+ const mode = definition.lifecycle ?? "lazy";
18
+ if (mode === "keep-alive" || mode === "eager")
19
+ return true;
20
+ }
21
+ if (process.env.MCP_DIRECT_TOOLS === "__none__")
22
+ return false;
23
+ return getMissingConfiguredDirectToolServers(config, cache).length > 0;
24
+ }
12
25
  export default function mcpAdapter(pi) {
13
26
  let state = null;
14
27
  let initPromise = null;
15
28
  let lifecycleGeneration = 0;
16
- async function shutdownState(currentState, reason) {
29
+ let sessionAbort = new AbortController();
30
+ const initializingStates = new Set();
31
+ const shutdownPromises = new WeakMap();
32
+ let heavyModules = null;
33
+ let heavyModulesPromise = null;
34
+ const directExecutors = new Map();
35
+ function loadHeavyModules() {
36
+ if (heavyModules)
37
+ return Promise.resolve(heavyModules);
38
+ if (!heavyModulesPromise) {
39
+ heavyModulesPromise = (async () => {
40
+ const [init, authFlow, commands, proxyModes, directToolExecutor] = await Promise.all([
41
+ import("./init.js"),
42
+ import("./mcp-auth-flow.js"),
43
+ import("./commands.js"),
44
+ import("./proxy-modes.js"),
45
+ import("./direct-tool-executor.js"),
46
+ ]);
47
+ const loaded = { init, authFlow, commands, proxyModes, directToolExecutor };
48
+ heavyModules = loaded;
49
+ return loaded;
50
+ })().catch((error) => {
51
+ heavyModulesPromise = null;
52
+ throw error;
53
+ });
54
+ }
55
+ return heavyModulesPromise;
56
+ }
57
+ function shutdownState(currentState, reason) {
17
58
  if (!currentState)
59
+ return Promise.resolve();
60
+ const existing = shutdownPromises.get(currentState);
61
+ if (existing)
62
+ return existing;
63
+ const shutdown = (async () => {
64
+ if (currentState.uiServer) {
65
+ currentState.uiServer.close(reason);
66
+ currentState.uiServer = null;
67
+ }
68
+ let flushError;
69
+ try {
70
+ if (heavyModules) {
71
+ heavyModules.init.flushMetadataCache(currentState);
72
+ }
73
+ }
74
+ catch (error) {
75
+ flushError = error;
76
+ }
77
+ try {
78
+ await currentState.lifecycle.gracefulShutdown();
79
+ }
80
+ catch (error) {
81
+ if (flushError) {
82
+ console.error("MCP: graceful shutdown failed after metadata flush error", error);
83
+ }
84
+ else {
85
+ throw error;
86
+ }
87
+ }
88
+ if (flushError) {
89
+ throw flushError;
90
+ }
91
+ })();
92
+ shutdownPromises.set(currentState, shutdown);
93
+ return shutdown;
94
+ }
95
+ async function shutdownInitializingStates() {
96
+ const pending = [...initializingStates];
97
+ initializingStates.clear();
98
+ await Promise.all(pending.map((entry) => shutdownState(entry, "initialization_cancelled")));
99
+ }
100
+ async function shutdownLoadedRuntime() {
101
+ if (!heavyModules)
18
102
  return;
19
- if (currentState.uiServer) {
20
- currentState.uiServer.close(reason);
21
- currentState.uiServer = null;
103
+ await heavyModules.authFlow.shutdownOAuth();
104
+ }
105
+ async function runInitialize(generation, sessionPi, ctx) {
106
+ const signal = sessionAbort.signal;
107
+ const heavy = await loadHeavyModules();
108
+ throwIfAborted(signal);
109
+ if (generation !== lifecycleGeneration) {
110
+ throw new Error("MCP initialization aborted (session changed)");
111
+ }
112
+ await heavy.authFlow.initializeOAuth().catch(err => {
113
+ console.error("MCP OAuth initialization failed:", err);
114
+ });
115
+ if (generation !== lifecycleGeneration) {
116
+ throw new Error("MCP initialization aborted (session changed)");
22
117
  }
23
- let flushError;
118
+ let partial;
24
119
  try {
25
- flushMetadataCache(currentState);
120
+ const initialized = await heavy.init.initializeMcp(sessionPi, ctx, {
121
+ signal,
122
+ onState: (entry) => {
123
+ partial = entry;
124
+ initializingStates.add(entry);
125
+ },
126
+ });
127
+ if (!partial) {
128
+ partial = initialized;
129
+ initializingStates.add(initialized);
130
+ }
131
+ throwIfAborted(signal);
132
+ return initialized;
26
133
  }
27
134
  catch (error) {
28
- flushError = error;
135
+ if (partial) {
136
+ initializingStates.delete(partial);
137
+ await shutdownState(partial, "initialization_failed");
138
+ }
139
+ throw error;
29
140
  }
30
- try {
31
- await currentState.lifecycle.gracefulShutdown();
141
+ finally {
142
+ if (partial)
143
+ initializingStates.delete(partial);
32
144
  }
33
- catch (error) {
34
- if (flushError) {
35
- console.error("MCP: graceful shutdown failed after metadata flush error", error);
145
+ }
146
+ function startSessionInit(generation, sessionPi, ctx) {
147
+ const promise = runInitialize(generation, sessionPi, ctx);
148
+ initPromise = promise;
149
+ promise.then(async (nextState) => {
150
+ if (generation !== lifecycleGeneration || initPromise !== promise) {
151
+ try {
152
+ await shutdownState(nextState, "stale_session_start");
153
+ }
154
+ catch (error) {
155
+ console.error("MCP: failed to clean stale session state", error);
156
+ }
157
+ return;
36
158
  }
37
- else {
38
- throw error;
159
+ state = nextState;
160
+ if (heavyModules) {
161
+ heavyModules.init.updateStatusBar(nextState);
162
+ }
163
+ initPromise = null;
164
+ }).catch(err => {
165
+ if (generation !== lifecycleGeneration) {
166
+ return;
39
167
  }
168
+ if (initPromise !== promise && initPromise !== null) {
169
+ return;
170
+ }
171
+ console.error("MCP initialization failed:", err);
172
+ initPromise = null;
173
+ });
174
+ return promise;
175
+ }
176
+ async function ensureState(sessionPi, ctx, signal) {
177
+ throwIfAborted(signal);
178
+ if (state)
179
+ return state;
180
+ const generation = lifecycleGeneration;
181
+ if (!initPromise) {
182
+ startSessionInit(generation, sessionPi, ctx);
40
183
  }
41
- if (flushError) {
42
- throw flushError;
184
+ const promise = initPromise;
185
+ if (!promise) {
186
+ throw new Error("MCP not initialized");
43
187
  }
188
+ try {
189
+ const nextState = await abortable(promise, signal);
190
+ if (generation !== lifecycleGeneration) {
191
+ throw new Error("MCP initialization aborted (session changed)");
192
+ }
193
+ if (state)
194
+ return state;
195
+ state = nextState;
196
+ if (initPromise === promise) {
197
+ initPromise = null;
198
+ }
199
+ return state;
200
+ }
201
+ catch (error) {
202
+ if (initPromise === promise && !signal?.aborted) {
203
+ initPromise = null;
204
+ }
205
+ throw error;
206
+ }
207
+ }
208
+ function assertCurrentState(currentState) {
209
+ if (currentState !== state)
210
+ throw new Error("MCP session changed before execution");
211
+ }
212
+ function createLazyDirectToolExecute(spec) {
213
+ return async function execute(toolCallId, params, incomingSignal, onUpdate, ctx) {
214
+ const signal = incomingSignal ? AbortSignal.any([incomingSignal, sessionAbort.signal]) : sessionAbort.signal;
215
+ let currentState;
216
+ try {
217
+ currentState = await ensureState(pi, ctx, signal);
218
+ }
219
+ catch (error) {
220
+ const message = error instanceof Error ? error.message : String(error);
221
+ return {
222
+ content: [{ type: "text", text: `MCP initialization failed: ${message}` }],
223
+ details: { error: "init_failed", message },
224
+ };
225
+ }
226
+ const heavy = await loadHeavyModules();
227
+ throwIfAborted(signal);
228
+ assertCurrentState(currentState);
229
+ let executor = directExecutors.get(spec.prefixedName);
230
+ if (!executor) {
231
+ executor = heavy.directToolExecutor.createDirectToolExecutor(() => currentState, () => null, spec);
232
+ directExecutors.set(spec.prefixedName, executor);
233
+ }
234
+ return executor(toolCallId, params, signal, onUpdate, ctx);
235
+ };
44
236
  }
45
237
  const earlyConfigPath = getConfigPathFromArgv();
46
238
  const earlyConfig = loadMcpConfig(earlyConfigPath);
@@ -61,7 +253,7 @@ export default function mcpAdapter(pi) {
61
253
  description: spec.description || "(no description)",
62
254
  promptSnippet: truncateAtWord(spec.description, 100) || `MCP tool from ${spec.serverName}`,
63
255
  parameters: Type.Unsafe(normalizeDirectToolInputSchema(spec.inputSchema)),
64
- execute: createDirectToolExecutor(() => state, () => initPromise, spec),
256
+ execute: createLazyDirectToolExecute(spec),
65
257
  renderCall: createMcpDirectToolCallRenderer(spec.prefixedName),
66
258
  renderResult: renderMcpToolResult,
67
259
  });
@@ -73,13 +265,17 @@ export default function mcpAdapter(pi) {
73
265
  });
74
266
  pi.on("session_start", async (_event, ctx) => {
75
267
  const generation = ++lifecycleGeneration;
268
+ sessionAbort.abort(new Error("MCP session changed"));
269
+ sessionAbort = new AbortController();
76
270
  const previousState = state;
77
271
  state = null;
78
272
  initPromise = null;
273
+ directExecutors.clear();
79
274
  try {
80
275
  await Promise.all([
81
276
  shutdownState(previousState, "session_restart"),
82
- shutdownOAuth(),
277
+ shutdownInitializingStates(),
278
+ shutdownLoadedRuntime(),
83
279
  ]);
84
280
  }
85
281
  catch (error) {
@@ -88,44 +284,26 @@ export default function mcpAdapter(pi) {
88
284
  if (generation !== lifecycleGeneration) {
89
285
  return;
90
286
  }
91
- await initializeOAuth().catch(err => {
92
- console.error("MCP OAuth initialization failed:", err);
93
- });
94
- const promise = initializeMcp(pi, ctx);
95
- initPromise = promise;
96
- promise.then(async (nextState) => {
97
- if (generation !== lifecycleGeneration || initPromise !== promise) {
98
- try {
99
- await shutdownState(nextState, "stale_session_start");
100
- }
101
- catch (error) {
102
- console.error("MCP: failed to clean stale session state", error);
103
- }
104
- return;
105
- }
106
- state = nextState;
107
- updateStatusBar(nextState);
108
- initPromise = null;
109
- }).catch(err => {
110
- if (generation !== lifecycleGeneration) {
111
- return;
112
- }
113
- if (initPromise !== promise && initPromise !== null) {
114
- return;
115
- }
116
- console.error("MCP initialization failed:", err);
117
- initPromise = null;
118
- });
287
+ const configPath = pi.getFlag("mcp-config") ?? earlyConfigPath;
288
+ const sessionConfig = loadMcpConfig(configPath, ctx.cwd);
289
+ const sessionCache = loadMetadataCache();
290
+ if (!shouldBackgroundAutostart(sessionConfig, sessionCache)) {
291
+ return;
292
+ }
293
+ startSessionInit(generation, pi, ctx);
119
294
  });
120
295
  pi.on("session_shutdown", async () => {
121
296
  ++lifecycleGeneration;
297
+ sessionAbort.abort(new Error("MCP session ended"));
122
298
  const currentState = state;
123
299
  state = null;
124
300
  initPromise = null;
301
+ directExecutors.clear();
125
302
  try {
126
303
  await Promise.all([
127
304
  shutdownState(currentState, "session_shutdown"),
128
- shutdownOAuth(),
305
+ shutdownInitializingStates(),
306
+ shutdownLoadedRuntime(),
129
307
  ]);
130
308
  }
131
309
  catch (error) {
@@ -137,35 +315,31 @@ export default function mcpAdapter(pi) {
137
315
  pi.registerCommand("mcp", {
138
316
  description: "Show MCP server status",
139
317
  handler: async (args, ctx) => {
140
- if (!state && initPromise) {
141
- try {
142
- state = await initPromise;
143
- }
144
- catch (error) {
145
- const message = error instanceof Error ? error.message : String(error);
146
- if (ctx.hasUI)
147
- ctx.ui.notify(`MCP initialization failed: ${message}`, "error");
148
- return;
149
- }
318
+ let currentState;
319
+ try {
320
+ currentState = await ensureState(pi, ctx);
150
321
  }
151
- if (!state) {
322
+ catch (error) {
323
+ const message = error instanceof Error ? error.message : String(error);
152
324
  if (ctx.hasUI)
153
- ctx.ui.notify("MCP not initialized", "error");
325
+ ctx.ui.notify(`MCP initialization failed: ${message}`, "error");
154
326
  return;
155
327
  }
328
+ const heavy = await loadHeavyModules();
329
+ assertCurrentState(currentState);
156
330
  const parts = args?.trim()?.split(/\s+/) ?? [];
157
331
  const subcommand = parts[0] ?? "";
158
332
  const targetServer = parts[1];
159
333
  const rest = parts.slice(1).join(" ");
160
334
  switch (subcommand) {
161
335
  case "reconnect":
162
- await reconnectServers(state, ctx, targetServer);
336
+ await heavy.commands.reconnectServers(currentState, ctx, targetServer);
163
337
  break;
164
338
  case "tools":
165
- await showTools(state, ctx);
339
+ await heavy.commands.showTools(currentState, ctx);
166
340
  break;
167
341
  case "setup": {
168
- const result = await openMcpSetup(state, pi, ctx, earlyConfigPath, "setup");
342
+ const result = await heavy.commands.openMcpSetup(currentState, pi, ctx, earlyConfigPath, "setup");
169
343
  if (result?.configChanged) {
170
344
  await ctx.reload();
171
345
  return;
@@ -179,21 +353,21 @@ export default function mcpAdapter(pi) {
179
353
  ctx.ui.notify("Usage: /mcp logout <server>", "error");
180
354
  return;
181
355
  }
182
- await logoutServer(serverName, state, ctx);
356
+ await heavy.commands.logoutServer(serverName, currentState, ctx);
183
357
  break;
184
358
  }
185
359
  case "status":
186
360
  case "":
187
361
  default:
188
362
  if (ctx.hasUI) {
189
- const result = await openMcpPanel(state, pi, ctx, earlyConfigPath);
363
+ const result = await heavy.commands.openMcpPanel(currentState, pi, ctx, earlyConfigPath);
190
364
  if (result?.configChanged) {
191
365
  await ctx.reload();
192
366
  return;
193
367
  }
194
368
  }
195
369
  else {
196
- await showStatus(state, ctx);
370
+ await heavy.commands.showStatus(currentState, ctx);
197
371
  }
198
372
  break;
199
373
  }
@@ -206,27 +380,23 @@ export default function mcpAdapter(pi) {
206
380
  if (!serverName && !ctx.hasUI) {
207
381
  return;
208
382
  }
209
- if (!state && initPromise) {
210
- try {
211
- state = await initPromise;
212
- }
213
- catch (error) {
214
- const message = error instanceof Error ? error.message : String(error);
215
- if (ctx.hasUI)
216
- ctx.ui.notify(`MCP initialization failed: ${message}`, "error");
217
- return;
218
- }
383
+ let currentState;
384
+ try {
385
+ currentState = await ensureState(pi, ctx);
219
386
  }
220
- if (!state) {
387
+ catch (error) {
388
+ const message = error instanceof Error ? error.message : String(error);
221
389
  if (ctx.hasUI)
222
- ctx.ui.notify("MCP not initialized", "error");
390
+ ctx.ui.notify(`MCP initialization failed: ${message}`, "error");
223
391
  return;
224
392
  }
393
+ const heavy = await loadHeavyModules();
394
+ assertCurrentState(currentState);
225
395
  if (!serverName) {
226
- await openMcpAuthPanel(state, pi, ctx, earlyConfigPath);
396
+ await heavy.commands.openMcpAuthPanel(currentState, pi, ctx, earlyConfigPath);
227
397
  return;
228
398
  }
229
- await authenticateServer(serverName, state.config, ctx);
399
+ await heavy.commands.authenticateServer(serverName, currentState.config, ctx);
230
400
  },
231
401
  });
232
402
  if (shouldRegisterProxyTool) {
@@ -248,7 +418,8 @@ export default function mcpAdapter(pi) {
248
418
  action: Type.Optional(Type.String({ description: "Action: 'ui-messages', 'auth-start', or 'auth-complete'" })),
249
419
  }),
250
420
  renderResult: renderMcpToolResult,
251
- async execute(_toolCallId, params, signal, _onUpdate, _ctx) {
421
+ async execute(_toolCallId, params, incomingSignal, _onUpdate, ctx) {
422
+ const signal = incomingSignal ? AbortSignal.any([incomingSignal, sessionAbort.signal]) : sessionAbort.signal;
252
423
  let parsedArgs;
253
424
  if (params.args) {
254
425
  try {
@@ -265,26 +436,22 @@ export default function mcpAdapter(pi) {
265
436
  throw error;
266
437
  }
267
438
  }
268
- if (!state && initPromise) {
269
- try {
270
- state = await initPromise;
271
- }
272
- catch (error) {
273
- const message = error instanceof Error ? error.message : String(error);
274
- return {
275
- content: [{ type: "text", text: `MCP initialization failed: ${message}` }],
276
- details: { error: "init_failed", message },
277
- };
278
- }
439
+ let currentState;
440
+ try {
441
+ currentState = await ensureState(pi, ctx, signal);
279
442
  }
280
- if (!state) {
443
+ catch (error) {
444
+ const message = error instanceof Error ? error.message : String(error);
281
445
  return {
282
- content: [{ type: "text", text: "MCP not initialized" }],
283
- details: { error: "not_initialized" },
446
+ content: [{ type: "text", text: `MCP initialization failed: ${message}` }],
447
+ details: { error: "init_failed", message },
284
448
  };
285
449
  }
450
+ const heavy = await loadHeavyModules();
451
+ throwIfAborted(signal);
452
+ assertCurrentState(currentState);
286
453
  if (params.action === "ui-messages") {
287
- return executeUiMessages(state);
454
+ return heavy.proxyModes.executeUiMessages(currentState);
288
455
  }
289
456
  if (params.action === "auth-start") {
290
457
  if (!params.server) {
@@ -293,7 +460,7 @@ export default function mcpAdapter(pi) {
293
460
  details: { mode: "auth-start", error: "missing_server" },
294
461
  };
295
462
  }
296
- return executeAuthStart(state, params.server);
463
+ return heavy.proxyModes.executeAuthStart(currentState, params.server);
297
464
  }
298
465
  if (params.action === "auth-complete") {
299
466
  if (!params.server) {
@@ -309,24 +476,24 @@ export default function mcpAdapter(pi) {
309
476
  details: { mode: "auth-complete", error: "missing_input" },
310
477
  };
311
478
  }
312
- return executeAuthComplete(state, params.server, input);
479
+ return heavy.proxyModes.executeAuthComplete(currentState, params.server, input);
313
480
  }
314
481
  if (params.tool) {
315
- return executeCall(state, params.tool, parsedArgs, params.server, getPiTools, signal);
482
+ return heavy.proxyModes.executeCall(currentState, params.tool, parsedArgs, params.server, getPiTools, signal);
316
483
  }
317
484
  if (params.connect) {
318
- return executeConnect(state, params.connect, signal);
485
+ return heavy.proxyModes.executeConnect(currentState, params.connect, signal);
319
486
  }
320
487
  if (params.describe) {
321
- return executeDescribe(state, params.describe);
488
+ return heavy.proxyModes.executeDescribe(currentState, params.describe);
322
489
  }
323
490
  if (params.search) {
324
- return executeSearch(state, params.search, params.regex, params.server, params.includeSchemas);
491
+ return heavy.proxyModes.executeSearch(currentState, params.search, params.regex, params.server, params.includeSchemas);
325
492
  }
326
493
  if (params.server) {
327
- return executeList(state, params.server);
494
+ return heavy.proxyModes.executeList(currentState, params.server);
328
495
  }
329
- return executeStatus(state);
496
+ return heavy.proxyModes.executeStatus(currentState);
330
497
  },
331
498
  });
332
499
  }