@lsproxy/cli 0.4.6 → 0.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/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +88 -25
- package/dist/cli.js.map +1 -1
- package/dist/connect.d.ts +10 -0
- package/dist/connect.d.ts.map +1 -1
- package/dist/connect.js +50 -0
- package/dist/connect.js.map +1 -1
- package/dist/format.d.ts +21 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +30 -0
- package/dist/format.js.map +1 -0
- package/dist/help.d.ts +20 -0
- package/dist/help.d.ts.map +1 -0
- package/dist/help.js +105 -0
- package/dist/help.js.map +1 -0
- package/package.json +4 -4
package/dist/cli.d.ts
CHANGED
|
@@ -27,4 +27,11 @@ export type ParsedOptionValues = {
|
|
|
27
27
|
* silently skipping the index wait refactor requests depend on.
|
|
28
28
|
*/
|
|
29
29
|
export declare function buildFlags(values: ParsedOptionValues): GlobalFlags;
|
|
30
|
+
/**
|
|
31
|
+
* Help-mode dispatch. Positionals after `--help` mean [language, namespace,
|
|
32
|
+
* request]. Depth 0 -> top-level language listing (config + live status);
|
|
33
|
+
* depth >= 1 -> connect to that language's server with indexWaitMs 0 and render
|
|
34
|
+
* the capability-filtered command tree at the requested level.
|
|
35
|
+
*/
|
|
36
|
+
export declare function runHelp(positionals: string[], flags: GlobalFlags): Promise<void>;
|
|
30
37
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AASH,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AASH,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAqBjE,kDAAkD;AAClD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,kBAAkB,GAAG,WAAW,CAiBlE;AA0JD;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFtF"}
|
package/dist/cli.js
CHANGED
|
@@ -14,31 +14,13 @@ import { realpathSync } from 'node:fs';
|
|
|
14
14
|
import { fileURLToPath } from 'node:url';
|
|
15
15
|
import { Command } from 'commander';
|
|
16
16
|
import { fail, resolvePathArg } from './io.js';
|
|
17
|
-
import { discoverServer } from '@lspeasy/core';
|
|
17
|
+
import { discoverServer, discoverServers, discoverServerByLanguageId } from '@lspeasy/core';
|
|
18
|
+
import { coldStatusReport } from '@lsproxy/proxy';
|
|
18
19
|
import { RefactorSession } from './session.js';
|
|
19
|
-
import { connectViaProxy } from './connect.js';
|
|
20
|
+
import { connectViaProxy, fetchDaemonStatus } from './connect.js';
|
|
20
21
|
import { buildCommandTree } from './build-commands.js';
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
Usage:
|
|
24
|
-
lsproxy <namespace> <command> [args]
|
|
25
|
-
lsproxy call <method> --params <json>
|
|
26
|
-
|
|
27
|
-
Available commands depend on the connected server's advertised capabilities.
|
|
28
|
-
Run with a file argument to see available commands for that language:
|
|
29
|
-
lsproxy textDocument hover --help src/foo.ts
|
|
30
|
-
|
|
31
|
-
Global flags:
|
|
32
|
-
--server <cmd> LSP server launch command (overrides lsp.json discovery)
|
|
33
|
-
--root <dir> Project root (default: cwd)
|
|
34
|
-
--dry-run Print changes; do not write
|
|
35
|
-
--json Machine-readable JSON on stdout; diagnostics to stderr
|
|
36
|
-
--wait <ms> Server index wait in ms (default: 15000)
|
|
37
|
-
--verbose Progress logging to stderr
|
|
38
|
-
--allow-outside-root Allow file paths outside --root
|
|
39
|
-
--no-proxy Bypass proxy daemon; connect directly to language server
|
|
40
|
-
-h, --help Show this help
|
|
41
|
-
`;
|
|
22
|
+
import { createFormatter } from './format.js';
|
|
23
|
+
import { renderTopLevel, renderDrillDownText, drillDownJson } from './help.js';
|
|
42
24
|
const GLOBAL_OPTION_CONFIG = {
|
|
43
25
|
server: { type: 'string' },
|
|
44
26
|
root: { type: 'string' },
|
|
@@ -82,8 +64,9 @@ async function main() {
|
|
|
82
64
|
allowPositionals: true,
|
|
83
65
|
strict: false
|
|
84
66
|
});
|
|
85
|
-
|
|
86
|
-
|
|
67
|
+
const helpMode = values.help === true;
|
|
68
|
+
if (helpMode || positionals.length === 0) {
|
|
69
|
+
await runHelp(positionals, buildFlags(values));
|
|
87
70
|
exit(0);
|
|
88
71
|
}
|
|
89
72
|
const flags = buildFlags(values);
|
|
@@ -214,6 +197,86 @@ async function main() {
|
|
|
214
197
|
await session.stop();
|
|
215
198
|
}
|
|
216
199
|
}
|
|
200
|
+
/**
|
|
201
|
+
* Help-mode dispatch. Positionals after `--help` mean [language, namespace,
|
|
202
|
+
* request]. Depth 0 -> top-level language listing (config + live status);
|
|
203
|
+
* depth >= 1 -> connect to that language's server with indexWaitMs 0 and render
|
|
204
|
+
* the capability-filtered command tree at the requested level.
|
|
205
|
+
*/
|
|
206
|
+
export async function runHelp(positionals, flags) {
|
|
207
|
+
const [language, ...drillPath] = positionals;
|
|
208
|
+
if (!language) {
|
|
209
|
+
const live = await fetchDaemonStatus(flags.root);
|
|
210
|
+
const report = live ?? coldStatusReport(discoverServers(flags.root));
|
|
211
|
+
if (flags.json) {
|
|
212
|
+
process.stdout.write(JSON.stringify(report) + '\n');
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
const color = process.stdout.isTTY === true && !process.env['NO_COLOR'];
|
|
216
|
+
process.stdout.write(renderTopLevel(report, createFormatter(color)));
|
|
217
|
+
}
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
const discovered = flags.server
|
|
221
|
+
? { serverCommand: flags.server, languageId: language }
|
|
222
|
+
: discoverServerByLanguageId(flags.root, language);
|
|
223
|
+
if (!discovered) {
|
|
224
|
+
const names = discoverServers(flags.root).flatMap((s) => Object.values(s.fileExtensions));
|
|
225
|
+
fail(`No server configured for language "${language}". Configured: ${[...new Set(names)].join(', ')}`, flags.json);
|
|
226
|
+
}
|
|
227
|
+
// Connecting (spawn + initialize) can fail when the server command is missing
|
|
228
|
+
// or crashes. In --json mode that failure must still produce a parseable
|
|
229
|
+
// { ok: false, error } on stdout, not a fatal text error from main().catch.
|
|
230
|
+
let session;
|
|
231
|
+
try {
|
|
232
|
+
session =
|
|
233
|
+
flags.noProxy || flags.server
|
|
234
|
+
? new RefactorSession({
|
|
235
|
+
serverCommand: discovered.serverCommand,
|
|
236
|
+
languageId: discovered.languageId,
|
|
237
|
+
root: flags.root,
|
|
238
|
+
indexWaitMs: 0,
|
|
239
|
+
verbose: flags.verbose
|
|
240
|
+
})
|
|
241
|
+
: await connectViaProxy({
|
|
242
|
+
root: flags.root,
|
|
243
|
+
languageId: discovered.languageId,
|
|
244
|
+
indexWaitMs: 0,
|
|
245
|
+
verbose: flags.verbose
|
|
246
|
+
});
|
|
247
|
+
if (flags.noProxy || flags.server)
|
|
248
|
+
await session.start();
|
|
249
|
+
}
|
|
250
|
+
catch (err) {
|
|
251
|
+
// fail() emits { ok: false, error } on stdout for --json (and "error: …" on
|
|
252
|
+
// stderr otherwise), then exits 1 — the same machine-readable error contract
|
|
253
|
+
// as the unconfigured-language path and the `call` command.
|
|
254
|
+
fail(`Failed to start "${language}" language server: ${err instanceof Error ? err.message : String(err)}`, flags.json);
|
|
255
|
+
}
|
|
256
|
+
try {
|
|
257
|
+
const program = new Command('lsproxy');
|
|
258
|
+
buildCommandTree(program, session.capabilities, session, flags);
|
|
259
|
+
if (flags.json) {
|
|
260
|
+
const jsonResult = drillDownJson(program, language, drillPath);
|
|
261
|
+
process.stdout.write(JSON.stringify(jsonResult) + '\n');
|
|
262
|
+
if (jsonResult.ok === false) {
|
|
263
|
+
await session.stop();
|
|
264
|
+
exit(1);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
const { ok, text } = renderDrillDownText(program, drillPath);
|
|
269
|
+
process.stdout.write(text.endsWith('\n') ? text : text + '\n');
|
|
270
|
+
if (!ok) {
|
|
271
|
+
await session.stop();
|
|
272
|
+
exit(1);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
finally {
|
|
277
|
+
await session.stop();
|
|
278
|
+
}
|
|
279
|
+
}
|
|
217
280
|
/**
|
|
218
281
|
* True when this module is the process entry point (vs. imported by a test).
|
|
219
282
|
*
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAoB,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/connect.d.ts
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
|
+
import type { StatusReport } from '@lsproxy/proxy';
|
|
1
2
|
import { RefactorSession } from './session.js';
|
|
3
|
+
/**
|
|
4
|
+
* Ask a running proxy daemon for its status. Returns null when no daemon is
|
|
5
|
+
* listening on the project's socket — callers fall back to a config-only view.
|
|
6
|
+
*
|
|
7
|
+
* NEVER rejects. Resolves to `null` for any failure: no socket, connect error,
|
|
8
|
+
* transport hang (waitForConnect included), request timeout, or any thrown
|
|
9
|
+
* exception. `transport.close()` is always called in a finally block.
|
|
10
|
+
*/
|
|
11
|
+
export declare function fetchDaemonStatus(root: string): Promise<StatusReport | null>;
|
|
2
12
|
export interface ConnectOptions {
|
|
3
13
|
root: string;
|
|
4
14
|
languageId: string;
|
package/dist/connect.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAuB,MAAM,cAAc,CAAC;AAqDpE;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAyClF;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CA0BpF"}
|
package/dist/connect.js
CHANGED
|
@@ -54,6 +54,56 @@ function spawnDaemon(root, sockPath) {
|
|
|
54
54
|
child.unref();
|
|
55
55
|
return logPath;
|
|
56
56
|
}
|
|
57
|
+
const STATUS_TIMEOUT_MS = 2000;
|
|
58
|
+
/**
|
|
59
|
+
* Ask a running proxy daemon for its status. Returns null when no daemon is
|
|
60
|
+
* listening on the project's socket — callers fall back to a config-only view.
|
|
61
|
+
*
|
|
62
|
+
* NEVER rejects. Resolves to `null` for any failure: no socket, connect error,
|
|
63
|
+
* transport hang (waitForConnect included), request timeout, or any thrown
|
|
64
|
+
* exception. `transport.close()` is always called in a finally block.
|
|
65
|
+
*/
|
|
66
|
+
export async function fetchDaemonStatus(root) {
|
|
67
|
+
const sockPath = socketPath(root);
|
|
68
|
+
if (!existsSync(sockPath) || !(await tryConnect(sockPath)))
|
|
69
|
+
return null;
|
|
70
|
+
const transport = new SocketTransport({ path: sockPath });
|
|
71
|
+
try {
|
|
72
|
+
// A deadline that resolves (not rejects) to null bounds the whole operation
|
|
73
|
+
// including waitForConnect(), so a wedged daemon cannot hang bare `lsproxy`.
|
|
74
|
+
const deadline = new Promise((resolve) => setTimeout(() => resolve(null), STATUS_TIMEOUT_MS));
|
|
75
|
+
const request = new Promise((resolve) => {
|
|
76
|
+
void (async () => {
|
|
77
|
+
try {
|
|
78
|
+
await transport.waitForConnect();
|
|
79
|
+
const sub = transport.onMessage((m) => {
|
|
80
|
+
const msg = m;
|
|
81
|
+
if (msg.id === 1) {
|
|
82
|
+
sub.dispose();
|
|
83
|
+
resolve(msg.result);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
void transport.send({
|
|
87
|
+
jsonrpc: '2.0',
|
|
88
|
+
id: 1,
|
|
89
|
+
method: '$/lsproxy.status',
|
|
90
|
+
params: {}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
resolve(null);
|
|
95
|
+
}
|
|
96
|
+
})();
|
|
97
|
+
});
|
|
98
|
+
return await Promise.race([request, deadline]);
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
finally {
|
|
104
|
+
await transport.close();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
57
107
|
export async function connectViaProxy(opts) {
|
|
58
108
|
const sockPath = socketPath(opts.root);
|
|
59
109
|
const alreadyUp = existsSync(sockPath) && (await tryConnect(sockPath));
|
package/dist/connect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"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"}
|
package/dist/format.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface Formatter {
|
|
2
|
+
green(s: string): string;
|
|
3
|
+
red(s: string): string;
|
|
4
|
+
yellow(s: string): string;
|
|
5
|
+
dim(s: string): string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Build a color formatter. When `enabled` is false every method returns its
|
|
9
|
+
* argument unchanged, guaranteeing zero ANSI bytes (used for pipes, CI, and
|
|
10
|
+
* `--json`). Callers gate `enabled` on
|
|
11
|
+
* `process.stdout.isTTY && !process.env.NO_COLOR && !flags.json`.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createFormatter(enabled: boolean): Formatter;
|
|
14
|
+
export declare const SYMBOLS: {
|
|
15
|
+
readonly running: '\u25CF';
|
|
16
|
+
readonly cold: '\u25CB';
|
|
17
|
+
readonly healthy: '\u2713';
|
|
18
|
+
readonly unhealthy: '\u2717';
|
|
19
|
+
readonly degraded: '\u26A0';
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAMD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAW3D;AAED,eAAO,MAAM,OAAO;aAClB,OAAO,EAAE,QAAG;aACZ,IAAI,EAAE,QAAG;aACT,OAAO,EAAE,QAAG;aACZ,SAAS,EAAE,QAAG;aACd,QAAQ,EAAE,QAAG;CACL,CAAC"}
|
package/dist/format.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const CODES = { green: 32, red: 31, yellow: 33, dim: 2 };
|
|
2
|
+
function wrap(code, s) {
|
|
3
|
+
return `\x1b[${code}m${s}\x1b[0m`;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Build a color formatter. When `enabled` is false every method returns its
|
|
7
|
+
* argument unchanged, guaranteeing zero ANSI bytes (used for pipes, CI, and
|
|
8
|
+
* `--json`). Callers gate `enabled` on
|
|
9
|
+
* `process.stdout.isTTY && !process.env.NO_COLOR && !flags.json`.
|
|
10
|
+
*/
|
|
11
|
+
export function createFormatter(enabled) {
|
|
12
|
+
if (!enabled) {
|
|
13
|
+
const identity = (s) => s;
|
|
14
|
+
return { green: identity, red: identity, yellow: identity, dim: identity };
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
green: (s) => wrap(CODES.green, s),
|
|
18
|
+
red: (s) => wrap(CODES.red, s),
|
|
19
|
+
yellow: (s) => wrap(CODES.yellow, s),
|
|
20
|
+
dim: (s) => wrap(CODES.dim, s)
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export const SYMBOLS = {
|
|
24
|
+
running: '●',
|
|
25
|
+
cold: '○',
|
|
26
|
+
healthy: '✓',
|
|
27
|
+
unhealthy: '✗',
|
|
28
|
+
degraded: '⚠'
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAW,CAAC;AASlE,SAAS,IAAI,CAAC,IAAY,EAAE,CAAS;IACnC,OAAO,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC;QAC1C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;IAC7E,CAAC;IACD,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAClC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9B,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACpC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,OAAO,EAAE,GAAG;IACZ,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,GAAG;IACd,QAAQ,EAAE,GAAG;CACL,CAAC"}
|
package/dist/help.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { StatusReport } from '@lsproxy/proxy';
|
|
2
|
+
import type { Command } from 'commander';
|
|
3
|
+
import { type Formatter } from './format.js';
|
|
4
|
+
/** Render the top-level `lsproxy` view: configured languages + live status. */
|
|
5
|
+
export declare function renderTopLevel(report: StatusReport, fmt: Formatter): string;
|
|
6
|
+
export type NavResult = {
|
|
7
|
+
command: Command;
|
|
8
|
+
} | {
|
|
9
|
+
error: string;
|
|
10
|
+
available: string[];
|
|
11
|
+
};
|
|
12
|
+
/** Walk `program` → namespace → request along `path`; report siblings on a miss. */
|
|
13
|
+
export declare function navigateTree(program: Command, path: string[]): NavResult;
|
|
14
|
+
export declare function renderDrillDownText(program: Command, path: string[]): {
|
|
15
|
+
ok: boolean;
|
|
16
|
+
text: string;
|
|
17
|
+
};
|
|
18
|
+
/** Structured drill-down for `--json`: namespaces, requests, or request options. */
|
|
19
|
+
export declare function drillDownJson(program: Command, languageId: string, path: string[]): unknown;
|
|
20
|
+
//# sourceMappingURL=help.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAgBtD,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM,CAmB3E;AAED,MAAM,MAAM,SAAS,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEtF,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAexE;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EAAE,GACb;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAM/B;AAmCD,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAgC3F"}
|
package/dist/help.js
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { SYMBOLS } from './format.js';
|
|
2
|
+
function languageLine(lang, fmt) {
|
|
3
|
+
const exts = lang.extensions.join(' ');
|
|
4
|
+
if (lang.status !== 'running') {
|
|
5
|
+
return ` ${fmt.dim(SYMBOLS.cold)} ${lang.languageId} ${fmt.dim(exts)} ${fmt.dim('(cold)')}`;
|
|
6
|
+
}
|
|
7
|
+
const mark = lang.healthy ? fmt.green(SYMBOLS.running) : fmt.yellow(SYMBOLS.degraded);
|
|
8
|
+
const health = lang.healthy ? fmt.green(SYMBOLS.healthy) : fmt.red(SYMBOLS.unhealthy);
|
|
9
|
+
const stats = fmt.dim(`pid ${lang.pid} · up ${Math.round((lang.uptimeMs ?? 0) / 1000)}s · ` +
|
|
10
|
+
`${lang.openDocuments ?? 0} docs · ${lang.requestsServed ?? 0} reqs`);
|
|
11
|
+
return ` ${mark} ${lang.languageId} ${fmt.dim(exts)} ${health} ${stats}`;
|
|
12
|
+
}
|
|
13
|
+
/** Render the top-level `lsproxy` view: configured languages + live status. */
|
|
14
|
+
export function renderTopLevel(report, fmt) {
|
|
15
|
+
const header = report.daemon === null
|
|
16
|
+
? fmt.dim('daemon: down — showing configured languages only')
|
|
17
|
+
: fmt.dim(`daemon: up · pid ${report.daemon.pid} · ` +
|
|
18
|
+
`${report.daemon.backends} backend(s) · ${report.daemon.sessions} session(s)`);
|
|
19
|
+
const lines = report.languages.map((l) => languageLine(l, fmt));
|
|
20
|
+
const footer = [
|
|
21
|
+
'',
|
|
22
|
+
'Drill down:',
|
|
23
|
+
' lsproxy --help <language> namespaces for that server',
|
|
24
|
+
' lsproxy --help <language> <namespace> requests in that namespace',
|
|
25
|
+
' lsproxy --help <language> <namespace> <request> parameter schema'
|
|
26
|
+
].join('\n');
|
|
27
|
+
return ['lsproxy — LSP-driven CLI', '', header, '', 'Languages:', ...lines, footer, ''].join('\n');
|
|
28
|
+
}
|
|
29
|
+
/** Walk `program` → namespace → request along `path`; report siblings on a miss. */
|
|
30
|
+
export function navigateTree(program, path) {
|
|
31
|
+
let node = program;
|
|
32
|
+
for (let i = 0; i < path.length; i++) {
|
|
33
|
+
const name = path[i];
|
|
34
|
+
const next = node.commands.find((c) => c.name() === name);
|
|
35
|
+
if (!next) {
|
|
36
|
+
const level = i === 0 ? 'namespace' : 'request';
|
|
37
|
+
return {
|
|
38
|
+
error: `Unknown ${level} "${name}".`,
|
|
39
|
+
available: node.commands.map((c) => c.name()).sort()
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
node = next;
|
|
43
|
+
}
|
|
44
|
+
return { command: node };
|
|
45
|
+
}
|
|
46
|
+
export function renderDrillDownText(program, path) {
|
|
47
|
+
const result = navigateTree(program, path);
|
|
48
|
+
if ('error' in result) {
|
|
49
|
+
return { ok: false, text: `${result.error}\nAvailable: ${result.available.join(', ')}\n` };
|
|
50
|
+
}
|
|
51
|
+
return { ok: true, text: result.command.helpInformation() };
|
|
52
|
+
}
|
|
53
|
+
function optionInfos(command) {
|
|
54
|
+
return command.options.map((o) => ({
|
|
55
|
+
flags: o.flags,
|
|
56
|
+
description: o.description,
|
|
57
|
+
required: o.required === true
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
// Many requests take their inputs as positional arguments (e.g. `<file>`,
|
|
61
|
+
// `<line:col>`) rather than options — see zodToCommander. The text help shows
|
|
62
|
+
// them; the JSON drill-down must too, or agents can't construct the request.
|
|
63
|
+
function argumentInfos(command) {
|
|
64
|
+
return command.registeredArguments.map((a) => ({
|
|
65
|
+
name: a.name(),
|
|
66
|
+
description: a.description,
|
|
67
|
+
required: a.required === true,
|
|
68
|
+
variadic: a.variadic === true
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
/** Structured drill-down for `--json`: namespaces, requests, or request options. */
|
|
72
|
+
export function drillDownJson(program, languageId, path) {
|
|
73
|
+
const result = navigateTree(program, path);
|
|
74
|
+
if ('error' in result) {
|
|
75
|
+
return { ok: false, languageId, error: result.error, available: result.available };
|
|
76
|
+
}
|
|
77
|
+
const node = result.command;
|
|
78
|
+
if (path.length === 0) {
|
|
79
|
+
return {
|
|
80
|
+
ok: true,
|
|
81
|
+
languageId,
|
|
82
|
+
namespaces: node.commands.map((ns) => ({
|
|
83
|
+
name: ns.name(),
|
|
84
|
+
requests: ns.commands.map((r) => r.name())
|
|
85
|
+
}))
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
if (path.length === 1) {
|
|
89
|
+
return {
|
|
90
|
+
ok: true,
|
|
91
|
+
languageId,
|
|
92
|
+
namespace: path[0],
|
|
93
|
+
requests: node.commands.map((r) => r.name())
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
ok: true,
|
|
98
|
+
languageId,
|
|
99
|
+
namespace: path[0],
|
|
100
|
+
request: path[1],
|
|
101
|
+
arguments: argumentInfos(node),
|
|
102
|
+
options: optionInfos(node)
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=help.js.map
|
package/dist/help.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAkB,MAAM,aAAa,CAAC;AAEtD,SAAS,YAAY,CAAC,IAAoB,EAAE,GAAc;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;IACjG,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtF,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CACnB,OAAO,IAAI,CAAC,GAAG,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM;QACnE,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,IAAI,CAAC,cAAc,IAAI,CAAC,OAAO,CACvE,CAAC;IACF,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,KAAK,EAAE,CAAC;AAC9E,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,cAAc,CAAC,MAAoB,EAAE,GAAc;IACjE,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,KAAK,IAAI;QACpB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kDAAkD,CAAC;QAC7D,CAAC,CAAC,GAAG,CAAC,GAAG,CACL,oBAAoB,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK;YACxC,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,iBAAiB,MAAM,CAAC,MAAM,CAAC,QAAQ,aAAa,CAChF,CAAC;IACR,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG;QACb,EAAE;QACF,aAAa;QACb,oEAAoE;QACpE,oEAAoE;QACpE,qEAAqE;KACtE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,CAAC,0BAA0B,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,CAC1F,IAAI,CACL,CAAC;AACJ,CAAC;AAID,oFAAoF;AACpF,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,IAAc;IAC3D,IAAI,IAAI,GAAG,OAAO,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YAChD,OAAO;gBACL,KAAK,EAAE,WAAW,KAAK,KAAK,IAAI,IAAI;gBACpC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;aACrD,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAgB,EAChB,IAAc;IAEd,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3C,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QACtB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,gBAAgB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC7F,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;AAC9D,CAAC;AAQD,SAAS,WAAW,CAAC,OAAgB;IACnC,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjC,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI;KAC9B,CAAC,CAAC,CAAC;AACN,CAAC;AASD,0EAA0E;AAC1E,8EAA8E;AAC9E,6EAA6E;AAC7E,SAAS,aAAa,CAAC,OAAgB;IACrC,OAAO,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;QACd,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI;QAC7B,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI;KAC9B,CAAC,CAAC,CAAC;AACN,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,UAAkB,EAAE,IAAc;IAChF,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3C,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QACtB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;IACrF,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;IAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,EAAE,EAAE,IAAI;YACR,UAAU;YACV,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACrC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;gBACf,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAC3C,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,EAAE,EAAE,IAAI;YACR,UAAU;YACV,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;YAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAC7C,CAAC;IACJ,CAAC;IACD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,UAAU;QACV,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;QAClB,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAChB,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC;QAC9B,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC;KAC3B,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lsproxy/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Standalone refactor CLI driving any LSP server: project-wide rename, file-move with importer updates, and move-symbol",
|
|
5
5
|
"private": false,
|
|
6
6
|
"keywords": [
|
|
@@ -48,9 +48,9 @@
|
|
|
48
48
|
"dependencies": {
|
|
49
49
|
"commander": "^15.0.0",
|
|
50
50
|
"zod": "^4.4.3",
|
|
51
|
-
"@lspeasy/client": "3.1.
|
|
52
|
-
"@lspeasy/core": "2.
|
|
53
|
-
"@lsproxy/proxy": "1.0
|
|
51
|
+
"@lspeasy/client": "3.1.3",
|
|
52
|
+
"@lspeasy/core": "2.4.0",
|
|
53
|
+
"@lsproxy/proxy": "1.1.0"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@skillit/cli": "^0.4.0",
|