openfox 2.0.18 → 2.0.21

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 (27) hide show
  1. package/dist/{chat-handler-Z2C4372A.js → chat-handler-KNDSH5WR.js} +6 -6
  2. package/dist/{chunk-LX66KJPL.js → chunk-6PLAWCHQ.js} +31 -56
  3. package/dist/{chunk-VHWUZ7TO.js → chunk-ASM2Z7JU.js} +2 -2
  4. package/dist/{chunk-M6ELTMPZ.js → chunk-FYW7H7KF.js} +2 -2
  5. package/dist/{chunk-J7KOV4ST.js → chunk-GI24G4OW.js} +3 -3
  6. package/dist/{chunk-FERQPF5N.js → chunk-PKW4YDZ6.js} +66 -572
  7. package/dist/{chunk-MPSOO6KF.js → chunk-T67KB6ZS.js} +7 -7
  8. package/dist/{chunk-FCSFHRKI.js → chunk-TVQTTZYW.js} +20 -12
  9. package/dist/{chunk-4MTSWBWH.js → chunk-VDC2QL2O.js} +4 -4
  10. package/dist/{chunk-SYG2ENUQ.js → chunk-YBWY4DKY.js} +2 -2
  11. package/dist/cli/dev.js +1 -1
  12. package/dist/cli/index.js +1 -1
  13. package/dist/{compactor-FAN7KRQN.js → compactor-EOQYEOFS.js} +4 -4
  14. package/dist/{events-4K52FKPR.js → events-JKPHAR5W.js} +3 -3
  15. package/dist/{folding-QIBNKYA6.js → folding-PI67HWBR.js} +2 -2
  16. package/dist/languages.json +403 -0
  17. package/dist/{orchestrator-YPL5S4QN.js → orchestrator-ZVPFU2ZF.js} +5 -5
  18. package/dist/package.json +2 -2
  19. package/dist/{processor-GUUAJ24C.js → processor-DKAYI3PV.js} +6 -6
  20. package/dist/{serve-Z5GO323T.js → serve-EDGPYCDZ.js} +8 -8
  21. package/dist/server/index.js +7 -7
  22. package/dist/{server-IZL6UZEZ.js → server-CN7ML6XN.js} +7 -7
  23. package/dist/{tools-QTEXQQ7Z.js → tools-ZUOBYTVD.js} +4 -4
  24. package/dist/web/assets/{index-ByjaBwIN.js → index-00migM5L.js} +63 -63
  25. package/dist/web/index.html +1 -1
  26. package/dist/web/sw.js +1 -1
  27. package/package.json +2 -2
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  appendCompactionPrompt
3
- } from "./chunk-VHWUZ7TO.js";
3
+ } from "./chunk-ASM2Z7JU.js";
4
4
  import {
5
5
  injectWorkflowKickoffIfNeeded,
6
6
  runAgentTurn,
7
7
  runChatTurn
8
- } from "./chunk-4MTSWBWH.js";
8
+ } from "./chunk-VDC2QL2O.js";
9
9
  import {
10
10
  applyDynamicContext,
11
11
  checkAborted,
@@ -22,7 +22,7 @@ import {
22
22
  loadAllAgentsDefault,
23
23
  saveItemToDir,
24
24
  spawnShellProcess
25
- } from "./chunk-FCSFHRKI.js";
25
+ } from "./chunk-TVQTTZYW.js";
26
26
  import {
27
27
  TurnMetrics,
28
28
  createMessageStartEvent
@@ -35,7 +35,7 @@ import {
35
35
  getCurrentContextWindowId,
36
36
  getEventStore,
37
37
  getRuntimeConfig
38
- } from "./chunk-SYG2ENUQ.js";
38
+ } from "./chunk-YBWY4DKY.js";
39
39
  import {
40
40
  createChatErrorMessage,
41
41
  createChatMessageMessage,
@@ -1775,7 +1775,7 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
1775
1775
  const runtimeConfig = getRuntimeConfig();
1776
1776
  const configDir = getGlobalConfigDir(runtimeConfig.mode ?? "production");
1777
1777
  const skills = await getEnabledSkillMetadata(configDir, runtimeConfig.workdir);
1778
- const { createToolRegistry } = await import("./tools-QTEXQQ7Z.js");
1778
+ const { createToolRegistry } = await import("./tools-ZUOBYTVD.js");
1779
1779
  const allTools = createToolRegistry().definitions;
1780
1780
  const toolFingerprint = getToolFingerprint(allTools);
1781
1781
  const currentHash = computeDynamicContextHash(instructionContent, skills, toolFingerprint);
@@ -1848,7 +1848,7 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
1848
1848
  const runtimeConfig = getRuntimeConfig();
1849
1849
  const configDir = getGlobalConfigDir(runtimeConfig.mode ?? "production");
1850
1850
  const skills = await getEnabledSkillMetadata(configDir, runtimeConfig.workdir);
1851
- const { createToolRegistry } = await import("./tools-QTEXQQ7Z.js");
1851
+ const { createToolRegistry } = await import("./tools-ZUOBYTVD.js");
1852
1852
  const allTools = createToolRegistry().definitions;
1853
1853
  const toolFingerprint = getToolFingerprint(allTools);
1854
1854
  const currentHash = computeDynamicContextHash(instructionContent, skills, toolFingerprint);
@@ -2069,4 +2069,4 @@ export {
2069
2069
  signalMcpReady,
2070
2070
  createWebSocketServer
2071
2071
  };
2072
- //# sourceMappingURL=chunk-MPSOO6KF.js.map
2072
+ //# sourceMappingURL=chunk-T67KB6ZS.js.map
@@ -40,7 +40,7 @@ import {
40
40
  getCurrentWindowMessageOptions,
41
41
  getEventStore,
42
42
  getRuntimeConfig
43
- } from "./chunk-SYG2ENUQ.js";
43
+ } from "./chunk-YBWY4DKY.js";
44
44
  import {
45
45
  buildContextMessagesFromEventHistory,
46
46
  foldContextState,
@@ -49,7 +49,7 @@ import {
49
49
  handleToolCall,
50
50
  handleToolResult,
51
51
  stripOrphanedToolCalls
52
- } from "./chunk-LX66KJPL.js";
52
+ } from "./chunk-6PLAWCHQ.js";
53
53
  import {
54
54
  createChatDoneMessage,
55
55
  createChatMessageMessage,
@@ -1502,16 +1502,15 @@ function executeCommand(command, cwd, timeout, signal, onProgress) {
1502
1502
  const proc = spawnShellProcess(command, cwd, signal, true);
1503
1503
  let stdout = "";
1504
1504
  let stderr = "";
1505
- let killed = false;
1505
+ let timedOut = false;
1506
1506
  let aborted = false;
1507
1507
  let exited = false;
1508
1508
  const timer = setTimeout(() => {
1509
- killed = true;
1509
+ timedOut = true;
1510
1510
  void terminateProcessTree(proc, { exited: () => exited });
1511
- reject(new Error(`Command timed out after ${timeout}ms`));
1512
1511
  }, timeout);
1513
1512
  const onAbort = () => {
1514
- if (!killed && !aborted) {
1513
+ if (!timedOut && !aborted) {
1515
1514
  aborted = true;
1516
1515
  void terminateProcessTree(proc, { exited: () => exited });
1517
1516
  }
@@ -1531,7 +1530,16 @@ function executeCommand(command, cwd, timeout, signal, onProgress) {
1531
1530
  exited = true;
1532
1531
  clearTimeout(timer);
1533
1532
  signal?.removeEventListener("abort", onAbort);
1534
- if (killed) {
1533
+ if (timedOut) {
1534
+ let output = stdout.trim();
1535
+ if (output) output += "\n\n";
1536
+ output += `[Exit code: 124]
1537
+ [Process timed out after ${timeout}ms]`;
1538
+ resolve6({
1539
+ stdout: output,
1540
+ stderr: stderr.trim(),
1541
+ exitCode: 124
1542
+ });
1535
1543
  return;
1536
1544
  }
1537
1545
  if (aborted) {
@@ -2542,7 +2550,7 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
2542
2550
  sessionManager.setCurrentContextSize(sessionId, result.usage.promptTokens);
2543
2551
  if (!compacting) {
2544
2552
  const contextState = sessionManager.getContextState(sessionId);
2545
- const { shouldCompact, appendCompactionPrompt } = await import("./compactor-FAN7KRQN.js");
2553
+ const { shouldCompact, appendCompactionPrompt } = await import("./compactor-EOQYEOFS.js");
2546
2554
  if (shouldCompact(contextState.currentTokens, contextState.maxTokens, runtimeConfig.context.compactionThreshold)) {
2547
2555
  appendCompactionPrompt(sessionId, append);
2548
2556
  compacting = true;
@@ -3347,7 +3355,7 @@ var callSubAgentTool = {
3347
3355
  };
3348
3356
  }
3349
3357
  try {
3350
- const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-QTEXQQ7Z.js");
3358
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-ZUOBYTVD.js");
3351
3359
  const toolRegistry = getToolRegistryForAgent2(agentDef);
3352
3360
  const turnMetrics = new TurnMetrics();
3353
3361
  const result = await executeSubAgent({
@@ -4153,7 +4161,7 @@ async function computeContextHash(sessionManager, sessionId) {
4153
4161
  const runtimeConfig = getRuntimeConfig();
4154
4162
  const configDir = getGlobalConfigDir(runtimeConfig.mode ?? "production");
4155
4163
  const skills = await getEnabledSkillMetadata(configDir, runtimeConfig.workdir);
4156
- const { createToolRegistry: createToolRegistry2 } = await import("./tools-QTEXQQ7Z.js");
4164
+ const { createToolRegistry: createToolRegistry2 } = await import("./tools-ZUOBYTVD.js");
4157
4165
  const allTools = createToolRegistry2().definitions;
4158
4166
  const toolFingerprint = getToolFingerprint(allTools);
4159
4167
  const hash = computeDynamicContextHash(instructionContent, skills, toolFingerprint);
@@ -4266,7 +4274,7 @@ var mcpConfigTool = createTool(
4266
4274
  await saveGlobalConfig(mcpConfigMode, { ...globalConfig, mcpServers: updated });
4267
4275
  }
4268
4276
  async function rebuildTools() {
4269
- const { setMcpTools: setMcpTools2 } = await import("./tools-QTEXQQ7Z.js");
4277
+ const { setMcpTools: setMcpTools2 } = await import("./tools-ZUOBYTVD.js");
4270
4278
  const mcpTools = createMcpTools(mcpManagerForTools);
4271
4279
  setMcpTools2(mcpTools);
4272
4280
  }
@@ -4670,4 +4678,4 @@ export {
4670
4678
  getToolRegistryForAgent,
4671
4679
  createToolRegistry
4672
4680
  };
4673
- //# sourceMappingURL=chunk-FCSFHRKI.js.map
4681
+ //# sourceMappingURL=chunk-TVQTTZYW.js.map
@@ -14,7 +14,7 @@ import {
14
14
  loadAllAgentsDefault,
15
15
  processEventsForConversation,
16
16
  runTopLevelAgentLoop
17
- } from "./chunk-FCSFHRKI.js";
17
+ } from "./chunk-TVQTTZYW.js";
18
18
  import {
19
19
  TurnMetrics,
20
20
  WORKFLOW_KICKOFF_PROMPT,
@@ -28,10 +28,10 @@ import {
28
28
  getCurrentWindowMessageOptions,
29
29
  getEventStore,
30
30
  getRuntimeConfig
31
- } from "./chunk-SYG2ENUQ.js";
31
+ } from "./chunk-YBWY4DKY.js";
32
32
  import {
33
33
  buildSnapshotFromSessionState
34
- } from "./chunk-LX66KJPL.js";
34
+ } from "./chunk-6PLAWCHQ.js";
35
35
  import {
36
36
  getGlobalConfigDir
37
37
  } from "./chunk-CQGTEGKL.js";
@@ -320,4 +320,4 @@ export {
320
320
  runAgentTurn,
321
321
  injectWorkflowKickoffIfNeeded
322
322
  };
323
- //# sourceMappingURL=chunk-4MTSWBWH.js.map
323
+ //# sourceMappingURL=chunk-VDC2QL2O.js.map
@@ -5,7 +5,7 @@ import {
5
5
  foldContextState,
6
6
  foldSessionState,
7
7
  spreadOptionalMessageFields
8
- } from "./chunk-LX66KJPL.js";
8
+ } from "./chunk-6PLAWCHQ.js";
9
9
  import {
10
10
  getDatabase
11
11
  } from "./chunk-FBGWG4N6.js";
@@ -1397,4 +1397,4 @@ export {
1397
1397
  truncateSessionMessages,
1398
1398
  getRecentUserPromptsForSession
1399
1399
  };
1400
- //# sourceMappingURL=chunk-SYG2ENUQ.js.map
1400
+ //# sourceMappingURL=chunk-YBWY4DKY.js.map
package/dist/cli/dev.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runCli
4
- } from "../chunk-M6ELTMPZ.js";
4
+ } from "../chunk-FYW7H7KF.js";
5
5
  import {
6
6
  logger
7
7
  } from "../chunk-K44MW7JJ.js";
package/dist/cli/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runCli
4
- } from "../chunk-M6ELTMPZ.js";
4
+ } from "../chunk-FYW7H7KF.js";
5
5
  import {
6
6
  logger
7
7
  } from "../chunk-K44MW7JJ.js";
@@ -2,10 +2,10 @@ import {
2
2
  appendCompactionPrompt,
3
3
  getCompactionTarget,
4
4
  shouldCompact
5
- } from "./chunk-VHWUZ7TO.js";
5
+ } from "./chunk-ASM2Z7JU.js";
6
6
  import "./chunk-DX37WNM7.js";
7
- import "./chunk-SYG2ENUQ.js";
8
- import "./chunk-LX66KJPL.js";
7
+ import "./chunk-YBWY4DKY.js";
8
+ import "./chunk-6PLAWCHQ.js";
9
9
  import "./chunk-FBGWG4N6.js";
10
10
  import "./chunk-Z4SWOUWC.js";
11
11
  import "./chunk-K44MW7JJ.js";
@@ -14,4 +14,4 @@ export {
14
14
  getCompactionTarget,
15
15
  shouldCompact
16
16
  };
17
- //# sourceMappingURL=compactor-FAN7KRQN.js.map
17
+ //# sourceMappingURL=compactor-EOQYEOFS.js.map
@@ -38,7 +38,7 @@ import {
38
38
  isStoredEvent,
39
39
  isTurnEvent,
40
40
  truncateSessionMessages
41
- } from "./chunk-SYG2ENUQ.js";
41
+ } from "./chunk-YBWY4DKY.js";
42
42
  import {
43
43
  buildContextMessagesFromEventHistory,
44
44
  buildContextMessagesFromMessages,
@@ -55,7 +55,7 @@ import {
55
55
  foldTodos,
56
56
  foldTurnEventsToSnapshotMessages,
57
57
  getMessagesForWindow
58
- } from "./chunk-LX66KJPL.js";
58
+ } from "./chunk-6PLAWCHQ.js";
59
59
  import "./chunk-FBGWG4N6.js";
60
60
  import "./chunk-K44MW7JJ.js";
61
61
  export {
@@ -114,4 +114,4 @@ export {
114
114
  isTurnEvent,
115
115
  truncateSessionMessages
116
116
  };
117
- //# sourceMappingURL=events-4K52FKPR.js.map
117
+ //# sourceMappingURL=events-JKPHAR5W.js.map
@@ -23,7 +23,7 @@ import {
23
23
  handleToolResult,
24
24
  spreadOptionalMessageFields,
25
25
  stripOrphanedToolCalls
26
- } from "./chunk-LX66KJPL.js";
26
+ } from "./chunk-6PLAWCHQ.js";
27
27
  export {
28
28
  buildContextMessagesFromEventHistory,
29
29
  buildContextMessagesFromMessages,
@@ -50,4 +50,4 @@ export {
50
50
  spreadOptionalMessageFields,
51
51
  stripOrphanedToolCalls
52
52
  };
53
- //# sourceMappingURL=folding-QIBNKYA6.js.map
53
+ //# sourceMappingURL=folding-PI67HWBR.js.map
@@ -0,0 +1,403 @@
1
+ [
2
+ {
3
+ "id": "typescript",
4
+ "name": "TypeScript",
5
+ "extensions": [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs"],
6
+ "serverCommand": "typescript-language-server",
7
+ "serverArgs": ["--stdio"],
8
+ "rootPatterns": ["tsconfig.json", "jsconfig.json", "package.json"],
9
+ "languageIds": {
10
+ ".ts": "typescript",
11
+ ".tsx": "typescriptreact",
12
+ ".js": "javascript",
13
+ ".jsx": "javascriptreact",
14
+ ".mjs": "javascript",
15
+ ".cjs": "javascript"
16
+ }
17
+ },
18
+ {
19
+ "id": "python",
20
+ "name": "Python",
21
+ "extensions": [".py", ".pyi", ".pyw"],
22
+ "serverCommand": "pyright-langserver",
23
+ "serverArgs": ["--stdio"],
24
+ "rootPatterns": ["pyproject.toml", "setup.py", "requirements.txt", "Pipfile"]
25
+ },
26
+ {
27
+ "id": "rust",
28
+ "name": "Rust",
29
+ "extensions": [".rs"],
30
+ "serverCommand": "rust-analyzer",
31
+ "serverArgs": [],
32
+ "rootPatterns": ["Cargo.toml"]
33
+ },
34
+ {
35
+ "id": "go",
36
+ "name": "Go",
37
+ "extensions": [".go"],
38
+ "serverCommand": "gopls",
39
+ "serverArgs": ["serve"],
40
+ "rootPatterns": ["go.mod", "go.sum"]
41
+ },
42
+ {
43
+ "id": "cpp",
44
+ "name": "C/C++",
45
+ "extensions": [".c", ".cpp", ".cc", ".cxx", ".h", ".hpp", ".hxx", ".hh"],
46
+ "serverCommand": "clangd",
47
+ "serverArgs": ["--background-index"],
48
+ "rootPatterns": ["compile_commands.json", "CMakeLists.txt", ".clangd", "Makefile"]
49
+ },
50
+ {
51
+ "id": "zig",
52
+ "name": "Zig",
53
+ "extensions": [".zig"],
54
+ "serverCommand": "zls",
55
+ "serverArgs": [],
56
+ "rootPatterns": ["build.zig", "build.zig.zon"]
57
+ },
58
+ {
59
+ "id": "lua",
60
+ "name": "Lua",
61
+ "extensions": [".lua"],
62
+ "serverCommand": "lua-language-server",
63
+ "serverArgs": [],
64
+ "rootPatterns": [".luarc.json", ".luarc.jsonc", ".luacheckrc"]
65
+ },
66
+ {
67
+ "id": "ruby",
68
+ "name": "Ruby",
69
+ "extensions": [".rb", ".rake", ".gemspec"],
70
+ "serverCommand": "solargraph",
71
+ "serverArgs": ["stdio"],
72
+ "rootPatterns": ["Gemfile", ".ruby-version"]
73
+ },
74
+ {
75
+ "id": "elixir",
76
+ "name": "Elixir",
77
+ "extensions": [".ex", ".exs"],
78
+ "serverCommand": "elixir-ls",
79
+ "serverArgs": [],
80
+ "rootPatterns": ["mix.exs"]
81
+ },
82
+ {
83
+ "id": "haskell",
84
+ "name": "Haskell",
85
+ "extensions": [".hs", ".lhs"],
86
+ "serverCommand": "haskell-language-server-wrapper",
87
+ "serverArgs": ["--lsp"],
88
+ "rootPatterns": ["stack.yaml", "cabal.project", "*.cabal"]
89
+ },
90
+ {
91
+ "id": "ocaml",
92
+ "name": "OCaml",
93
+ "extensions": [".ml", ".mli"],
94
+ "serverCommand": "ocamllsp",
95
+ "serverArgs": [],
96
+ "rootPatterns": ["dune-project", "dune", "*.opam"]
97
+ },
98
+ {
99
+ "id": "scala",
100
+ "name": "Scala",
101
+ "extensions": [".scala", ".sc"],
102
+ "serverCommand": "metals",
103
+ "serverArgs": [],
104
+ "rootPatterns": ["build.sbt", "build.sc", ".metals"]
105
+ },
106
+ {
107
+ "id": "kotlin",
108
+ "name": "Kotlin",
109
+ "extensions": [".kt", ".kts"],
110
+ "serverCommand": "kotlin-language-server",
111
+ "serverArgs": [],
112
+ "rootPatterns": ["build.gradle.kts", "build.gradle", "settings.gradle.kts"]
113
+ },
114
+ {
115
+ "id": "java",
116
+ "name": "Java",
117
+ "extensions": [".java"],
118
+ "serverCommand": "jdtls",
119
+ "serverArgs": [],
120
+ "rootPatterns": ["pom.xml", "build.gradle", ".project"]
121
+ },
122
+ {
123
+ "id": "csharp",
124
+ "name": "C#",
125
+ "extensions": [".cs", ".csx"],
126
+ "serverCommand": "OmniSharp",
127
+ "serverArgs": ["-lsp"],
128
+ "rootPatterns": ["*.csproj", "*.sln"]
129
+ },
130
+ {
131
+ "id": "swift",
132
+ "name": "Swift",
133
+ "extensions": [".swift"],
134
+ "serverCommand": "sourcekit-lsp",
135
+ "serverArgs": [],
136
+ "rootPatterns": ["Package.swift", "*.xcodeproj", "*.xcworkspace"]
137
+ },
138
+ {
139
+ "id": "php",
140
+ "name": "PHP",
141
+ "extensions": [".php", ".phtml"],
142
+ "serverCommand": "phpactor",
143
+ "serverArgs": ["language-server"],
144
+ "rootPatterns": ["composer.json", "phpunit.xml"]
145
+ },
146
+ {
147
+ "id": "yaml",
148
+ "name": "YAML",
149
+ "extensions": [".yaml", ".yml"],
150
+ "serverCommand": "yaml-language-server",
151
+ "serverArgs": ["--stdio"],
152
+ "rootPatterns": []
153
+ },
154
+ {
155
+ "id": "json",
156
+ "name": "JSON",
157
+ "extensions": [".json", ".jsonc"],
158
+ "serverCommand": "vscode-json-language-server",
159
+ "serverArgs": ["--stdio"],
160
+ "rootPatterns": []
161
+ },
162
+ {
163
+ "id": "html",
164
+ "name": "HTML",
165
+ "extensions": [".html", ".htm", ".xhtml"],
166
+ "serverCommand": "vscode-html-language-server",
167
+ "serverArgs": ["--stdio"],
168
+ "rootPatterns": []
169
+ },
170
+ {
171
+ "id": "css",
172
+ "name": "CSS",
173
+ "extensions": [".css", ".scss", ".sass", ".less"],
174
+ "serverCommand": "vscode-css-language-server",
175
+ "serverArgs": ["--stdio"],
176
+ "rootPatterns": []
177
+ },
178
+ {
179
+ "id": "vue",
180
+ "name": "Vue",
181
+ "extensions": [".vue"],
182
+ "serverCommand": "vue-language-server",
183
+ "serverArgs": ["--stdio"],
184
+ "rootPatterns": ["vite.config.ts", "vite.config.js", "vue.config.js"]
185
+ },
186
+ {
187
+ "id": "svelte",
188
+ "name": "Svelte",
189
+ "extensions": [".svelte"],
190
+ "serverCommand": "svelteserver",
191
+ "serverArgs": ["--stdio"],
192
+ "rootPatterns": ["svelte.config.js", "svelte.config.ts"]
193
+ },
194
+ {
195
+ "id": "terraform",
196
+ "name": "Terraform",
197
+ "extensions": [".tf", ".tfvars"],
198
+ "serverCommand": "terraform-ls",
199
+ "serverArgs": ["serve"],
200
+ "rootPatterns": [".terraform", "main.tf"]
201
+ },
202
+ {
203
+ "id": "dockerfile",
204
+ "name": "Docker",
205
+ "extensions": [],
206
+ "serverCommand": "docker-langserver",
207
+ "serverArgs": ["--stdio"],
208
+ "rootPatterns": ["Dockerfile", "docker-compose.yml"]
209
+ },
210
+ {
211
+ "id": "bash",
212
+ "name": "Bash",
213
+ "extensions": [".sh", ".bash", ".zsh"],
214
+ "serverCommand": "bash-language-server",
215
+ "serverArgs": ["start"],
216
+ "rootPatterns": []
217
+ },
218
+ {
219
+ "id": "sql",
220
+ "name": "SQL",
221
+ "extensions": [".sql"],
222
+ "serverCommand": "sql-language-server",
223
+ "serverArgs": ["up", "--method", "stdio"],
224
+ "rootPatterns": [],
225
+ "installHint": "npm install -g sql-language-server"
226
+ },
227
+ {
228
+ "id": "graphql",
229
+ "name": "GraphQL",
230
+ "extensions": [".graphql", ".gql"],
231
+ "serverCommand": "graphql-lsp",
232
+ "serverArgs": ["server", "-m", "stream"],
233
+ "rootPatterns": [".graphqlrc", ".graphqlrc.yml", ".graphqlrc.json", "graphql.config.js"]
234
+ },
235
+ {
236
+ "id": "nix",
237
+ "name": "Nix",
238
+ "extensions": [".nix"],
239
+ "serverCommand": "nil",
240
+ "serverArgs": [],
241
+ "rootPatterns": ["flake.nix", "default.nix", "shell.nix"]
242
+ },
243
+ {
244
+ "id": "gleam",
245
+ "name": "Gleam",
246
+ "extensions": [".gleam"],
247
+ "serverCommand": "gleam",
248
+ "serverArgs": ["lsp"],
249
+ "rootPatterns": ["gleam.toml"]
250
+ },
251
+ {
252
+ "id": "elm",
253
+ "name": "Elm",
254
+ "extensions": [".elm"],
255
+ "serverCommand": "elm-language-server",
256
+ "serverArgs": [],
257
+ "rootPatterns": ["elm.json"]
258
+ },
259
+ {
260
+ "id": "dart",
261
+ "name": "Dart",
262
+ "extensions": [".dart"],
263
+ "serverCommand": "dart",
264
+ "serverArgs": ["language-server", "--protocol=lsp"],
265
+ "rootPatterns": ["pubspec.yaml"]
266
+ },
267
+ {
268
+ "id": "julia",
269
+ "name": "Julia",
270
+ "extensions": [".jl"],
271
+ "serverCommand": "julia",
272
+ "serverArgs": ["--startup-file=no", "--history-file=no", "-e", "using LanguageServer; runserver()"],
273
+ "rootPatterns": ["Project.toml"]
274
+ },
275
+ {
276
+ "id": "r",
277
+ "name": "R",
278
+ "extensions": [".r", ".R", ".rmd", ".Rmd"],
279
+ "serverCommand": "R",
280
+ "serverArgs": ["--slave", "-e", "languageserver::run()"],
281
+ "rootPatterns": ["DESCRIPTION", ".Rproj"]
282
+ },
283
+ {
284
+ "id": "clojure",
285
+ "name": "Clojure",
286
+ "extensions": [".clj", ".cljs", ".cljc", ".edn"],
287
+ "serverCommand": "clojure-lsp",
288
+ "serverArgs": [],
289
+ "rootPatterns": ["deps.edn", "project.clj", "shadow-cljs.edn"]
290
+ },
291
+ {
292
+ "id": "nim",
293
+ "name": "Nim",
294
+ "extensions": [".nim", ".nims"],
295
+ "serverCommand": "nimlsp",
296
+ "serverArgs": [],
297
+ "rootPatterns": ["*.nimble"]
298
+ },
299
+ {
300
+ "id": "vlang",
301
+ "name": "V",
302
+ "extensions": [".v", ".vv"],
303
+ "serverCommand": "vls",
304
+ "serverArgs": [],
305
+ "rootPatterns": ["v.mod"]
306
+ },
307
+ {
308
+ "id": "crystal",
309
+ "name": "Crystal",
310
+ "extensions": [".cr"],
311
+ "serverCommand": "crystalline",
312
+ "serverArgs": [],
313
+ "rootPatterns": ["shard.yml"]
314
+ },
315
+ {
316
+ "id": "d",
317
+ "name": "D",
318
+ "extensions": [".d"],
319
+ "serverCommand": "serve-d",
320
+ "serverArgs": [],
321
+ "rootPatterns": ["dub.json", "dub.sdl"]
322
+ },
323
+ {
324
+ "id": "erlang",
325
+ "name": "Erlang",
326
+ "extensions": [".erl", ".hrl"],
327
+ "serverCommand": "erlang_ls",
328
+ "serverArgs": [],
329
+ "rootPatterns": ["rebar.config", "erlang.mk"]
330
+ },
331
+ {
332
+ "id": "fsharp",
333
+ "name": "F#",
334
+ "extensions": [".fs", ".fsx", ".fsi"],
335
+ "serverCommand": "fsautocomplete",
336
+ "serverArgs": ["--adaptive-lsp-server-enabled"],
337
+ "rootPatterns": ["*.fsproj"]
338
+ },
339
+ {
340
+ "id": "fortran",
341
+ "name": "Fortran",
342
+ "extensions": [".f", ".f90", ".f95", ".f03", ".f08"],
343
+ "serverCommand": "fortls",
344
+ "serverArgs": [],
345
+ "rootPatterns": []
346
+ },
347
+ {
348
+ "id": "latex",
349
+ "name": "LaTeX",
350
+ "extensions": [".tex", ".bib"],
351
+ "serverCommand": "texlab",
352
+ "serverArgs": [],
353
+ "rootPatterns": ["*.tex"]
354
+ },
355
+ {
356
+ "id": "markdown",
357
+ "name": "Markdown",
358
+ "extensions": [".md", ".markdown"],
359
+ "serverCommand": "marksman",
360
+ "serverArgs": [],
361
+ "rootPatterns": []
362
+ },
363
+ {
364
+ "id": "toml",
365
+ "name": "TOML",
366
+ "extensions": [".toml"],
367
+ "serverCommand": "taplo",
368
+ "serverArgs": ["lsp", "stdio"],
369
+ "rootPatterns": []
370
+ },
371
+ {
372
+ "id": "protobuf",
373
+ "name": "Protocol Buffers",
374
+ "extensions": [".proto"],
375
+ "serverCommand": "bufls",
376
+ "serverArgs": ["serve"],
377
+ "rootPatterns": ["buf.yaml", "buf.gen.yaml"]
378
+ },
379
+ {
380
+ "id": "asm",
381
+ "name": "Assembly",
382
+ "extensions": [".asm", ".s", ".S"],
383
+ "serverCommand": "asm-lsp",
384
+ "serverArgs": [],
385
+ "rootPatterns": []
386
+ },
387
+ {
388
+ "id": "cmake",
389
+ "name": "CMake",
390
+ "extensions": [".cmake"],
391
+ "serverCommand": "cmake-language-server",
392
+ "serverArgs": [],
393
+ "rootPatterns": ["CMakeLists.txt"]
394
+ },
395
+ {
396
+ "id": "perl",
397
+ "name": "Perl",
398
+ "extensions": [".pl", ".pm"],
399
+ "serverCommand": "pls",
400
+ "serverArgs": [],
401
+ "rootPatterns": ["cpanfile", "Makefile.PL"]
402
+ }
403
+ ]