@ashx-j/lunr 0.2.26 → 0.2.27

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 (639) hide show
  1. package/CHANGELOG.md +16 -1
  2. package/LICENSE +22 -0
  3. package/dist/builtin-extensions/ashxj-thinking.d.ts +1 -1
  4. package/dist/builtin-extensions/ashxj-thinking.d.ts.map +1 -1
  5. package/dist/builtin-extensions/ashxj-thinking.js +1 -1
  6. package/dist/builtin-extensions/ashxj-thinking.js.map +1 -1
  7. package/dist/builtin-extensions/ashxj-tui.d.ts +11 -1
  8. package/dist/builtin-extensions/ashxj-tui.d.ts.map +1 -1
  9. package/dist/builtin-extensions/ashxj-tui.js +6 -10
  10. package/dist/builtin-extensions/ashxj-tui.js.map +1 -1
  11. package/dist/builtin-extensions/lunr-cron.d.ts +4 -5
  12. package/dist/builtin-extensions/lunr-cron.d.ts.map +1 -1
  13. package/dist/builtin-extensions/lunr-cron.js +94 -108
  14. package/dist/builtin-extensions/lunr-cron.js.map +1 -1
  15. package/dist/builtin-extensions/lunr-local-providers/local-servers.d.ts.map +1 -1
  16. package/dist/builtin-extensions/lunr-local-providers/local-servers.js +3 -1
  17. package/dist/builtin-extensions/lunr-local-providers/local-servers.js.map +1 -1
  18. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.d.ts.map +1 -1
  19. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.js +2 -2
  20. package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.js.map +1 -1
  21. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.d.ts.map +1 -1
  22. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js +1 -1
  23. package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js.map +1 -1
  24. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.d.ts.map +1 -1
  25. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.js +1 -1
  26. package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.js.map +1 -1
  27. package/dist/builtin-extensions/pi-intercom/index.d.ts.map +1 -1
  28. package/dist/builtin-extensions/pi-intercom/index.js +2 -2
  29. package/dist/builtin-extensions/pi-intercom/index.js.map +1 -1
  30. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.d.ts +1 -1
  31. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.d.ts.map +1 -1
  32. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.js +1 -1
  33. package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.js.map +1 -1
  34. package/dist/builtin-extensions/pi-lsp-extension/src/index.d.ts.map +1 -1
  35. package/dist/builtin-extensions/pi-lsp-extension/src/index.js +1 -15
  36. package/dist/builtin-extensions/pi-lsp-extension/src/index.js.map +1 -1
  37. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.d.ts +6 -0
  38. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.d.ts.map +1 -1
  39. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.js +187 -132
  40. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.js.map +1 -1
  41. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.d.ts +8 -0
  42. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.d.ts.map +1 -1
  43. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.js +142 -112
  44. package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.js.map +1 -1
  45. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.d.ts +12 -1
  46. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.d.ts.map +1 -1
  47. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.js +14 -7
  48. package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.js.map +1 -1
  49. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.d.ts +11 -3
  50. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.d.ts.map +1 -1
  51. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.js +67 -41
  52. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.js.map +1 -1
  53. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.d.ts +4 -2
  54. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.d.ts.map +1 -1
  55. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.js +3 -0
  56. package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.js.map +1 -1
  57. package/dist/builtin-extensions/pi-mcp-adapter/commands.d.ts +2 -1
  58. package/dist/builtin-extensions/pi-mcp-adapter/commands.d.ts.map +1 -1
  59. package/dist/builtin-extensions/pi-mcp-adapter/commands.js +6 -6
  60. package/dist/builtin-extensions/pi-mcp-adapter/commands.js.map +1 -1
  61. package/dist/builtin-extensions/pi-mcp-adapter/config.d.ts +1 -1
  62. package/dist/builtin-extensions/pi-mcp-adapter/config.d.ts.map +1 -1
  63. package/dist/builtin-extensions/pi-mcp-adapter/config.js +11 -5
  64. package/dist/builtin-extensions/pi-mcp-adapter/config.js.map +1 -1
  65. package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.d.ts.map +1 -1
  66. package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.js +2 -2
  67. package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.js.map +1 -1
  68. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.d.ts.map +1 -1
  69. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.js +1 -1
  70. package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.js.map +1 -1
  71. package/dist/builtin-extensions/pi-mcp-adapter/index.d.ts.map +1 -1
  72. package/dist/builtin-extensions/pi-mcp-adapter/index.js +48 -40
  73. package/dist/builtin-extensions/pi-mcp-adapter/index.js.map +1 -1
  74. package/dist/builtin-extensions/pi-mcp-adapter/init.d.ts.map +1 -1
  75. package/dist/builtin-extensions/pi-mcp-adapter/init.js +3 -1
  76. package/dist/builtin-extensions/pi-mcp-adapter/init.js.map +1 -1
  77. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.d.ts +12 -40
  78. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.d.ts.map +1 -1
  79. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.js +166 -235
  80. package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.js.map +1 -1
  81. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.d.ts +5 -0
  82. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.d.ts.map +1 -1
  83. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.js +43 -13
  84. package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.js.map +1 -1
  85. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.d.ts +14 -3
  86. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.d.ts.map +1 -1
  87. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.js +73 -21
  88. package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.js.map +1 -1
  89. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.d.ts.map +1 -1
  90. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.js +4 -4
  91. package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.js.map +1 -1
  92. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.d.ts.map +1 -1
  93. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js +2 -2
  94. package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js.map +1 -1
  95. package/dist/builtin-extensions/pi-mcp-adapter/state.d.ts +2 -0
  96. package/dist/builtin-extensions/pi-mcp-adapter/state.d.ts.map +1 -1
  97. package/dist/builtin-extensions/pi-mcp-adapter/state.js.map +1 -1
  98. package/dist/builtin-extensions/pi-ollama-cloud/index.d.ts +1 -1
  99. package/dist/builtin-extensions/pi-ollama-cloud/index.d.ts.map +1 -1
  100. package/dist/builtin-extensions/pi-ollama-cloud/index.js +1 -1
  101. package/dist/builtin-extensions/pi-ollama-cloud/index.js.map +1 -1
  102. package/dist/builtin-extensions/pi-ollama-cloud/models.d.ts +11 -5
  103. package/dist/builtin-extensions/pi-ollama-cloud/models.d.ts.map +1 -1
  104. package/dist/builtin-extensions/pi-ollama-cloud/models.js +12 -32
  105. package/dist/builtin-extensions/pi-ollama-cloud/models.js.map +1 -1
  106. package/dist/builtin-extensions/pi-prompt-template-model/index.d.ts.map +1 -1
  107. package/dist/builtin-extensions/pi-prompt-template-model/index.js +5 -3
  108. package/dist/builtin-extensions/pi-prompt-template-model/index.js.map +1 -1
  109. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.d.ts +2 -1
  110. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.d.ts.map +1 -1
  111. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js +21 -12
  112. package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js.map +1 -1
  113. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.d.ts.map +1 -1
  114. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js +7 -24
  115. package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js.map +1 -1
  116. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
  117. package/dist/builtin-extensions/pi-subagents/src/extension/index.js +39 -77
  118. package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
  119. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts +1 -1
  120. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts.map +1 -1
  121. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js +15 -31
  122. package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js.map +1 -1
  123. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts.map +1 -1
  124. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js +7 -2
  125. package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js.map +1 -1
  126. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -1
  127. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js +10 -2
  128. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -1
  129. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts.map +1 -1
  130. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js +8 -1
  131. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js.map +1 -1
  132. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -1
  133. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +106 -24
  134. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -1
  135. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
  136. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +25 -5
  137. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
  138. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts +1 -1
  139. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts.map +1 -1
  140. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js +1 -1
  141. package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js.map +1 -1
  142. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts +7 -8
  143. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -1
  144. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js +60 -32
  145. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -1
  146. package/dist/builtin-extensions/pi-subagents/src/shared/utils.d.ts +1 -1
  147. package/dist/builtin-extensions/pi-subagents/src/shared/utils.d.ts.map +1 -1
  148. package/dist/builtin-extensions/pi-subagents/src/shared/utils.js +15 -5
  149. package/dist/builtin-extensions/pi-subagents/src/shared/utils.js.map +1 -1
  150. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts.map +1 -1
  151. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js +4 -3
  152. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js.map +1 -1
  153. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +1 -1
  154. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
  155. package/dist/builtin-extensions/pi-subagents/src/tui/render.js +17 -8
  156. package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
  157. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.d.ts.map +1 -1
  158. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js +3 -3
  159. package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js.map +1 -1
  160. package/dist/builtin-extensions/pi-tps.d.ts.map +1 -1
  161. package/dist/builtin-extensions/pi-tps.js +20 -17
  162. package/dist/builtin-extensions/pi-tps.js.map +1 -1
  163. package/dist/builtin-extensions/pi-web-access/activity.d.ts +1 -0
  164. package/dist/builtin-extensions/pi-web-access/activity.d.ts.map +1 -1
  165. package/dist/builtin-extensions/pi-web-access/activity.js +27 -5
  166. package/dist/builtin-extensions/pi-web-access/activity.js.map +1 -1
  167. package/dist/builtin-extensions/pi-web-access/bounded-body.d.ts +3 -0
  168. package/dist/builtin-extensions/pi-web-access/bounded-body.d.ts.map +1 -0
  169. package/dist/builtin-extensions/pi-web-access/bounded-body.js +43 -0
  170. package/dist/builtin-extensions/pi-web-access/bounded-body.js.map +1 -0
  171. package/dist/builtin-extensions/pi-web-access/content-page.d.ts +24 -0
  172. package/dist/builtin-extensions/pi-web-access/content-page.d.ts.map +1 -0
  173. package/dist/builtin-extensions/pi-web-access/content-page.js +57 -0
  174. package/dist/builtin-extensions/pi-web-access/content-page.js.map +1 -0
  175. package/dist/builtin-extensions/pi-web-access/extract.d.ts.map +1 -1
  176. package/dist/builtin-extensions/pi-web-access/extract.js +7 -2
  177. package/dist/builtin-extensions/pi-web-access/extract.js.map +1 -1
  178. package/dist/builtin-extensions/pi-web-access/github-extract.d.ts +0 -1
  179. package/dist/builtin-extensions/pi-web-access/github-extract.d.ts.map +1 -1
  180. package/dist/builtin-extensions/pi-web-access/github-extract.js +147 -36
  181. package/dist/builtin-extensions/pi-web-access/github-extract.js.map +1 -1
  182. package/dist/builtin-extensions/pi-web-access/index.d.ts.map +1 -1
  183. package/dist/builtin-extensions/pi-web-access/index.js +48 -73
  184. package/dist/builtin-extensions/pi-web-access/index.js.map +1 -1
  185. package/dist/builtin-extensions/pi-web-access/session-cleanup.d.ts +12 -4
  186. package/dist/builtin-extensions/pi-web-access/session-cleanup.d.ts.map +1 -1
  187. package/dist/builtin-extensions/pi-web-access/session-cleanup.js +35 -12
  188. package/dist/builtin-extensions/pi-web-access/session-cleanup.js.map +1 -1
  189. package/dist/builtin-extensions/pi-web-access/storage.d.ts +9 -6
  190. package/dist/builtin-extensions/pi-web-access/storage.d.ts.map +1 -1
  191. package/dist/builtin-extensions/pi-web-access/storage.js +36 -24
  192. package/dist/builtin-extensions/pi-web-access/storage.js.map +1 -1
  193. package/dist/builtin-extensions/simple-pi-memory.d.ts +1 -1
  194. package/dist/builtin-extensions/simple-pi-memory.d.ts.map +1 -1
  195. package/dist/builtin-extensions/simple-pi-memory.js +1 -1
  196. package/dist/builtin-extensions/simple-pi-memory.js.map +1 -1
  197. package/dist/cli/install-cli.d.ts.map +1 -1
  198. package/dist/cli/install-cli.js +38 -30
  199. package/dist/cli/install-cli.js.map +1 -1
  200. package/dist/core/agent-session-runtime.d.ts +13 -0
  201. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  202. package/dist/core/agent-session-runtime.js +75 -11
  203. package/dist/core/agent-session-runtime.js.map +1 -1
  204. package/dist/core/agent-session-services.d.ts +1 -0
  205. package/dist/core/agent-session-services.d.ts.map +1 -1
  206. package/dist/core/agent-session-services.js +1 -0
  207. package/dist/core/agent-session-services.js.map +1 -1
  208. package/dist/core/agent-session.d.ts +40 -6
  209. package/dist/core/agent-session.d.ts.map +1 -1
  210. package/dist/core/agent-session.js +309 -76
  211. package/dist/core/agent-session.js.map +1 -1
  212. package/dist/core/browser/runtime.d.ts +2 -0
  213. package/dist/core/browser/runtime.d.ts.map +1 -1
  214. package/dist/core/browser/runtime.js +80 -45
  215. package/dist/core/browser/runtime.js.map +1 -1
  216. package/dist/core/browser/setup.d.ts.map +1 -1
  217. package/dist/core/browser/setup.js +12 -1
  218. package/dist/core/browser/setup.js.map +1 -1
  219. package/dist/core/computer-use/adapter.d.ts.map +1 -1
  220. package/dist/core/computer-use/adapter.js +7 -2
  221. package/dist/core/computer-use/adapter.js.map +1 -1
  222. package/dist/core/computer-use/image.d.ts.map +1 -1
  223. package/dist/core/computer-use/image.js +17 -5
  224. package/dist/core/computer-use/image.js.map +1 -1
  225. package/dist/core/computer-use/schemas.d.ts.map +1 -1
  226. package/dist/core/computer-use/schemas.js +23 -6
  227. package/dist/core/computer-use/schemas.js.map +1 -1
  228. package/dist/core/computer-use/workflow.d.ts.map +1 -1
  229. package/dist/core/computer-use/workflow.js +459 -119
  230. package/dist/core/computer-use/workflow.js.map +1 -1
  231. package/dist/core/cron/jobs.d.ts +26 -8
  232. package/dist/core/cron/jobs.d.ts.map +1 -1
  233. package/dist/core/cron/jobs.js +357 -232
  234. package/dist/core/cron/jobs.js.map +1 -1
  235. package/dist/core/cron/origin-context.d.ts +1 -0
  236. package/dist/core/cron/origin-context.d.ts.map +1 -1
  237. package/dist/core/cron/origin-context.js.map +1 -1
  238. package/dist/core/cron/scheduler.d.ts +22 -17
  239. package/dist/core/cron/scheduler.d.ts.map +1 -1
  240. package/dist/core/cron/scheduler.js +153 -73
  241. package/dist/core/cron/scheduler.js.map +1 -1
  242. package/dist/core/extensions/index.d.ts +1 -1
  243. package/dist/core/extensions/index.d.ts.map +1 -1
  244. package/dist/core/extensions/index.js.map +1 -1
  245. package/dist/core/extensions/runner.d.ts +1 -0
  246. package/dist/core/extensions/runner.d.ts.map +1 -1
  247. package/dist/core/extensions/runner.js +8 -0
  248. package/dist/core/extensions/runner.js.map +1 -1
  249. package/dist/core/extensions/types.d.ts +8 -0
  250. package/dist/core/extensions/types.d.ts.map +1 -1
  251. package/dist/core/extensions/types.js.map +1 -1
  252. package/dist/core/footer-data-provider.d.ts +4 -0
  253. package/dist/core/footer-data-provider.d.ts.map +1 -1
  254. package/dist/core/footer-data-provider.js +22 -1
  255. package/dist/core/footer-data-provider.js.map +1 -1
  256. package/dist/core/large-subagent-launch.d.ts +1 -1
  257. package/dist/core/large-subagent-launch.d.ts.map +1 -1
  258. package/dist/core/large-subagent-launch.js +7 -7
  259. package/dist/core/large-subagent-launch.js.map +1 -1
  260. package/dist/core/model-registry.d.ts +2 -0
  261. package/dist/core/model-registry.d.ts.map +1 -1
  262. package/dist/core/model-registry.js +5 -0
  263. package/dist/core/model-registry.js.map +1 -1
  264. package/dist/core/model-runtime.d.ts +4 -1
  265. package/dist/core/model-runtime.d.ts.map +1 -1
  266. package/dist/core/model-runtime.js +40 -4
  267. package/dist/core/model-runtime.js.map +1 -1
  268. package/dist/core/package-manager.d.ts.map +1 -1
  269. package/dist/core/package-manager.js.map +1 -1
  270. package/dist/core/permissions.d.ts +3 -3
  271. package/dist/core/permissions.d.ts.map +1 -1
  272. package/dist/core/permissions.js +11 -35
  273. package/dist/core/permissions.js.map +1 -1
  274. package/dist/core/plan-mode.d.ts +5 -13
  275. package/dist/core/plan-mode.d.ts.map +1 -1
  276. package/dist/core/plan-mode.js +126 -116
  277. package/dist/core/plan-mode.js.map +1 -1
  278. package/dist/core/project-trust.d.ts.map +1 -1
  279. package/dist/core/project-trust.js +1 -1
  280. package/dist/core/project-trust.js.map +1 -1
  281. package/dist/core/prompt-resource-bridge.d.ts +12 -0
  282. package/dist/core/prompt-resource-bridge.d.ts.map +1 -0
  283. package/dist/core/prompt-resource-bridge.js +9 -0
  284. package/dist/core/prompt-resource-bridge.js.map +1 -0
  285. package/dist/core/protected-targets.d.ts +6 -0
  286. package/dist/core/protected-targets.d.ts.map +1 -0
  287. package/dist/core/protected-targets.js +45 -0
  288. package/dist/core/protected-targets.js.map +1 -0
  289. package/dist/core/resource-loader.d.ts.map +1 -1
  290. package/dist/core/resource-loader.js +7 -0
  291. package/dist/core/resource-loader.js.map +1 -1
  292. package/dist/core/rollback.d.ts +19 -3
  293. package/dist/core/rollback.d.ts.map +1 -1
  294. package/dist/core/rollback.js +172 -56
  295. package/dist/core/rollback.js.map +1 -1
  296. package/dist/core/runtime-credentials.d.ts +3 -0
  297. package/dist/core/runtime-credentials.d.ts.map +1 -1
  298. package/dist/core/runtime-credentials.js +14 -1
  299. package/dist/core/runtime-credentials.js.map +1 -1
  300. package/dist/core/sdk.d.ts +3 -0
  301. package/dist/core/sdk.d.ts.map +1 -1
  302. package/dist/core/sdk.js +1 -0
  303. package/dist/core/sdk.js.map +1 -1
  304. package/dist/core/session-manager.d.ts +6 -0
  305. package/dist/core/session-manager.d.ts.map +1 -1
  306. package/dist/core/session-manager.js +95 -32
  307. package/dist/core/session-manager.js.map +1 -1
  308. package/dist/core/session-ownership.d.ts.map +1 -1
  309. package/dist/core/session-ownership.js +8 -3
  310. package/dist/core/session-ownership.js.map +1 -1
  311. package/dist/core/session-retention.d.ts.map +1 -1
  312. package/dist/core/session-retention.js +18 -7
  313. package/dist/core/session-retention.js.map +1 -1
  314. package/dist/core/session-startup-settings.d.ts +10 -0
  315. package/dist/core/session-startup-settings.d.ts.map +1 -0
  316. package/dist/core/session-startup-settings.js +70 -0
  317. package/dist/core/session-startup-settings.js.map +1 -0
  318. package/dist/core/subscriptions.d.ts +16 -7
  319. package/dist/core/subscriptions.d.ts.map +1 -1
  320. package/dist/core/subscriptions.js +96 -55
  321. package/dist/core/subscriptions.js.map +1 -1
  322. package/dist/core/trust-manager.d.ts +2 -1
  323. package/dist/core/trust-manager.d.ts.map +1 -1
  324. package/dist/core/trust-manager.js +6 -1
  325. package/dist/core/trust-manager.js.map +1 -1
  326. package/dist/core/update-check.d.ts.map +1 -1
  327. package/dist/core/update-check.js.map +1 -1
  328. package/dist/core/usage-adapters/kimi-coding.d.ts +2 -2
  329. package/dist/core/usage-adapters/kimi-coding.d.ts.map +1 -1
  330. package/dist/core/usage-adapters/kimi-coding.js +2 -2
  331. package/dist/core/usage-adapters/kimi-coding.js.map +1 -1
  332. package/dist/core/usage-adapters/openai-codex.d.ts +3 -2
  333. package/dist/core/usage-adapters/openai-codex.d.ts.map +1 -1
  334. package/dist/core/usage-adapters/openai-codex.js +3 -3
  335. package/dist/core/usage-adapters/openai-codex.js.map +1 -1
  336. package/dist/core/usage-adapters/xai.d.ts +2 -2
  337. package/dist/core/usage-adapters/xai.d.ts.map +1 -1
  338. package/dist/core/usage-adapters/xai.js +3 -3
  339. package/dist/core/usage-adapters/xai.js.map +1 -1
  340. package/dist/core/usage-adapters/zai.d.ts +2 -2
  341. package/dist/core/usage-adapters/zai.d.ts.map +1 -1
  342. package/dist/core/usage-adapters/zai.js +2 -2
  343. package/dist/core/usage-adapters/zai.js.map +1 -1
  344. package/dist/core/usage-service.d.ts +9 -2
  345. package/dist/core/usage-service.d.ts.map +1 -1
  346. package/dist/core/usage-service.js +95 -50
  347. package/dist/core/usage-service.js.map +1 -1
  348. package/dist/gateway/agent-bridge.d.ts +9 -1
  349. package/dist/gateway/agent-bridge.d.ts.map +1 -1
  350. package/dist/gateway/agent-bridge.js +91 -37
  351. package/dist/gateway/agent-bridge.js.map +1 -1
  352. package/dist/gateway/buttons.d.ts +8 -1
  353. package/dist/gateway/buttons.d.ts.map +1 -1
  354. package/dist/gateway/buttons.js +76 -18
  355. package/dist/gateway/buttons.js.map +1 -1
  356. package/dist/gateway/commands.d.ts +1 -0
  357. package/dist/gateway/commands.d.ts.map +1 -1
  358. package/dist/gateway/commands.js +10 -4
  359. package/dist/gateway/commands.js.map +1 -1
  360. package/dist/gateway/cron.d.ts +12 -11
  361. package/dist/gateway/cron.d.ts.map +1 -1
  362. package/dist/gateway/cron.js +65 -56
  363. package/dist/gateway/cron.js.map +1 -1
  364. package/dist/gateway/index.d.ts.map +1 -1
  365. package/dist/gateway/index.js +2 -1
  366. package/dist/gateway/index.js.map +1 -1
  367. package/dist/gateway/mobile-commands.d.ts +1 -0
  368. package/dist/gateway/mobile-commands.d.ts.map +1 -1
  369. package/dist/gateway/mobile-commands.js +56 -14
  370. package/dist/gateway/mobile-commands.js.map +1 -1
  371. package/dist/gateway/presenter.d.ts +12 -2
  372. package/dist/gateway/presenter.d.ts.map +1 -1
  373. package/dist/gateway/presenter.js +73 -38
  374. package/dist/gateway/presenter.js.map +1 -1
  375. package/dist/gateway/router.d.ts +2 -2
  376. package/dist/gateway/router.d.ts.map +1 -1
  377. package/dist/gateway/router.js +17 -2
  378. package/dist/gateway/router.js.map +1 -1
  379. package/dist/gateway/service.d.ts +2 -0
  380. package/dist/gateway/service.d.ts.map +1 -1
  381. package/dist/gateway/service.js +153 -0
  382. package/dist/gateway/service.js.map +1 -1
  383. package/dist/main.d.ts.map +1 -1
  384. package/dist/main.js +86 -33
  385. package/dist/main.js.map +1 -1
  386. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  387. package/dist/modes/interactive/components/assistant-message.js +6 -4
  388. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  389. package/dist/modes/interactive/components/copyable-text.d.ts.map +1 -1
  390. package/dist/modes/interactive/components/copyable-text.js +3 -2
  391. package/dist/modes/interactive/components/copyable-text.js.map +1 -1
  392. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  393. package/dist/modes/interactive/components/extension-editor.js +1 -1
  394. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  395. package/dist/modes/interactive/interactive-mode.d.ts +2 -2
  396. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  397. package/dist/modes/interactive/interactive-mode.js +96 -109
  398. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  399. package/dist/modes/interactive/smooth-streaming.d.ts.map +1 -1
  400. package/dist/modes/interactive/smooth-streaming.js.map +1 -1
  401. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  402. package/dist/modes/rpc/rpc-mode.js +2 -1
  403. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  404. package/dist/node-runtime/{adapter-VFG7WNPX.js → adapter-247RTYLS.js} +4 -5
  405. package/dist/node-runtime/agent-session-services-KDMSPQDY.js +53 -0
  406. package/dist/node-runtime/{brave-UWDA3I22.js → brave-2AFFAXNN.js} +1 -1
  407. package/dist/node-runtime/{builtin-extensions-I2HIFEMY.js → builtin-extensions-OX6KELNX.js} +8 -7
  408. package/dist/node-runtime/{chunk-QH6YL7VK.js → chunk-252ZVPPF.js} +3 -3
  409. package/dist/node-runtime/{chunk-PCEW76PM.js → chunk-2OIPYKLZ.js} +6 -6
  410. package/dist/node-runtime/{chunk-XBWPBZBN.js → chunk-2SWW7KMW.js} +1 -1
  411. package/dist/node-runtime/{chunk-UQUCFAJ3.js → chunk-2VIW3IMF.js} +40 -7
  412. package/dist/node-runtime/{chunk-UOEDI7RP.js → chunk-4KNKQGHM.js} +2 -2
  413. package/dist/node-runtime/{chunk-FQMM2EZ2.js → chunk-64XTQNLA.js} +29 -7
  414. package/dist/node-runtime/{chunk-SPVDBUOS.js → chunk-6O3IW3IA.js} +2 -2
  415. package/dist/node-runtime/{chunk-5ZQXRPMC.js → chunk-6ZZHGUSA.js} +2 -2
  416. package/dist/node-runtime/chunk-A2WO6WIN.js +1197 -0
  417. package/dist/node-runtime/{chunk-WIF24I7G.js → chunk-APVM5NEU.js} +149 -144
  418. package/dist/node-runtime/{chunk-RCR3XAQY.js → chunk-AYHH7YSD.js} +177 -144
  419. package/dist/node-runtime/{chunk-LWYIVUGV.js → chunk-B2IBAXNX.js} +48 -31
  420. package/dist/node-runtime/{chunk-M3LZLQW2.js → chunk-BDRGN3L2.js} +1 -0
  421. package/dist/node-runtime/{chunk-GJ2RDBRL.js → chunk-BYC6RKCN.js} +4 -2
  422. package/dist/node-runtime/{chunk-UVWCDQYF.js → chunk-C3P6Q3B2.js} +455 -278
  423. package/dist/node-runtime/{chunk-SN2KSMPQ.js → chunk-DQSCFU7R.js} +13 -7
  424. package/dist/node-runtime/{chunk-4SBQAI4T.js → chunk-EBLAZVSA.js} +2058 -73
  425. package/dist/node-runtime/{chunk-2KIPT4HJ.js → chunk-EPR2F3GU.js} +68 -20
  426. package/dist/node-runtime/{chunk-CSFI6YXL.js → chunk-ES6PBSIE.js} +1 -1
  427. package/dist/node-runtime/{chunk-IF24A3FH.js → chunk-EVM653DD.js} +4 -4
  428. package/dist/node-runtime/{chunk-HTFRRDSF.js → chunk-F2SMQ6ES.js} +3 -2
  429. package/dist/node-runtime/chunk-F2V2F4ZG.js +114 -0
  430. package/dist/node-runtime/{chunk-IKU6Y7DL.js → chunk-FE3WZI7F.js} +9 -6
  431. package/dist/node-runtime/{chunk-GYIXXQAO.js → chunk-FIRA54AC.js} +2 -5
  432. package/dist/node-runtime/{chunk-6VYZ5UFP.js → chunk-FLGEEH27.js} +1 -1
  433. package/dist/node-runtime/{chunk-5EFIU3OM.js → chunk-FTKEZL27.js} +1 -1
  434. package/dist/node-runtime/{chunk-RGQAEOM5.js → chunk-FYIFPFXE.js} +23 -6
  435. package/dist/node-runtime/{chunk-HMBGROQK.js → chunk-GLDXBBL6.js} +3 -3
  436. package/dist/node-runtime/{chunk-KWA4OC2J.js → chunk-H6YBCWKG.js} +1 -1
  437. package/dist/node-runtime/{chunk-2MI5OPMN.js → chunk-HNNHHJAB.js} +68 -50
  438. package/dist/node-runtime/{chunk-I74LN5JG.js → chunk-HUD2RFJW.js} +2 -2
  439. package/dist/node-runtime/{chunk-I54LGHWM.js → chunk-I2H5QMWW.js} +3 -3
  440. package/dist/node-runtime/{chunk-XHIRAZ26.js → chunk-IAZSK7KK.js} +1 -1
  441. package/dist/node-runtime/{chunk-X3PGBLQ7.js → chunk-IHHTWSXN.js} +9 -9
  442. package/dist/node-runtime/{chunk-DAPBPCBP.js → chunk-IPP5BIV5.js} +25 -3
  443. package/dist/node-runtime/{chunk-QFWG2RVL.js → chunk-IXG6F4NT.js} +11 -0
  444. package/dist/node-runtime/{chunk-RDDAZOMU.js → chunk-JL4HYQXK.js} +1 -1
  445. package/dist/node-runtime/{chunk-CDVHZOOK.js → chunk-JQYNHAKX.js} +1 -1
  446. package/dist/node-runtime/{chunk-L24TPBS4.js → chunk-JWEVT363.js} +37 -29
  447. package/dist/node-runtime/{chunk-2HMIRK7W.js → chunk-LHV3V67B.js} +5 -5
  448. package/dist/node-runtime/{chunk-UAEOTO52.js → chunk-MNQXDFPV.js} +6 -2
  449. package/dist/node-runtime/{chunk-T4DA4XE7.js → chunk-MQPKUHRN.js} +162 -82
  450. package/dist/node-runtime/{chunk-MPKSOJBT.js → chunk-NHATCSOI.js} +4 -7
  451. package/dist/node-runtime/{chunk-RMQZU2YU.js → chunk-NNNR3QIY.js} +1 -1
  452. package/dist/node-runtime/{chunk-RWTKOC3B.js → chunk-QBTJG3UM.js} +1 -1
  453. package/dist/node-runtime/{chunk-P7XBVXGT.js → chunk-QNVMKNNN.js} +18 -14
  454. package/dist/node-runtime/{chunk-GS42T6MX.js → chunk-QW3AAHWN.js} +1 -1
  455. package/dist/node-runtime/{chunk-DVQSHCVP.js → chunk-R4WSB2MQ.js} +5 -5
  456. package/dist/node-runtime/{chunk-B4HP6ZWM.js → chunk-RHCGYWO7.js} +1 -1
  457. package/dist/node-runtime/{chunk-2CFDTH5B.js → chunk-RLGY2QIL.js} +45 -59
  458. package/dist/node-runtime/{chunk-KKUTQQV7.js → chunk-RYRGL7P4.js} +1 -1
  459. package/dist/node-runtime/{chunk-5Q4A37RB.js → chunk-TCT6PCUR.js} +32 -11
  460. package/dist/node-runtime/{chunk-D5UCKPBQ.js → chunk-UBWW2PID.js} +1 -1
  461. package/dist/node-runtime/{chunk-E75WFZ33.js → chunk-UNUZICC4.js} +3 -3
  462. package/dist/node-runtime/{chunk-RAK2QA2B.js → chunk-UYRKUKFE.js} +4 -4
  463. package/dist/node-runtime/{chunk-LWJXTA6Z.js → chunk-VSUEAI7O.js} +1377 -45
  464. package/dist/node-runtime/{chunk-NAY6UUQZ.js → chunk-WDIVLMOH.js} +1 -1
  465. package/dist/node-runtime/{chunk-E24EO34J.js → chunk-WPXUR3HE.js} +1 -1
  466. package/dist/node-runtime/{chunk-SLVOAQOY.js → chunk-WXYNALHD.js} +113 -1
  467. package/dist/node-runtime/{chunk-KJ6DWS3K.js → chunk-XEOCUEUJ.js} +121 -60
  468. package/dist/node-runtime/chunk-YD3IZAZ7.js +47 -0
  469. package/dist/node-runtime/chunk-YSB6URMT.js +41 -0
  470. package/dist/node-runtime/{chunk-LJTIVM7I.js → chunk-ZDJUR45D.js} +427 -126
  471. package/dist/node-runtime/{chunk-YWOJIGFY.js → chunk-ZEVFBFNF.js} +95 -142
  472. package/dist/node-runtime/{chunk-5B6VKFEV.js → chunk-ZIQUS5QO.js} +1 -1
  473. package/dist/node-runtime/cli-runtime.js +4 -4
  474. package/dist/node-runtime/{command-FSBU2EVZ.js → command-3HMSY6W2.js} +5 -5
  475. package/dist/node-runtime/{commands-EMBQQVVT.js → commands-D6A6H4TS.js} +11 -18
  476. package/dist/node-runtime/{commands-NAAL7KNT.js → commands-OCSSEEWJ.js} +16 -16
  477. package/dist/node-runtime/{config-QDD5PUE2.js → config-CU7M7BTK.js} +1 -1
  478. package/dist/node-runtime/{config-D4QUPAHX.js → config-DS7XLMEM.js} +2 -2
  479. package/dist/node-runtime/{direct-tool-executor-4D7UXYU4.js → direct-tool-executor-2QJXVQD2.js} +6 -11
  480. package/dist/node-runtime/{exa-LL64QZR2.js → exa-6VBZNPGE.js} +1 -1
  481. package/dist/node-runtime/{export-html-VM4J2MNR.js → export-html-BRWF5AHI.js} +4 -4
  482. package/dist/node-runtime/{extension-input-E7BJZ35H.js → extension-input-VBBMX7YV.js} +5 -5
  483. package/dist/node-runtime/{extension-selector-WU42XDTU.js → extension-selector-T5AOG5XB.js} +5 -5
  484. package/dist/node-runtime/{extract-EQJE7FZZ.js → extract-BFX2N35A.js} +3 -3
  485. package/dist/node-runtime/{gateway-DQM333YV.js → gateway-6623C2U3.js} +51 -42
  486. package/dist/node-runtime/{gemini-search-35OCRFLN.js → gemini-search-C66QHDT6.js} +2 -2
  487. package/dist/node-runtime/{gemini-url-context-UQY3PHHW.js → gemini-url-context-T7DEK73R.js} +3 -3
  488. package/dist/node-runtime/{github-extract-F64RZOEA.js → github-extract-HOGE3D6F.js} +107 -38
  489. package/dist/node-runtime/{goal-NJEE5CTU.js → goal-AIHEDUYA.js} +5 -5
  490. package/dist/node-runtime/index.js +50 -48
  491. package/dist/node-runtime/{init-P5AUV77I.js → init-JBQJIPYI.js} +3 -6
  492. package/dist/node-runtime/{install-cli-NN4YAU44.js → install-cli-INGHIVBY.js} +30 -25
  493. package/dist/node-runtime/interactive-mode-FM5DNUSW.js +74 -0
  494. package/dist/node-runtime/{interactive-view-NGFAMHPW.js → interactive-view-K33PM4OS.js} +8 -8
  495. package/dist/node-runtime/{lsp-manager-3ASUSO4T.js → lsp-manager-S554V5HR.js} +240 -155
  496. package/dist/node-runtime/{lunr-browser-IR7TL3J7.js → lunr-browser-H4FDOR3C.js} +7 -7
  497. package/dist/node-runtime/{lunr-computer-use-Y23CCDIJ.js → lunr-computer-use-VDP2QNRQ.js} +9 -9
  498. package/dist/node-runtime/{lunr-cron-USHC4LXH.js → lunr-cron-LKVA5CZZ.js} +93 -80
  499. package/dist/node-runtime/main.js +42 -41
  500. package/dist/node-runtime/{mobile-commands-O5LCHL32.js → mobile-commands-XT3NQXLD.js} +12 -12
  501. package/dist/node-runtime/{model-runtime-OO5HFLWE.js → model-runtime-MZ2JMDV4.js} +4 -4
  502. package/dist/node-runtime/{openai-search-B3MSNCQA.js → openai-search-K72LJDYN.js} +1 -1
  503. package/dist/node-runtime/{package-manager-cli-Q7BL6KZO.js → package-manager-cli-CYM262SI.js} +20 -20
  504. package/dist/node-runtime/{parallel-AI2MNSCU.js → parallel-X724NCNU.js} +1 -1
  505. package/dist/node-runtime/{perplexity-QVJW3I35.js → perplexity-RDHQHVMK.js} +2 -2
  506. package/dist/node-runtime/{pi-intercom-QM53RLTS.js → pi-intercom-NHHEPBMI.js} +2 -2
  507. package/dist/node-runtime/{pi-mcp-adapter-3PHF4KZ4.js → pi-mcp-adapter-PP3GQJQ2.js} +98 -94
  508. package/dist/node-runtime/{pi-ollama-cloud-2F3Y2QNM.js → pi-ollama-cloud-4MNWIMFN.js} +11 -24
  509. package/dist/node-runtime/{pi-prompt-template-model-QWTCGLJU.js → pi-prompt-template-model-FTGELLS5.js} +32 -36
  510. package/dist/node-runtime/{pi-subagents-7IBSSGEW.js → pi-subagents-LT3CTO4E.js} +98 -106
  511. package/dist/node-runtime/{pi-web-access-WTGMNZ32.js → pi-web-access-Z3LP246C.js} +144 -108
  512. package/dist/node-runtime/{print-mode-XQ76CYMT.js → print-mode-2XHN5SUA.js} +3 -3
  513. package/dist/node-runtime/{process-registry-4FAKZQOL.js → process-registry-Q4QWIU33.js} +3 -3
  514. package/dist/node-runtime/{proxy-modes-5FAPSZEZ.js → proxy-modes-VEGC6QG5.js} +8 -15
  515. package/dist/node-runtime/rpc-entry.js +42 -41
  516. package/dist/node-runtime/{rpc-mode-O3XV4SID.js → rpc-mode-32DHJPEJ.js} +4 -4
  517. package/dist/node-runtime/{runtime-4VA6JKNF.js → runtime-EDUUGAQD.js} +56 -46
  518. package/dist/node-runtime/{runtime-EFPPD2UW.js → runtime-UGXM4NPQ.js} +2 -2
  519. package/dist/node-runtime/{runtime-bridges-7WVCLI76.js → runtime-bridges-DNKMNJCF.js} +7 -7
  520. package/dist/node-runtime/{service-MDQIPQ26.js → service-IHLGFLBT.js} +6 -4
  521. package/dist/node-runtime/{session-handoff-GWARVEWT.js → session-handoff-LNSPDTKY.js} +4 -4
  522. package/dist/node-runtime/{session-manager-JB5J6XBN.js → session-manager-YIFIAVGC.js} +3 -3
  523. package/dist/node-runtime/{session-selector-GIM4DHQ2.js → session-selector-I73U3EIO.js} +7 -7
  524. package/dist/node-runtime/{settings-manager-DJDM5AHM.js → settings-manager-P2TKGYTR.js} +5 -5
  525. package/dist/node-runtime/{setup-JBKOLJ6F.js → setup-H7CCELIL.js} +15 -1
  526. package/dist/node-runtime/{setup-PFBWRNUI.js → setup-OLQ4GXWS.js} +17 -17
  527. package/dist/node-runtime/{src-IVPNZ2BX.js → src-6RV4PXKJ.js} +64 -36
  528. package/dist/node-runtime/{subagent-executor-LPZ4BHWE.js → subagent-executor-Q5F7DBVM.js} +119 -58
  529. package/dist/node-runtime/{tavily-WEZFVFP7.js → tavily-KZBFYQB6.js} +1 -1
  530. package/dist/node-runtime/{theme-UOO5RVFN.js → theme-YLVZKKZD.js} +2 -2
  531. package/dist/node-runtime/{trust-manager-MMISNCYO.js → trust-manager-ZCU76D23.js} +2 -2
  532. package/dist/node-runtime/{update-cli-HNMOTNGX.js → update-cli-F3XXJANQ.js} +6 -6
  533. package/dist/node-runtime/{usage-service-LFB2SWYV.js → usage-service-CPAGBED5.js} +1 -1
  534. package/dist/node-runtime/{video-extract-OOZHR7SU.js → video-extract-UPKYIBW3.js} +3 -3
  535. package/dist/node-runtime/{workflow-OHPBEFO4.js → workflow-ICDI4N3J.js} +208 -78
  536. package/dist/node-runtime/{youtube-extract-FNPAUNHU.js → youtube-extract-77NT7FWH.js} +4 -4
  537. package/dist/utils/clipboard-image.d.ts.map +1 -1
  538. package/dist/utils/clipboard-image.js.map +1 -1
  539. package/dist/utils/exif-orientation.d.ts.map +1 -1
  540. package/dist/utils/exif-orientation.js +25 -10
  541. package/dist/utils/exif-orientation.js.map +1 -1
  542. package/dist/utils/image-resize-core.d.ts.map +1 -1
  543. package/dist/utils/image-resize-core.js +2 -0
  544. package/dist/utils/image-resize-core.js.map +1 -1
  545. package/dist/utils/paths.d.ts +4 -0
  546. package/dist/utils/paths.d.ts.map +1 -1
  547. package/dist/utils/paths.js +33 -2
  548. package/dist/utils/paths.js.map +1 -1
  549. package/dist/utils/sanitize-terminal-text.d.ts +7 -0
  550. package/dist/utils/sanitize-terminal-text.d.ts.map +1 -0
  551. package/dist/utils/sanitize-terminal-text.js +67 -0
  552. package/dist/utils/sanitize-terminal-text.js.map +1 -0
  553. package/docs/browser.md +1 -1
  554. package/docs/custom-provider.md +3 -3
  555. package/docs/extensions.md +8 -4
  556. package/docs/features.md +15 -7
  557. package/docs/keybindings.md +1 -1
  558. package/docs/models.md +5 -5
  559. package/docs/packages.md +1 -1
  560. package/docs/providers.md +2 -2
  561. package/docs/rpc.md +7 -7
  562. package/docs/security.md +10 -5
  563. package/docs/sessions.md +2 -2
  564. package/docs/skills.md +1 -1
  565. package/docs/terminal-setup.md +7 -7
  566. package/docs/themes.md +1 -1
  567. package/docs/usage.md +1 -1
  568. package/examples/extensions/auto-commit-on-exit.ts +1 -1
  569. package/examples/extensions/bash-spawn-hook.ts +1 -1
  570. package/examples/extensions/built-in-tool-renderer.ts +1 -1
  571. package/examples/extensions/claude-rules.ts +1 -1
  572. package/examples/extensions/commands.ts +1 -1
  573. package/examples/extensions/custom-compaction.ts +1 -1
  574. package/examples/extensions/custom-provider-anthropic/index.ts +3 -3
  575. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  576. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  577. package/examples/extensions/custom-provider-gitlab-duo/index.ts +1 -1
  578. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  579. package/examples/extensions/doom-overlay/index.ts +1 -1
  580. package/examples/extensions/git-merge-and-resolve.ts +2 -2
  581. package/examples/extensions/gondolin/index.ts +1 -1
  582. package/examples/extensions/gondolin/package-lock.json +2 -2
  583. package/examples/extensions/gondolin/package.json +1 -1
  584. package/examples/extensions/hidden-thinking-label.ts +1 -1
  585. package/examples/extensions/inline-bash.ts +2 -2
  586. package/examples/extensions/input-transform-streaming.ts +2 -2
  587. package/examples/extensions/input-transform.ts +2 -2
  588. package/examples/extensions/interactive-shell.ts +1 -1
  589. package/examples/extensions/kimi-deferred-tools.ts +1 -1
  590. package/examples/extensions/mac-system-theme.ts +1 -1
  591. package/examples/extensions/minimal-mode.ts +1 -1
  592. package/examples/extensions/modal-editor.ts +1 -1
  593. package/examples/extensions/model-status.ts +1 -1
  594. package/examples/extensions/notify.ts +3 -3
  595. package/examples/extensions/overlay-qa-tests.ts +1 -1
  596. package/examples/extensions/overlay-test.ts +1 -1
  597. package/examples/extensions/pirate.ts +1 -1
  598. package/examples/extensions/preset.ts +3 -3
  599. package/examples/extensions/project-trust.ts +4 -4
  600. package/examples/extensions/prompt-customizer.ts +1 -1
  601. package/examples/extensions/rainbow-editor.ts +1 -1
  602. package/examples/extensions/rpc-demo.ts +1 -1
  603. package/examples/extensions/sandbox/index.ts +7 -7
  604. package/examples/extensions/sandbox/package-lock.json +2 -2
  605. package/examples/extensions/sandbox/package.json +1 -1
  606. package/examples/extensions/shutdown-command.ts +5 -5
  607. package/examples/extensions/ssh.ts +2 -2
  608. package/examples/extensions/subagent/README.md +3 -3
  609. package/examples/extensions/subagent/index.ts +2 -2
  610. package/examples/extensions/titlebar-spinner.ts +1 -1
  611. package/examples/extensions/tool-override.ts +1 -1
  612. package/examples/extensions/tools.ts +1 -1
  613. package/examples/extensions/with-deps/package-lock.json +2 -2
  614. package/examples/extensions/with-deps/package.json +1 -1
  615. package/examples/extensions/working-indicator.ts +1 -1
  616. package/examples/extensions/working-message-test.ts +1 -1
  617. package/examples/sdk/01-minimal.ts +1 -1
  618. package/examples/sdk/03-custom-prompt.ts +1 -1
  619. package/examples/sdk/04-skills.ts +1 -1
  620. package/examples/sdk/06-extensions.ts +2 -2
  621. package/examples/sdk/08-prompt-templates.ts +1 -1
  622. package/install-lock/package-lock.json +24 -24
  623. package/install-lock/package.json +2 -2
  624. package/npm-shrinkwrap.json +60 -24
  625. package/package.json +9 -9
  626. package/dist/modes/interactive/components/exit-card.d.ts +0 -22
  627. package/dist/modes/interactive/components/exit-card.d.ts.map +0 -1
  628. package/dist/modes/interactive/components/exit-card.js +0 -69
  629. package/dist/modes/interactive/components/exit-card.js.map +0 -1
  630. package/dist/node-runtime/agent-session-services-5YXS2PLF.js +0 -51
  631. package/dist/node-runtime/chunk-2IDTZAG5.js +0 -1415
  632. package/dist/node-runtime/chunk-3MISGG4S.js +0 -769
  633. package/dist/node-runtime/chunk-4HXHDDCF.js +0 -16
  634. package/dist/node-runtime/chunk-5B5QN3ZQ.js +0 -356
  635. package/dist/node-runtime/chunk-7IQGBKBJ.js +0 -2033
  636. package/dist/node-runtime/chunk-AUXVGBO4.js +0 -19
  637. package/dist/node-runtime/chunk-PTFBPO3C.js +0 -50
  638. package/dist/node-runtime/interactive-mode-YOHZVMKX.js +0 -74
  639. package/dist/node-runtime/mcp-auth-flow-QVLFVLEO.js +0 -33
@@ -390,6 +390,7 @@ var require_main2 = __commonJS({
390
390
  import { resolve, join } from "node:path";
391
391
  import { pathToFileURL as pathToFileURL2 } from "node:url";
392
392
  import { existsSync, readFileSync, readdirSync, unlinkSync } from "node:fs";
393
+ import { setTimeout as delay } from "node:timers/promises";
393
394
  import { spawn as spawnChild } from "node:child_process";
394
395
 
395
396
  // packages/coding-agent/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.js
@@ -408,6 +409,9 @@ var LspClient = class {
408
409
  _disposed = !1;
409
410
  /** True if connected to a daemon socket (server init handled by daemon) */
410
411
  _isDaemonClient = !1;
412
+ stop = new AbortController();
413
+ startPromise = null;
414
+ shutdownPromise = null;
411
415
  languageId;
412
416
  command;
413
417
  rootDir;
@@ -432,8 +436,18 @@ var LspClient = class {
432
436
  return new Map(this._diagnostics);
433
437
  }
434
438
  /** Start the LSP server and perform the initialize handshake */
435
- async start() {
436
- this._initialized || this._disposed || (this.options.socketPath ? await this.connectToSocket(this.options.socketPath) : await this.spawnDirect());
439
+ start() {
440
+ return this._disposed ? Promise.reject(new Error("LSP client shut down")) : this.startPromise ? this.startPromise : (this.startPromise = (this.options.socketPath ? this.connectToSocket(this.options.socketPath) : this.spawnDirect()).catch(async (error) => {
441
+ throw await this.shutdown(), error;
442
+ }), this.startPromise);
443
+ }
444
+ /** Cancel an owned handshake without waiting for the remote server. */
445
+ waitForStart(pending) {
446
+ let signal = this.stop.signal;
447
+ return signal.throwIfAborted(), new Promise((resolve2, reject) => {
448
+ let aborted = () => reject(signal.reason);
449
+ signal.addEventListener("abort", aborted, { once: !0 }), pending.then(resolve2, reject).finally(() => signal.removeEventListener("abort", aborted));
450
+ });
437
451
  }
438
452
  /** Register shared connection handlers (diagnostics, workspace/configuration, errors) */
439
453
  registerConnectionHandlers() {
@@ -451,64 +465,63 @@ var LspClient = class {
451
465
  /** Connect to an existing LSP daemon via Unix socket (no init handshake needed) */
452
466
  async connectToSocket(socketPath) {
453
467
  return this._isDaemonClient = !0, new Promise((resolve2, reject) => {
454
- let settled = !1, settle = (fn) => {
455
- settled || (settled = !0, fn());
468
+ let settled = !1, connected = !1, timeout, settle = (error) => {
469
+ settled || (settled = !0, clearTimeout(timeout), this.stop.signal.removeEventListener("abort", aborted), error ? reject(error) : resolve2());
470
+ }, aborted = () => {
471
+ settle(new Error("LSP client shut down")), socket.destroy();
456
472
  }, socket = netConnect(socketPath, () => {
457
- this.socket = socket;
458
- let reader = new import_node.SocketMessageReader(socket), writer = new import_node.SocketMessageWriter(socket);
459
- this.connection = (0, import_node.createMessageConnection)(reader, writer), this.registerConnectionHandlers(), this.connection.listen(), this._initialized = !0, settle(() => resolve2());
473
+ if (this._disposed || settled) {
474
+ socket.destroy();
475
+ return;
476
+ }
477
+ try {
478
+ let reader = new import_node.SocketMessageReader(socket), writer = new import_node.SocketMessageWriter(socket);
479
+ this.connection = (0, import_node.createMessageConnection)(reader, writer), this.registerConnectionHandlers(), this.connection.listen(), this._initialized = !0, connected = !0, settle();
480
+ } catch (error) {
481
+ settle(error instanceof Error ? error : new Error(String(error))), socket.destroy();
482
+ }
460
483
  });
461
- socket.on("error", (err) => {
462
- this._initialized ? this._initialized = !1 : settle(() => reject(new Error(`Failed to connect to LSP daemon: ${err.message}`)));
484
+ this.socket = socket, socket.on("error", (err) => {
485
+ settle(new Error(`Failed to connect to LSP daemon: ${err.message}`)), this._initialized = !1;
463
486
  }), socket.on("close", () => {
464
- this._disposed || (this._initialized = !1, this.options.onUnexpectedExit?.(null));
465
- }), setTimeout(() => {
466
- settled || (socket.destroy(), settle(() => reject(new Error("Timeout connecting to LSP daemon socket"))));
467
- }, 1e4);
487
+ settle(new Error("LSP daemon socket closed during startup")), this._disposed || (this._initialized = !1, connected && this.options.onUnexpectedExit?.(null));
488
+ }), timeout = setTimeout(() => {
489
+ settle(new Error("Timeout connecting to LSP daemon socket")), socket.destroy();
490
+ }, 1e4), this.stop.signal.addEventListener("abort", aborted, { once: !0 }), this.stop.signal.aborted && aborted();
468
491
  });
469
492
  }
470
493
  /** Spawn LSP server directly as child process with stdio */
471
494
  async spawnDirect() {
472
495
  let env = { ...process.env, ...this.options.env };
473
- if (this.process = spawn(this.options.command, this.options.args, {
496
+ this.process = spawn(this.options.command, this.options.args, {
474
497
  stdio: ["pipe", "pipe", "pipe"],
475
498
  env,
476
499
  cwd: this.rootDir
477
- }), !this.process.stdout || !this.process.stdin)
500
+ });
501
+ let child = this.process;
502
+ for (let stream of [child.stdin, child.stdout, child.stderr])
503
+ stream?.on("error", (err) => {
504
+ this._disposed || console.error(`[LSP ${this.languageId}] Transport error: ${err.message}`);
505
+ });
506
+ child.on("error", (err) => {
507
+ this._disposed || console.error(`[LSP ${this.languageId}] Process error: ${err.message}`), this._initialized = !1, this.disposeConnection();
508
+ });
509
+ let wasInitialized = !1;
510
+ if (child.on("exit", (code) => {
511
+ this._disposed || (this._initialized = !1, this.disposeConnection(), wasInitialized && this.options.onUnexpectedExit?.(code));
512
+ }), !child.stdout || !child.stdin)
478
513
  throw new Error(`Failed to spawn LSP server: ${this.options.command}`);
479
- await new Promise((resolve2, reject) => {
514
+ await this.waitForStart(new Promise((resolve2, reject) => {
480
515
  let onSpawn = () => {
481
516
  cleanup(), resolve2();
482
517
  }, onError = (err) => {
483
518
  cleanup(), reject(new Error(`Failed to spawn LSP server "${this.options.command}": ${err.message}`));
484
519
  }, cleanup = () => {
485
- this.process?.removeListener("spawn", onSpawn), this.process?.removeListener("error", onError);
520
+ child.removeListener("spawn", onSpawn), child.removeListener("error", onError), this.stop.signal.removeEventListener("abort", cleanup);
486
521
  };
487
- this.process.on("spawn", onSpawn), this.process.on("error", onError);
488
- }), this.process.stderr?.resume();
489
- let stdin = this.process.stdin, originalWrite = stdin.write;
490
- stdin.write = function(...args) {
491
- if (this.destroyed || this.writableEnded || this.writableFinished) {
492
- let cb = args[args.length - 1];
493
- return typeof cb == "function" && process.nextTick(cb), !1;
494
- }
495
- try {
496
- return originalWrite.apply(this, args);
497
- } catch (err) {
498
- if (err?.code === "EPIPE" || err?.code === "ERR_STREAM_DESTROYED") {
499
- let cb = args[args.length - 1];
500
- return typeof cb == "function" && process.nextTick(cb), !1;
501
- }
502
- throw err;
503
- }
504
- }, stdin.on("error", (err) => {
505
- err?.code !== "EPIPE" && console.error(`[LSP ${this.languageId}] stdin error: ${err.message}`);
506
- }), this.process.on("error", (err) => {
507
- console.error(`[LSP ${this.languageId}] Process error: ${err.message}`), this._initialized = !1, this.disposeConnection();
508
- }), this.process.on("exit", (code) => {
509
- this._disposed || (console.error(`[LSP ${this.languageId}] Server exited with code ${code}`), this._initialized = !1, this.disposeConnection(), this.options.onUnexpectedExit?.(code));
510
- });
511
- let reader = new import_node.StreamMessageReader(this.process.stdout), writer = new import_node.StreamMessageWriter(this.process.stdin);
522
+ child.once("spawn", onSpawn), child.once("error", onError), this.stop.signal.addEventListener("abort", cleanup, { once: !0 });
523
+ })), this.stop.signal.throwIfAborted(), child.stderr?.resume();
524
+ let reader = new import_node.StreamMessageReader(child.stdout), writer = new import_node.StreamMessageWriter(child.stdin);
512
525
  this.connection = (0, import_node.createMessageConnection)(reader, writer), this.registerConnectionHandlers(), this.connection.listen();
513
526
  let rootUri = pathToFileURL(this.rootDir).toString(), defaultFolder = { uri: rootUri, name: this.rootDir.split("/").pop() ?? "workspace" }, workspaceFolders = this.options.workspaceFolders && this.options.workspaceFolders.length > 0 ? this.options.workspaceFolders : [defaultFolder], initParams = {
514
527
  processId: process.pid,
@@ -547,8 +560,8 @@ var LspClient = class {
547
560
  rootUri,
548
561
  workspaceFolders,
549
562
  ...this.options.initializationOptions ? { initializationOptions: this.options.initializationOptions } : {}
550
- }, result = await this.connection.sendRequest("initialize", initParams);
551
- this._serverCapabilities = result.capabilities, this.connection.sendNotification("initialized", {}), this._initialized = !0;
563
+ }, result = await this.waitForStart(this.connection.sendRequest("initialize", initParams));
564
+ this.stop.signal.throwIfAborted(), this._serverCapabilities = result.capabilities, await this.waitForStart(this.connection.sendNotification("initialized", {})), this.stop.signal.throwIfAborted(), this._initialized = !0, wasInitialized = !0;
552
565
  }
553
566
  /** Safely dispose the connection without throwing */
554
567
  disposeConnection() {
@@ -566,7 +579,17 @@ var LspClient = class {
566
579
  }
567
580
  /** Send a notification to the LSP server */
568
581
  sendNotification(method, params) {
569
- !this.connection || !this._initialized || this.connection.sendNotification(method, params);
582
+ if (!this.connection || !this._initialized)
583
+ return;
584
+ let report = (error) => {
585
+ let message = error instanceof Error ? error.message : String(error);
586
+ this._disposed || console.error(`[LSP ${this.languageId}] Notification failed: ${message}`);
587
+ };
588
+ try {
589
+ this.connection.sendNotification(method, params).catch(report);
590
+ } catch (error) {
591
+ report(error);
592
+ }
570
593
  }
571
594
  /** Notify server of a newly opened document */
572
595
  didOpen(uri, languageId, version, text) {
@@ -588,31 +611,60 @@ var LspClient = class {
588
611
  });
589
612
  }
590
613
  /** Gracefully shut down or disconnect from the server */
591
- async shutdown() {
592
- if (!this._disposed) {
593
- if (this._disposed = !0, this._initialized = !1, this._isDaemonClient) {
594
- this.disposeConnection(), this.socket && this.socket.destroy(), this.socket = null;
595
- return;
596
- }
614
+ shutdown() {
615
+ if (this.shutdownPromise)
616
+ return this.shutdownPromise;
617
+ let initialized = this._initialized;
618
+ return this._disposed = !0, this._initialized = !1, this.stop.abort(new Error("LSP client shut down")), this.shutdownPromise = this.shutdownOwnedTransport(initialized), this.shutdownPromise;
619
+ }
620
+ async shutdownOwnedTransport(initialized) {
621
+ let child = this.process, connection = this.connection;
622
+ if (this.process = null, this._isDaemonClient) {
623
+ this.disposeConnection(), this.socket?.destroy(), this.socket = null;
624
+ return;
625
+ }
626
+ if (connection && initialized) {
627
+ let timeout;
597
628
  try {
598
- if (this.connection) {
599
- let shutdownReq = this.connection.sendRequest("shutdown").catch(() => {
629
+ let graceful = async () => {
630
+ await connection.sendRequest("shutdown").catch(() => {
631
+ }), await connection.sendNotification("exit").catch(() => {
600
632
  });
601
- await Promise.race([
602
- shutdownReq,
603
- new Promise((resolve2) => setTimeout(resolve2, 3e3))
604
- ]);
605
- try {
606
- this.connection.sendNotification("exit");
607
- } catch {
608
- }
609
- }
633
+ };
634
+ await Promise.race([
635
+ graceful().catch(() => {
636
+ }),
637
+ new Promise((resolve2) => {
638
+ timeout = setTimeout(resolve2, 3e3);
639
+ })
640
+ ]);
610
641
  } catch {
642
+ } finally {
643
+ clearTimeout(timeout);
611
644
  }
612
- this.disposeConnection(), this.process && (this.process.kill("SIGTERM"), setTimeout(() => {
613
- this.process && !this.process.killed && this.process.kill("SIGKILL");
614
- }, 2e3)), this.process = null;
615
645
  }
646
+ this.disposeConnection(), !(!child || child.exitCode !== null || child.signalCode !== null) && await new Promise((resolve2, reject) => {
647
+ let forceTimer, exitTimer, cleanup = () => {
648
+ clearTimeout(forceTimer), clearTimeout(exitTimer), child.removeListener("exit", exited);
649
+ }, exited = () => {
650
+ cleanup(), resolve2();
651
+ }, signalChild = (signal) => {
652
+ try {
653
+ child.kill(signal);
654
+ } catch (error) {
655
+ cleanup(), reject(error);
656
+ }
657
+ };
658
+ child.once("exit", exited), forceTimer = setTimeout(() => {
659
+ if (child.exitCode !== null || child.signalCode !== null) {
660
+ exited();
661
+ return;
662
+ }
663
+ exitTimer = setTimeout(() => {
664
+ cleanup(), reject(new Error(`LSP ${this.languageId} process did not exit after SIGKILL`));
665
+ }, 1e3), signalChild("SIGKILL");
666
+ }, 2e3), signalChild("SIGTERM");
667
+ });
616
668
  }
617
669
  };
618
670
 
@@ -656,6 +708,10 @@ var DEFAULT_SERVERS = {
656
708
  _sessionId;
657
709
  _lombokJarPath = null;
658
710
  _shuttingDown = !1;
711
+ stop = new AbortController();
712
+ pendingClients = /* @__PURE__ */ new Set();
713
+ restartTimers = /* @__PURE__ */ new Set();
714
+ shutdownPromise = null;
659
715
  _restartAttempts = /* @__PURE__ */ new Map();
660
716
  _restartBackoff = /* @__PURE__ */ new Map();
661
717
  static MAX_RESTART_ATTEMPTS = 3;
@@ -814,17 +870,17 @@ var DEFAULT_SERVERS = {
814
870
  * Returns null if no server is configured for this language.
815
871
  */
816
872
  async getClientForLanguage(languageId) {
873
+ if (this._shuttingDown)
874
+ return null;
817
875
  let existing = this.clients.get(languageId);
818
876
  if (existing && existing.initialized && !existing.disposed)
819
877
  return existing;
820
878
  if (this.startingServers.get(languageId))
821
879
  return null;
822
880
  let config = this.serverConfigs.get(languageId);
823
- if (!config)
824
- return null;
825
- let startPromise = this.startServer(languageId, config);
826
- return this.startingServers.set(languageId, startPromise), startPromise.catch((err) => {
827
- this.startingServers.delete(languageId);
881
+ return config && this.trackStart(languageId, config).catch((err) => {
882
+ if (this._shuttingDown)
883
+ return;
828
884
  let message = `Failed to start LSP server for ${languageId}: ${err.message}`;
829
885
  this._callbacks.onServerError?.(languageId, message);
830
886
  }), null;
@@ -841,18 +897,18 @@ var DEFAULT_SERVERS = {
841
897
  * is fire-and-forget — intended for session_start auto-start.
842
898
  */
843
899
  startEagerly(languageIds) {
844
- for (let languageId of languageIds) {
845
- let existing = this.clients.get(languageId);
846
- if (existing && existing.initialized && !existing.disposed || this.startingServers.has(languageId))
847
- continue;
848
- let config = this.serverConfigs.get(languageId);
849
- if (!config)
850
- continue;
851
- let startPromise = this.startServer(languageId, config);
852
- this.startingServers.set(languageId, startPromise), startPromise.catch((err) => {
853
- this.startingServers.delete(languageId), this._callbacks.onServerError?.(languageId, `Auto-start failed: ${err.message}`);
854
- });
855
- }
900
+ if (!this._shuttingDown)
901
+ for (let languageId of languageIds) {
902
+ let existing = this.clients.get(languageId);
903
+ if (existing && existing.initialized && !existing.disposed || this.startingServers.has(languageId))
904
+ continue;
905
+ let config = this.serverConfigs.get(languageId);
906
+ if (!config)
907
+ continue;
908
+ this.trackStart(languageId, config).catch((err) => {
909
+ this._shuttingDown || this._callbacks.onServerError?.(languageId, `Auto-start failed: ${err.message}`);
910
+ });
911
+ }
856
912
  }
857
913
  /**
858
914
  * Ensure workspace provider is ready (one-time per session).
@@ -862,88 +918,98 @@ var DEFAULT_SERVERS = {
862
918
  if (this._workspaceReady)
863
919
  return;
864
920
  if (this._workspaceReadying) {
865
- await this._workspaceReadying;
921
+ await this.waitForStart(this._workspaceReadying);
866
922
  return;
867
923
  }
868
- this._callbacks.onWorkspaceSetupStart?.();
924
+ this._callbacks.onWorkspaceSetupStart?.(), this.stop.signal.throwIfAborted();
869
925
  let start = Date.now();
870
926
  this._workspaceReadying = this._workspace.ensureReady(this._sessionId);
871
927
  try {
872
- let success = await this._workspaceReadying;
928
+ let success = await this.waitForStart(this._workspaceReadying);
873
929
  this._callbacks.onWorkspaceSetupEnd?.(success, Date.now() - start);
874
930
  } finally {
875
931
  this._workspaceReady = !0, this._workspaceReadying = null;
876
932
  }
877
933
  }
934
+ /** Keep starts registered until their owned clients have either attached or closed. */
935
+ trackStart(languageId, config) {
936
+ this.stop.signal.throwIfAborted();
937
+ let existing = this.startingServers.get(languageId);
938
+ if (existing)
939
+ return existing;
940
+ let pending = Promise.resolve().then(() => this.startServer(languageId, config)).finally(() => {
941
+ this.startingServers.get(languageId) === pending && this.startingServers.delete(languageId);
942
+ });
943
+ return this.startingServers.set(languageId, pending), pending;
944
+ }
945
+ waitForStart(pending) {
946
+ let signal = this.stop.signal;
947
+ return signal.throwIfAborted(), new Promise((resolve2, reject) => {
948
+ let aborted = () => reject(signal.reason);
949
+ signal.addEventListener("abort", aborted, { once: !0 }), pending.then(resolve2, reject).finally(() => signal.removeEventListener("abort", aborted));
950
+ });
951
+ }
878
952
  async startServer(languageId, config) {
879
- await this.ensureWorkspace();
953
+ this.stop.signal.throwIfAborted(), await this.ensureWorkspace(), this.stop.signal.throwIfAborted();
880
954
  let stateDir = this._workspace.stateDir, folders = this._workspace.getWorkspaceFolders(), workspaceFolders = folders.length > 0 ? folders : void 0, initializationOptions = config.initializationOptions ?? (languageId === "java" ? this.getJavaInitializationOptions() : void 0), effectiveArgs = config.args;
881
955
  if (languageId === "java") {
882
956
  let lombokJar = this.findLombokJar();
883
957
  lombokJar && (effectiveArgs = [`--jvm-arg=-javaagent:${lombokJar}`, ...config.args]);
884
958
  }
885
- let onUnexpectedExit = (code) => this.handleUnexpectedExit(languageId, code), socketPath = this.getSocketPath(languageId);
959
+ let onUnexpectedExit = (code) => this.handleUnexpectedExit(languageId, code), connectClient = async (socketPath2) => {
960
+ this.stop.signal.throwIfAborted();
961
+ let client = new LspClient({
962
+ command: config.command,
963
+ args: effectiveArgs,
964
+ rootDir: this.rootDir,
965
+ languageId,
966
+ socketPath: socketPath2,
967
+ env: config.env,
968
+ workspaceFolders,
969
+ initializationOptions,
970
+ settings: config.settings,
971
+ onUnexpectedExit
972
+ });
973
+ this.pendingClients.add(client);
974
+ try {
975
+ if (await this.waitForStart(client.start()), this.stop.signal.throwIfAborted(), !client.initialized || client.disposed)
976
+ throw new Error("LSP client closed during startup");
977
+ return this.clients.set(languageId, client), this._callbacks.onServerReady?.(languageId), this._restartAttempts.delete(languageId), this._restartBackoff.delete(languageId), this.triggerPostInit(languageId, client), client;
978
+ } catch (error) {
979
+ throw await client.shutdown(), error;
980
+ } finally {
981
+ this.pendingClients.delete(client);
982
+ }
983
+ }, socketPath = this.getSocketPath(languageId);
886
984
  if (socketPath && this.isDaemonAlive(languageId)) {
887
985
  this._callbacks.onServerStart?.(languageId, `${config.command} (shared)`);
888
986
  try {
889
- let client2 = new LspClient({
890
- command: config.command,
891
- args: effectiveArgs,
892
- rootDir: this.rootDir,
893
- languageId,
894
- socketPath,
895
- initializationOptions,
896
- settings: config.settings,
897
- onUnexpectedExit
898
- });
899
- return await client2.start(), this.clients.set(languageId, client2), this.startingServers.delete(languageId), this._callbacks.onServerReady?.(languageId), this._restartAttempts.delete(languageId), this._restartBackoff.delete(languageId), this.triggerPostInit(languageId, client2), client2;
987
+ return await connectClient(socketPath);
900
988
  } catch {
989
+ this.stop.signal.throwIfAborted();
901
990
  }
902
991
  }
903
- if (this._callbacks.onServerStart?.(languageId, config.command), stateDir)
992
+ if (this.stop.signal.throwIfAborted(), this._callbacks.onServerStart?.(languageId, config.command), stateDir)
904
993
  try {
905
- await this.spawnDaemon(languageId, config, effectiveArgs, workspaceFolders, initializationOptions), await new Promise((r) => setTimeout(r, 500));
906
- let daemonSocket = this.getSocketPath(languageId), lastErr = null;
907
- for (let attempt = 0; attempt < 60; attempt++)
994
+ await this.spawnDaemon(languageId, config, effectiveArgs, workspaceFolders, initializationOptions), await delay(500, void 0, { signal: this.stop.signal });
995
+ let daemonSocket = this.getSocketPath(languageId), lastErr;
996
+ for (let attempt = 0; attempt < 60; attempt++) {
997
+ this.stop.signal.throwIfAborted();
908
998
  try {
909
- let client2 = new LspClient({
910
- command: config.command,
911
- args: effectiveArgs,
912
- rootDir: this.rootDir,
913
- languageId,
914
- socketPath: daemonSocket,
915
- initializationOptions,
916
- settings: config.settings,
917
- onUnexpectedExit
918
- });
919
- return await client2.start(), this.clients.set(languageId, client2), this.startingServers.delete(languageId), this._callbacks.onServerReady?.(languageId), this._restartAttempts.delete(languageId), this._restartBackoff.delete(languageId), this.triggerPostInit(languageId, client2), client2;
920
- } catch (err) {
921
- if (lastErr = err, !this.isDaemonAlive(languageId))
922
- throw new Error(`Daemon for ${languageId} died during startup: ${err.message}`);
923
- await new Promise((r) => setTimeout(r, 5e3));
999
+ return await connectClient(daemonSocket);
1000
+ } catch (error) {
1001
+ if (this.stop.signal.throwIfAborted(), lastErr = error, !this.isDaemonAlive(languageId))
1002
+ throw error;
1003
+ await delay(5e3, void 0, { signal: this.stop.signal });
924
1004
  }
1005
+ }
925
1006
  throw lastErr ?? new Error("Failed to connect to daemon");
926
- } catch (err) {
927
- this._callbacks.onServerError?.(languageId, `Daemon mode failed, falling back to direct: ${err.message}`), this.startingServers.delete(languageId);
1007
+ } catch (error) {
1008
+ this.stop.signal.throwIfAborted();
1009
+ let message = error instanceof Error ? error.message : String(error);
1010
+ this._callbacks.onServerError?.(languageId, `Daemon mode failed, falling back to direct: ${message}`);
928
1011
  }
929
- let client = new LspClient({
930
- command: config.command,
931
- args: effectiveArgs,
932
- rootDir: this.rootDir,
933
- languageId,
934
- env: config.env,
935
- workspaceFolders,
936
- initializationOptions,
937
- settings: config.settings,
938
- onUnexpectedExit
939
- });
940
- try {
941
- return await client.start(), this.clients.set(languageId, client), this.startingServers.delete(languageId), this._callbacks.onServerReady?.(languageId), this._restartAttempts.delete(languageId), this._restartBackoff.delete(languageId), this.triggerPostInit(languageId, client), client;
942
- } catch (err) {
943
- this.startingServers.delete(languageId);
944
- let message = `Failed to start LSP server for ${languageId} (${config.command}): ${err.message}`;
945
- throw this._callbacks.onServerError?.(languageId, message), new Error(message);
946
- }
1012
+ return connectClient();
947
1013
  }
948
1014
  /**
949
1015
  * Post-initialization hook for language-specific setup.
@@ -976,6 +1042,7 @@ var DEFAULT_SERVERS = {
976
1042
  }
977
1043
  /** Spawn an LSP daemon as a detached background process */
978
1044
  async spawnDaemon(languageId, config, effectiveArgs, workspaceFolders, initializationOptions) {
1045
+ this.stop.signal.throwIfAborted();
979
1046
  let socketPath = this.getSocketPath(languageId), daemonScript = new URL("./lsp-daemon.ts", new URL("../builtin-extensions/pi-lsp-extension/src/lsp-manager.js", import.meta.url).href).pathname, launcherScript = new URL("./lsp-daemon-launcher.cjs", new URL("../builtin-extensions/pi-lsp-extension/src/lsp-manager.js", import.meta.url).href).pathname, jitiPath;
980
1047
  try {
981
1048
  jitiPath = __require.resolve("jiti");
@@ -992,7 +1059,8 @@ var DEFAULT_SERVERS = {
992
1059
  LSP_ROOT_DIR: this.rootDir,
993
1060
  LSP_LANGUAGE_ID: languageId
994
1061
  };
995
- workspaceFolders && workspaceFolders.length > 0 && (env.LSP_WORKSPACE_FOLDERS = JSON.stringify(workspaceFolders)), initializationOptions && (env.LSP_INITIALIZATION_OPTIONS = JSON.stringify(initializationOptions)), config.settings && (env.LSP_SETTINGS = JSON.stringify(config.settings)), spawnChild(
1062
+ workspaceFolders && workspaceFolders.length > 0 && (env.LSP_WORKSPACE_FOLDERS = JSON.stringify(workspaceFolders)), initializationOptions && (env.LSP_INITIALIZATION_OPTIONS = JSON.stringify(initializationOptions)), config.settings && (env.LSP_SETTINGS = JSON.stringify(config.settings));
1063
+ let child = spawnChild(
996
1064
  process.execPath,
997
1065
  // node
998
1066
  [launcherScript, jitiPath, daemonScript, socketPath, config.command, ...effectiveArgs],
@@ -1002,7 +1070,12 @@ var DEFAULT_SERVERS = {
1002
1070
  detached: !0,
1003
1071
  stdio: "ignore"
1004
1072
  }
1005
- ).unref();
1073
+ );
1074
+ child.unref(), await this.waitForStart(new Promise((resolve2, reject) => {
1075
+ child.on("error", (error) => {
1076
+ reject(error), this._shuttingDown || this._callbacks.onServerError?.(languageId, error.message);
1077
+ }), child.once("spawn", resolve2);
1078
+ }));
1006
1079
  }
1007
1080
  /** Get status of all configured/running servers */
1008
1081
  getStatus() {
@@ -1030,31 +1103,42 @@ var DEFAULT_SERVERS = {
1030
1103
  handleUnexpectedExit(languageId, code) {
1031
1104
  if (this._shuttingDown)
1032
1105
  return;
1033
- this.clients.delete(languageId), this.startingServers.delete(languageId);
1106
+ this.clients.delete(languageId);
1034
1107
  let attempts = this._restartAttempts.get(languageId) ?? 0;
1035
1108
  if (attempts >= _LspManager.MAX_RESTART_ATTEMPTS) {
1036
1109
  this._callbacks.onServerError?.(languageId, `LSP server for ${languageId} crashed ${attempts} times \u2014 giving up auto-restart`), this._callbacks.onServerCrash?.(languageId, !1, attempts);
1037
1110
  return;
1038
1111
  }
1039
1112
  let backoff = this._restartBackoff.get(languageId) ?? _LspManager.INITIAL_BACKOFF_MS;
1040
- this._restartAttempts.set(languageId, attempts + 1), this._restartBackoff.set(languageId, Math.min(backoff * 2, _LspManager.MAX_BACKOFF_MS)), this._callbacks.onServerCrash?.(languageId, !0, attempts + 1), setTimeout(() => {
1041
- if (this._shuttingDown)
1113
+ this._restartAttempts.set(languageId, attempts + 1), this._restartBackoff.set(languageId, Math.min(backoff * 2, _LspManager.MAX_BACKOFF_MS)), this._callbacks.onServerCrash?.(languageId, !0, attempts + 1);
1114
+ let timer = setTimeout(() => {
1115
+ if (this.restartTimers.delete(timer), this._shuttingDown)
1042
1116
  return;
1043
1117
  let config = this.serverConfigs.get(languageId);
1044
1118
  if (!config)
1045
1119
  return;
1046
- let startPromise = this.startServer(languageId, config);
1047
- this.startingServers.set(languageId, startPromise), startPromise.catch((err) => {
1048
- this.startingServers.delete(languageId), this._callbacks.onServerError?.(languageId, `Auto-restart failed for ${languageId}: ${err.message}`), this.handleUnexpectedExit(languageId, null);
1120
+ this.trackStart(languageId, config).catch((err) => {
1121
+ this._shuttingDown || (this._callbacks.onServerError?.(languageId, `Auto-restart failed for ${languageId}: ${err.message}`), this.handleUnexpectedExit(languageId, null));
1049
1122
  });
1050
1123
  }, backoff);
1124
+ this.restartTimers.add(timer);
1051
1125
  }
1052
1126
  /** Shut down all clients (disconnect from daemons, kill direct servers) */
1053
- async shutdownAll() {
1054
- this._workspace.shutdown(), this._shuttingDown = !0;
1055
- let shutdowns = [...this.clients.values()].map((client) => client.shutdown().catch(() => {
1056
- }));
1057
- await Promise.all(shutdowns), this.clients.clear(), this.startingServers.clear();
1127
+ shutdownAll() {
1128
+ if (this.shutdownPromise)
1129
+ return this.shutdownPromise;
1130
+ this._shuttingDown = !0, this.stop.abort(new Error("LSP manager shut down"));
1131
+ for (let timer of this.restartTimers)
1132
+ clearTimeout(timer);
1133
+ return this.restartTimers.clear(), this.shutdownPromise = this.shutdownClients(), this.shutdownPromise;
1134
+ }
1135
+ async shutdownClients() {
1136
+ try {
1137
+ this._workspace.shutdown();
1138
+ } finally {
1139
+ let clients = /* @__PURE__ */ new Set([...this.clients.values(), ...this.pendingClients]);
1140
+ await Promise.allSettled([...clients].map((client) => client.shutdown())), await Promise.allSettled([...this.startingServers.values()]), this.clients.clear(), this.startingServers.clear();
1141
+ }
1058
1142
  }
1059
1143
  /**
1060
1144
  * Restart a specific language server. Shuts down the existing client
@@ -1062,16 +1146,17 @@ var DEFAULT_SERVERS = {
1062
1146
  * Returns once the new server is initialized, or throws on failure.
1063
1147
  */
1064
1148
  async restartServer(languageId) {
1149
+ this.stop.signal.throwIfAborted();
1150
+ let pending = this.startingServers.get(languageId);
1151
+ pending && await pending.catch(() => {
1152
+ }), this.stop.signal.throwIfAborted();
1065
1153
  let existing = this.clients.get(languageId);
1066
1154
  existing && (await existing.shutdown().catch(() => {
1067
- }), this.clients.delete(languageId)), this.killDaemon(languageId);
1068
- let pending = this.startingServers.get(languageId);
1069
- pending && (await pending.catch(() => {
1070
- }), this.startingServers.delete(languageId));
1155
+ }), this.clients.get(languageId) === existing && this.clients.delete(languageId)), this.stop.signal.throwIfAborted(), this.killDaemon(languageId);
1071
1156
  let config = this.serverConfigs.get(languageId);
1072
1157
  if (!config)
1073
1158
  throw new Error(`No server configured for ${languageId}`);
1074
- await this.startServer(languageId, config);
1159
+ await this.trackStart(languageId, config);
1075
1160
  }
1076
1161
  /** Kill a running daemon for a language (if any) */
1077
1162
  killDaemon(languageId) {
@@ -1,15 +1,15 @@
1
1
  import { createRequire as __lunrRequire } from "node:module"; const require = __lunrRequire(import.meta.url);
2
2
  import {
3
3
  toolStatusDotFromContext
4
- } from "./chunk-5ZQXRPMC.js";
4
+ } from "./chunk-6ZZHGUSA.js";
5
5
  import {
6
6
  onBrowserEnabledChange,
7
7
  readBrowserSettings
8
- } from "./chunk-UOEDI7RP.js";
9
- import "./chunk-2HMIRK7W.js";
10
- import "./chunk-CSFI6YXL.js";
11
- import "./chunk-B4HP6ZWM.js";
12
- import "./chunk-FQMM2EZ2.js";
8
+ } from "./chunk-4KNKQGHM.js";
9
+ import "./chunk-LHV3V67B.js";
10
+ import "./chunk-ES6PBSIE.js";
11
+ import "./chunk-RHCGYWO7.js";
12
+ import "./chunk-64XTQNLA.js";
13
13
  import "./chunk-Q4Q6D4IY.js";
14
14
  import "./chunk-BRJX2PRC.js";
15
15
 
@@ -159,7 +159,7 @@ function browserExtension(pi) {
159
159
  async execute(_id, input, signal) {
160
160
  if (!enabled)
161
161
  throw await close(), new Error("Browser is disabled. The user can enable Browser in /settings.");
162
- let current = generation, { BrowserSession } = await import("./runtime-4VA6JKNF.js");
162
+ let current = generation, { BrowserSession } = await import("./runtime-EDUUGAQD.js");
163
163
  if (current !== generation || signal?.aborted)
164
164
  throw new Error("Browser call cancelled during initialization.");
165
165
  return session ??= new BrowserSession(readBrowserSettings().allowPrivate), session.run(input, signal);