oh-my-opencode 4.1.2 → 4.2.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 (255) hide show
  1. package/README.ja.md +1 -0
  2. package/README.ko.md +1 -0
  3. package/README.md +1 -0
  4. package/README.ru.md +1 -0
  5. package/README.zh-cn.md +1 -0
  6. package/dist/agents/atlas/default-prompt-sections.d.ts +3 -3
  7. package/dist/agents/atlas/gemini-prompt-sections.d.ts +2 -2
  8. package/dist/agents/atlas/gpt-prompt-sections.d.ts +2 -2
  9. package/dist/agents/atlas/kimi-prompt-sections.d.ts +3 -3
  10. package/dist/agents/atlas/opus-4-7-prompt-sections.d.ts +3 -3
  11. package/dist/agents/momus.d.ts +1 -1
  12. package/dist/agents/prometheus/behavioral-summary.d.ts +1 -1
  13. package/dist/agents/prometheus/high-accuracy-mode.d.ts +1 -1
  14. package/dist/agents/prometheus/identity-constraints.d.ts +1 -1
  15. package/dist/agents/prometheus/plan-generation.d.ts +1 -1
  16. package/dist/agents/prometheus/plan-template.d.ts +1 -1
  17. package/dist/cli/index.js +720 -430
  18. package/dist/cli/run/server-connection.d.ts +32 -2
  19. package/dist/config/schema/team-mode.d.ts +1 -1
  20. package/dist/features/background-agent/error-classifier.d.ts +1 -0
  21. package/dist/features/background-agent/fallback-retry-handler.d.ts +15 -0
  22. package/dist/features/background-agent/manager.d.ts +11 -8
  23. package/dist/features/background-agent/parent-wake-notifier.d.ts +74 -0
  24. package/dist/features/background-agent/process-cleanup.d.ts +2 -0
  25. package/dist/features/background-agent/session-route.d.ts +12 -0
  26. package/dist/features/background-agent/spawner.d.ts +2 -2
  27. package/dist/features/background-agent/task-registry.d.ts +6 -0
  28. package/dist/features/background-agent/types.d.ts +2 -0
  29. package/dist/features/boulder-state/constants.d.ts +4 -4
  30. package/dist/features/boulder-state/storage.d.ts +1 -1
  31. package/dist/features/builtin-commands/templates/init-deep.d.ts +1 -1
  32. package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
  33. package/dist/features/context-injector/injector.d.ts +1 -1
  34. package/dist/features/opencode-skill-loader/git-master-template-injection.d.ts +18 -0
  35. package/dist/features/run-continuation-state/constants.d.ts +1 -1
  36. package/dist/features/team-mode/team-layout-tmux/resolve-caller-tmux-session.d.ts +3 -1
  37. package/dist/features/team-mode/tools/lifecycle-test-fixture.d.ts +3 -3
  38. package/dist/features/team-mode/tools/messaging.d.ts +1 -0
  39. package/dist/features/team-mode/types.d.ts +2 -2
  40. package/dist/features/tmux-subagent/attachable-session-status.d.ts +1 -1
  41. package/dist/features/tmux-subagent/manager.d.ts +6 -0
  42. package/dist/features/tmux-subagent/pane-state-parser.d.ts +2 -0
  43. package/dist/features/tmux-subagent/polling-manager.d.ts +6 -2
  44. package/dist/features/tmux-subagent/types.d.ts +4 -0
  45. package/dist/hooks/atlas/boulder-continuation-injector.d.ts +1 -0
  46. package/dist/hooks/atlas/omo-path.d.ts +6 -0
  47. package/dist/hooks/atlas/tool-execute-after.d.ts +3 -0
  48. package/dist/hooks/atlas/tool-progress.d.ts +14 -0
  49. package/dist/hooks/atlas/types.d.ts +7 -0
  50. package/dist/hooks/auto-slash-command/detector.d.ts +2 -0
  51. package/dist/hooks/auto-update-checker/cache.d.ts +8 -1
  52. package/dist/hooks/auto-update-checker/checker/cached-version.d.ts +8 -1
  53. package/dist/hooks/background-notification/hook.d.ts +0 -6
  54. package/dist/hooks/compaction-context-injector/types.d.ts +1 -0
  55. package/dist/hooks/interactive-bash-session/state-manager.d.ts +1 -1
  56. package/dist/hooks/json-error-recovery/hook.d.ts +1 -1
  57. package/dist/hooks/keyword-detector/detector.d.ts +1 -0
  58. package/dist/hooks/keyword-detector/ultrawork/default.d.ts +1 -1
  59. package/dist/hooks/keyword-detector/ultrawork/gemini.d.ts +1 -1
  60. package/dist/hooks/keyword-detector/ultrawork/planner.d.ts +1 -1
  61. package/dist/hooks/prometheus-md-only/constants.d.ts +1 -1
  62. package/dist/hooks/prometheus-md-only/path-policy.d.ts +3 -3
  63. package/dist/hooks/ralph-loop/completion-promise-detector-test-input.d.ts +11 -0
  64. package/dist/hooks/ralph-loop/constants.d.ts +1 -1
  65. package/dist/hooks/ralph-loop/continuation-prompt-injector.d.ts +4 -0
  66. package/dist/hooks/ralph-loop/iteration-continuation.d.ts +4 -0
  67. package/dist/hooks/rules-injector/injector.d.ts +9 -2
  68. package/dist/hooks/rules-injector/matcher.d.ts +5 -0
  69. package/dist/hooks/rules-injector/project-root-finder.d.ts +4 -0
  70. package/dist/hooks/rules-injector/rule-scan-cache.d.ts +9 -2
  71. package/dist/hooks/runtime-fallback/constants.d.ts +10 -0
  72. package/dist/hooks/runtime-fallback/first-prompt-watchdog.d.ts +25 -0
  73. package/dist/hooks/runtime-fallback/hook.d.ts +14 -1
  74. package/dist/hooks/runtime-fallback/last-user-retry-parts.d.ts +10 -2
  75. package/dist/hooks/runtime-fallback/types.d.ts +10 -0
  76. package/dist/hooks/session-recovery/detect-error-type.d.ts +1 -1
  77. package/dist/hooks/session-recovery/hook.d.ts +1 -0
  78. package/dist/hooks/session-recovery/interrupted-idle-message-fetch-timeout.d.ts +7 -0
  79. package/dist/hooks/session-recovery/recover-tool-result-missing.d.ts +6 -1
  80. package/dist/hooks/session-recovery/types.d.ts +12 -0
  81. package/dist/hooks/shared/prompt-async-gate.d.ts +1 -0
  82. package/dist/hooks/shared/session-idle-settle.d.ts +1 -11
  83. package/dist/hooks/sisyphus-junior-notepad/constants.d.ts +1 -1
  84. package/dist/hooks/team-mode-status-injector/hook.d.ts +2 -1
  85. package/dist/hooks/todo-continuation-enforcer/pending-question-detection.d.ts +2 -0
  86. package/dist/hooks/todo-continuation-enforcer/session-state.d.ts +3 -4
  87. package/dist/hooks/todo-continuation-enforcer/types.d.ts +2 -3
  88. package/dist/hooks/tool-pair-validator/hook.d.ts +7 -2
  89. package/dist/hooks/unstable-agent-babysitter/task-message-analyzer.d.ts +1 -0
  90. package/dist/hooks/write-existing-file-guard/tool-execute-before-handler.d.ts +1 -0
  91. package/dist/index.d.ts +1 -1
  92. package/dist/index.js +8055 -9850
  93. package/dist/mcp/index.d.ts +3 -1
  94. package/dist/mcp/lsp.d.ts +13 -0
  95. package/dist/mcp/types.d.ts +1 -0
  96. package/dist/plugin/build-team-idle-wake-hint-client.d.ts +12 -0
  97. package/dist/plugin/chat-message.d.ts +1 -1
  98. package/dist/plugin/tool-registry.d.ts +1 -2
  99. package/dist/plugin-dispose.d.ts +0 -3
  100. package/dist/shared/agent-sort-shim.d.ts +1 -0
  101. package/dist/shared/delegated-child-session-bootstrap.d.ts +25 -0
  102. package/dist/shared/dynamic-truncator.d.ts +2 -0
  103. package/dist/shared/host-skill-config.d.ts +2 -0
  104. package/dist/shared/index.d.ts +2 -0
  105. package/dist/shared/internal-initiator-marker.d.ts +25 -0
  106. package/dist/shared/legacy-workspace-migration.d.ts +5 -0
  107. package/dist/shared/logger.d.ts +12 -0
  108. package/dist/shared/model-error-classifier.d.ts +2 -0
  109. package/dist/shared/model-resolution-pipeline.d.ts +4 -0
  110. package/dist/shared/opencode-http-api.d.ts +9 -0
  111. package/dist/shared/prompt-async-gate.d.ts +82 -0
  112. package/dist/shared/replace-tool-args.d.ts +13 -0
  113. package/dist/shared/session-idle-settle.d.ts +11 -0
  114. package/dist/shared/tmux/tmux-utils/pane-activate.d.ts +1 -0
  115. package/dist/shared/tmux/tmux-utils/pane-close.d.ts +10 -0
  116. package/dist/shared/tmux/tmux-utils/pane-command.d.ts +2 -0
  117. package/dist/shared/tmux/tmux-utils/pane-replace.d.ts +11 -1
  118. package/dist/shared/tmux/tmux-utils/pane-spawn.d.ts +1 -1
  119. package/dist/shared/tmux/tmux-utils/server-health.d.ts +12 -1
  120. package/dist/shared/tmux/tmux-utils/session-spawn.d.ts +2 -2
  121. package/dist/shared/tmux/tmux-utils/window-spawn.d.ts +1 -1
  122. package/dist/shared/tmux/tmux-utils.d.ts +2 -0
  123. package/dist/testing/create-plugin-module.d.ts +41 -0
  124. package/dist/tools/background-task/constants.d.ts +1 -1
  125. package/dist/tools/background-task/with-sdk-call-timeout.d.ts +7 -0
  126. package/dist/tools/call-omo-agent/session-creator.d.ts +2 -1
  127. package/dist/tools/call-omo-agent/sync-executor.d.ts +2 -2
  128. package/dist/tools/delegate-task/subagent-discovery.d.ts +1 -0
  129. package/dist/tools/delegate-task/sync-prompt-sender.d.ts +2 -1
  130. package/dist/tools/delegate-task/sync-session-creator.d.ts +2 -0
  131. package/dist/tools/delegate-task/sync-task.d.ts +1 -1
  132. package/dist/tools/index.d.ts +0 -3
  133. package/dist/tools/interactive-bash/tools.d.ts +5 -0
  134. package/package.json +18 -16
  135. package/packages/lsp-tools-mcp/dist/cli.d.ts +3 -0
  136. package/packages/lsp-tools-mcp/dist/cli.d.ts.map +1 -0
  137. package/packages/lsp-tools-mcp/dist/cli.js +24 -0
  138. package/packages/lsp-tools-mcp/dist/cli.js.map +1 -0
  139. package/packages/lsp-tools-mcp/dist/lsp/cleanup-errors.d.ts +2 -0
  140. package/packages/lsp-tools-mcp/dist/lsp/cleanup-errors.d.ts.map +1 -0
  141. package/packages/lsp-tools-mcp/dist/lsp/cleanup-errors.js +7 -0
  142. package/packages/lsp-tools-mcp/dist/lsp/cleanup-errors.js.map +1 -0
  143. package/packages/lsp-tools-mcp/dist/lsp/client-wrapper.d.ts +14 -0
  144. package/packages/lsp-tools-mcp/dist/lsp/client-wrapper.d.ts.map +1 -0
  145. package/packages/lsp-tools-mcp/dist/lsp/client-wrapper.js +110 -0
  146. package/packages/lsp-tools-mcp/dist/lsp/client-wrapper.js.map +1 -0
  147. package/packages/lsp-tools-mcp/dist/lsp/client.d.ts +21 -0
  148. package/packages/lsp-tools-mcp/dist/lsp/client.d.ts.map +1 -0
  149. package/packages/lsp-tools-mcp/dist/lsp/client.js +130 -0
  150. package/packages/lsp-tools-mcp/dist/lsp/client.js.map +1 -0
  151. package/{dist/tools/lsp/server-config-loader.d.ts → packages/lsp-tools-mcp/dist/lsp/config-loader.d.ts} +6 -6
  152. package/packages/lsp-tools-mcp/dist/lsp/config-loader.d.ts.map +1 -0
  153. package/packages/lsp-tools-mcp/dist/lsp/config-loader.js +110 -0
  154. package/packages/lsp-tools-mcp/dist/lsp/config-loader.js.map +1 -0
  155. package/packages/lsp-tools-mcp/dist/lsp/connection.d.ts +5 -0
  156. package/packages/lsp-tools-mcp/dist/lsp/connection.d.ts.map +1 -0
  157. package/packages/lsp-tools-mcp/dist/lsp/connection.js +67 -0
  158. package/packages/lsp-tools-mcp/dist/lsp/connection.js.map +1 -0
  159. package/packages/lsp-tools-mcp/dist/lsp/constants.d.ts +11 -0
  160. package/packages/lsp-tools-mcp/dist/lsp/constants.d.ts.map +1 -0
  161. package/packages/lsp-tools-mcp/dist/lsp/constants.js +11 -0
  162. package/packages/lsp-tools-mcp/dist/lsp/constants.js.map +1 -0
  163. package/packages/lsp-tools-mcp/dist/lsp/directory-diagnostics.d.ts +4 -0
  164. package/packages/lsp-tools-mcp/dist/lsp/directory-diagnostics.d.ts.map +1 -0
  165. package/packages/lsp-tools-mcp/dist/lsp/directory-diagnostics.js +124 -0
  166. package/packages/lsp-tools-mcp/dist/lsp/directory-diagnostics.js.map +1 -0
  167. package/packages/lsp-tools-mcp/dist/lsp/errors.d.ts +36 -0
  168. package/packages/lsp-tools-mcp/dist/lsp/errors.d.ts.map +1 -0
  169. package/packages/lsp-tools-mcp/dist/lsp/errors.js +57 -0
  170. package/packages/lsp-tools-mcp/dist/lsp/errors.js.map +1 -0
  171. package/{dist/tools/lsp/lsp-formatters.d.ts → packages/lsp-tools-mcp/dist/lsp/formatters.d.ts} +5 -5
  172. package/packages/lsp-tools-mcp/dist/lsp/formatters.d.ts.map +1 -0
  173. package/packages/lsp-tools-mcp/dist/lsp/formatters.js +109 -0
  174. package/packages/lsp-tools-mcp/dist/lsp/formatters.js.map +1 -0
  175. package/{dist/tools → packages/lsp-tools-mcp/dist}/lsp/infer-extension.d.ts +1 -0
  176. package/packages/lsp-tools-mcp/dist/lsp/infer-extension.d.ts.map +1 -0
  177. package/packages/lsp-tools-mcp/dist/lsp/infer-extension.js +59 -0
  178. package/packages/lsp-tools-mcp/dist/lsp/infer-extension.js.map +1 -0
  179. package/packages/lsp-tools-mcp/dist/lsp/json-rpc-connection.d.ts +37 -0
  180. package/packages/lsp-tools-mcp/dist/lsp/json-rpc-connection.d.ts.map +1 -0
  181. package/packages/lsp-tools-mcp/dist/lsp/json-rpc-connection.js +248 -0
  182. package/packages/lsp-tools-mcp/dist/lsp/json-rpc-connection.js.map +1 -0
  183. package/{dist/tools → packages/lsp-tools-mcp/dist}/lsp/language-mappings.d.ts +2 -0
  184. package/packages/lsp-tools-mcp/dist/lsp/language-mappings.d.ts.map +1 -0
  185. package/packages/lsp-tools-mcp/dist/lsp/language-mappings.js +170 -0
  186. package/packages/lsp-tools-mcp/dist/lsp/language-mappings.js.map +1 -0
  187. package/packages/lsp-tools-mcp/dist/lsp/manager.d.ts +48 -0
  188. package/packages/lsp-tools-mcp/dist/lsp/manager.d.ts.map +1 -0
  189. package/packages/lsp-tools-mcp/dist/lsp/manager.js +308 -0
  190. package/packages/lsp-tools-mcp/dist/lsp/manager.js.map +1 -0
  191. package/packages/lsp-tools-mcp/dist/lsp/process.d.ts +26 -0
  192. package/packages/lsp-tools-mcp/dist/lsp/process.d.ts.map +1 -0
  193. package/packages/lsp-tools-mcp/dist/lsp/process.js +124 -0
  194. package/packages/lsp-tools-mcp/dist/lsp/process.js.map +1 -0
  195. package/packages/lsp-tools-mcp/dist/lsp/server-definitions.d.ts +5 -0
  196. package/packages/lsp-tools-mcp/dist/lsp/server-definitions.d.ts.map +1 -0
  197. package/packages/lsp-tools-mcp/dist/lsp/server-definitions.js +159 -0
  198. package/packages/lsp-tools-mcp/dist/lsp/server-definitions.js.map +1 -0
  199. package/packages/lsp-tools-mcp/dist/lsp/server-installation.d.ts +3 -0
  200. package/packages/lsp-tools-mcp/dist/lsp/server-installation.d.ts.map +1 -0
  201. package/packages/lsp-tools-mcp/dist/lsp/server-installation.js +51 -0
  202. package/packages/lsp-tools-mcp/dist/lsp/server-installation.js.map +1 -0
  203. package/packages/lsp-tools-mcp/dist/lsp/server-resolution.d.ts +12 -0
  204. package/packages/lsp-tools-mcp/dist/lsp/server-resolution.d.ts.map +1 -0
  205. package/packages/lsp-tools-mcp/dist/lsp/server-resolution.js +75 -0
  206. package/packages/lsp-tools-mcp/dist/lsp/server-resolution.js.map +1 -0
  207. package/packages/lsp-tools-mcp/dist/lsp/transport.d.ts +26 -0
  208. package/packages/lsp-tools-mcp/dist/lsp/transport.d.ts.map +1 -0
  209. package/packages/lsp-tools-mcp/dist/lsp/transport.js +234 -0
  210. package/packages/lsp-tools-mcp/dist/lsp/transport.js.map +1 -0
  211. package/{dist/tools → packages/lsp-tools-mcp/dist}/lsp/types.d.ts +28 -26
  212. package/packages/lsp-tools-mcp/dist/lsp/types.d.ts.map +1 -0
  213. package/packages/lsp-tools-mcp/dist/lsp/types.js +2 -0
  214. package/packages/lsp-tools-mcp/dist/lsp/types.js.map +1 -0
  215. package/packages/lsp-tools-mcp/dist/lsp/utils.d.ts +5 -0
  216. package/packages/lsp-tools-mcp/dist/lsp/utils.d.ts.map +1 -0
  217. package/packages/lsp-tools-mcp/dist/lsp/utils.js +43 -0
  218. package/packages/lsp-tools-mcp/dist/lsp/utils.js.map +1 -0
  219. package/{dist/tools → packages/lsp-tools-mcp/dist}/lsp/workspace-edit.d.ts +2 -1
  220. package/packages/lsp-tools-mcp/dist/lsp/workspace-edit.d.ts.map +1 -0
  221. package/packages/lsp-tools-mcp/dist/lsp/workspace-edit.js +114 -0
  222. package/packages/lsp-tools-mcp/dist/lsp/workspace-edit.js.map +1 -0
  223. package/packages/lsp-tools-mcp/dist/mcp.d.ts +31 -0
  224. package/packages/lsp-tools-mcp/dist/mcp.d.ts.map +1 -0
  225. package/packages/lsp-tools-mcp/dist/mcp.js +95 -0
  226. package/packages/lsp-tools-mcp/dist/mcp.js.map +1 -0
  227. package/packages/lsp-tools-mcp/dist/tools.d.ts +91 -0
  228. package/packages/lsp-tools-mcp/dist/tools.d.ts.map +1 -0
  229. package/packages/lsp-tools-mcp/dist/tools.js +453 -0
  230. package/packages/lsp-tools-mcp/dist/tools.js.map +1 -0
  231. package/dist/hooks/atlas/sisyphus-path.d.ts +0 -6
  232. package/dist/tools/lsp/client.d.ts +0 -3
  233. package/dist/tools/lsp/config.d.ts +0 -3
  234. package/dist/tools/lsp/constants.d.ts +0 -6
  235. package/dist/tools/lsp/diagnostics-tool.d.ts +0 -2
  236. package/dist/tools/lsp/directory-diagnostics.d.ts +0 -1
  237. package/dist/tools/lsp/find-references-tool.d.ts +0 -2
  238. package/dist/tools/lsp/goto-definition-tool.d.ts +0 -2
  239. package/dist/tools/lsp/index.d.ts +0 -8
  240. package/dist/tools/lsp/language-config.d.ts +0 -1
  241. package/dist/tools/lsp/lsp-client-connection.d.ts +0 -4
  242. package/dist/tools/lsp/lsp-client-transport.d.ts +0 -22
  243. package/dist/tools/lsp/lsp-client-wrapper.d.ts +0 -9
  244. package/dist/tools/lsp/lsp-client.d.ts +0 -17
  245. package/dist/tools/lsp/lsp-manager-process-cleanup.d.ts +0 -15
  246. package/dist/tools/lsp/lsp-manager-temp-directory-cleanup.d.ts +0 -8
  247. package/dist/tools/lsp/lsp-process.d.ts +0 -29
  248. package/dist/tools/lsp/lsp-server.d.ts +0 -24
  249. package/dist/tools/lsp/rename-tools.d.ts +0 -3
  250. package/dist/tools/lsp/server-definitions.d.ts +0 -3
  251. package/dist/tools/lsp/server-installation.d.ts +0 -1
  252. package/dist/tools/lsp/server-path-bases.d.ts +0 -1
  253. package/dist/tools/lsp/server-resolution.d.ts +0 -15
  254. package/dist/tools/lsp/symbols-tool.d.ts +0 -2
  255. package/dist/tools/lsp/tools.d.ts +0 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-definitions.js","sourceRoot":"","sources":["../../src/lsp/server-definitions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function getAdditionalPathBases(workingDirectory: string): string[];
2
+ export declare function isServerInstalled(command: string[]): boolean;
3
+ //# sourceMappingURL=server-installation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-installation.d.ts","sourceRoot":"","sources":["../../src/lsp/server-installation.ts"],"names":[],"mappings":"AAGA,wBAAgB,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,CAEzE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAiD5D"}
@@ -0,0 +1,51 @@
1
+ import { existsSync } from "node:fs";
2
+ import { delimiter, join } from "node:path";
3
+ export function getAdditionalPathBases(workingDirectory) {
4
+ return [join(workingDirectory, "node_modules", ".bin")];
5
+ }
6
+ export function isServerInstalled(command) {
7
+ if (command.length === 0)
8
+ return false;
9
+ const [cmd] = command;
10
+ if (!cmd)
11
+ return false;
12
+ if (cmd.includes("/") || cmd.includes("\\")) {
13
+ if (existsSync(cmd))
14
+ return true;
15
+ }
16
+ const isWindows = process.platform === "win32";
17
+ let exts = [""];
18
+ if (isWindows) {
19
+ const pathExt = process.env.PATHEXT ?? "";
20
+ if (pathExt) {
21
+ const systemExts = pathExt.split(";").filter(Boolean);
22
+ exts = [...new Set([...exts, ...systemExts, ".exe", ".cmd", ".bat", ".ps1"])];
23
+ }
24
+ else {
25
+ exts = ["", ".exe", ".cmd", ".bat", ".ps1"];
26
+ }
27
+ }
28
+ let pathEnv = process.env.PATH ?? "";
29
+ if (isWindows && !pathEnv) {
30
+ pathEnv = process.env.Path ?? "";
31
+ }
32
+ const paths = pathEnv.split(delimiter);
33
+ for (const p of paths) {
34
+ for (const suffix of exts) {
35
+ if (existsSync(join(p, cmd + suffix))) {
36
+ return true;
37
+ }
38
+ }
39
+ }
40
+ for (const base of getAdditionalPathBases(process.cwd())) {
41
+ for (const suffix of exts) {
42
+ if (existsSync(join(base, cmd + suffix))) {
43
+ return true;
44
+ }
45
+ }
46
+ }
47
+ if (cmd === "node")
48
+ return true;
49
+ return false;
50
+ }
51
+ //# sourceMappingURL=server-installation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-installation.js","sourceRoot":"","sources":["../../src/lsp/server-installation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,UAAU,sBAAsB,CAAC,gBAAwB;IAC9D,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAiB;IAClD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEvC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;IACtB,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAEvB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,IAAI,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IAClC,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;IAE/C,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,IAAI,SAAS,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1C,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACP,IAAI,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;IACF,CAAC;IAED,IAAI,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACrC,IAAI,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEvC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACvB,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC;gBACvC,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC;IACF,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,sBAAsB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;QAC1D,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC;gBAC1C,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC;IACF,CAAC;IAED,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAEhC,OAAO,KAAK,CAAC;AACd,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { ServerLookupResult } from "./types.js";
2
+ export declare function findServerForExtension(ext: string): ServerLookupResult;
3
+ export interface ServerStatus {
4
+ id: string;
5
+ installed: boolean;
6
+ extensions: string[];
7
+ disabled: boolean;
8
+ source: string;
9
+ priority: number;
10
+ }
11
+ export declare function getAllServers(): ServerStatus[];
12
+ //# sourceMappingURL=server-resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-resolution.d.ts","sourceRoot":"","sources":["../../src/lsp/server-resolution.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAyCtE;AAED,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,aAAa,IAAI,YAAY,EAAE,CAkC9C"}
@@ -0,0 +1,75 @@
1
+ import { getDisabledServerIds, getMergedServers } from "./config-loader.js";
2
+ import { BUILTIN_SERVERS, LSP_INSTALL_HINTS } from "./server-definitions.js";
3
+ import { isServerInstalled } from "./server-installation.js";
4
+ export function findServerForExtension(ext) {
5
+ const servers = getMergedServers();
6
+ for (const server of servers) {
7
+ if (server.extensions.includes(ext) && isServerInstalled(server.command)) {
8
+ return {
9
+ status: "found",
10
+ server: {
11
+ id: server.id,
12
+ command: server.command,
13
+ extensions: server.extensions,
14
+ priority: server.priority,
15
+ env: server.env,
16
+ initialization: server.initialization,
17
+ },
18
+ };
19
+ }
20
+ }
21
+ for (const server of servers) {
22
+ if (server.extensions.includes(ext)) {
23
+ const installHint = LSP_INSTALL_HINTS[server.id] ?? `Install '${server.command[0]}' and ensure it's in your PATH`;
24
+ return {
25
+ status: "not_installed",
26
+ server: {
27
+ id: server.id,
28
+ command: server.command,
29
+ extensions: server.extensions,
30
+ },
31
+ installHint,
32
+ };
33
+ }
34
+ }
35
+ const availableServers = [...new Set(servers.map((s) => s.id))];
36
+ return {
37
+ status: "not_configured",
38
+ extension: ext,
39
+ availableServers,
40
+ };
41
+ }
42
+ export function getAllServers() {
43
+ const servers = getMergedServers();
44
+ const disabled = getDisabledServerIds();
45
+ const result = [];
46
+ const seen = new Set();
47
+ for (const server of servers) {
48
+ if (seen.has(server.id))
49
+ continue;
50
+ result.push({
51
+ id: server.id,
52
+ installed: isServerInstalled(server.command),
53
+ extensions: server.extensions,
54
+ disabled: false,
55
+ source: server.source,
56
+ priority: server.priority,
57
+ });
58
+ seen.add(server.id);
59
+ }
60
+ for (const id of disabled) {
61
+ if (seen.has(id))
62
+ continue;
63
+ const builtin = BUILTIN_SERVERS[id];
64
+ result.push({
65
+ id,
66
+ installed: builtin ? isServerInstalled(builtin.command) : false,
67
+ extensions: builtin?.extensions ?? [],
68
+ disabled: true,
69
+ source: "disabled",
70
+ priority: 0,
71
+ });
72
+ }
73
+ return result;
74
+ }
75
+ //# sourceMappingURL=server-resolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-resolution.js","sourceRoot":"","sources":["../../src/lsp/server-resolution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { JsonRpcConnection } from "./json-rpc-connection.js";
2
+ import { type SpawnedProcess } from "./process.js";
3
+ import type { Diagnostic, ResolvedServer } from "./types.js";
4
+ export declare class LspClientTransport {
5
+ protected readonly root: string;
6
+ protected readonly server: ResolvedServer;
7
+ protected proc: SpawnedProcess | null;
8
+ protected connection: JsonRpcConnection | null;
9
+ protected readonly stderrBuffer: string[];
10
+ protected processExited: boolean;
11
+ protected readonly diagnosticsStore: Map<string, Diagnostic[]>;
12
+ constructor(root: string, server: ResolvedServer);
13
+ pid(): number | undefined;
14
+ command(): string[];
15
+ start(): Promise<void>;
16
+ protected startStderrReading(): void;
17
+ private isConnectionClosedError;
18
+ protected sendRequest<T>(method: string): Promise<T>;
19
+ protected sendRequest<T>(method: string, params: unknown): Promise<T>;
20
+ protected sendNotification(method: string): Promise<void>;
21
+ protected sendNotification(method: string, params: unknown): Promise<void>;
22
+ isAlive(): boolean;
23
+ stop(): Promise<void>;
24
+ getStoredDiagnostics(uri: string): Diagnostic[];
25
+ }
26
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/lsp/transport.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,KAAK,cAAc,EAAgB,MAAM,cAAc,CAAC;AAEjE,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA+B7D,qBAAa,kBAAkB;IAQ7B,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAC/B,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc;IAR1C,SAAS,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAQ;IAC7C,SAAS,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IACtD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAM;IAC/C,SAAS,CAAC,aAAa,UAAS;IAChC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,4BAAmC;gBAGlD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc;IAG1C,GAAG,IAAI,MAAM,GAAG,SAAS;IAIzB,OAAO,IAAI,MAAM,EAAE;IAIb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwD5B,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAWpC,OAAO,CAAC,uBAAuB;IAW/B,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IACpD,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IA+CrE,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACzD,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB1E,OAAO,IAAI,OAAO;IAIZ,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA4D3B,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,EAAE;CAG/C"}
@@ -0,0 +1,234 @@
1
+ import { delimiter } from "node:path";
2
+ import { reportBestEffortCleanupError } from "./cleanup-errors.js";
3
+ import { REQUEST_TIMEOUT_MS, STOP_HARD_KILL_TIMEOUT_MS, STOP_SIGKILL_GRACE_MS } from "./constants.js";
4
+ import { LspConnectionClosedError, LspProcessExitedError, LspRequestTimeoutError } from "./errors.js";
5
+ import { JsonRpcConnection } from "./json-rpc-connection.js";
6
+ import { spawnProcess } from "./process.js";
7
+ import { getAdditionalPathBases } from "./server-installation.js";
8
+ function isRecord(value) {
9
+ return typeof value === "object" && value !== null && !Array.isArray(value);
10
+ }
11
+ function parseConfigurationItems(params) {
12
+ if (!isRecord(params) || !Array.isArray(params.items))
13
+ return [];
14
+ const items = [];
15
+ for (const item of params.items) {
16
+ if (!isRecord(item))
17
+ continue;
18
+ items.push({ section: typeof item.section === "string" ? item.section : undefined });
19
+ }
20
+ return items;
21
+ }
22
+ function parseDiagnosticsParams(params) {
23
+ if (!isRecord(params) || typeof params.uri !== "string")
24
+ return null;
25
+ const diagnostics = Array.isArray(params.diagnostics) ? params.diagnostics : [];
26
+ return { uri: params.uri, diagnostics };
27
+ }
28
+ export class LspClientTransport {
29
+ constructor(root, server) {
30
+ this.root = root;
31
+ this.server = server;
32
+ this.proc = null;
33
+ this.connection = null;
34
+ this.stderrBuffer = [];
35
+ this.processExited = false;
36
+ this.diagnosticsStore = new Map();
37
+ }
38
+ pid() {
39
+ return this.proc?.pid;
40
+ }
41
+ command() {
42
+ return [...this.server.command];
43
+ }
44
+ async start() {
45
+ const env = {
46
+ ...process.env,
47
+ ...this.server.env,
48
+ };
49
+ const pathValue = process.platform === "win32" ? (env.PATH ?? env.Path ?? "") : (env.PATH ?? "");
50
+ const spawnPath = [pathValue, ...getAdditionalPathBases(this.root)].filter(Boolean).join(delimiter);
51
+ if (process.platform === "win32" && env.Path !== undefined) {
52
+ env.Path = spawnPath;
53
+ }
54
+ env.PATH = spawnPath;
55
+ this.proc = spawnProcess(this.server.command, {
56
+ cwd: this.root,
57
+ env,
58
+ });
59
+ this.startStderrReading();
60
+ await new Promise((resolve) => setTimeout(resolve, 100));
61
+ if (this.proc.exitCode !== null) {
62
+ const stderr = this.stderrBuffer.join("\n");
63
+ throw new LspProcessExitedError(this.server.id, this.root, this.proc.exitCode, stderr.slice(-2000));
64
+ }
65
+ this.connection = new JsonRpcConnection(this.proc.stdout, this.proc.stdin);
66
+ this.connection.onNotification("textDocument/publishDiagnostics", (params) => {
67
+ const diagnosticsParams = parseDiagnosticsParams(params);
68
+ if (diagnosticsParams?.uri) {
69
+ this.diagnosticsStore.set(diagnosticsParams.uri, diagnosticsParams.diagnostics);
70
+ }
71
+ });
72
+ this.connection.onRequest("workspace/configuration", (params) => {
73
+ const items = parseConfigurationItems(params);
74
+ return items.map((item) => {
75
+ if (item.section === "json")
76
+ return { validate: { enable: true } };
77
+ return {};
78
+ });
79
+ });
80
+ this.connection.onRequest("client/registerCapability", () => null);
81
+ this.connection.onRequest("window/workDoneProgress/create", () => null);
82
+ this.connection.onClose(() => {
83
+ this.processExited = true;
84
+ });
85
+ this.connection.onError((error) => {
86
+ reportBestEffortCleanupError("connection error notification", error);
87
+ });
88
+ this.connection.listen();
89
+ }
90
+ startStderrReading() {
91
+ if (!this.proc)
92
+ return;
93
+ this.proc.stderr.setEncoding("utf-8");
94
+ this.proc.stderr.on("data", (chunk) => {
95
+ this.stderrBuffer.push(chunk);
96
+ if (this.stderrBuffer.length > 100) {
97
+ this.stderrBuffer.shift();
98
+ }
99
+ });
100
+ }
101
+ isConnectionClosedError(error) {
102
+ if (!(error instanceof Error)) {
103
+ return false;
104
+ }
105
+ const code = "code" in error && typeof error.code === "string" ? error.code : undefined;
106
+ return (code === "ERR_STREAM_DESTROYED" ||
107
+ /connection closed|connection is disposed|stream was destroyed/i.test(error.message));
108
+ }
109
+ async sendRequest(method, ...args) {
110
+ if (!this.connection)
111
+ throw new Error("LSP client not started");
112
+ if (this.processExited || (this.proc && this.proc.exitCode !== null)) {
113
+ const stderrTail = this.stderrBuffer.slice(-10).join("\n");
114
+ throw new LspProcessExitedError(this.server.id, this.root, this.proc?.exitCode ?? null, stderrTail || undefined);
115
+ }
116
+ let timeoutHandle = null;
117
+ const timeoutPromise = new Promise((_, reject) => {
118
+ timeoutHandle = setTimeout(() => {
119
+ const stderrTail = this.stderrBuffer.slice(-5).join("\n");
120
+ reject(new LspRequestTimeoutError(method, stderrTail || undefined));
121
+ }, REQUEST_TIMEOUT_MS);
122
+ });
123
+ try {
124
+ const requestPromise = args.length === 0
125
+ ? this.connection.sendRequest(method)
126
+ : this.connection.sendRequest(method, args[0]);
127
+ const result = await Promise.race([requestPromise, timeoutPromise]);
128
+ if (timeoutHandle !== null)
129
+ clearTimeout(timeoutHandle);
130
+ return result;
131
+ }
132
+ catch (error) {
133
+ if (timeoutHandle !== null)
134
+ clearTimeout(timeoutHandle);
135
+ if (this.processExited || (this.proc && this.proc.exitCode !== null)) {
136
+ throw new LspProcessExitedError(this.server.id, this.root, this.proc?.exitCode ?? null, this.stderrBuffer.slice(-10).join("\n") || undefined);
137
+ }
138
+ if (this.isConnectionClosedError(error)) {
139
+ throw new LspConnectionClosedError(this.server.id, this.root, error.message);
140
+ }
141
+ throw error;
142
+ }
143
+ }
144
+ async sendNotification(method, ...args) {
145
+ if (!this.connection)
146
+ return;
147
+ if (this.processExited || (this.proc && this.proc.exitCode !== null))
148
+ return;
149
+ try {
150
+ if (args.length === 0) {
151
+ await this.connection.sendNotification(method);
152
+ }
153
+ else {
154
+ await this.connection.sendNotification(method, args[0]);
155
+ }
156
+ }
157
+ catch (error) {
158
+ if (this.isConnectionClosedError(error)) {
159
+ throw new LspConnectionClosedError(this.server.id, this.root, error.message);
160
+ }
161
+ throw error;
162
+ }
163
+ }
164
+ isAlive() {
165
+ return this.proc !== null && !this.processExited && this.proc.exitCode === null;
166
+ }
167
+ async stop() {
168
+ if (this.connection) {
169
+ try {
170
+ await this.sendRequest("shutdown");
171
+ }
172
+ catch (error) {
173
+ reportBestEffortCleanupError("shutdown request", error);
174
+ }
175
+ try {
176
+ await this.sendNotification("exit");
177
+ }
178
+ catch (error) {
179
+ reportBestEffortCleanupError("exit notification", error);
180
+ }
181
+ try {
182
+ this.connection.dispose();
183
+ }
184
+ catch (error) {
185
+ reportBestEffortCleanupError("connection dispose", error);
186
+ }
187
+ this.connection = null;
188
+ }
189
+ const proc = this.proc;
190
+ if (proc) {
191
+ this.proc = null;
192
+ let exitedBeforeTimeout = false;
193
+ try {
194
+ proc.kill();
195
+ let timeoutId;
196
+ const timeoutPromise = new Promise((resolve) => {
197
+ timeoutId = setTimeout(resolve, STOP_HARD_KILL_TIMEOUT_MS);
198
+ });
199
+ await Promise.race([
200
+ proc.exited
201
+ .then(() => {
202
+ exitedBeforeTimeout = true;
203
+ })
204
+ .finally(() => {
205
+ if (timeoutId)
206
+ clearTimeout(timeoutId);
207
+ }),
208
+ timeoutPromise,
209
+ ]);
210
+ if (!exitedBeforeTimeout) {
211
+ try {
212
+ proc.kill("SIGKILL");
213
+ await Promise.race([
214
+ proc.exited,
215
+ new Promise((resolve) => setTimeout(resolve, STOP_SIGKILL_GRACE_MS)),
216
+ ]);
217
+ }
218
+ catch (error) {
219
+ reportBestEffortCleanupError("hard process kill", error);
220
+ }
221
+ }
222
+ }
223
+ catch (error) {
224
+ reportBestEffortCleanupError("process stop", error);
225
+ }
226
+ }
227
+ this.processExited = true;
228
+ this.diagnosticsStore.clear();
229
+ }
230
+ getStoredDiagnostics(uri) {
231
+ return this.diagnosticsStore.get(uri) ?? [];
232
+ }
233
+ }
234
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/lsp/transport.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export interface LSPServerConfig {
1
+ export interface LspServerConfig {
2
2
  id: string;
3
3
  command: string[];
4
4
  extensions: string[];
@@ -6,6 +6,31 @@ export interface LSPServerConfig {
6
6
  env?: Record<string, string>;
7
7
  initialization?: Record<string, unknown>;
8
8
  }
9
+ export interface ResolvedServer {
10
+ id: string;
11
+ command: string[];
12
+ extensions: string[];
13
+ priority: number;
14
+ env?: Record<string, string>;
15
+ initialization?: Record<string, unknown>;
16
+ }
17
+ export interface ServerLookupInfo {
18
+ id: string;
19
+ command: string[];
20
+ extensions: string[];
21
+ }
22
+ export type ServerLookupResult = {
23
+ status: "found";
24
+ server: ResolvedServer;
25
+ } | {
26
+ status: "not_configured";
27
+ extension: string;
28
+ availableServers: string[];
29
+ } | {
30
+ status: "not_installed";
31
+ server: ServerLookupInfo;
32
+ installHint: string;
33
+ };
9
34
  export interface Position {
10
35
  line: number;
11
36
  character: number;
@@ -96,28 +121,5 @@ export interface PrepareRenameResult {
96
121
  export interface PrepareRenameDefaultBehavior {
97
122
  defaultBehavior: boolean;
98
123
  }
99
- export interface ServerLookupInfo {
100
- id: string;
101
- command: string[];
102
- extensions: string[];
103
- }
104
- export type ServerLookupResult = {
105
- status: "found";
106
- server: ResolvedServer;
107
- } | {
108
- status: "not_configured";
109
- extension: string;
110
- availableServers: string[];
111
- } | {
112
- status: "not_installed";
113
- server: ServerLookupInfo;
114
- installHint: string;
115
- };
116
- export interface ResolvedServer {
117
- id: string;
118
- command: string[];
119
- extensions: string[];
120
- priority: number;
121
- env?: Record<string, string>;
122
- initialization?: Record<string, unknown>;
123
- }
124
+ export type SeverityFilter = "error" | "warning" | "information" | "hint" | "all";
125
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lsp/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lsp/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export declare function shorten(value: string, max: number): string;
2
+ export declare function errorMessage(error: unknown): string;
3
+ export declare function formatKnownLspStartupFailure(error: unknown): string | null;
4
+ export declare function handleMissingDependencyError(error: unknown): string | null;
5
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lsp/utils.ts"],"names":[],"mappings":"AAUA,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEnD;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAiB1E;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAM1E"}
@@ -0,0 +1,43 @@
1
+ import { LspProcessExitedError } from "./errors.js";
2
+ const RUST_SRC_REPAIR_MESSAGE = [
3
+ "rust-analyzer exited while loading Rust standard library sources.",
4
+ "",
5
+ "Repair rust-src for the active toolchain:",
6
+ " rustup component remove rust-src",
7
+ " rustup component add rust-src",
8
+ ];
9
+ export function shorten(value, max) {
10
+ if (value.length <= max)
11
+ return value;
12
+ if (max <= 3)
13
+ return ".".repeat(Math.max(0, max));
14
+ return `${value.slice(0, max - 3)}...`;
15
+ }
16
+ export function errorMessage(error) {
17
+ return error instanceof Error ? error.message : String(error);
18
+ }
19
+ export function formatKnownLspStartupFailure(error) {
20
+ if (!(error instanceof LspProcessExitedError))
21
+ return null;
22
+ if (error.serverId !== "rust")
23
+ return null;
24
+ const details = error.stderrTail ?? error.message;
25
+ const lowerDetails = details.toLowerCase();
26
+ const isRustSrcFailure = lowerDetails.includes("rust-src") &&
27
+ (lowerDetails.includes("failed to install component") ||
28
+ lowerDetails.includes("detected conflict") ||
29
+ lowerDetails.includes("can't load standard library") ||
30
+ lowerDetails.includes("try installing") ||
31
+ lowerDetails.includes("sysroot"));
32
+ if (!isRustSrcFailure)
33
+ return null;
34
+ return [...RUST_SRC_REPAIR_MESSAGE, "", "Original stderr tail:", details].join("\n");
35
+ }
36
+ export function handleMissingDependencyError(error) {
37
+ const knownStartupFailure = formatKnownLspStartupFailure(error);
38
+ if (knownStartupFailure)
39
+ return knownStartupFailure;
40
+ const message = errorMessage(error);
41
+ return message.includes("NOT INSTALLED") || message.includes("No LSP server configured") ? message : null;
42
+ }
43
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lsp/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,uBAAuB,GAAG;IAC/B,mEAAmE;IACnE,EAAE;IACF,2CAA2C;IAC3C,oCAAoC;IACpC,iCAAiC;CACjC,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,GAAW;IACjD,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAClD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IAC1C,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAc;IAC1D,IAAI,CAAC,CAAC,KAAK,YAAY,qBAAqB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAE3C,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC;IAClD,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,gBAAgB,GACrB,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;QACjC,CAAC,YAAY,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACpD,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC1C,YAAY,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACpD,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACvC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAEpC,IAAI,CAAC,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAEnC,OAAO,CAAC,GAAG,uBAAuB,EAAE,EAAE,EAAE,uBAAuB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAc;IAC1D,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAChE,IAAI,mBAAmB;QAAE,OAAO,mBAAmB,CAAC;IAEpD,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3G,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { WorkspaceEdit } from "./types";
1
+ import type { WorkspaceEdit } from "./types.js";
2
2
  export interface ApplyResult {
3
3
  success: boolean;
4
4
  filesModified: string[];
@@ -6,3 +6,4 @@ export interface ApplyResult {
6
6
  errors: string[];
7
7
  }
8
8
  export declare function applyWorkspaceEdit(edit: WorkspaceEdit | null): ApplyResult;
9
+ //# sourceMappingURL=workspace-edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-edit.d.ts","sourceRoot":"","sources":["../../src/lsp/workspace-edit.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAY,aAAa,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB;AAgDD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,GAAG,WAAW,CAyE1E"}