@lspeasy/core 2.3.1 → 2.5.0
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/discover.d.ts +34 -0
- package/dist/discover.d.ts.map +1 -1
- package/dist/discover.js +47 -1
- package/dist/discover.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/language-extensions.d.ts +9 -0
- package/dist/language-extensions.d.ts.map +1 -0
- package/dist/language-extensions.js +30 -0
- package/dist/language-extensions.js.map +1 -0
- package/dist/plugin-resolver.d.ts +15 -0
- package/dist/plugin-resolver.d.ts.map +1 -0
- package/dist/plugin-resolver.js +90 -0
- package/dist/plugin-resolver.js.map +1 -0
- package/package.json +1 -1
package/dist/discover.d.ts
CHANGED
|
@@ -2,6 +2,16 @@ export interface LspServerEntry {
|
|
|
2
2
|
command: string;
|
|
3
3
|
args?: string[];
|
|
4
4
|
fileExtensions: Record<string, string>;
|
|
5
|
+
/** Provenance: qualified plugin id this entry was imported from, e.g.
|
|
6
|
+
* "rust-analyzer@claude-code-lsps". Lets export round-trip to a plugin toggle. */
|
|
7
|
+
marketplacePlugin?: string;
|
|
8
|
+
/** Preserved-but-not-consumed fields carried verbatim from richer native
|
|
9
|
+
* formats (e.g. plugin .lsp.json) so import → export round-trips losslessly.
|
|
10
|
+
* The lsproxy runtime ignores these in v1. */
|
|
11
|
+
transport?: string;
|
|
12
|
+
initializationOptions?: Record<string, unknown>;
|
|
13
|
+
settings?: Record<string, unknown>;
|
|
14
|
+
maxRestarts?: number;
|
|
5
15
|
}
|
|
6
16
|
export interface LspJson {
|
|
7
17
|
lspServers: Record<string, LspServerEntry>;
|
|
@@ -12,6 +22,14 @@ export interface ResolvedServer {
|
|
|
12
22
|
/** languageId for textDocument/didOpen (e.g. 'typescript', 'rust'). */
|
|
13
23
|
languageId: string;
|
|
14
24
|
}
|
|
25
|
+
export interface ConfiguredServer {
|
|
26
|
+
/** lsp.json server key, e.g. "typescript". */
|
|
27
|
+
name: string;
|
|
28
|
+
/** Full spawn command string (same quoting as ResolvedServer.serverCommand). */
|
|
29
|
+
command: string;
|
|
30
|
+
/** File extension (".ts") to languageId ("typescript") map for this server. */
|
|
31
|
+
fileExtensions: Record<string, string>;
|
|
32
|
+
}
|
|
15
33
|
export declare function selectServer(config: LspJson, fileExt: string): ResolvedServer | null;
|
|
16
34
|
export declare function selectServerByLanguageId(config: LspJson, languageId: string): ResolvedServer | null;
|
|
17
35
|
export declare function selectExtensionMap(config: LspJson): Record<string, string>;
|
|
@@ -44,4 +62,20 @@ export declare function discoverServer(root: string, fileExt: string): ResolvedS
|
|
|
44
62
|
*/
|
|
45
63
|
export declare function discoverServerByLanguageId(root: string, languageId: string): ResolvedServer | null;
|
|
46
64
|
export declare function discoverExtensionMap(root: string): Record<string, string>;
|
|
65
|
+
/**
|
|
66
|
+
* Enumerate every server configured in the discovered lsp.json. Unlike
|
|
67
|
+
* {@link discoverServer}, which resolves a single server, this returns the full
|
|
68
|
+
* set so callers can present available languages without connecting.
|
|
69
|
+
*/
|
|
70
|
+
export declare function discoverServers(root: string): ConfiguredServer[];
|
|
71
|
+
/** Read a single lsp.json file's `lspServers` map. Returns {} when missing or unparseable. */
|
|
72
|
+
export declare function readLspJsonFile(path: string): Record<string, LspServerEntry>;
|
|
73
|
+
/** Write an `lspServers` map to a file as pretty JSON, creating parent dirs. */
|
|
74
|
+
export declare function writeLspJsonFile(path: string, servers: Record<string, LspServerEntry>): void;
|
|
75
|
+
/** Merge incoming servers over base; report which keys were added vs updated. */
|
|
76
|
+
export declare function mergeServers(base: Record<string, LspServerEntry>, incoming: Record<string, LspServerEntry>): {
|
|
77
|
+
merged: Record<string, LspServerEntry>;
|
|
78
|
+
added: string[];
|
|
79
|
+
updated: string[];
|
|
80
|
+
};
|
|
47
81
|
//# sourceMappingURL=discover.d.ts.map
|
package/dist/discover.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC;uFACmF;IACnF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;mDAE+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,OAAO,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAuCD,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAYpF;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,MAAM,GACjB,cAAc,GAAG,IAAI,CAOvB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ1E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAInF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,cAAc,GAAG,IAAI,CAIvB;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIzE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAQhE;AAED,8FAA8F;AAC9F,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAQ5E;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI,CAG5F;AAED,iFAAiF;AACjF,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GACvC;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAUhF"}
|
package/dist/discover.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { existsSync, readFileSync } from 'node:fs';
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
2
2
|
import { homedir } from 'node:os';
|
|
3
3
|
import { dirname, join } from 'node:path';
|
|
4
4
|
const SEARCH_PATHS = ['lsp.json', '.claude/lsp.json', '.github/lsp.json'];
|
|
@@ -117,4 +117,50 @@ export function discoverExtensionMap(root) {
|
|
|
117
117
|
return {};
|
|
118
118
|
return selectExtensionMap(config);
|
|
119
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Enumerate every server configured in the discovered lsp.json. Unlike
|
|
122
|
+
* {@link discoverServer}, which resolves a single server, this returns the full
|
|
123
|
+
* set so callers can present available languages without connecting.
|
|
124
|
+
*/
|
|
125
|
+
export function discoverServers(root) {
|
|
126
|
+
const config = loadConfig(root);
|
|
127
|
+
if (!config)
|
|
128
|
+
return [];
|
|
129
|
+
return Object.entries(config.lspServers).map(([name, entry]) => ({
|
|
130
|
+
name,
|
|
131
|
+
command: buildServerCommand(entry),
|
|
132
|
+
fileExtensions: { ...entry.fileExtensions }
|
|
133
|
+
}));
|
|
134
|
+
}
|
|
135
|
+
/** Read a single lsp.json file's `lspServers` map. Returns {} when missing or unparseable. */
|
|
136
|
+
export function readLspJsonFile(path) {
|
|
137
|
+
if (!existsSync(path))
|
|
138
|
+
return {};
|
|
139
|
+
try {
|
|
140
|
+
const parsed = JSON.parse(readFileSync(path, 'utf8'));
|
|
141
|
+
return parsed.lspServers ?? {};
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
return {};
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/** Write an `lspServers` map to a file as pretty JSON, creating parent dirs. */
|
|
148
|
+
export function writeLspJsonFile(path, servers) {
|
|
149
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
150
|
+
writeFileSync(path, JSON.stringify({ lspServers: servers }, null, 2) + '\n', 'utf8');
|
|
151
|
+
}
|
|
152
|
+
/** Merge incoming servers over base; report which keys were added vs updated. */
|
|
153
|
+
export function mergeServers(base, incoming) {
|
|
154
|
+
const merged = { ...base };
|
|
155
|
+
const added = [];
|
|
156
|
+
const updated = [];
|
|
157
|
+
for (const [name, entry] of Object.entries(incoming)) {
|
|
158
|
+
if (name in base)
|
|
159
|
+
updated.push(name);
|
|
160
|
+
else
|
|
161
|
+
added.push(name);
|
|
162
|
+
merged[name] = entry;
|
|
163
|
+
}
|
|
164
|
+
return { merged, added, updated };
|
|
165
|
+
}
|
|
120
166
|
//# sourceMappingURL=discover.js.map
|
package/dist/discover.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -92,7 +92,9 @@ export { isMessage, isWorkerTransportEnvelope } from './transport/worker-types.j
|
|
|
92
92
|
export * from './protocol/capabilities.js';
|
|
93
93
|
export { buildMethodSets, SERVER_METHODS, CLIENT_METHODS, checkMethod } from './utils/capability-guard.js';
|
|
94
94
|
export type { CheckMethodOptions } from './utils/capability-guard.js';
|
|
95
|
-
export type { LspServerEntry, LspJson, ResolvedServer } from './discover.js';
|
|
96
|
-
export { selectServer, selectServerByLanguageId, selectExtensionMap, discoverServer, discoverServerByLanguageId, discoverExtensionMap } from './discover.js';
|
|
95
|
+
export type { LspServerEntry, LspJson, ResolvedServer, ConfiguredServer } from './discover.js';
|
|
96
|
+
export { selectServer, selectServerByLanguageId, selectExtensionMap, discoverServer, discoverServerByLanguageId, discoverExtensionMap, discoverServers, readLspJsonFile, writeLspJsonFile, mergeServers } from './discover.js';
|
|
97
|
+
export { DEFAULT_EXTENSIONS, extensionsForLanguage } from './language-extensions.js';
|
|
97
98
|
export { tokenizeCommand } from './utils/tokenize-command.js';
|
|
99
|
+
export { defaultPluginsRoot, listInstalledPluginServers, resolvePlugin, findPluginFor } from './plugin-resolver.js';
|
|
98
100
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -76,7 +76,11 @@ export { isMessage, isWorkerTransportEnvelope } from './transport/worker-types.j
|
|
|
76
76
|
export * from './protocol/capabilities.js';
|
|
77
77
|
// Capability guard utilities (shared by client and server)
|
|
78
78
|
export { buildMethodSets, SERVER_METHODS, CLIENT_METHODS, checkMethod } from './utils/capability-guard.js';
|
|
79
|
-
export { selectServer, selectServerByLanguageId, selectExtensionMap, discoverServer, discoverServerByLanguageId, discoverExtensionMap } from './discover.js';
|
|
79
|
+
export { selectServer, selectServerByLanguageId, selectExtensionMap, discoverServer, discoverServerByLanguageId, discoverExtensionMap, discoverServers, readLspJsonFile, writeLspJsonFile, mergeServers } from './discover.js';
|
|
80
|
+
// Language extensions — languageId to default extensions table
|
|
81
|
+
export { DEFAULT_EXTENSIONS, extensionsForLanguage } from './language-extensions.js';
|
|
80
82
|
// Command tokenizer
|
|
81
83
|
export { tokenizeCommand } from './utils/tokenize-command.js';
|
|
84
|
+
// Local plugin resolver — reads installed .lsp.json files under ~/.claude/plugins/marketplaces
|
|
85
|
+
export { defaultPluginsRoot, listInstalledPluginServers, resolvePlugin, findPluginFor } from './plugin-resolver.js';
|
|
82
86
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default file extensions per LSP languageId. Used as a fallback when a config
|
|
3
|
+
* source names a language but omits its extensions. Not exhaustive — covers the
|
|
4
|
+
* common languages; extend as needed.
|
|
5
|
+
*/
|
|
6
|
+
export declare const DEFAULT_EXTENSIONS: Record<string, string[]>;
|
|
7
|
+
/** Extensions for a languageId, or [] when unknown. */
|
|
8
|
+
export declare function extensionsForLanguage(languageId: string): string[];
|
|
9
|
+
//# sourceMappingURL=language-extensions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-extensions.d.ts","sourceRoot":"","sources":["../src/language-extensions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAmBvD,CAAC;AAEF,uDAAuD;AACvD,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAElE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default file extensions per LSP languageId. Used as a fallback when a config
|
|
3
|
+
* source names a language but omits its extensions. Not exhaustive — covers the
|
|
4
|
+
* common languages; extend as needed.
|
|
5
|
+
*/
|
|
6
|
+
export const DEFAULT_EXTENSIONS = {
|
|
7
|
+
typescript: ['.ts', '.mts', '.cts'],
|
|
8
|
+
typescriptreact: ['.tsx'],
|
|
9
|
+
javascript: ['.js', '.mjs', '.cjs'],
|
|
10
|
+
javascriptreact: ['.jsx'],
|
|
11
|
+
rust: ['.rs'],
|
|
12
|
+
python: ['.py', '.pyi', '.pyw'],
|
|
13
|
+
go: ['.go'],
|
|
14
|
+
c: ['.c', '.h'],
|
|
15
|
+
cpp: ['.cpp', '.cc', '.cxx', '.hpp', '.hh'],
|
|
16
|
+
json: ['.json'],
|
|
17
|
+
jsonc: ['.jsonc'],
|
|
18
|
+
css: ['.css'],
|
|
19
|
+
scss: ['.scss'],
|
|
20
|
+
less: ['.less'],
|
|
21
|
+
html: ['.html', '.htm'],
|
|
22
|
+
ruby: ['.rb'],
|
|
23
|
+
java: ['.java'],
|
|
24
|
+
csharp: ['.cs']
|
|
25
|
+
};
|
|
26
|
+
/** Extensions for a languageId, or [] when unknown. */
|
|
27
|
+
export function extensionsForLanguage(languageId) {
|
|
28
|
+
return DEFAULT_EXTENSIONS[languageId] ?? [];
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=language-extensions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-extensions.js","sourceRoot":"","sources":["../src/language-extensions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA6B;IAC1D,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IACnC,eAAe,EAAE,CAAC,MAAM,CAAC;IACzB,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IACnC,eAAe,EAAE,CAAC,MAAM,CAAC;IACzB,IAAI,EAAE,CAAC,KAAK,CAAC;IACb,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAC/B,EAAE,EAAE,CAAC,KAAK,CAAC;IACX,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;IACf,GAAG,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;IAC3C,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,KAAK,EAAE,CAAC,QAAQ,CAAC;IACjB,GAAG,EAAE,CAAC,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,CAAC,KAAK,CAAC;IACb,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,MAAM,EAAE,CAAC,KAAK,CAAC;CAChB,CAAC;AAEF,uDAAuD;AACvD,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,OAAO,kBAAkB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { LspServerEntry } from './discover.js';
|
|
2
|
+
/** Default install root for plugin marketplaces. */
|
|
3
|
+
export declare function defaultPluginsRoot(): string;
|
|
4
|
+
/**
|
|
5
|
+
* Map every installed plugin's servers, keyed by `<plugin>@<marketplace>`.
|
|
6
|
+
* `<marketplace>` is the first path segment under the root; `<plugin>` is the
|
|
7
|
+
* directory directly containing the `.lsp.json` (handles flat and nested layouts).
|
|
8
|
+
* Each plugin's value is a record of server name (the outer key in `.lsp.json`) → entry.
|
|
9
|
+
*/
|
|
10
|
+
export declare function listInstalledPluginServers(pluginsRoot?: string): Record<string, Record<string, LspServerEntry>>;
|
|
11
|
+
/** Canonical servers for one `<plugin>@<marketplace>` id, keyed by server name, or {} when not installed. */
|
|
12
|
+
export declare function resolvePlugin(pluginId: string, pluginsRoot?: string): Record<string, LspServerEntry>;
|
|
13
|
+
/** Find the plugin id a canonical entry maps to: prefer stamped provenance, else match by command. */
|
|
14
|
+
export declare function findPluginFor(entry: LspServerEntry, pluginsRoot?: string): string | undefined;
|
|
15
|
+
//# sourceMappingURL=plugin-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-resolver.d.ts","sourceRoot":"","sources":["../src/plugin-resolver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,oDAAoD;AACpD,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AA6CD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,GAAE,MAA6B,GACzC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAmBhD;AAED,6GAA6G;AAC7G,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,MAA6B,GACzC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAEhC;AAED,sGAAsG;AACtG,wBAAgB,aAAa,CAC3B,KAAK,EAAE,cAAc,EACrB,WAAW,GAAE,MAA6B,GACzC,MAAM,GAAG,SAAS,CAOpB"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { existsSync, readFileSync, readdirSync } from 'node:fs';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
3
|
+
import { basename, dirname, join, relative, sep } from 'node:path';
|
|
4
|
+
/** Default install root for plugin marketplaces. */
|
|
5
|
+
export function defaultPluginsRoot() {
|
|
6
|
+
return join(homedir(), '.claude', 'plugins', 'marketplaces');
|
|
7
|
+
}
|
|
8
|
+
/** Recursively collect every `.lsp.json` file path under a directory. */
|
|
9
|
+
function findLspJsonFiles(dir) {
|
|
10
|
+
const out = [];
|
|
11
|
+
let entries;
|
|
12
|
+
try {
|
|
13
|
+
entries = readdirSync(dir, { withFileTypes: true });
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return out;
|
|
17
|
+
}
|
|
18
|
+
for (const e of entries) {
|
|
19
|
+
const full = join(dir, e.name);
|
|
20
|
+
if (e.isDirectory())
|
|
21
|
+
out.push(...findLspJsonFiles(full));
|
|
22
|
+
else if (e.name === '.lsp.json')
|
|
23
|
+
out.push(full);
|
|
24
|
+
}
|
|
25
|
+
return out;
|
|
26
|
+
}
|
|
27
|
+
function toCanonical(raw, pluginId) {
|
|
28
|
+
const entry = {
|
|
29
|
+
command: raw.command,
|
|
30
|
+
fileExtensions: raw.extensionToLanguage ?? {},
|
|
31
|
+
marketplacePlugin: pluginId
|
|
32
|
+
};
|
|
33
|
+
if (raw.args)
|
|
34
|
+
entry.args = raw.args;
|
|
35
|
+
if (raw.transport !== undefined)
|
|
36
|
+
entry.transport = raw.transport;
|
|
37
|
+
if (raw.initializationOptions !== undefined)
|
|
38
|
+
entry.initializationOptions = raw.initializationOptions;
|
|
39
|
+
if (raw.settings !== undefined)
|
|
40
|
+
entry.settings = raw.settings;
|
|
41
|
+
if (raw.maxRestarts !== undefined)
|
|
42
|
+
entry.maxRestarts = raw.maxRestarts;
|
|
43
|
+
return entry;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Map every installed plugin's servers, keyed by `<plugin>@<marketplace>`.
|
|
47
|
+
* `<marketplace>` is the first path segment under the root; `<plugin>` is the
|
|
48
|
+
* directory directly containing the `.lsp.json` (handles flat and nested layouts).
|
|
49
|
+
* Each plugin's value is a record of server name (the outer key in `.lsp.json`) → entry.
|
|
50
|
+
*/
|
|
51
|
+
export function listInstalledPluginServers(pluginsRoot = defaultPluginsRoot()) {
|
|
52
|
+
const result = {};
|
|
53
|
+
if (!existsSync(pluginsRoot))
|
|
54
|
+
return result;
|
|
55
|
+
for (const file of findLspJsonFiles(pluginsRoot)) {
|
|
56
|
+
const marketplace = relative(pluginsRoot, file).split(sep)[0];
|
|
57
|
+
if (!marketplace)
|
|
58
|
+
continue;
|
|
59
|
+
const plugin = basename(dirname(file));
|
|
60
|
+
const pluginId = `${plugin}@${marketplace}`;
|
|
61
|
+
let raw;
|
|
62
|
+
try {
|
|
63
|
+
raw = JSON.parse(readFileSync(file, 'utf8'));
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
const servers = {};
|
|
69
|
+
for (const [name, raw0] of Object.entries(raw))
|
|
70
|
+
servers[name] = toCanonical(raw0, pluginId);
|
|
71
|
+
result[pluginId] = servers;
|
|
72
|
+
}
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
/** Canonical servers for one `<plugin>@<marketplace>` id, keyed by server name, or {} when not installed. */
|
|
76
|
+
export function resolvePlugin(pluginId, pluginsRoot = defaultPluginsRoot()) {
|
|
77
|
+
return listInstalledPluginServers(pluginsRoot)[pluginId] ?? {};
|
|
78
|
+
}
|
|
79
|
+
/** Find the plugin id a canonical entry maps to: prefer stamped provenance, else match by command. */
|
|
80
|
+
export function findPluginFor(entry, pluginsRoot = defaultPluginsRoot()) {
|
|
81
|
+
if (entry.marketplacePlugin)
|
|
82
|
+
return entry.marketplacePlugin;
|
|
83
|
+
const all = listInstalledPluginServers(pluginsRoot);
|
|
84
|
+
for (const [pluginId, servers] of Object.entries(all)) {
|
|
85
|
+
if (Object.values(servers).some((s) => s.command === entry.command))
|
|
86
|
+
return pluginId;
|
|
87
|
+
}
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=plugin-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-resolver.js","sourceRoot":"","sources":["../src/plugin-resolver.ts"],"names":[],"mappings":"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"}
|