litmus-cli 1.4.19 → 1.4.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/connect.d.ts +65 -2
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +183 -41
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +68 -4
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +6 -3
- package/dist/commands/status.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/activity-tail.d.ts +20 -0
- package/dist/lib/activity-tail.d.ts.map +1 -0
- package/dist/lib/activity-tail.js +58 -0
- package/dist/lib/activity-tail.js.map +1 -0
- package/dist/lib/api.d.ts +10 -1
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +9 -2
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/backfill-tools.d.ts.map +1 -1
- package/dist/lib/backfill-tools.js +2 -0
- package/dist/lib/backfill-tools.js.map +1 -1
- package/dist/lib/chat-model-config.d.ts +2 -0
- package/dist/lib/chat-model-config.d.ts.map +1 -1
- package/dist/lib/chat-model-config.js +27 -2
- package/dist/lib/chat-model-config.js.map +1 -1
- package/dist/lib/hook-logger.cjs +282 -17
- package/dist/lib/platform.d.ts +7 -0
- package/dist/lib/platform.d.ts.map +1 -1
- package/dist/lib/platform.js +12 -5
- package/dist/lib/platform.js.map +1 -1
- package/dist/lib/watcher.js +15 -3
- package/dist/lib/watcher.js.map +1 -1
- package/package.json +1 -1
|
@@ -84,14 +84,77 @@ export declare function buildControlPathBlock(alias: string, p: ParsedSsh): stri
|
|
|
84
84
|
export declare function upsertSshConfigContent(existing: string, alias: string, block: string, controlBlock?: string): string;
|
|
85
85
|
/** Short, stable alias from the workspace hostname (or token as a fallback). */
|
|
86
86
|
export declare function aliasFor(sshHostname: string | null | undefined, token: string): string;
|
|
87
|
-
export type IdeChoice = "vscode" | "browser" | "ssh";
|
|
87
|
+
export type IdeChoice = "vscode" | "cursor" | "browser" | "ssh";
|
|
88
88
|
/**
|
|
89
|
-
*
|
|
89
|
+
* Resolve which editor to open: an explicit --ide flag wins; otherwise prompt.
|
|
90
|
+
* Falls back to native VS Code when the flag is unknown or stdin isn't a TTY
|
|
91
|
+
* (piped / CI), so scripted runs never block on the prompt.
|
|
92
|
+
*
|
|
93
|
+
* `log` is injectable ONLY so that the Cursor notice below is testable through the real
|
|
94
|
+
* selection path rather than by reading a string constant. A warning that is never
|
|
95
|
+
* reached is precisely the bug this ticket is fixing, so a test that cannot see whether
|
|
96
|
+
* it was printed is not a test of it.
|
|
97
|
+
*/
|
|
98
|
+
export declare function resolveIde(flag: string | undefined, log?: (line: string) => void): Promise<{
|
|
99
|
+
ide: IdeChoice;
|
|
100
|
+
chosen: boolean;
|
|
101
|
+
}>;
|
|
102
|
+
/**
|
|
103
|
+
* ENG-1950 — the one thing a Cursor candidate has to be told, and the only place we can
|
|
104
|
+
* reliably tell them.
|
|
105
|
+
*
|
|
106
|
+
* Cursor's hooks service reads its configuration ONCE, at application startup. Not on a
|
|
107
|
+
* window reload, not on a fresh Remote-SSH connection. Our prompt capture for Cursor is
|
|
108
|
+
* such a hook (staged into the container by `litmus-firstboot` §5b, ENG-1728), so a
|
|
109
|
+
* candidate who connects from an already-running Cursor gets a session where the hook is
|
|
110
|
+
* present, correct, and never loaded.
|
|
111
|
+
*
|
|
112
|
+
* That failure is entirely silent. The editor connects, the workspace works, files save,
|
|
113
|
+
* the AI answers — and nothing is recorded, so their Process dimension is graded on an
|
|
114
|
+
* empty record. It cost about an hour of investigation on 2026-08-28 to diagnose from
|
|
115
|
+
* the inside, with the container in hand; a candidate has no chance of noticing at all.
|
|
116
|
+
*
|
|
117
|
+
* So the copy is written for a candidate, not for us: what to do, and what it costs if
|
|
118
|
+
* they don't. No "hooks", no "capture lane". The mechanism is our problem.
|
|
119
|
+
*/
|
|
120
|
+
export declare function announceCursorFullQuit(log?: (line: string) => void): void;
|
|
121
|
+
/**
|
|
122
|
+
* Map a menu answer to an editor. (ENG-1667 item 3; Cursor added by ENG-1950.)
|
|
90
123
|
*
|
|
91
124
|
* Exported only so the DEFAULT is testable. What an empty answer resolves to is the whole
|
|
92
125
|
* of this change, and it is one character away from silently reverting.
|
|
126
|
+
*
|
|
127
|
+
* Cursor is APPENDED as 4, not inserted next to VS Code where it belongs by kinship.
|
|
128
|
+
* 1/2/3 have been in front of candidates and in support answers for long enough that a
|
|
129
|
+
* screenshot of the old menu has to keep landing on the same editor; renumbering to group
|
|
130
|
+
* the two native editors would silently send anyone following one into the wrong place.
|
|
131
|
+
* Menu order is cosmetic, landing on the editor you asked for is not.
|
|
93
132
|
*/
|
|
94
133
|
export declare function ideForChoice(answer: string): IdeChoice;
|
|
134
|
+
/**
|
|
135
|
+
* The menu itself, exported so that what a candidate can SEE stays tied to what
|
|
136
|
+
* `ideForChoice` will ACCEPT. An option present only in the mapping is unreachable, and
|
|
137
|
+
* one present only in the menu dead-ends on the default — both fail without a word.
|
|
138
|
+
*/
|
|
139
|
+
export declare function ideMenuLines(): string[];
|
|
140
|
+
/**
|
|
141
|
+
* What `litmus connect` does to the candidate's VS Code Copilot Chat config, given who
|
|
142
|
+
* they chose to open and what the server said about their Chat credential.
|
|
143
|
+
*
|
|
144
|
+
* Exported because the asymmetry IS the rule, and a single `ide === "vscode"` gate reads
|
|
145
|
+
* more obviously correct than it is (Greptile on #1897 caught exactly that version):
|
|
146
|
+
*
|
|
147
|
+
* - "write" is VS Code-only. Cursor is not a Copilot Chat host, and the writer targets
|
|
148
|
+
* VS Code's user directory whoever asked — so writing for a Cursor candidate plants a
|
|
149
|
+
* live `lwt_` token in an editor they may not have installed.
|
|
150
|
+
* - "remove" is not. Cursor is the editor a candidate SWITCHES TO, so the stale entry is
|
|
151
|
+
* already in their VS Code config from an earlier connect. Which editor they open
|
|
152
|
+
* today has no bearing on whether yesterday's credential is dead.
|
|
153
|
+
* - `unavailable` is never either: a failure to ask is not an answer, and deleting a
|
|
154
|
+
* working config over one timeout costs a candidate their model mid-assessment. See
|
|
155
|
+
* EditorChatConfigResult.
|
|
156
|
+
*/
|
|
157
|
+
export declare function chatConfigAction(ide: IdeChoice, state: "configured" | "unconfigured" | "unavailable"): "write" | "remove" | "none";
|
|
95
158
|
/**
|
|
96
159
|
* What to do when the browser IDE was selected. (Greptile on #1713.)
|
|
97
160
|
*
|
|
@@ -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":"AAyCA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAQD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAwBtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAkCxF;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAUzE;AAiCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAKR;AAED,gFAAgF;AAChF,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAItF;AAiID,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAA;AAE/D;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,GAAG,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAkB,GACxC,OAAO,CAAC;IAAE,GAAG,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAc9C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAkB,GAAG,IAAI,CAYtF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAMtD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CASvC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,YAAY,GAAG,cAAc,GAAG,aAAa,GACnD,OAAO,GAAG,QAAQ,GAAG,MAAM,CAI7B;AA+ED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,OAAO,GACpB,SAAS,GAAG,QAAQ,GAAG,aAAa,CAGtC;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwQ9E"}
|
package/dist/commands/connect.js
CHANGED
|
@@ -20,9 +20,10 @@ import { fatal, success, info, warn, setErrorContext } from "../lib/errors.js";
|
|
|
20
20
|
* provisions the container)
|
|
21
21
|
* 4. poll /workspace/connection until the workspace is healthy
|
|
22
22
|
* 5. write a ProxyJump ~/.ssh/config block for the bastion-fronted host
|
|
23
|
-
* 6. launch native VS Code
|
|
23
|
+
* 6. launch the candidate's native editor (VS Code or Cursor) into the
|
|
24
|
+
* container over Remote-SSH
|
|
24
25
|
*
|
|
25
|
-
* After that the candidate is in
|
|
26
|
+
* After that the candidate is in their own native editor, editing in the
|
|
26
27
|
* container; all capture (files, AI, terminal) stays in-container. The private
|
|
27
28
|
* key never leaves the laptop.
|
|
28
29
|
*/
|
|
@@ -246,29 +247,40 @@ function writeSshConfig(alias, block, controlBlock) {
|
|
|
246
247
|
writeFileSync(cfgPath, upsertSshConfigContent(existing, alias, block, controlBlock), { mode: 0o600 });
|
|
247
248
|
return cfgPath;
|
|
248
249
|
}
|
|
249
|
-
|
|
250
|
+
const NATIVE_EDITORS = {
|
|
251
|
+
vscode: {
|
|
252
|
+
bin: "code",
|
|
253
|
+
label: "VS Code",
|
|
254
|
+
remoteSshExt: "ms-vscode-remote.remote-ssh",
|
|
255
|
+
shellCommand: "Shell Command: Install 'code' command",
|
|
256
|
+
},
|
|
257
|
+
cursor: {
|
|
258
|
+
bin: "cursor",
|
|
259
|
+
label: "Cursor",
|
|
260
|
+
remoteSshExt: "anysphere.remote-ssh",
|
|
261
|
+
shellCommand: "Shell Command: Install 'cursor' command",
|
|
262
|
+
},
|
|
263
|
+
};
|
|
264
|
+
function hasEditorCli(ed) {
|
|
250
265
|
try {
|
|
251
|
-
execFileSync(
|
|
266
|
+
execFileSync(ed.bin, ["--version"], { stdio: "ignore" });
|
|
252
267
|
return true;
|
|
253
268
|
}
|
|
254
269
|
catch {
|
|
255
270
|
return false;
|
|
256
271
|
}
|
|
257
272
|
}
|
|
258
|
-
// The client-side extension that resolves `ssh-remote+…`. Without it VS Code
|
|
259
|
-
// silently opens a dead remote window ("Extension 'Remote - SSH' is required").
|
|
260
|
-
const REMOTE_SSH_EXT = "ms-vscode-remote.remote-ssh";
|
|
261
273
|
/**
|
|
262
|
-
* Ensure the Remote-SSH extension is installed in the user's
|
|
274
|
+
* Ensure the Remote-SSH extension is installed in the user's editor before we
|
|
263
275
|
* open the remote window (the `gh codespace code` model). Best-effort: a
|
|
264
276
|
* marketplace/network failure returns "failed" rather than aborting connect —
|
|
265
|
-
* the caller tells the user how to install it by hand. Assumes the
|
|
266
|
-
* exists (caller gates on
|
|
277
|
+
* the caller tells the user how to install it by hand. Assumes the editor's CLI
|
|
278
|
+
* exists (caller gates on hasEditorCli()).
|
|
267
279
|
*/
|
|
268
|
-
function ensureRemoteSshExtension() {
|
|
280
|
+
function ensureRemoteSshExtension(ed) {
|
|
269
281
|
try {
|
|
270
|
-
const list = execFileSync(
|
|
271
|
-
if (list.split(/\r?\n/).some((l) => l.trim().toLowerCase() ===
|
|
282
|
+
const list = execFileSync(ed.bin, ["--list-extensions"], { encoding: "utf8" });
|
|
283
|
+
if (list.split(/\r?\n/).some((l) => l.trim().toLowerCase() === ed.remoteSshExt)) {
|
|
272
284
|
return "present";
|
|
273
285
|
}
|
|
274
286
|
}
|
|
@@ -276,15 +288,15 @@ function ensureRemoteSshExtension() {
|
|
|
276
288
|
// Couldn't list (unexpected) — fall through and try to install anyway.
|
|
277
289
|
}
|
|
278
290
|
try {
|
|
279
|
-
execFileSync(
|
|
291
|
+
execFileSync(ed.bin, ["--install-extension", ed.remoteSshExt, "--force"], { stdio: "ignore" });
|
|
280
292
|
return "installed";
|
|
281
293
|
}
|
|
282
294
|
catch {
|
|
283
295
|
return "failed";
|
|
284
296
|
}
|
|
285
297
|
}
|
|
286
|
-
function
|
|
287
|
-
const child = spawn(
|
|
298
|
+
function launchEditor(ed, alias) {
|
|
299
|
+
const child = spawn(ed.bin, ["--remote", `ssh-remote+${alias}`, REMOTE_WORKSPACE_DIR], {
|
|
288
300
|
detached: true,
|
|
289
301
|
stdio: "ignore",
|
|
290
302
|
});
|
|
@@ -294,23 +306,73 @@ function launchVsCode(alias) {
|
|
|
294
306
|
* Resolve which editor to open: an explicit --ide flag wins; otherwise prompt.
|
|
295
307
|
* Falls back to native VS Code when the flag is unknown or stdin isn't a TTY
|
|
296
308
|
* (piped / CI), so scripted runs never block on the prompt.
|
|
309
|
+
*
|
|
310
|
+
* `log` is injectable ONLY so that the Cursor notice below is testable through the real
|
|
311
|
+
* selection path rather than by reading a string constant. A warning that is never
|
|
312
|
+
* reached is precisely the bug this ticket is fixing, so a test that cannot see whether
|
|
313
|
+
* it was printed is not a test of it.
|
|
297
314
|
*/
|
|
298
|
-
async function resolveIde(flag) {
|
|
315
|
+
export async function resolveIde(flag, log = console.log) {
|
|
299
316
|
const norm = (flag ?? "").trim().toLowerCase();
|
|
300
|
-
if (norm === "vscode" || norm === "browser" || norm === "ssh")
|
|
317
|
+
if (norm === "vscode" || norm === "cursor" || norm === "browser" || norm === "ssh") {
|
|
318
|
+
if (norm === "cursor")
|
|
319
|
+
announceCursorFullQuit(log);
|
|
301
320
|
return { ide: norm, chosen: true };
|
|
321
|
+
}
|
|
302
322
|
if (norm)
|
|
303
|
-
warn(`Unknown --ide "${flag}" (use vscode | browser | ssh) — asking instead.`);
|
|
323
|
+
warn(`Unknown --ide "${flag}" (use vscode | cursor | browser | ssh) — asking instead.`);
|
|
304
324
|
if (!process.stdin.isTTY)
|
|
305
325
|
return { ide: "vscode", chosen: false };
|
|
306
326
|
const answered = await promptIdeAnswer();
|
|
307
|
-
|
|
327
|
+
const ide = ideForChoice(answered);
|
|
328
|
+
// At SELECTION time — not after the ~1-2 minute boot wait, and not trailing the
|
|
329
|
+
// "opening Cursor" line where it scrolls past. See `announceCursorFullQuit`.
|
|
330
|
+
if (ide === "cursor")
|
|
331
|
+
announceCursorFullQuit(log);
|
|
332
|
+
return { ide, chosen: answered.trim() !== "" };
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* ENG-1950 — the one thing a Cursor candidate has to be told, and the only place we can
|
|
336
|
+
* reliably tell them.
|
|
337
|
+
*
|
|
338
|
+
* Cursor's hooks service reads its configuration ONCE, at application startup. Not on a
|
|
339
|
+
* window reload, not on a fresh Remote-SSH connection. Our prompt capture for Cursor is
|
|
340
|
+
* such a hook (staged into the container by `litmus-firstboot` §5b, ENG-1728), so a
|
|
341
|
+
* candidate who connects from an already-running Cursor gets a session where the hook is
|
|
342
|
+
* present, correct, and never loaded.
|
|
343
|
+
*
|
|
344
|
+
* That failure is entirely silent. The editor connects, the workspace works, files save,
|
|
345
|
+
* the AI answers — and nothing is recorded, so their Process dimension is graded on an
|
|
346
|
+
* empty record. It cost about an hour of investigation on 2026-08-28 to diagnose from
|
|
347
|
+
* the inside, with the container in hand; a candidate has no chance of noticing at all.
|
|
348
|
+
*
|
|
349
|
+
* So the copy is written for a candidate, not for us: what to do, and what it costs if
|
|
350
|
+
* they don't. No "hooks", no "capture lane". The mechanism is our problem.
|
|
351
|
+
*/
|
|
352
|
+
export function announceCursorFullQuit(log = console.log) {
|
|
353
|
+
log("");
|
|
354
|
+
log(chalk.yellow.bold(" ⚠ Quit Cursor completely first — otherwise your work is not recorded."));
|
|
355
|
+
log("");
|
|
356
|
+
log(" If Cursor is open right now, quit the whole app and let this command reopen it:");
|
|
357
|
+
log(` macOS: ${chalk.bold("Cmd+Q")}`);
|
|
358
|
+
log(` Windows/Linux: ${chalk.bold("File → Exit")}, or close every Cursor window`);
|
|
359
|
+
log("");
|
|
360
|
+
log(" Reloading the window or reconnecting is NOT enough — Cursor only picks up your");
|
|
361
|
+
log(" workspace's recording setup when the app itself starts. If it stays open,");
|
|
362
|
+
log(" everything will look normal and none of your work will be recorded.");
|
|
363
|
+
log("");
|
|
308
364
|
}
|
|
309
365
|
/**
|
|
310
|
-
* Map a menu answer to an editor. (ENG-1667 item 3.)
|
|
366
|
+
* Map a menu answer to an editor. (ENG-1667 item 3; Cursor added by ENG-1950.)
|
|
311
367
|
*
|
|
312
368
|
* Exported only so the DEFAULT is testable. What an empty answer resolves to is the whole
|
|
313
369
|
* of this change, and it is one character away from silently reverting.
|
|
370
|
+
*
|
|
371
|
+
* Cursor is APPENDED as 4, not inserted next to VS Code where it belongs by kinship.
|
|
372
|
+
* 1/2/3 have been in front of candidates and in support answers for long enough that a
|
|
373
|
+
* screenshot of the old menu has to keep landing on the same editor; renumbering to group
|
|
374
|
+
* the two native editors would silently send anyone following one into the wrong place.
|
|
375
|
+
* Menu order is cosmetic, landing on the editor you asked for is not.
|
|
314
376
|
*/
|
|
315
377
|
export function ideForChoice(answer) {
|
|
316
378
|
const a = answer.trim();
|
|
@@ -318,8 +380,49 @@ export function ideForChoice(answer) {
|
|
|
318
380
|
return "vscode";
|
|
319
381
|
if (a === "3")
|
|
320
382
|
return "ssh";
|
|
383
|
+
if (a === "4")
|
|
384
|
+
return "cursor";
|
|
321
385
|
return "browser";
|
|
322
386
|
}
|
|
387
|
+
/**
|
|
388
|
+
* The menu itself, exported so that what a candidate can SEE stays tied to what
|
|
389
|
+
* `ideForChoice` will ACCEPT. An option present only in the mapping is unreachable, and
|
|
390
|
+
* one present only in the menu dead-ends on the default — both fail without a word.
|
|
391
|
+
*/
|
|
392
|
+
export function ideMenuLines() {
|
|
393
|
+
return [
|
|
394
|
+
` ${chalk.bold("1")}) Browser IDE — nothing to install locally ${chalk.dim("[default]")}`,
|
|
395
|
+
` ${chalk.bold("2")}) VS Code — native, via Remote-SSH`,
|
|
396
|
+
` ${chalk.bold("3")}) SSH — just print the command for your terminal`,
|
|
397
|
+
// ENG-1950. Appended rather than slotted in beside VS Code where it belongs by
|
|
398
|
+
// kinship — see `ideForChoice` for why the existing three numbers do not move.
|
|
399
|
+
` ${chalk.bold("4")}) Cursor — native, via Remote-SSH ${chalk.dim("(quit Cursor first)")}`,
|
|
400
|
+
];
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* What `litmus connect` does to the candidate's VS Code Copilot Chat config, given who
|
|
404
|
+
* they chose to open and what the server said about their Chat credential.
|
|
405
|
+
*
|
|
406
|
+
* Exported because the asymmetry IS the rule, and a single `ide === "vscode"` gate reads
|
|
407
|
+
* more obviously correct than it is (Greptile on #1897 caught exactly that version):
|
|
408
|
+
*
|
|
409
|
+
* - "write" is VS Code-only. Cursor is not a Copilot Chat host, and the writer targets
|
|
410
|
+
* VS Code's user directory whoever asked — so writing for a Cursor candidate plants a
|
|
411
|
+
* live `lwt_` token in an editor they may not have installed.
|
|
412
|
+
* - "remove" is not. Cursor is the editor a candidate SWITCHES TO, so the stale entry is
|
|
413
|
+
* already in their VS Code config from an earlier connect. Which editor they open
|
|
414
|
+
* today has no bearing on whether yesterday's credential is dead.
|
|
415
|
+
* - `unavailable` is never either: a failure to ask is not an answer, and deleting a
|
|
416
|
+
* working config over one timeout costs a candidate their model mid-assessment. See
|
|
417
|
+
* EditorChatConfigResult.
|
|
418
|
+
*/
|
|
419
|
+
export function chatConfigAction(ide, state) {
|
|
420
|
+
if (state === "unconfigured")
|
|
421
|
+
return "remove";
|
|
422
|
+
if (state === "configured" && ide === "vscode")
|
|
423
|
+
return "write";
|
|
424
|
+
return "none";
|
|
425
|
+
}
|
|
323
426
|
/**
|
|
324
427
|
* ENG-1667 item 3: the browser IDE is the default, not native VS Code.
|
|
325
428
|
*
|
|
@@ -344,9 +447,8 @@ export function ideForChoice(answer) {
|
|
|
344
447
|
function promptIdeAnswer() {
|
|
345
448
|
console.log();
|
|
346
449
|
console.log("Where do you want to open your workspace?");
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
console.log(` ${chalk.bold("3")}) SSH — just print the command for your terminal`);
|
|
450
|
+
for (const line of ideMenuLines())
|
|
451
|
+
console.log(line);
|
|
350
452
|
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
351
453
|
return new Promise((resolve) => {
|
|
352
454
|
rl.question("Choice [1]: ", (ans) => {
|
|
@@ -544,6 +646,11 @@ export async function runConnect(token, ideOpt) {
|
|
|
544
646
|
console.log(chalk.dim(` (equivalently: ${conn.ssh_command})`));
|
|
545
647
|
return;
|
|
546
648
|
}
|
|
649
|
+
// Everything below is the native-editor path. `ide` is necessarily "vscode" or
|
|
650
|
+
// "cursor" here — browser and ssh both returned above — but neither return narrows the
|
|
651
|
+
// reassigned `ide` for the compiler, so pin the descriptor explicitly rather than
|
|
652
|
+
// indexing with a widened key.
|
|
653
|
+
const editor = ide === "cursor" ? NATIVE_EDITORS.cursor : NATIVE_EDITORS.vscode;
|
|
547
654
|
// 5b. Point this machine's Copilot Chat at the Litmus gateway (ENG-1475).
|
|
548
655
|
//
|
|
549
656
|
// ONLY ON THE NATIVE VS CODE PATH, and that is the whole reason it is here rather
|
|
@@ -565,9 +672,34 @@ export async function runConnect(token, ideOpt) {
|
|
|
565
672
|
// to reach the writer's removal path: leaving the entry behind leaves a dead `lwt_`
|
|
566
673
|
// bearer token in the candidate's own VS Code config. `unavailable` — we could not
|
|
567
674
|
// ask — is deliberately NOT that, and changes nothing. See EditorChatConfigResult.
|
|
675
|
+
//
|
|
676
|
+
// ENG-1950 — now that a SECOND native editor reaches this line, this splits by
|
|
677
|
+
// editor, and THE TWO HALVES ARE NOT SYMMETRIC. Greptile on #1897 caught the naive
|
|
678
|
+
// version, which gated the whole block on VS Code.
|
|
679
|
+
//
|
|
680
|
+
// WRITING an entry is VS Code-only. Cursor is a VS Code fork but not a Copilot Chat
|
|
681
|
+
// host — it ships its own AI with its own configuration — while
|
|
682
|
+
// `applyEditorChatConfig` writes VS Code's user-scoped path regardless of who asked.
|
|
683
|
+
// Writing for a Cursor candidate would plant a live `lwt_` bearer token in a VS Code
|
|
684
|
+
// they may not have installed, for a model picker they will never open.
|
|
685
|
+
//
|
|
686
|
+
// REMOVING a stale entry is not VS Code-only, and this is the case a single gate got
|
|
687
|
+
// wrong. Cursor is the editor a candidate SWITCHES TO: they connected in VS Code
|
|
688
|
+
// yesterday, so the token is already in their VS Code config today. Opening Cursor
|
|
689
|
+
// does not make that token any less dead once the server answers `unconfigured`, and
|
|
690
|
+
// skipping the removal strands a live credential in a file we put it in. Cleanup is
|
|
691
|
+
// safe from either editor because it is not a blind write — `writeChatModelConfig`
|
|
692
|
+
// refuses to reformat a document holding no Litmus entry and refuses to create a
|
|
693
|
+
// file that was never there, so on a machine that never ran the VS Code path it is a
|
|
694
|
+
// no-op that touches nothing.
|
|
695
|
+
//
|
|
696
|
+
// Cursor is still given no laptop-side equivalent of the WRITE: its AI is captured
|
|
697
|
+
// in-container, which is exactly what the full-quit notice at selection time
|
|
698
|
+
// protects.
|
|
568
699
|
const chat = await fetchEditorChatConfig(backendUrl, token);
|
|
569
|
-
const
|
|
570
|
-
if (chat.state === "configured") {
|
|
700
|
+
const chatAction = chatConfigAction(ide, chat.state);
|
|
701
|
+
if (chat.state === "configured" && chatAction === "write") {
|
|
702
|
+
const outcome = applyEditorChatConfig(chat);
|
|
571
703
|
if (outcome.status === "written") {
|
|
572
704
|
info(`Copilot Chat model "${chat.config.model}" configured in ${outcome.path}`);
|
|
573
705
|
}
|
|
@@ -576,7 +708,8 @@ export async function runConnect(token, ideOpt) {
|
|
|
576
708
|
console.log(chalk.dim(" Your workspace is unaffected; the in-container AI CLIs are already signed in."));
|
|
577
709
|
}
|
|
578
710
|
}
|
|
579
|
-
else if (
|
|
711
|
+
else if (chatAction === "remove") {
|
|
712
|
+
const outcome = applyEditorChatConfig(chat);
|
|
580
713
|
if (outcome.status === "written") {
|
|
581
714
|
info(`Removed the expired Litmus model from Copilot Chat (${outcome.path})`);
|
|
582
715
|
}
|
|
@@ -585,30 +718,39 @@ export async function runConnect(token, ideOpt) {
|
|
|
585
718
|
console.log(chalk.dim(" Delete the \"Litmus\" provider from VS Code's model picker if it appears."));
|
|
586
719
|
}
|
|
587
720
|
}
|
|
588
|
-
// "unchanged" on any path: there was nothing to do. Say nothing.
|
|
589
|
-
//
|
|
590
|
-
//
|
|
591
|
-
if
|
|
721
|
+
// "unchanged" on any path: there was nothing to do. Say nothing. `unavailable`, and a
|
|
722
|
+
// `configured` answer on the Cursor path, never reach `applyEditorChatConfig` at all.
|
|
723
|
+
// 6. Launch the chosen native editor — ensuring its Remote-SSH extension is installed
|
|
724
|
+
// first — or print how to connect if its CLI is absent. ONE body for both editors:
|
|
725
|
+
// every difference between them lives in `NATIVE_EDITORS`, so a later change to this
|
|
726
|
+
// flow cannot land on one editor and quietly miss the other.
|
|
727
|
+
if (!hasEditorCli(editor)) {
|
|
592
728
|
console.log();
|
|
593
|
-
warn(
|
|
729
|
+
warn(`${editor.label} \`${editor.bin}\` command not found on PATH.`);
|
|
594
730
|
console.log(" Connect manually:");
|
|
595
|
-
console.log(chalk.cyan(`
|
|
596
|
-
console.log(` or in
|
|
597
|
-
console.log(chalk.dim(
|
|
731
|
+
console.log(chalk.cyan(` ${editor.bin} --remote ssh-remote+${alias} ${REMOTE_WORKSPACE_DIR}`));
|
|
732
|
+
console.log(` or in ${editor.label}: Remote-SSH → Connect to Host → ${chalk.bold(alias)}.`);
|
|
733
|
+
console.log(chalk.dim(` (Install \`${editor.bin}\` on PATH via ${editor.label}'s "${editor.shellCommand}".)`));
|
|
734
|
+
// The full-quit requirement outlives this degraded path — arguably it matters MORE
|
|
735
|
+
// here, since a candidate typing the command by hand is doing it from a shell that
|
|
736
|
+
// may well be inside the Cursor they still have to quit.
|
|
737
|
+
if (ide === "cursor") {
|
|
738
|
+
console.log(chalk.yellow(" Quit Cursor completely before you run that — see the note above."));
|
|
739
|
+
}
|
|
598
740
|
return;
|
|
599
741
|
}
|
|
600
|
-
const extSpinner = ora(
|
|
601
|
-
const ext = ensureRemoteSshExtension();
|
|
742
|
+
const extSpinner = ora(`Checking ${editor.label} Remote-SSH extension...`).start();
|
|
743
|
+
const ext = ensureRemoteSshExtension(editor);
|
|
602
744
|
if (ext === "present")
|
|
603
745
|
extSpinner.succeed("Remote-SSH extension ready");
|
|
604
746
|
else if (ext === "installed")
|
|
605
|
-
extSpinner.succeed(
|
|
747
|
+
extSpinner.succeed(`Installed the ${editor.label} Remote-SSH extension`);
|
|
606
748
|
else
|
|
607
749
|
extSpinner.warn("Couldn't auto-install the Remote-SSH extension");
|
|
608
|
-
|
|
609
|
-
success(`Opening
|
|
750
|
+
launchEditor(editor, alias);
|
|
751
|
+
success(`Opening ${editor.label} → ${alias}`);
|
|
610
752
|
if (ext === "failed") {
|
|
611
|
-
console.log(chalk.dim(` If the window won't connect, install "Remote - SSH" (${
|
|
753
|
+
console.log(chalk.dim(` If the window won't connect, install "Remote - SSH" (${editor.remoteSshExt}) from the Extensions panel, then run litmus connect again.`));
|
|
612
754
|
}
|
|
613
755
|
else {
|
|
614
756
|
console.log(chalk.dim(" If a new window doesn't appear, run litmus connect again."));
|
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;GAUG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;GAUG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwEnF"}
|
package/dist/commands/push.js
CHANGED
|
@@ -63,16 +63,80 @@ export async function runPush(token, opts) {
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
catch (err) {
|
|
66
|
+
// ENG-1965: a 409 means the backend looked and found none of the candidate's
|
|
67
|
+
// files. Nothing was committed and the workspace is untouched, so the generic
|
|
68
|
+
// hint below would be actively wrong — an identical retry cannot succeed. Say
|
|
69
|
+
// what actually has to change, then offer the same explicit escape the portal
|
|
70
|
+
// does.
|
|
71
|
+
//
|
|
72
|
+
// It is also framed as a QUESTION rather than a failure, matching the portal
|
|
73
|
+
// (OpenInEditorPanel). Stopping the spinner red on "Submit failed" would
|
|
74
|
+
// contradict the very next sentence, which says nothing was submitted and the
|
|
75
|
+
// workspace is fine. Every OTHER error keeps the red frame — a capture failure
|
|
76
|
+
// (503) IS a failure and has to read as one.
|
|
77
|
+
if (err instanceof ServerError && err.statusCode === 409) {
|
|
78
|
+
s.warn("Nothing to submit yet");
|
|
79
|
+
await handleEmptyWorkspace(backendUrl, token, err.message, opts);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
66
82
|
s.fail("Submit failed");
|
|
67
83
|
const code = err instanceof ServerError ? err.errorCode : undefined;
|
|
68
84
|
if (code === "assessment_closed") {
|
|
69
85
|
fatal("This assessment is closed — the completion window has passed.", "Contact the company if you need an extension.", { severity: "warning" });
|
|
70
86
|
return;
|
|
71
87
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
88
|
+
failSubmit(err);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/** The shared "submit did not go through" exit. `fatal` returns `never`. */
|
|
92
|
+
function failSubmit(err) {
|
|
93
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
94
|
+
fatal(msg, "Try `litmus push` again in a moment, or submit from your assessment page.", {
|
|
95
|
+
severity: err instanceof ServerError && err.statusCode && err.statusCode < 500 ? "warning" : "error",
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* The empty-workspace escape hatch (ENG-1965), mirroring the portal's.
|
|
100
|
+
*
|
|
101
|
+
* `--yes` DELIBERATELY DOES NOT ANSWER THIS. It means "yes, submit my work" — the
|
|
102
|
+
* candidate said that before either they or we knew the workspace read as empty,
|
|
103
|
+
* and treating it as "yes, grade me as no submission" would rebuild, behind a
|
|
104
|
+
* flag, the exact silent zeroing this ticket removed. So a scripted or
|
|
105
|
+
* non-interactive run stops here with the reason. That outcome is recoverable;
|
|
106
|
+
* the other one is not.
|
|
107
|
+
*/
|
|
108
|
+
async function handleEmptyWorkspace(backendUrl, token, reason, opts) {
|
|
109
|
+
// The backend's own sentence — it names the likely cause and already says
|
|
110
|
+
// nothing was submitted, so nothing here repeats that.
|
|
111
|
+
warn(reason);
|
|
112
|
+
if (opts.yes || !input.isTTY) {
|
|
113
|
+
fatal("Not submitted: there is nothing in the workspace to grade.", "Move your work into the workspace and run `litmus push` again. If there really is nothing to submit, run it without --yes so you can confirm that.", { severity: "warning" });
|
|
114
|
+
}
|
|
115
|
+
const rl = readline.createInterface({ input, output });
|
|
116
|
+
const answer = await rl.question(chalk.bold(" Submit anyway, graded as no submission? ") + chalk.dim("[y/N] "));
|
|
117
|
+
rl.close();
|
|
118
|
+
const c = answer.trim().toLowerCase();
|
|
119
|
+
if (c !== "y" && c !== "yes") {
|
|
120
|
+
info("Cancelled — nothing was submitted. Your workspace is still open.");
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
const s = ora("Submitting...").start();
|
|
124
|
+
try {
|
|
125
|
+
const result = await submitWorkspace(backendUrl, token, { confirmEmpty: true });
|
|
126
|
+
s.succeed(result.already_submitted ? "Already submitted" : "Submitted with no code");
|
|
127
|
+
// `already_submitted` means the CAS was lost between the 409 and this retry
|
|
128
|
+
// (to /vm/submit or the time-limit cron): a REAL submission landed and
|
|
129
|
+
// nothing was recorded blank, so the empty warning would be a lie.
|
|
130
|
+
if (result.already_submitted) {
|
|
131
|
+
info("Your submission had already landed — nothing was recorded as blank.");
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
warn("Recorded as no submission — no files were captured. Contact the company if that isn't right.");
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
s.fail("Submit failed");
|
|
139
|
+
failSubmit(err);
|
|
76
140
|
}
|
|
77
141
|
}
|
|
78
142
|
//# sourceMappingURL=push.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
|