litmus-cli 1.4.36 → 1.4.38
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/commands/connect.d.ts +16 -0
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +82 -8
- package/dist/commands/connect.js.map +1 -1
- package/dist/lib/ssh-client.d.ts +95 -0
- package/dist/lib/ssh-client.d.ts.map +1 -0
- package/dist/lib/ssh-client.js +201 -0
- package/dist/lib/ssh-client.js.map +1 -0
- package/dist/lib/wsl.d.ts +49 -0
- package/dist/lib/wsl.d.ts.map +1 -0
- package/dist/lib/wsl.js +99 -0
- package/dist/lib/wsl.js.map +1 -0
- package/package.json +1 -1
|
@@ -52,6 +52,22 @@ export declare function parseSshCommand(cmd: string): ParsedSsh;
|
|
|
52
52
|
* block correct on its own.
|
|
53
53
|
*/
|
|
54
54
|
export declare function buildSshConfigBlock(alias: string, keyPath: string, p: ParsedSsh, platform?: NodeJS.Platform): string;
|
|
55
|
+
/**
|
|
56
|
+
* ENG-2681 — an ssh_config argument, quoted so a space cannot split it.
|
|
57
|
+
*
|
|
58
|
+
* `keyPath` is built from the candidate's home directory, and a home with a space in it
|
|
59
|
+
* (`C:\Users\<two-word account name>`, common for Windows local accounts) split the unquoted line into
|
|
60
|
+
* two arguments. ssh does not skip a bad line; it rejects the whole file:
|
|
61
|
+
*
|
|
62
|
+
* line 6: keyword identityfile extra arguments at end of line
|
|
63
|
+
* terminating, 1 bad configuration options
|
|
64
|
+
*
|
|
65
|
+
* so every ssh the candidate ran, `git push` to GitHub included, failed until our block
|
|
66
|
+
* was deleted. Measured with `ssh -G`: the quoted form resolves to the path exactly as
|
|
67
|
+
* written, spaces and Windows backslashes (`\U`, `\.`) intact. A double quote cannot
|
|
68
|
+
* appear in a Windows path and has no portable escape in ssh_config, so it is not handled.
|
|
69
|
+
*/
|
|
70
|
+
export declare function quoteConfigArg(value: string): string;
|
|
55
71
|
/**
|
|
56
72
|
* A stanza carrying ONE directive, written ahead of the candidate's own config.
|
|
57
73
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/connect.js
CHANGED
|
@@ -10,8 +10,10 @@ import { fetchInitMetadata, startWorkspace, getConnection, fetchEditorChatConfig
|
|
|
10
10
|
import { applyEditorChatConfig } from "../lib/chat-model-config.js";
|
|
11
11
|
import { resolveApiBase } from "../lib/api-base.js";
|
|
12
12
|
import { editorInstallCandidates, editorSpawnSpec } from "../lib/editor-binary.js";
|
|
13
|
+
import { isWsl, whichOnPath, windowsSideEditor, wslEditorHint } from "../lib/wsl.js";
|
|
13
14
|
import { parseEditorVersion, parseWorkspaceProbe, remoteProbeCommand, seedVerdict, verifyVerdict, VERIFY_SCHEDULE_MS, } from "../lib/editor-server.js";
|
|
14
15
|
import { fatal, success, info, warn, setErrorContext } from "../lib/errors.js";
|
|
16
|
+
import { oldWindowsSshHint, parseOpenSshVersion, proxyJumpBroken, readEditorSettings, readSshVersionBanner, sshExecutableFor, sshPreflight, sshPreflightHint, } from "../lib/ssh-client.js";
|
|
15
17
|
import { editorEndingForewarning } from "../lib/session-end.js";
|
|
16
18
|
import { announceCursorAutoRestart, attemptQuit, platformSupportsGracefulCursorRestart, realCursorProcessIo, renderCursorRestartOutcome, } from "../lib/cursor-restart.js";
|
|
17
19
|
/**
|
|
@@ -127,7 +129,7 @@ export function parseSshCommand(cmd) {
|
|
|
127
129
|
*/
|
|
128
130
|
export function buildSshConfigBlock(alias, keyPath, p, platform = process.platform) {
|
|
129
131
|
const common = [
|
|
130
|
-
` IdentityFile ${keyPath}`,
|
|
132
|
+
` IdentityFile ${quoteConfigArg(keyPath)}`,
|
|
131
133
|
` IdentitiesOnly yes`,
|
|
132
134
|
` StrictHostKeyChecking accept-new`,
|
|
133
135
|
` ControlPath ${controlPathFor(platform)}`,
|
|
@@ -143,6 +145,24 @@ export function buildSshConfigBlock(alias, keyPath, p, platform = process.platfo
|
|
|
143
145
|
out.push(CONNECT_END(alias));
|
|
144
146
|
return out.join("\n") + "\n";
|
|
145
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* ENG-2681 — an ssh_config argument, quoted so a space cannot split it.
|
|
150
|
+
*
|
|
151
|
+
* `keyPath` is built from the candidate's home directory, and a home with a space in it
|
|
152
|
+
* (`C:\Users\<two-word account name>`, common for Windows local accounts) split the unquoted line into
|
|
153
|
+
* two arguments. ssh does not skip a bad line; it rejects the whole file:
|
|
154
|
+
*
|
|
155
|
+
* line 6: keyword identityfile extra arguments at end of line
|
|
156
|
+
* terminating, 1 bad configuration options
|
|
157
|
+
*
|
|
158
|
+
* so every ssh the candidate ran, `git push` to GitHub included, failed until our block
|
|
159
|
+
* was deleted. Measured with `ssh -G`: the quoted form resolves to the path exactly as
|
|
160
|
+
* written, spaces and Windows backslashes (`\U`, `\.`) intact. A double quote cannot
|
|
161
|
+
* appear in a Windows path and has no portable escape in ssh_config, so it is not handled.
|
|
162
|
+
*/
|
|
163
|
+
export function quoteConfigArg(value) {
|
|
164
|
+
return `"${value}"`;
|
|
165
|
+
}
|
|
146
166
|
/** A line that opens a conditional block, i.e. the point after which anything we write
|
|
147
167
|
* is no longer first for the keywords a preceding stanza already set. */
|
|
148
168
|
const OPENS_A_STANZA = /^[ \t]*(Host|Match)[ \t=]/i;
|
|
@@ -515,7 +535,7 @@ export function editorMismatchLines(chosen, actual, reentry = CURSOR_REENTRY_FAL
|
|
|
515
535
|
lines.push(` To carry on in ${chosen.label} instead, put its own \`${chosen.bin}\` command first on`);
|
|
516
536
|
lines.push(` your PATH: in ${chosen.label}, run "${chosen.shellCommand}" from the`);
|
|
517
537
|
lines.push(" Command Palette, then open a NEW terminal and check that");
|
|
518
|
-
lines.push(` \`${chosen.bin} --help\` names ${chosen.label}. Then run litmus connect again.`);
|
|
538
|
+
lines.push(` \`${chosen.bin} --help\` names ${chosen.label}. Then run the same \`litmus connect\` command again.`);
|
|
519
539
|
lines.push("");
|
|
520
540
|
return lines;
|
|
521
541
|
}
|
|
@@ -1459,7 +1479,7 @@ export async function runConnect(token, ideOpt, opts = {}) {
|
|
|
1459
1479
|
ensureSshKey(KEY_PATH);
|
|
1460
1480
|
}
|
|
1461
1481
|
catch (err) {
|
|
1462
|
-
fatal("Couldn't create an SSH key.", "Make sure `ssh-keygen` (OpenSSH) is installed and on your PATH, then re-run `litmus connect
|
|
1482
|
+
fatal("Couldn't create an SSH key.", "Make sure `ssh-keygen` (OpenSSH) is installed and on your PATH, then re-run the same `litmus connect` command.", { internalDetail: err instanceof Error ? err.message : String(err), severity: "warning" });
|
|
1463
1483
|
return;
|
|
1464
1484
|
}
|
|
1465
1485
|
const pubkey = readFileSync(`${KEY_PATH}.pub`, "utf8").trim();
|
|
@@ -1474,7 +1494,7 @@ export async function runConnect(token, ideOpt, opts = {}) {
|
|
|
1474
1494
|
// Consent lives on the portal page (full text + identity check), so direct
|
|
1475
1495
|
// the candidate there rather than dead-ending on a raw 403.
|
|
1476
1496
|
if (code === "disclosure_not_accepted") {
|
|
1477
|
-
fatal("You need to accept the workspace monitoring disclosure first.", `Open your assessment page, review + accept the disclosure, then re-run \`litmus connect
|
|
1497
|
+
fatal("You need to accept the workspace monitoring disclosure first.", `Open your assessment page, review + accept the disclosure, then re-run the same \`litmus connect\` command:\n ${candidatePageUrl(apiBase, meta.assessmentId)}`, { severity: "warning" });
|
|
1478
1498
|
return;
|
|
1479
1499
|
}
|
|
1480
1500
|
if (code === "assessment_closed") {
|
|
@@ -1482,7 +1502,7 @@ export async function runConnect(token, ideOpt, opts = {}) {
|
|
|
1482
1502
|
return;
|
|
1483
1503
|
}
|
|
1484
1504
|
const msg = err instanceof Error ? err.message : String(err);
|
|
1485
|
-
fatal(msg, "Try `litmus connect` again in a moment, or contact the company for help.", {
|
|
1505
|
+
fatal(msg, "Try the same `litmus connect` command again in a moment, or contact the company for help.", {
|
|
1486
1506
|
severity: err instanceof ServerError && err.statusCode && err.statusCode < 500 ? "warning" : "error",
|
|
1487
1507
|
});
|
|
1488
1508
|
return;
|
|
@@ -1512,7 +1532,7 @@ export async function runConnect(token, ideOpt, opts = {}) {
|
|
|
1512
1532
|
}
|
|
1513
1533
|
if (!conn?.healthy || (ide !== "browser" && !conn.ssh_command)) {
|
|
1514
1534
|
boot.fail("Workspace didn't become ready in time");
|
|
1515
|
-
fatal("The workspace is taking longer than expected to start.", "Run `litmus connect` again in a minute. If it keeps happening, contact the company.", { severity: "warning" });
|
|
1535
|
+
fatal("The workspace is taking longer than expected to start.", "Run the same `litmus connect` command again in a minute. If it keeps happening, contact the company.", { severity: "warning" });
|
|
1516
1536
|
return;
|
|
1517
1537
|
}
|
|
1518
1538
|
boot.succeed("Workspace ready");
|
|
@@ -1533,7 +1553,7 @@ export async function runConnect(token, ideOpt, opts = {}) {
|
|
|
1533
1553
|
ide = "vscode";
|
|
1534
1554
|
}
|
|
1535
1555
|
else if (fallback === "unavailable") {
|
|
1536
|
-
fatal("The browser IDE isn't available for this workspace yet.", "Open it in native VS Code instead: `litmus connect --ide vscode`.", { severity: "warning" });
|
|
1556
|
+
fatal("The browser IDE isn't available for this workspace yet.", "Open it in native VS Code instead: `litmus connect <token> --ide vscode`.", { severity: "warning" });
|
|
1537
1557
|
return;
|
|
1538
1558
|
}
|
|
1539
1559
|
}
|
|
@@ -1546,20 +1566,61 @@ export async function runConnect(token, ideOpt, opts = {}) {
|
|
|
1546
1566
|
if (!conn.ssh_command) {
|
|
1547
1567
|
// Unreachable for vscode/ssh (the poll above required ssh_command) — this
|
|
1548
1568
|
// narrows the type for TS and fails safe.
|
|
1549
|
-
fatal("The workspace didn't report an SSH endpoint.", "Run `litmus connect` again in a moment.", { severity: "warning" });
|
|
1569
|
+
fatal("The workspace didn't report an SSH endpoint.", "Run the same `litmus connect` command again in a moment.", { severity: "warning" });
|
|
1550
1570
|
return;
|
|
1551
1571
|
}
|
|
1552
1572
|
// 5. Write the ProxyJump SSH config (native VS Code + the ssh option share it).
|
|
1553
1573
|
// Prune stale host keys first so a re-provisioned container's new key is
|
|
1554
1574
|
// accepted, not refused (ENG-1221).
|
|
1555
1575
|
const parsed = parseSshCommand(conn.ssh_command);
|
|
1576
|
+
// ENG-2682 — Windows' own OpenSSH below 8.1 cannot run the ProxyJump every bastion
|
|
1577
|
+
// route depends on (see `lib/ssh-client.ts`). Refuse before writing anything, with the
|
|
1578
|
+
// version named and a way out, rather than hand an editor a connection it will lose
|
|
1579
|
+
// before it reaches us. The client judged is the one this route will run: the editor's
|
|
1580
|
+
// `remote.SSH.path` when it names one, PATH's ssh otherwise.
|
|
1581
|
+
if (process.platform === "win32" && parsed.jumpHost && ide !== "browser") {
|
|
1582
|
+
const executable = sshExecutableFor(ide, ide === "ssh" ? null : readEditorSettings(ide));
|
|
1583
|
+
const client = parseOpenSshVersion(readSshVersionBanner(executable) ?? "");
|
|
1584
|
+
if (client && proxyJumpBroken(client)) {
|
|
1585
|
+
const where = executable === "ssh" ? "" : ` at ${executable}, set in remote.SSH.path`;
|
|
1586
|
+
fatal(`Your Windows SSH (${client.label}${where}) is too old to reach the workspace.`, oldWindowsSshHint(Boolean(conn.browser_ide_url)), { severity: "warning" });
|
|
1587
|
+
return;
|
|
1588
|
+
}
|
|
1589
|
+
}
|
|
1556
1590
|
const alias = aliasFor(conn.ssh_hostname, token);
|
|
1557
1591
|
pruneStaleHostKeys(parsed);
|
|
1558
1592
|
const block = buildSshConfigBlock(alias, KEY_PATH, parsed);
|
|
1559
1593
|
const cfgPath = writeSshConfig(alias, block, buildControlPathBlock(alias, parsed));
|
|
1560
1594
|
info(`SSH config written to ${cfgPath} (Host "${alias}")`);
|
|
1595
|
+
// ENG-2693 — prove the connection before handing it off (see `sshPreflight`). The
|
|
1596
|
+
// client is the one the route will run, as in ENG-2682. A failure stops the route with
|
|
1597
|
+
// ssh's own words, rather than in an editor that fails the same way silently — and it
|
|
1598
|
+
// is REPORTED, as `error`, because a candidate whose ssh cannot reach us is exactly the
|
|
1599
|
+
// failure that went unseen for fourteen days. The message is fixed so platform-health
|
|
1600
|
+
// groups it; what varies rides in the hint and the internal detail.
|
|
1601
|
+
//
|
|
1602
|
+
// Called per route, not here once: the native route runs it only AFTER the WSL check
|
|
1603
|
+
// (Greptile on #2844), so a candidate whose Windows editor cannot see WSL's config is
|
|
1604
|
+
// told that, rather than a generic ssh failure from the wrong side of the pairing.
|
|
1605
|
+
const preflightStops = async (route) => {
|
|
1606
|
+
const sshExecutable = sshExecutableFor(route, route === "ssh" ? null : readEditorSettings(route));
|
|
1607
|
+
const preflight = await sshPreflight(alias, sshExecutable);
|
|
1608
|
+
if (preflight.ok)
|
|
1609
|
+
return false;
|
|
1610
|
+
fatal("Your computer couldn't open an SSH connection to the workspace.", sshPreflightHint(preflight.detail, Boolean(conn.browser_ide_url)), {
|
|
1611
|
+
severity: "error",
|
|
1612
|
+
internalDetail: [
|
|
1613
|
+
`route=${route} platform=${process.platform} ssh=${sshExecutable}`,
|
|
1614
|
+
`client=${readSshVersionBanner(sshExecutable) ?? "unreadable"}`,
|
|
1615
|
+
...preflight.detail,
|
|
1616
|
+
].join("\n"),
|
|
1617
|
+
});
|
|
1618
|
+
return true;
|
|
1619
|
+
};
|
|
1561
1620
|
// SSH option: hand over the command and stop (no editor launch).
|
|
1562
1621
|
if (ide === "ssh") {
|
|
1622
|
+
if (await preflightStops("ssh"))
|
|
1623
|
+
return;
|
|
1563
1624
|
console.log();
|
|
1564
1625
|
success("Your workspace is ready. Connect from your terminal:");
|
|
1565
1626
|
console.log(chalk.cyan(` ssh ${alias}`));
|
|
@@ -1576,6 +1637,19 @@ export async function runConnect(token, ideOpt, opts = {}) {
|
|
|
1576
1637
|
// installed" on a machine where the binary was sitting in the application bundle the
|
|
1577
1638
|
// whole time. Null here means we genuinely could not find a way to drive it.
|
|
1578
1639
|
const resolved = resolveEditorCommand(editor);
|
|
1640
|
+
// ENG-2683 — inside WSL, the editor on PATH is usually the WINDOWS app, and its
|
|
1641
|
+
// Remote-SSH reads Windows' ssh config, not the WSL one written above (see
|
|
1642
|
+
// `lib/wsl.ts`). Launching it would fail in the editor with nothing on our side, so say
|
|
1643
|
+
// so here, where both the editor and the alias are known.
|
|
1644
|
+
if (resolved && isWsl()) {
|
|
1645
|
+
const program = whichOnPath(resolved.command, process.env.PATH);
|
|
1646
|
+
if (program && windowsSideEditor(program)) {
|
|
1647
|
+
fatal(`${editor.label} here is the Windows app, but \`litmus connect\` is running inside WSL.`, wslEditorHint(editor.label, alias, Boolean(conn.browser_ide_url)), { severity: "warning" });
|
|
1648
|
+
return;
|
|
1649
|
+
}
|
|
1650
|
+
}
|
|
1651
|
+
if (await preflightStops(editor.ide))
|
|
1652
|
+
return;
|
|
1579
1653
|
// ENG-2152 — resolve WHAT THAT COMMAND ACTUALLY IS before anything acts on the choice.
|
|
1580
1654
|
// `bin` is a name on PATH, and on a machine where Cursor is the default editor `code`
|
|
1581
1655
|
// can be Cursor's own CLI. The verdict is taken here, above the Copilot Chat step,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { spawnSync } from "child_process";
|
|
2
|
+
/**
|
|
3
|
+
* ENG-2682 — which OpenSSH client `litmus connect` is handing the workspace to.
|
|
4
|
+
*
|
|
5
|
+
* Every v2 workspace is reached through the bastion with `ProxyJump`, and Win32-OpenSSH
|
|
6
|
+
* builds older than 8.1p1 cannot run it: they double-escape the implicit `-W` command and
|
|
7
|
+
* die with `Bad stdio forwarding specification` or `CreateProcessW failed error:2`
|
|
8
|
+
* (PowerShell/Win32-OpenSSH#1172, #1185). Windows 10 releases before 21H1 ship those
|
|
9
|
+
* builds. On such a machine VS Code, Cursor and plain `ssh` all fail the way ENG-2676 did:
|
|
10
|
+
* nothing reaches the bastion, nothing is logged on our side, and the candidate sees only
|
|
11
|
+
* an editor error. So `connect` reads the version first and says so instead.
|
|
12
|
+
*
|
|
13
|
+
* THE CLIENT JUDGED IS THE ONE THE ROUTE WILL RUN (Greptile on #2829). Remote-SSH uses the
|
|
14
|
+
* `ssh` on PATH unless the editor's `remote.SSH.path` names another, and a candidate who
|
|
15
|
+
* set it did so precisely to use a different client — typically Git for Windows' ssh over
|
|
16
|
+
* an old in-box one. Judging PATH's ssh for them would refuse a working setup, and the
|
|
17
|
+
* reverse would wave a broken one through. The plain `ssh` option runs PATH's.
|
|
18
|
+
*
|
|
19
|
+
* Only the native Windows build is judged. Git for Windows' MSYS ssh reports a plain
|
|
20
|
+
* `OpenSSH_x.y` and runs ProxyJump through its POSIX layer, and an unreadable banner is
|
|
21
|
+
* not evidence of a broken client, so neither is ever refused.
|
|
22
|
+
*/
|
|
23
|
+
export interface OpenSshVersion {
|
|
24
|
+
/** `OpenSSH_for_Windows_…`, the build that ships with Windows. */
|
|
25
|
+
windowsBuild: boolean;
|
|
26
|
+
major: number;
|
|
27
|
+
minor: number;
|
|
28
|
+
/** The version token as ssh printed it, e.g. `OpenSSH_for_Windows_7.7p1`. */
|
|
29
|
+
label: string;
|
|
30
|
+
}
|
|
31
|
+
/** Parse the banner `ssh -V` prints. Null when it names no OpenSSH version. */
|
|
32
|
+
export declare function parseOpenSshVersion(banner: string): OpenSshVersion | null;
|
|
33
|
+
/** True only for a native Windows build older than 8.1, the one ProxyJump fails on. */
|
|
34
|
+
export declare function proxyJumpBroken(v: OpenSshVersion | null): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* What `<executable> -V` printed (ssh writes it to stderr), or null when it could not be
|
|
37
|
+
* run. `windowsHide` because every spawn on Windows otherwise flashes a console (ENG-2010).
|
|
38
|
+
*/
|
|
39
|
+
export declare function readSshVersionBanner(executable?: string): string | null;
|
|
40
|
+
/**
|
|
41
|
+
* ENG-2693 — prove the connection `connect` is about to hand off, before handing it off.
|
|
42
|
+
*
|
|
43
|
+
* ENG-2676, 2681, 2682 and 2683 all had one shape: the candidate's own ssh died before it
|
|
44
|
+
* reached the bastion, so nothing was logged on our side — zero `resolve-ssh` calls for
|
|
45
|
+
* fourteen days, found through a client's Slack message. The candidate saw only the
|
|
46
|
+
* editor's own "Could not establish connection". One `ssh <alias> true` over the config
|
|
47
|
+
* just written reaches the same failure in seconds, with ssh's own words for it.
|
|
48
|
+
*
|
|
49
|
+
* `BatchMode` so nothing can wait on a prompt nobody is watching; the config's
|
|
50
|
+
* `accept-new` still takes a fresh host key. One retry, because a single dropped packet
|
|
51
|
+
* must not stop a candidate whose connection is fine. `windowsHide` per ENG-2010.
|
|
52
|
+
*/
|
|
53
|
+
export type SshPreflight = {
|
|
54
|
+
ok: true;
|
|
55
|
+
} | {
|
|
56
|
+
ok: false;
|
|
57
|
+
detail: string[];
|
|
58
|
+
};
|
|
59
|
+
export interface SshPreflightDeps {
|
|
60
|
+
spawn: typeof spawnSync;
|
|
61
|
+
sleep: (ms: number) => Promise<void>;
|
|
62
|
+
}
|
|
63
|
+
export declare const SSH_PREFLIGHT_TIMEOUT_MS = 45000;
|
|
64
|
+
export declare function sshPreflight(alias: string, executable?: string, deps?: SshPreflightDeps): Promise<SshPreflight>;
|
|
65
|
+
/**
|
|
66
|
+
* The hint for a failed preflight: ssh's own words first, then the ways out. It carries
|
|
67
|
+
* no token (a placeholder where one is needed), because `fatal` reports its hint.
|
|
68
|
+
*/
|
|
69
|
+
export declare function sshPreflightHint(detail: string[], browserIdeAvailable: boolean): string;
|
|
70
|
+
export type SshRoute = "vscode" | "cursor" | "ssh";
|
|
71
|
+
/**
|
|
72
|
+
* The editor's Windows user `settings.json`. Built with `path.win32` explicitly, not the
|
|
73
|
+
* host's `path`: this names a Windows file whatever runs it (gotcha 018). Null without
|
|
74
|
+
* %APPDATA%, which is not a location worth guessing.
|
|
75
|
+
*/
|
|
76
|
+
export declare function editorSettingsPath(editor: "vscode" | "cursor", env?: NodeJS.ProcessEnv): string | null;
|
|
77
|
+
/** That file's text, or null when there is none to read. */
|
|
78
|
+
export declare function readEditorSettings(editor: "vscode" | "cursor", env?: NodeJS.ProcessEnv): string | null;
|
|
79
|
+
/**
|
|
80
|
+
* `remote.SSH.path` from a VS Code-family `settings.json`, or null when unset or empty.
|
|
81
|
+
*
|
|
82
|
+
* The file is JSONC — comments and trailing commas are normal in it — so it is not handed
|
|
83
|
+
* to `JSON.parse`. Comments are stripped first (outside strings only, so a URL's `//`
|
|
84
|
+
* survives), which also keeps a commented-out setting from being read as a live one.
|
|
85
|
+
*/
|
|
86
|
+
export declare function remoteSshPath(settings: string | null): string | null;
|
|
87
|
+
/** The ssh the route will run: the editor's `remote.SSH.path` when set, else PATH's. */
|
|
88
|
+
export declare function sshExecutableFor(route: SshRoute, editorSettings: string | null): string;
|
|
89
|
+
/**
|
|
90
|
+
* The way out, for the refusal `connect` prints when `proxyJumpBroken` holds. The browser
|
|
91
|
+
* command carries a `<token>` placeholder, not the token: `connect` requires one, and
|
|
92
|
+
* `fatal` reports its hint to our event stream, where a credential must not go.
|
|
93
|
+
*/
|
|
94
|
+
export declare function oldWindowsSshHint(browserIdeAvailable: boolean): string;
|
|
95
|
+
//# sourceMappingURL=ssh-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssh-client.d.ts","sourceRoot":"","sources":["../../src/lib/ssh-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAGzC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,YAAY,EAAE,OAAO,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAA;CACd;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAIzE;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,CAGjE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,SAAQ,GAAG,MAAM,GAAG,IAAI,CAKtE;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAEzE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,SAAS,CAAA;IACvB,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACrC;AAED,eAAO,MAAM,wBAAwB,QAAS,CAAA;AAU9C,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,UAAU,SAAQ,EAClB,IAAI,GAAE,gBAAuC,GAC5C,OAAO,CAAC,YAAY,CAAC,CAUvB;AAyCD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,mBAAmB,EAAE,OAAO,GAAG,MAAM,CAQvF;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAA;AAElD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,IAAI,CAInH;AAED,4DAA4D;AAC5D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,IAAI,CAQnH;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAWpE;AAED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAGvF;AA8BD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,mBAAmB,EAAE,OAAO,GAAG,MAAM,CAUtE"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import { spawnSync } from "child_process";
|
|
3
|
+
import { readFileSync } from "fs";
|
|
4
|
+
/** Parse the banner `ssh -V` prints. Null when it names no OpenSSH version. */
|
|
5
|
+
export function parseOpenSshVersion(banner) {
|
|
6
|
+
const m = /OpenSSH_(for_Windows_)?(\d+)\.(\d+)(p\d+)?/.exec(banner);
|
|
7
|
+
if (!m)
|
|
8
|
+
return null;
|
|
9
|
+
return { windowsBuild: Boolean(m[1]), major: Number(m[2]), minor: Number(m[3]), label: m[0] };
|
|
10
|
+
}
|
|
11
|
+
/** True only for a native Windows build older than 8.1, the one ProxyJump fails on. */
|
|
12
|
+
export function proxyJumpBroken(v) {
|
|
13
|
+
if (!v || !v.windowsBuild)
|
|
14
|
+
return false;
|
|
15
|
+
return v.major < 8 || (v.major === 8 && v.minor < 1);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* What `<executable> -V` printed (ssh writes it to stderr), or null when it could not be
|
|
19
|
+
* run. `windowsHide` because every spawn on Windows otherwise flashes a console (ENG-2010).
|
|
20
|
+
*/
|
|
21
|
+
export function readSshVersionBanner(executable = "ssh") {
|
|
22
|
+
const r = spawnSync(executable, ["-V"], { encoding: "utf8", windowsHide: true, timeout: 5000 });
|
|
23
|
+
if (r.error)
|
|
24
|
+
return null;
|
|
25
|
+
const out = `${r.stderr ?? ""}${r.stdout ?? ""}`.trim();
|
|
26
|
+
return out.length ? out : null;
|
|
27
|
+
}
|
|
28
|
+
export const SSH_PREFLIGHT_TIMEOUT_MS = 45000;
|
|
29
|
+
const SSH_PREFLIGHT_RETRY_DELAY_MS = 3000;
|
|
30
|
+
/** Enough of ssh's own stderr to name the failure, not so much that a hint scrolls away. */
|
|
31
|
+
const SSH_PREFLIGHT_DETAIL_LINES = 12;
|
|
32
|
+
const defaultPreflightDeps = {
|
|
33
|
+
spawn: spawnSync,
|
|
34
|
+
sleep: (ms) => new Promise((resolve) => setTimeout(resolve, ms)),
|
|
35
|
+
};
|
|
36
|
+
export async function sshPreflight(alias, executable = "ssh", deps = defaultPreflightDeps) {
|
|
37
|
+
const options = ["-o", "BatchMode=yes", "-o", "ConnectTimeout=15"];
|
|
38
|
+
if (configSetsRemoteCommand(alias, executable, deps.spawn))
|
|
39
|
+
options.push("-o", "RemoteCommand=none");
|
|
40
|
+
let last = { ok: false, detail: [] };
|
|
41
|
+
for (let attempt = 0; attempt < 2; attempt++) {
|
|
42
|
+
if (attempt > 0)
|
|
43
|
+
await deps.sleep(SSH_PREFLIGHT_RETRY_DELAY_MS);
|
|
44
|
+
last = preflightOnce(alias, executable, options, deps.spawn);
|
|
45
|
+
if (last.ok)
|
|
46
|
+
return last;
|
|
47
|
+
}
|
|
48
|
+
return last;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Whether the candidate's own config gives this host a `RemoteCommand` (Greptile on
|
|
52
|
+
* #2844). With one set — a `Host *` that attaches tmux is the usual reason — ssh refuses
|
|
53
|
+
* `ssh <alias> true` outright ("Cannot execute command-line and remote command.") while
|
|
54
|
+
* a plain `ssh <alias>` works, so the preflight would stop a working setup.
|
|
55
|
+
*
|
|
56
|
+
* Asked of `ssh -G` rather than answered by always passing `RemoteCommand=none`: that
|
|
57
|
+
* option is unknown to OpenSSH before 7.6 (CentOS 7 ships 7.4), which rejects the whole
|
|
58
|
+
* command line, and `IgnoreUnknown` on the command line would displace a candidate's own
|
|
59
|
+
* `IgnoreUnknown UseKeychain`. A client whose config SETS RemoteCommand understands it.
|
|
60
|
+
*/
|
|
61
|
+
function configSetsRemoteCommand(alias, executable, spawn) {
|
|
62
|
+
const r = spawn(executable, ["-G", alias], { encoding: "utf8", windowsHide: true, timeout: 10000 });
|
|
63
|
+
if (r.error || r.status !== 0)
|
|
64
|
+
return false;
|
|
65
|
+
const line = String(r.stdout ?? "").split(/\r?\n/).find((l) => /^remotecommand\s/i.test(l));
|
|
66
|
+
return Boolean(line && line.replace(/^remotecommand\s+/i, "").trim().toLowerCase() !== "none");
|
|
67
|
+
}
|
|
68
|
+
function preflightOnce(alias, executable, options, spawn) {
|
|
69
|
+
const r = spawn(executable, [...options, alias, "true"], { encoding: "utf8", windowsHide: true, timeout: SSH_PREFLIGHT_TIMEOUT_MS });
|
|
70
|
+
if (r.error) {
|
|
71
|
+
const code = r.error.code;
|
|
72
|
+
if (code === "ETIMEDOUT")
|
|
73
|
+
return { ok: false, detail: [`ssh did not finish within ${SSH_PREFLIGHT_TIMEOUT_MS / 1000}s`] };
|
|
74
|
+
if (code === "ENOENT")
|
|
75
|
+
return { ok: false, detail: [`could not run ${executable}: it was not found`] };
|
|
76
|
+
return { ok: false, detail: [r.error.message] };
|
|
77
|
+
}
|
|
78
|
+
if (r.status === 0)
|
|
79
|
+
return { ok: true };
|
|
80
|
+
const lines = String(r.stderr ?? "")
|
|
81
|
+
.split(/\r?\n/)
|
|
82
|
+
.map((l) => l.trimEnd())
|
|
83
|
+
.filter((l) => l.trim().length > 0);
|
|
84
|
+
if (lines.length)
|
|
85
|
+
return { ok: false, detail: lines.slice(-SSH_PREFLIGHT_DETAIL_LINES) };
|
|
86
|
+
return { ok: false, detail: [r.signal ? `ssh was stopped by ${r.signal}` : `ssh exited with status ${r.status}`] };
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* The hint for a failed preflight: ssh's own words first, then the ways out. It carries
|
|
90
|
+
* no token (a placeholder where one is needed), because `fatal` reports its hint.
|
|
91
|
+
*/
|
|
92
|
+
export function sshPreflightHint(detail, browserIdeAvailable) {
|
|
93
|
+
const lines = ["ssh said:", ...detail.map((l) => ` ${l}`), ""];
|
|
94
|
+
lines.push("If this was a network blip, run the same `litmus connect` command again.");
|
|
95
|
+
if (browserIdeAvailable) {
|
|
96
|
+
lines.push("Or open the workspace in your browser, nothing to install: `litmus connect <token> --ide browser`");
|
|
97
|
+
}
|
|
98
|
+
lines.push("If it keeps happening, contact the company; Litmus has been sent this error too.");
|
|
99
|
+
return lines.join("\n");
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* The editor's Windows user `settings.json`. Built with `path.win32` explicitly, not the
|
|
103
|
+
* host's `path`: this names a Windows file whatever runs it (gotcha 018). Null without
|
|
104
|
+
* %APPDATA%, which is not a location worth guessing.
|
|
105
|
+
*/
|
|
106
|
+
export function editorSettingsPath(editor, env = process.env) {
|
|
107
|
+
const appData = env.APPDATA;
|
|
108
|
+
if (!appData)
|
|
109
|
+
return null;
|
|
110
|
+
return path.win32.join(appData, editor === "cursor" ? "Cursor" : "Code", "User", "settings.json");
|
|
111
|
+
}
|
|
112
|
+
/** That file's text, or null when there is none to read. */
|
|
113
|
+
export function readEditorSettings(editor, env = process.env) {
|
|
114
|
+
const file = editorSettingsPath(editor, env);
|
|
115
|
+
if (!file)
|
|
116
|
+
return null;
|
|
117
|
+
try {
|
|
118
|
+
return readFileSync(file, "utf8");
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* `remote.SSH.path` from a VS Code-family `settings.json`, or null when unset or empty.
|
|
126
|
+
*
|
|
127
|
+
* The file is JSONC — comments and trailing commas are normal in it — so it is not handed
|
|
128
|
+
* to `JSON.parse`. Comments are stripped first (outside strings only, so a URL's `//`
|
|
129
|
+
* survives), which also keeps a commented-out setting from being read as a live one.
|
|
130
|
+
*/
|
|
131
|
+
export function remoteSshPath(settings) {
|
|
132
|
+
if (!settings)
|
|
133
|
+
return null;
|
|
134
|
+
const m = /"remote\.SSH\.path"\s*:\s*"((?:[^"\\]|\\.)*)"/.exec(stripJsonComments(settings));
|
|
135
|
+
if (!m)
|
|
136
|
+
return null;
|
|
137
|
+
let value;
|
|
138
|
+
try {
|
|
139
|
+
value = JSON.parse(`"${m[1]}"`);
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
return value.trim().length ? value : null;
|
|
145
|
+
}
|
|
146
|
+
/** The ssh the route will run: the editor's `remote.SSH.path` when set, else PATH's. */
|
|
147
|
+
export function sshExecutableFor(route, editorSettings) {
|
|
148
|
+
if (route === "ssh")
|
|
149
|
+
return "ssh";
|
|
150
|
+
return remoteSshPath(editorSettings) ?? "ssh";
|
|
151
|
+
}
|
|
152
|
+
/** JSONC `//` and block comments removed, string contents untouched. */
|
|
153
|
+
function stripJsonComments(text) {
|
|
154
|
+
let out = "";
|
|
155
|
+
let inString = false;
|
|
156
|
+
for (let i = 0; i < text.length; i++) {
|
|
157
|
+
const c = text[i];
|
|
158
|
+
if (inString) {
|
|
159
|
+
out += c;
|
|
160
|
+
if (c === "\\")
|
|
161
|
+
out += text[++i] ?? "";
|
|
162
|
+
else if (c === '"')
|
|
163
|
+
inString = false;
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
if (c === '"') {
|
|
167
|
+
inString = true;
|
|
168
|
+
out += c;
|
|
169
|
+
}
|
|
170
|
+
else if (c === "/" && text[i + 1] === "/") {
|
|
171
|
+
while (i < text.length && text[i] !== "\n")
|
|
172
|
+
i++;
|
|
173
|
+
out += "\n";
|
|
174
|
+
}
|
|
175
|
+
else if (c === "/" && text[i + 1] === "*") {
|
|
176
|
+
const end = text.indexOf("*/", i + 2);
|
|
177
|
+
i = end < 0 ? text.length : end + 1;
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
out += c;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
return out;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* The way out, for the refusal `connect` prints when `proxyJumpBroken` holds. The browser
|
|
187
|
+
* command carries a `<token>` placeholder, not the token: `connect` requires one, and
|
|
188
|
+
* `fatal` reports its hint to our event stream, where a credential must not go.
|
|
189
|
+
*/
|
|
190
|
+
export function oldWindowsSshHint(browserIdeAvailable) {
|
|
191
|
+
const lines = [
|
|
192
|
+
"Litmus reaches your workspace through a jump host, and the OpenSSH that ships with",
|
|
193
|
+
"Windows 10 before version 21H1 cannot do that. It needs OpenSSH 8.1 or newer.",
|
|
194
|
+
];
|
|
195
|
+
if (browserIdeAvailable) {
|
|
196
|
+
lines.push("Open the workspace in your browser instead, nothing to install: `litmus connect <token> --ide browser`");
|
|
197
|
+
}
|
|
198
|
+
lines.push("Or update Windows (Settings, Windows Update), then run the same `litmus connect` command again.");
|
|
199
|
+
return lines.join("\n");
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=ssh-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssh-client.js","sourceRoot":"","sources":["../../src/lib/ssh-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ENG-2683 — `litmus connect` run inside WSL, driving an editor that lives on Windows.
|
|
3
|
+
*
|
|
4
|
+
* Inside WSL the CLI is a Linux process, so it writes the key and the `Host litmus-…`
|
|
5
|
+
* block into WSL's own `~/.ssh`. But the `code` or `cursor` on a WSL PATH is normally the
|
|
6
|
+
* WINDOWS editor's shim, mounted under `/mnt/c/…`, and Remote-SSH runs in that Windows
|
|
7
|
+
* editor with Windows' ssh and `C:\Users\<name>\.ssh\config` — a file with no such host.
|
|
8
|
+
* The connect then fails in the editor ("Could not resolve hostname litmus-…") with
|
|
9
|
+
* nothing on our side to show for it. So `connect` recognises the pairing and says so.
|
|
10
|
+
*
|
|
11
|
+
* Deliberately narrow, and it fails open. A Linux editor inside WSL (WSLg, `/usr/bin/code`)
|
|
12
|
+
* reads WSL's config and is never refused; neither is plain `ssh` from the WSL shell. A
|
|
13
|
+
* custom automount root (`/c/…` instead of `/mnt/c/…`) is not recognised, which leaves
|
|
14
|
+
* that candidate exactly where they were before this check.
|
|
15
|
+
*/
|
|
16
|
+
/** Inside WSL: the distro sets WSL_DISTRO_NAME, and both WSL kernels name Microsoft. */
|
|
17
|
+
export declare function isWsl(env?: NodeJS.ProcessEnv, release?: string, platform?: NodeJS.Platform): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* What exec would accept: a regular file (after following links) that we may execute.
|
|
20
|
+
* Greptile on #2830 — existence alone is not what the shell asks. A non-executable `code`
|
|
21
|
+
* earlier on PATH is skipped by the exec that ran the editor probe, so this lookup must
|
|
22
|
+
* skip it too, or it names a file that was never the editor.
|
|
23
|
+
*/
|
|
24
|
+
export declare function isExecutableFile(p: string): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* The absolute path exec would run for `cmd`: the first executable file on `pathEnv`, or
|
|
27
|
+
* null. POSIX only — this is asked inside WSL, where PATH is colon-separated even when it
|
|
28
|
+
* lists Windows directories.
|
|
29
|
+
*/
|
|
30
|
+
export declare function whichOnPath(cmd: string, pathEnv: string | undefined, isExecutable?: (p: string) => boolean): string | null;
|
|
31
|
+
/** A program that runs on the Windows side: on a mounted Windows drive, or a Windows executable. */
|
|
32
|
+
export declare function isWindowsSideProgram(absPath: string): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Whether `program` is a Windows-side editor, judged on what it RESOLVES to.
|
|
35
|
+
*
|
|
36
|
+
* Greptile on #2830, both directions: `/usr/local/bin/code` linked to the Windows install
|
|
37
|
+
* under `/mnt/c` is the Windows editor, and a link that sits under `/mnt/c` but points at
|
|
38
|
+
* a Linux editor is not. What runs is the target, so the target decides. Only a path that
|
|
39
|
+
* cannot be resolved is judged as written.
|
|
40
|
+
*/
|
|
41
|
+
export declare function windowsSideEditor(program: string, realpath?: (p: string) => string): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* The way out, for the refusal `connect` prints. It carries no token and no signed URL:
|
|
44
|
+
* `fatal` reports its hint to our event stream, and both are credentials. The browser
|
|
45
|
+
* route is named as a command instead, which re-opens the same workspace — with a
|
|
46
|
+
* `<token>` placeholder, because `connect` will not run without one.
|
|
47
|
+
*/
|
|
48
|
+
export declare function wslEditorHint(editorLabel: string, alias: string, browserIdeAvailable: boolean): string;
|
|
49
|
+
//# sourceMappingURL=wsl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wsl.d.ts","sourceRoot":"","sources":["../../src/lib/wsl.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,wFAAwF;AACxF,wBAAgB,KAAK,CACnB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,OAAO,GAAE,MAAqB,EAC9B,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,OAAO,CAGT;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAQnD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,YAAY,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAA0B,GACtD,MAAM,GAAG,IAAI,CAQf;AAED,oGAAoG;AACpG,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAqB,GAC7C,OAAO,CAQT;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,GAAG,MAAM,CAWtG"}
|
package/dist/lib/wsl.js
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import os from "os";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { accessSync, constants, realpathSync, statSync } from "fs";
|
|
4
|
+
/**
|
|
5
|
+
* ENG-2683 — `litmus connect` run inside WSL, driving an editor that lives on Windows.
|
|
6
|
+
*
|
|
7
|
+
* Inside WSL the CLI is a Linux process, so it writes the key and the `Host litmus-…`
|
|
8
|
+
* block into WSL's own `~/.ssh`. But the `code` or `cursor` on a WSL PATH is normally the
|
|
9
|
+
* WINDOWS editor's shim, mounted under `/mnt/c/…`, and Remote-SSH runs in that Windows
|
|
10
|
+
* editor with Windows' ssh and `C:\Users\<name>\.ssh\config` — a file with no such host.
|
|
11
|
+
* The connect then fails in the editor ("Could not resolve hostname litmus-…") with
|
|
12
|
+
* nothing on our side to show for it. So `connect` recognises the pairing and says so.
|
|
13
|
+
*
|
|
14
|
+
* Deliberately narrow, and it fails open. A Linux editor inside WSL (WSLg, `/usr/bin/code`)
|
|
15
|
+
* reads WSL's config and is never refused; neither is plain `ssh` from the WSL shell. A
|
|
16
|
+
* custom automount root (`/c/…` instead of `/mnt/c/…`) is not recognised, which leaves
|
|
17
|
+
* that candidate exactly where they were before this check.
|
|
18
|
+
*/
|
|
19
|
+
/** Inside WSL: the distro sets WSL_DISTRO_NAME, and both WSL kernels name Microsoft. */
|
|
20
|
+
export function isWsl(env = process.env, release = os.release(), platform = process.platform) {
|
|
21
|
+
if (platform !== "linux")
|
|
22
|
+
return false;
|
|
23
|
+
return Boolean(env.WSL_DISTRO_NAME) || /microsoft/i.test(release);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* What exec would accept: a regular file (after following links) that we may execute.
|
|
27
|
+
* Greptile on #2830 — existence alone is not what the shell asks. A non-executable `code`
|
|
28
|
+
* earlier on PATH is skipped by the exec that ran the editor probe, so this lookup must
|
|
29
|
+
* skip it too, or it names a file that was never the editor.
|
|
30
|
+
*/
|
|
31
|
+
export function isExecutableFile(p) {
|
|
32
|
+
try {
|
|
33
|
+
if (!statSync(p).isFile())
|
|
34
|
+
return false;
|
|
35
|
+
accessSync(p, constants.X_OK);
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The absolute path exec would run for `cmd`: the first executable file on `pathEnv`, or
|
|
44
|
+
* null. POSIX only — this is asked inside WSL, where PATH is colon-separated even when it
|
|
45
|
+
* lists Windows directories.
|
|
46
|
+
*/
|
|
47
|
+
export function whichOnPath(cmd, pathEnv, isExecutable = isExecutableFile) {
|
|
48
|
+
if (cmd.includes("/"))
|
|
49
|
+
return cmd;
|
|
50
|
+
for (const dir of (pathEnv ?? "").split(":")) {
|
|
51
|
+
if (!dir)
|
|
52
|
+
continue;
|
|
53
|
+
const candidate = path.posix.join(dir, cmd);
|
|
54
|
+
if (isExecutable(candidate))
|
|
55
|
+
return candidate;
|
|
56
|
+
}
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
/** A program that runs on the Windows side: on a mounted Windows drive, or a Windows executable. */
|
|
60
|
+
export function isWindowsSideProgram(absPath) {
|
|
61
|
+
return /^\/mnt\/[a-z]\//i.test(absPath) || /\.(exe|cmd|bat)$/i.test(absPath);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Whether `program` is a Windows-side editor, judged on what it RESOLVES to.
|
|
65
|
+
*
|
|
66
|
+
* Greptile on #2830, both directions: `/usr/local/bin/code` linked to the Windows install
|
|
67
|
+
* under `/mnt/c` is the Windows editor, and a link that sits under `/mnt/c` but points at
|
|
68
|
+
* a Linux editor is not. What runs is the target, so the target decides. Only a path that
|
|
69
|
+
* cannot be resolved is judged as written.
|
|
70
|
+
*/
|
|
71
|
+
export function windowsSideEditor(program, realpath = realpathSync) {
|
|
72
|
+
let target;
|
|
73
|
+
try {
|
|
74
|
+
target = realpath(program);
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return isWindowsSideProgram(program);
|
|
78
|
+
}
|
|
79
|
+
return isWindowsSideProgram(target);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* The way out, for the refusal `connect` prints. It carries no token and no signed URL:
|
|
83
|
+
* `fatal` reports its hint to our event stream, and both are credentials. The browser
|
|
84
|
+
* route is named as a command instead, which re-opens the same workspace — with a
|
|
85
|
+
* `<token>` placeholder, because `connect` will not run without one.
|
|
86
|
+
*/
|
|
87
|
+
export function wslEditorHint(editorLabel, alias, browserIdeAvailable) {
|
|
88
|
+
const lines = [
|
|
89
|
+
`This terminal is WSL, so the SSH setup went into WSL's ~/.ssh, which ${editorLabel} on Windows`,
|
|
90
|
+
"cannot see. Run the same `litmus connect` command from PowerShell or Windows Terminal instead",
|
|
91
|
+
"(install the CLI there first: npm install -g litmus-cli@latest).",
|
|
92
|
+
`Or connect from this WSL terminal right now: ssh ${alias}`,
|
|
93
|
+
];
|
|
94
|
+
if (browserIdeAvailable) {
|
|
95
|
+
lines.push("Or open the workspace in your browser, nothing to install: `litmus connect <token> --ide browser`");
|
|
96
|
+
}
|
|
97
|
+
return lines.join("\n");
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=wsl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wsl.js","sourceRoot":"","sources":["../../src/lib/wsl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AAElE;;;;;;;;;;;;;;GAcG;AAEH,wFAAwF;AACxF,MAAM,UAAU,KAAK,CACnB,MAAyB,OAAO,CAAC,GAAG,EACpC,UAAkB,EAAE,CAAC,OAAO,EAAE,EAC9B,WAA4B,OAAO,CAAC,QAAQ;IAE5C,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,KAAK,CAAA;IACtC,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACnE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAS;IACxC,IAAI,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;YAAE,OAAO,KAAK,CAAA;QACvC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,GAAW,EACX,OAA2B,EAC3B,eAAuC,gBAAgB;IAEvD,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAA;IACjC,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,GAAG;YAAE,SAAQ;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAC3C,IAAI,YAAY,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAA;IAC/C,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,OAAO,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAC9E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,WAAkC,YAAY;IAE9C,IAAI,MAAc,CAAA;IAClB,IAAI,CAAC;QACH,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;IACD,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAA;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,WAAmB,EAAE,KAAa,EAAE,mBAA4B;IAC5F,MAAM,KAAK,GAAG;QACZ,wEAAwE,WAAW,aAAa;QAChG,+FAA+F;QAC/F,kEAAkE;QAClE,oDAAoD,KAAK,EAAE;KAC5D,CAAA;IACD,IAAI,mBAAmB,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,mGAAmG,CAAC,CAAA;IACjH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC"}
|