@treedy/lsp-mcp 0.1.9 → 0.1.10

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.
package/dist/index.js CHANGED
@@ -19891,7 +19891,7 @@ function loadConfig() {
19891
19891
  }
19892
19892
  };
19893
19893
  for (const [lang, cfg] of Object.entries(merged.languages)) {
19894
- if (!cfg.extensions && DEFAULT_EXTENSIONS[lang]) {
19894
+ if (cfg && !cfg.extensions && DEFAULT_EXTENSIONS[lang]) {
19895
19895
  cfg.extensions = DEFAULT_EXTENSIONS[lang];
19896
19896
  }
19897
19897
  }
@@ -19960,7 +19960,7 @@ function getEnvString(name, defaultValue) {
19960
19960
  function inferLanguageFromPath(filePath, config2) {
19961
19961
  const ext = filePath.substring(filePath.lastIndexOf("."));
19962
19962
  for (const [lang, langConfig] of Object.entries(config2.languages)) {
19963
- if (langConfig.enabled && langConfig.extensions.includes(ext)) {
19963
+ if (langConfig?.enabled && langConfig.extensions.includes(ext)) {
19964
19964
  return lang;
19965
19965
  }
19966
19966
  }
@@ -20944,7 +20944,7 @@ class BackendManager {
20944
20944
  }
20945
20945
  async getAllTools() {
20946
20946
  const result = new Map;
20947
- const languages = Object.keys(this.config.languages).filter((lang) => this.config.languages[lang].enabled);
20947
+ const languages = Object.keys(this.config.languages).filter((lang) => this.config.languages[lang]?.enabled);
20948
20948
  await Promise.all(languages.map(async (lang) => {
20949
20949
  try {
20950
20950
  const tools = await this.getTools(lang);
@@ -20983,7 +20983,7 @@ class BackendManager {
20983
20983
  };
20984
20984
  }
20985
20985
  for (const [lang, config2] of Object.entries(this.config.languages)) {
20986
- if (config2.enabled && !this.backends.has(lang)) {
20986
+ if (config2 && config2.enabled && !this.backends.has(lang)) {
20987
20987
  status[lang] = { status: "not_started", tools: 0, restartCount: 0 };
20988
20988
  }
20989
20989
  }
@@ -20991,7 +20991,7 @@ class BackendManager {
20991
20991
  }
20992
20992
  getVersions() {
20993
20993
  const versions2 = [];
20994
- const languages = Object.keys(this.config.languages).filter((lang) => this.config.languages[lang].enabled);
20994
+ const languages = Object.keys(this.config.languages).filter((lang) => this.config.languages[lang]?.enabled);
20995
20995
  for (const lang of languages) {
20996
20996
  const backendConfig = getBackendCommand(lang, this.config);
20997
20997
  const state = this.backends.get(lang);
@@ -21066,14 +21066,14 @@ async function status(backendManager, config2) {
21066
21066
  description: "Unified MCP server for multi-language code intelligence",
21067
21067
  config: {
21068
21068
  python: {
21069
- enabled: config2.python.enabled,
21070
- provider: config2.python.provider
21069
+ enabled: config2.languages.python?.enabled ?? false,
21070
+ provider: config2.python?.provider
21071
21071
  },
21072
21072
  typescript: {
21073
- enabled: config2.typescript.enabled
21073
+ enabled: config2.languages.typescript?.enabled ?? false
21074
21074
  },
21075
21075
  vue: {
21076
- enabled: config2.vue.enabled
21076
+ enabled: config2.languages.vue?.enabled ?? false
21077
21077
  },
21078
21078
  autoUpdate: config2.autoUpdate
21079
21079
  },
@@ -21167,8 +21167,8 @@ async function listBackends(backendManager, config2) {
21167
21167
  const backends = [
21168
21168
  {
21169
21169
  name: "python",
21170
- enabled: config2.python.enabled,
21171
- provider: config2.python.provider,
21170
+ enabled: config2.languages.python?.enabled ?? false,
21171
+ provider: config2.python?.provider,
21172
21172
  status: backendStatus.python?.status || "not_started",
21173
21173
  tools: backendStatus.python?.tools || 0,
21174
21174
  description: "Python code intelligence (hover, definition, references, refactoring)",
@@ -21176,7 +21176,7 @@ async function listBackends(backendManager, config2) {
21176
21176
  },
21177
21177
  {
21178
21178
  name: "typescript",
21179
- enabled: config2.typescript.enabled,
21179
+ enabled: config2.languages.typescript?.enabled ?? false,
21180
21180
  status: backendStatus.typescript?.status || "not_started",
21181
21181
  tools: backendStatus.typescript?.tools || 0,
21182
21182
  description: "TypeScript/JavaScript code intelligence",
@@ -21184,7 +21184,7 @@ async function listBackends(backendManager, config2) {
21184
21184
  },
21185
21185
  {
21186
21186
  name: "vue",
21187
- enabled: config2.vue.enabled,
21187
+ enabled: config2.languages.vue?.enabled ?? false,
21188
21188
  status: backendStatus.vue?.status || "not_started",
21189
21189
  tools: backendStatus.vue?.tools || 0,
21190
21190
  description: "Vue Single File Component (.vue) code intelligence via Volar",
@@ -21206,7 +21206,7 @@ var startBackendSchema = {
21206
21206
  language: exports_external.enum(["python", "typescript", "vue"]).describe("The backend to start")
21207
21207
  };
21208
21208
  async function startBackend(language, backendManager, config2, registerToolsCallback) {
21209
- if (language === "python" && !config2.python.enabled) {
21209
+ if (language === "python" && !config2.languages.python?.enabled) {
21210
21210
  return {
21211
21211
  content: [{
21212
21212
  type: "text",
@@ -21218,7 +21218,7 @@ async function startBackend(language, backendManager, config2, registerToolsCall
21218
21218
  }]
21219
21219
  };
21220
21220
  }
21221
- if (language === "typescript" && !config2.typescript.enabled) {
21221
+ if (language === "typescript" && !config2.languages.typescript?.enabled) {
21222
21222
  return {
21223
21223
  content: [{
21224
21224
  type: "text",
@@ -21230,7 +21230,7 @@ async function startBackend(language, backendManager, config2, registerToolsCall
21230
21230
  }]
21231
21231
  };
21232
21232
  }
21233
- if (language === "vue" && !config2.vue.enabled) {
21233
+ if (language === "vue" && !config2.languages.vue?.enabled) {
21234
21234
  return {
21235
21235
  content: [{
21236
21236
  type: "text",
@@ -21279,7 +21279,7 @@ var updateBackendSchema = {
21279
21279
  language: exports_external.enum(["python", "typescript", "vue"]).describe("The backend to update")
21280
21280
  };
21281
21281
  async function updateBackend(language, backendManager, config2, updateCallback) {
21282
- if (language === "python" && !config2.python.enabled) {
21282
+ if (language === "python" && !config2.languages.python?.enabled) {
21283
21283
  return {
21284
21284
  content: [{
21285
21285
  type: "text",
@@ -21291,7 +21291,7 @@ async function updateBackend(language, backendManager, config2, updateCallback)
21291
21291
  }]
21292
21292
  };
21293
21293
  }
21294
- if (language === "typescript" && !config2.typescript.enabled) {
21294
+ if (language === "typescript" && !config2.languages.typescript?.enabled) {
21295
21295
  return {
21296
21296
  content: [{
21297
21297
  type: "text",
@@ -21303,7 +21303,7 @@ async function updateBackend(language, backendManager, config2, updateCallback)
21303
21303
  }]
21304
21304
  };
21305
21305
  }
21306
- if (language === "vue" && !config2.vue.enabled) {
21306
+ if (language === "vue" && !config2.languages.vue?.enabled) {
21307
21307
  return {
21308
21308
  content: [{
21309
21309
  type: "text",
@@ -22095,8 +22095,22 @@ function preRegisterTools() {
22095
22095
  }
22096
22096
  }
22097
22097
  } catch (error2) {
22098
+ const msg = String(error2);
22099
+ let hint = "";
22100
+ if (msg.includes("ENOENT")) {
22101
+ if (language === "python")
22102
+ hint = "Make sure 'uv' (recommended) or 'python' is installed and in your PATH.";
22103
+ else
22104
+ hint = "Make sure 'node' and 'npm' are installed and in your PATH.";
22105
+ } else {
22106
+ hint = "Check server logs for details. You may need to install the backend manually.";
22107
+ }
22098
22108
  return {
22099
- content: [{ type: "text", text: JSON.stringify({ error: `Failed to start ${language} backend: ${error2}` }) }]
22109
+ content: [{ type: "text", text: JSON.stringify({
22110
+ error: `Failed to start ${language} backend`,
22111
+ details: msg,
22112
+ hint
22113
+ }, null, 2) }]
22100
22114
  };
22101
22115
  }
22102
22116
  }
@@ -22183,7 +22197,7 @@ ${summary || "(No symbols found)"}`
22183
22197
  registeredTools.add(tool.name);
22184
22198
  }
22185
22199
  for (const [language, langConfig] of Object.entries(config2.languages)) {
22186
- if (!langConfig.enabled)
22200
+ if (!langConfig?.enabled)
22187
22201
  continue;
22188
22202
  const tools = LANGUAGE_SPECIFIC_TOOLS[language];
22189
22203
  if (!tools)
@@ -22261,4 +22275,4 @@ main().catch((error2) => {
22261
22275
  process.exit(1);
22262
22276
  });
22263
22277
 
22264
- //# debugId=52D8C4766CA64C6B64756E2164756E21
22278
+ //# debugId=4446D59062B5AFD964756E2164756E21