litmus-cli 1.4.53 → 1.4.54
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/pause.d.ts.map +1 -1
- package/dist/commands/pause.js +23 -20
- package/dist/commands/pause.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +32 -22
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/submit.d.ts.map +1 -1
- package/dist/commands/submit.js +89 -107
- package/dist/commands/submit.js.map +1 -1
- package/dist/lib/session-end.d.ts.map +1 -1
- package/dist/lib/session-end.js +4 -8
- package/dist/lib/session-end.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pause.d.ts","sourceRoot":"","sources":["../../src/commands/pause.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pause.d.ts","sourceRoot":"","sources":["../../src/commands/pause.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C3D"}
|
package/dist/commands/pause.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import ora from "ora";
|
|
2
2
|
import { fetchInitMetadata, pauseWorkspace, ServerError, hintForError } from "../lib/api.js";
|
|
3
3
|
import { resolveApiBase, resolveBackendBase } from "../lib/api-base.js";
|
|
4
|
-
import { fatal,
|
|
4
|
+
import { fatal, setErrorContext } from "../lib/errors.js";
|
|
5
|
+
import { cautionLines, doneLines, noteLines } from "../lib/notice.js";
|
|
5
6
|
/**
|
|
6
7
|
* `litmus pause <token>` - stop working for now, on purpose (ENG-2061).
|
|
7
8
|
*
|
|
@@ -49,10 +50,11 @@ export async function runPause(token) {
|
|
|
49
50
|
try {
|
|
50
51
|
meta = await fetchInitMetadata(apiBase, token);
|
|
51
52
|
setErrorContext({ candidateEmail: meta.candidateEmail, assessmentName: meta.assessmentName });
|
|
52
|
-
|
|
53
|
+
// ENG-2895: the outcome line is what matters; a "Connected" line above it is noise.
|
|
54
|
+
spinner.stop();
|
|
53
55
|
}
|
|
54
56
|
catch (err) {
|
|
55
|
-
spinner.
|
|
57
|
+
spinner.stop();
|
|
56
58
|
const msg = err instanceof Error ? err.message : String(err);
|
|
57
59
|
const severity = err instanceof ServerError && err.statusCode && err.statusCode < 500
|
|
58
60
|
? "warning"
|
|
@@ -70,24 +72,25 @@ export async function runPause(token) {
|
|
|
70
72
|
}
|
|
71
73
|
catch (err) {
|
|
72
74
|
// Stop the spinner BEFORE reporting: `fatal` throws, so anything after the
|
|
73
|
-
// report never runs and would leave it spinning under the message.
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
// fine. A red frame above a message that says nothing went wrong reads as a
|
|
77
|
-
// contradiction, so it stops amber, the way `litmus push` does for its own
|
|
78
|
-
// "nothing to submit yet".
|
|
79
|
-
if (status === 409)
|
|
80
|
-
s.warn("Nothing to pause");
|
|
81
|
-
else
|
|
82
|
-
s.fail("Could not pause");
|
|
75
|
+
// report never runs and would leave it spinning under the message. Stopped
|
|
76
|
+
// without a line of its own (ENG-2895): the report below is the one line.
|
|
77
|
+
s.stop();
|
|
83
78
|
handlePauseError(err);
|
|
84
79
|
return;
|
|
85
80
|
}
|
|
86
|
-
s.succeed(result.already_paused ? "Already paused" : "Paused");
|
|
87
81
|
// The server's sentence, verbatim: it is the one place the promise about the
|
|
88
82
|
// candidate's work is written, and both this command and the portal card
|
|
89
|
-
// print it.
|
|
90
|
-
|
|
83
|
+
// print it. The already-paused one opens by saying so, so it is the ✔ line.
|
|
84
|
+
if (result.already_paused) {
|
|
85
|
+
s.stop();
|
|
86
|
+
for (const line of doneLines(result.detail))
|
|
87
|
+
console.log(line);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
s.succeed("Paused.");
|
|
91
|
+
for (const line of noteLines(result.detail))
|
|
92
|
+
console.log(line);
|
|
93
|
+
}
|
|
91
94
|
}
|
|
92
95
|
/**
|
|
93
96
|
* Report a pause that did not happen.
|
|
@@ -103,16 +106,16 @@ function handlePauseError(err) {
|
|
|
103
106
|
const status = err instanceof ServerError ? err.statusCode : undefined;
|
|
104
107
|
const message = err instanceof Error ? err.message : String(err);
|
|
105
108
|
if (status === 403 && err instanceof ServerError && err.errorCode === "assessment_locked") {
|
|
106
|
-
fatal("
|
|
109
|
+
fatal("The hiring team has locked this assessment.", "Your work is saved. You can connect again when they reopen it.", { severity: "warning" });
|
|
107
110
|
return;
|
|
108
111
|
}
|
|
109
112
|
if (status === 409) {
|
|
110
113
|
// The server's own sentence names which of the two it is: still starting up,
|
|
111
114
|
// or nothing running to pause. Both are states, not faults.
|
|
112
|
-
|
|
113
|
-
|
|
115
|
+
for (const line of cautionLines(`${message} Nothing changed.`))
|
|
116
|
+
console.log(line);
|
|
114
117
|
return;
|
|
115
118
|
}
|
|
116
|
-
fatal(message, "Your work is safe and nothing was lost. Close your editor and it
|
|
119
|
+
fatal(message, "Your work is safe and nothing was lost. Close your editor and it pauses on its own, or run the same litmus pause command again in a moment.", { severity: status && status < 500 ? "warning" : "error" });
|
|
117
120
|
}
|
|
118
121
|
//# sourceMappingURL=pause.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pause.js","sourceRoot":"","sources":["../../src/commands/pause.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAErB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5F,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"pause.js","sourceRoot":"","sources":["../../src/commands/pause.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsHlG"}
|
package/dist/commands/push.js
CHANGED
|
@@ -5,8 +5,9 @@ import ora from "ora";
|
|
|
5
5
|
import { fetchInitMetadata, submitWorkspace, ServerError, hintForError } from "../lib/api.js";
|
|
6
6
|
import { resolveApiBase, resolveBackendBase } from "../lib/api-base.js";
|
|
7
7
|
import { fatal, success, warn, info, setErrorContext } from "../lib/errors.js";
|
|
8
|
-
import { resolveAssessmentToken, isWorkspaceInstall
|
|
8
|
+
import { resolveAssessmentToken, isWorkspaceInstall } from "../lib/workspace-token.js";
|
|
9
9
|
import { editorEndingLines } from "../lib/session-end.js";
|
|
10
|
+
import { noteLines } from "../lib/notice.js";
|
|
10
11
|
/**
|
|
11
12
|
* `litmus push <token>` — submit the v2 codespace workspace for grading, from the
|
|
12
13
|
* same terminal the candidate connected from. Mirrors the portal Submit button:
|
|
@@ -33,7 +34,7 @@ export async function runPush(tokenArg, opts) {
|
|
|
33
34
|
// simply a missing argument. Both keep the paste route open, because it works
|
|
34
35
|
// either way and this must never be a dead end mid-assessment.
|
|
35
36
|
fatal(isWorkspaceInstall(import.meta.url)
|
|
36
|
-
?
|
|
37
|
+
? "Litmus couldn't find your token in this workspace."
|
|
37
38
|
: "No assessment token given.", "Run `litmus push <token>` with the token from your assessment page, or submit from that page directly.", { severity: "warning" });
|
|
38
39
|
return;
|
|
39
40
|
}
|
|
@@ -46,10 +47,12 @@ export async function runPush(tokenArg, opts) {
|
|
|
46
47
|
try {
|
|
47
48
|
meta = await fetchInitMetadata(apiBase, token);
|
|
48
49
|
setErrorContext({ candidateEmail: meta.candidateEmail, assessmentName: meta.assessmentName });
|
|
49
|
-
|
|
50
|
+
// ENG-2895: the assessment name is in the confirm prompt below, so a ✔ line here
|
|
51
|
+
// would say it twice.
|
|
52
|
+
spinner.stop();
|
|
50
53
|
}
|
|
51
54
|
catch (err) {
|
|
52
|
-
spinner.
|
|
55
|
+
spinner.stop();
|
|
53
56
|
const msg = err instanceof Error ? err.message : String(err);
|
|
54
57
|
const severity = err instanceof ServerError && err.statusCode && err.statusCode < 500 ? "warning" : "error";
|
|
55
58
|
fatal(msg, hintForError(err), { severity });
|
|
@@ -62,13 +65,18 @@ export async function runPush(tokenArg, opts) {
|
|
|
62
65
|
const backendUrl = resolveBackendBase(meta.backendUrl, apiBase, import.meta.url);
|
|
63
66
|
// 2. Confirm — submit is final: it tears the workspace down and starts grading.
|
|
64
67
|
if (!opts.yes) {
|
|
65
|
-
|
|
68
|
+
if (meta.workTrial === true)
|
|
69
|
+
for (const line of noteLines(TRIAL_COPY.confirm))
|
|
70
|
+
console.log(line);
|
|
71
|
+
const question = meta.workTrial === true
|
|
72
|
+
? `Submit ${meta.assessmentName} for review? `
|
|
73
|
+
: `Submit ${meta.assessmentName} for grading? You can't keep working after this. `;
|
|
66
74
|
const rl = readline.createInterface({ input, output });
|
|
67
|
-
const answer = await rl.question(
|
|
75
|
+
const answer = await rl.question(` ${question}` + chalk.dim("[y/N] "));
|
|
68
76
|
rl.close();
|
|
69
77
|
const c = answer.trim().toLowerCase();
|
|
70
78
|
if (c !== "y" && c !== "yes") {
|
|
71
|
-
info("Cancelled
|
|
79
|
+
info("Cancelled. Nothing was submitted.");
|
|
72
80
|
return;
|
|
73
81
|
}
|
|
74
82
|
}
|
|
@@ -81,19 +89,19 @@ export async function runPush(tokenArg, opts) {
|
|
|
81
89
|
return;
|
|
82
90
|
}
|
|
83
91
|
if (result.already_submitted) {
|
|
84
|
-
s.succeed(meta.workTrial === true ? "Trial ended" : "Already submitted");
|
|
85
|
-
|
|
92
|
+
s.succeed(meta.workTrial === true ? "Trial ended" : "Already submitted.");
|
|
93
|
+
if (meta.workTrial === true)
|
|
94
|
+
info(TRIAL_COPY.ended);
|
|
86
95
|
reportSessionEnded();
|
|
87
96
|
return;
|
|
88
97
|
}
|
|
89
|
-
s.succeed("Submitted");
|
|
90
|
-
success("Your workspace was captured and grading has started.");
|
|
98
|
+
s.succeed("Submitted. Grading has started.");
|
|
91
99
|
// ENG-2154 — before the next-step link, not after it: the link is where the
|
|
92
100
|
// candidate goes NEXT, so it has to be the last thing on screen. What their
|
|
93
101
|
// editor window is doing is about the thing they just left.
|
|
94
102
|
reportSessionEnded();
|
|
95
103
|
if (result.dashboardUrl) {
|
|
96
|
-
console.log(
|
|
104
|
+
console.log(` Next: ${result.dashboardUrl}`);
|
|
97
105
|
}
|
|
98
106
|
}
|
|
99
107
|
catch (err) {
|
|
@@ -119,14 +127,16 @@ export async function runPush(tokenArg, opts) {
|
|
|
119
127
|
reportTrialRefusal(s, err.message);
|
|
120
128
|
return;
|
|
121
129
|
}
|
|
122
|
-
s
|
|
130
|
+
// The backend's sentence says it once; a ⚠ spinner line above it said it twice.
|
|
131
|
+
s.stop();
|
|
123
132
|
await handleEmptyWorkspace(backendUrl, token, err.message, opts, meta.workTrial === false);
|
|
124
133
|
return;
|
|
125
134
|
}
|
|
126
|
-
s
|
|
135
|
+
// `fatal`'s Error: line is the failure; a ✖ spinner line above it said it twice.
|
|
136
|
+
s.stop();
|
|
127
137
|
const code = err instanceof ServerError ? err.errorCode : undefined;
|
|
128
138
|
if (code === "assessment_closed") {
|
|
129
|
-
fatal("This assessment is closed
|
|
139
|
+
fatal("This assessment is closed. Its deadline has passed.", "Contact the company if you need an extension.", { severity: "warning" });
|
|
130
140
|
return;
|
|
131
141
|
}
|
|
132
142
|
failSubmit(err);
|
|
@@ -177,7 +187,7 @@ function reportTrialRefusal(s, reason) {
|
|
|
177
187
|
/** The shared "submit did not go through" exit. `fatal` returns `never`. */
|
|
178
188
|
function failSubmit(err) {
|
|
179
189
|
const msg = err instanceof Error ? err.message : String(err);
|
|
180
|
-
fatal(msg, "
|
|
190
|
+
fatal(msg, "Run the same litmus push command again in a moment, or submit from your assessment page.", {
|
|
181
191
|
severity: err instanceof ServerError && err.statusCode && err.statusCode < 500 ? "warning" : "error",
|
|
182
192
|
});
|
|
183
193
|
}
|
|
@@ -204,16 +214,16 @@ knownTakeHome) {
|
|
|
204
214
|
if (!knownTakeHome) {
|
|
205
215
|
// True for both flows: without --yes a take-home is asked to confirm an
|
|
206
216
|
// empty submission, and a trial is shown the backend's refusal.
|
|
207
|
-
fatal("Nothing was submitted.", "Run
|
|
217
|
+
fatal("Nothing was submitted.", "Run litmus push again without --yes to see your options, or submit from your assessment page.", { severity: "warning" });
|
|
208
218
|
}
|
|
209
|
-
fatal("
|
|
219
|
+
fatal("Nothing was submitted.", "Move your work into the workspace and run litmus push again. If there is nothing to submit, run it without --yes to confirm that.", { severity: "warning" });
|
|
210
220
|
}
|
|
211
221
|
const rl = readline.createInterface({ input, output });
|
|
212
222
|
const answer = await rl.question(chalk.bold(" Submit anyway, graded as no submission? ") + chalk.dim("[y/N] "));
|
|
213
223
|
rl.close();
|
|
214
224
|
const c = answer.trim().toLowerCase();
|
|
215
225
|
if (c !== "y" && c !== "yes") {
|
|
216
|
-
info("Cancelled
|
|
226
|
+
info("Cancelled. Nothing was submitted. Your workspace is still open.");
|
|
217
227
|
return;
|
|
218
228
|
}
|
|
219
229
|
const s = ora("Submitting...").start();
|
|
@@ -228,10 +238,10 @@ knownTakeHome) {
|
|
|
228
238
|
// (to /vm/submit or the time-limit cron): a REAL submission landed and
|
|
229
239
|
// nothing was recorded blank, so the empty warning would be a lie.
|
|
230
240
|
if (result.already_submitted) {
|
|
231
|
-
info("Your submission had already landed
|
|
241
|
+
info("Your submission had already landed. Nothing was recorded as blank.");
|
|
232
242
|
}
|
|
233
243
|
else {
|
|
234
|
-
warn("Recorded as no submission
|
|
244
|
+
warn("Recorded as no submission. Contact the company if that isn't right.");
|
|
235
245
|
}
|
|
236
246
|
// Both branches are terminal: the CAS is spent and the workspace is gone
|
|
237
247
|
// either way, so the window is disconnected either way (ENG-2154).
|
|
@@ -245,7 +255,7 @@ knownTakeHome) {
|
|
|
245
255
|
reportTrialRefusal(s, err.message);
|
|
246
256
|
return;
|
|
247
257
|
}
|
|
248
|
-
s.
|
|
258
|
+
s.stop();
|
|
249
259
|
failSubmit(err);
|
|
250
260
|
}
|
|
251
261
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,SAAS,CAAA;AAC1D,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC7F,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAC9E,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../src/commands/submit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../src/commands/submit.ts"],"names":[],"mappings":"AAkBA,wBAAsB,SAAS,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsYtE"}
|
package/dist/commands/submit.js
CHANGED
|
@@ -7,13 +7,14 @@ import * as readline from "readline/promises";
|
|
|
7
7
|
import { stdin as input, stdout as output } from "process";
|
|
8
8
|
import { readConfig, findProjectRoot, findNestedWorkspaces, getEffectiveDeadline } from "../lib/config.js";
|
|
9
9
|
import { submitZip, ServerError, isRetryableUploadError } from "../lib/api.js";
|
|
10
|
-
import { createSubmissionZip, UnreadableTreeError
|
|
11
|
-
import { fatal,
|
|
10
|
+
import { createSubmissionZip, UnreadableTreeError } from "../lib/zip.js";
|
|
11
|
+
import { fatal, warn, info, setErrorContext, reportSuccess, reportEvent } from "../lib/errors.js";
|
|
12
12
|
import { formatDeadlinePT } from "../lib/format-time.js";
|
|
13
13
|
import { releaseAiTrackingForAssessment } from "../lib/ai-tracking.js";
|
|
14
14
|
import { kernelNameFor, unregisterKernel } from "../lib/python-env.js";
|
|
15
15
|
import { submitsWorkspace } from "../lib/submit-route.js";
|
|
16
16
|
import { runPush } from "./push.js";
|
|
17
|
+
import { noteLines, cautionLines } from "../lib/notice.js";
|
|
17
18
|
export async function runSubmit(opts) {
|
|
18
19
|
// Step -1: inside a Codespaces v2 workspace this command submits the
|
|
19
20
|
// workspace — exactly what `litmus push` does (ENG-2523). It must run FIRST:
|
|
@@ -42,8 +43,7 @@ export async function runSubmit(opts) {
|
|
|
42
43
|
// exactly one initialized workspace. A CLIPPED walk may have missed
|
|
43
44
|
// one, and a lone visible match could be the stale attempt — packaging
|
|
44
45
|
// it silently would ship the wrong work, so that case stops below.
|
|
45
|
-
console.log();
|
|
46
|
-
console.log(chalk.yellow(`This folder is not an initialized workspace, but ./${path.relative(process.cwd(), scan.workspaces[0])} is — submitting that folder.`));
|
|
46
|
+
console.log(` Submitting ./${path.relative(process.cwd(), scan.workspaces[0])}, the assessment folder inside this one.`);
|
|
47
47
|
process.chdir(scan.workspaces[0]);
|
|
48
48
|
}
|
|
49
49
|
else if (scan.workspaces.length > 0) {
|
|
@@ -61,26 +61,11 @@ export async function runSubmit(opts) {
|
|
|
61
61
|
if (!config) {
|
|
62
62
|
fatal("No Litmus assessment found in this directory.", "Run this command from inside your assessment folder, or run 'litmus init <token>' first.", { severity: "warning" });
|
|
63
63
|
}
|
|
64
|
-
// Step 2:
|
|
65
|
-
|
|
64
|
+
// Step 2: The effective deadline (assessment deadline and/or per-candidate
|
|
65
|
+
// time limit). Checked once, after packaging (below): packaging a large folder
|
|
66
|
+
// takes time, and a check before it missed a deadline that passed during it
|
|
67
|
+
// (Greptile on #3161).
|
|
66
68
|
const effectiveDeadline = getEffectiveDeadline(config);
|
|
67
|
-
if (effectiveDeadline !== null) {
|
|
68
|
-
// 5-minute grace window: covers auto-submit process spawn overhead and
|
|
69
|
-
// gives candidates time to run `litmus submit` manually if auto-submit failed.
|
|
70
|
-
if (now.getTime() > effectiveDeadline + 5 * 60000) {
|
|
71
|
-
// ENG-1490: the server owns the deadline verdict — this used to be a
|
|
72
|
-
// local fatal, which was wrong in BOTH directions. The local config can
|
|
73
|
-
// be stale-early (deadline extended server-side and never synced down),
|
|
74
|
-
// and even past a real cutoff the server may still accept the zip into
|
|
75
|
-
// its recovery window (the auto-submit cron's empty-submission row).
|
|
76
|
-
// Refusing here guaranteed the worst outcome: code that never even got
|
|
77
|
-
// offered to the server. Warn and proceed; a genuine rejection comes
|
|
78
|
-
// back below with the server's own message and dashboard handoff.
|
|
79
|
-
warn(`The submission deadline on record here passed at ${formatDeadlinePT(new Date(effectiveDeadline))}.`);
|
|
80
|
-
console.log(chalk.dim(" Submitting anyway — the server has the authoritative deadline and decides whether this is accepted."));
|
|
81
|
-
console.log();
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
69
|
// Step 3: Find the project root (where .litmus/config.json lives).
|
|
85
70
|
// Step 0 already moved us inside the workspace when we started above it.
|
|
86
71
|
const projectRoot = findProjectRoot() ?? process.cwd();
|
|
@@ -89,26 +74,53 @@ export async function runSubmit(opts) {
|
|
|
89
74
|
let zipResult;
|
|
90
75
|
try {
|
|
91
76
|
zipResult = await createSubmissionZip(projectRoot);
|
|
92
|
-
zipSpinner.succeed("Submission prepared");
|
|
93
77
|
}
|
|
94
78
|
catch (err) {
|
|
95
|
-
|
|
79
|
+
// `fatal`'s Error: line is the failure; a ✖ spinner line above it said it twice.
|
|
80
|
+
zipSpinner.stop();
|
|
96
81
|
// ENG-1884: too much of the tree was unreadable to ship an honest archive.
|
|
97
82
|
// Distinct from a generic archiver failure — the candidate can usually fix
|
|
98
83
|
// this themselves, and naming the paths is the whole point.
|
|
99
84
|
if (err instanceof UnreadableTreeError) {
|
|
100
|
-
|
|
85
|
+
// ENG-2895: the names used to reach only our report. The candidate is the
|
|
86
|
+
// one who can close what is holding them.
|
|
87
|
+
const shown = err.skipped.slice(0, 5).map((e) => ` ${e.path}`);
|
|
88
|
+
if (err.skipped.length > 5)
|
|
89
|
+
shown.push(` ...and ${err.skipped.length - 5} more`);
|
|
90
|
+
fatal([err.message, ...shown].join("\n"), "Close any program holding these files open (editor, antivirus, file sync) and run 'litmus submit' again.", { internalDetail: describeSkipped(err.skipped, err.skipped.length), severity: "error" });
|
|
101
91
|
}
|
|
102
92
|
const msg = err instanceof Error ? err.message : String(err);
|
|
103
|
-
fatal(msg,
|
|
93
|
+
fatal(msg, "Run litmus submit again. If it keeps failing, contact the company.");
|
|
104
94
|
}
|
|
105
95
|
const { zipPath, fileCount, uncompressedBytes, zipBytes, topDirs, skipped } = zipResult;
|
|
96
|
+
const zipSizeMb = (zipBytes / (1024 * 1024)).toFixed(1);
|
|
97
|
+
// ENG-2895: one line for what was packaged and how long is left, in place of a
|
|
98
|
+
// five-line summary. The deadline itself is already in `litmus status`. Counted
|
|
99
|
+
// to the EFFECTIVE deadline, the earlier of the assessment deadline and the time
|
|
100
|
+
// limit; the count is shown only for a timed session, where it is minutes
|
|
101
|
+
// rather than days. Read once, here, so the count and the warning agree.
|
|
102
|
+
const remainingMs = effectiveDeadline === null ? null : effectiveDeadline - Date.now();
|
|
103
|
+
const timeLeft = remainingMs !== null && remainingMs > 0 && config.timeLimit && config.startedAt
|
|
104
|
+
? ` ${Math.floor(remainingMs / (1000 * 60))} min left.`
|
|
105
|
+
: "";
|
|
106
|
+
zipSpinner.succeed(`Packaged ${fileCount} files (${zipSizeMb} MB).${timeLeft}`);
|
|
107
|
+
if (effectiveDeadline !== null && remainingMs !== null && remainingMs <= 0) {
|
|
108
|
+
// Warned from the moment it passes, including the 5-minute grace the server
|
|
109
|
+
// allows after it. ENG-1490: the server owns the deadline verdict — this used
|
|
110
|
+
// to be a local fatal, which was wrong in BOTH directions. The local config
|
|
111
|
+
// can be stale-early (deadline extended server-side and never synced down),
|
|
112
|
+
// and even past a real cutoff the server may still accept the zip into its
|
|
113
|
+
// recovery window (the auto-submit cron's empty-submission row). Refusing
|
|
114
|
+
// here guaranteed the worst outcome: code that never even got offered to the
|
|
115
|
+
// server. Warn and proceed; a genuine rejection comes back below with the
|
|
116
|
+
// server's own message and dashboard handoff.
|
|
117
|
+
warn(`Your deadline (${formatDeadlinePT(new Date(effectiveDeadline))}) has passed. Submitting anyway; Litmus decides whether it counts.`);
|
|
118
|
+
}
|
|
106
119
|
// ENG-1884: the archive was completed WITHOUT these paths. A silent skip is
|
|
107
120
|
// its own bug — the candidate needs to know their submission is incomplete
|
|
108
121
|
// while they can still do something about it, and the grader gets the same
|
|
109
122
|
// list from SKIPPED_MANIFEST_PATH inside the zip.
|
|
110
123
|
if (skipped.length > 0) {
|
|
111
|
-
console.log();
|
|
112
124
|
warn(`${skipped.length} item(s) could not be read and are NOT in your submission:`);
|
|
113
125
|
for (const entry of skipped.slice(0, 10)) {
|
|
114
126
|
const kind = entry.kind === "directory" ? " (directory — its contents are missing too)" : "";
|
|
@@ -117,10 +129,13 @@ export async function runSubmit(opts) {
|
|
|
117
129
|
if (skipped.length > 10) {
|
|
118
130
|
console.log(chalk.dim(` ...and ${skipped.length - 10} more`));
|
|
119
131
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
132
|
+
// With --yes there is no question to answer n to, and the upload goes ahead
|
|
133
|
+
// (Greptile on #3161), so the only route left is the company.
|
|
134
|
+
const skippedAdvice = opts.yes
|
|
135
|
+
? "If any of these are your work, contact the company after this submits."
|
|
136
|
+
: "If any of these are your work, answer n, close the program using them, and run litmus submit again.";
|
|
137
|
+
for (const line of noteLines(skippedAdvice))
|
|
138
|
+
console.log(line);
|
|
124
139
|
// Log-only severity on purpose: the submission SUCCEEDED, so this is not a
|
|
125
140
|
// platform-health page (that stays for the hard-fail above, which is the
|
|
126
141
|
// case where a candidate is actually blocked). It stays searchable server-side.
|
|
@@ -131,7 +146,6 @@ export async function runSubmit(opts) {
|
|
|
131
146
|
if (zipBytes > ZIP_WARN_BYTES) {
|
|
132
147
|
const zipMb = (zipBytes / (1024 * 1024)).toFixed(1);
|
|
133
148
|
const uncompMb = (uncompressedBytes / (1024 * 1024)).toFixed(1);
|
|
134
|
-
console.log();
|
|
135
149
|
warn(`Submission is ${zipMb} MB (${fileCount} files, ${uncompMb} MB uncompressed).`);
|
|
136
150
|
console.log(chalk.dim(" Largest directories:"));
|
|
137
151
|
for (const { dir, bytes } of topDirs.slice(0, 5)) {
|
|
@@ -139,61 +153,25 @@ export async function runSubmit(opts) {
|
|
|
139
153
|
}
|
|
140
154
|
console.log(chalk.dim(" If this looks wrong, cancel and remove large files before submitting."));
|
|
141
155
|
}
|
|
142
|
-
// Step 5:
|
|
143
|
-
const zipSizeMb = (zipBytes / (1024 * 1024)).toFixed(1);
|
|
156
|
+
// Step 5: Warn about a missing activity log
|
|
144
157
|
const folderName = path.basename(projectRoot);
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
console.log(chalk.bold(` Submitting: ${config.assessmentName}`));
|
|
148
|
-
info(` Upload size: ${zipSizeMb} MB (${fileCount} files)`);
|
|
149
|
-
if (hasActivityLog) {
|
|
150
|
-
info(` Tracking log included`);
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
warn(`No activity tracking log found (.litmus/activity.jsonl missing).`);
|
|
154
|
-
console.log(chalk.dim(" The background tracker may not have run. Activity metrics won't be available to reviewers."));
|
|
155
|
-
console.log(chalk.dim(" You can still submit — your code and git history will be evaluated."));
|
|
156
|
-
console.log();
|
|
158
|
+
if (!existsSync(path.join(projectRoot, ".litmus", "activity.jsonl"))) {
|
|
159
|
+
warn("No activity was recorded in this folder. Run litmus doctor to restart tracking, or submit anyway; your code and git history are still reviewed.");
|
|
157
160
|
}
|
|
158
|
-
// Mirror status.ts: show both the long completion-window deadline and the
|
|
159
|
-
// per-session time-limit when both apply. Showing only `config.deadline`
|
|
160
|
-
// misled candidates with a short time-limit on a long-window assessment
|
|
161
|
-
// (Raymond's case — his email screenshot showed the 6/5 deadline despite
|
|
162
|
-
// the binding cutoff being 75 min after start). The CLI's own pre-submit
|
|
163
|
-
// guard above uses `effectiveDeadline` (the min), so the candidate is
|
|
164
|
-
// still blocked client-side past the time-limit; this just makes the
|
|
165
|
-
// displayed bounds match status / init.
|
|
166
|
-
if (config.deadline) {
|
|
167
|
-
info(` Deadline: ${formatDeadlinePT(new Date(config.deadline))}`);
|
|
168
|
-
}
|
|
169
|
-
if (config.timeLimit && config.startedAt) {
|
|
170
|
-
const timeLimitDeadlineMs = new Date(config.startedAt).getTime() + config.timeLimit * 60 * 1000;
|
|
171
|
-
const remainingMs = timeLimitDeadlineMs - Date.now();
|
|
172
|
-
if (remainingMs > 0) {
|
|
173
|
-
const remMins = Math.floor(remainingMs / (1000 * 60));
|
|
174
|
-
info(` Time limit: ${config.timeLimit} min (${remMins} min remaining)`);
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
warn(`Time limit: EXCEEDED (${config.timeLimit} min)`);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
console.log();
|
|
181
161
|
// Step 6: Confirm (unless --yes flag)
|
|
182
162
|
if (!opts.yes) {
|
|
183
|
-
const promptText =
|
|
163
|
+
const promptText = `Submit ${config.assessmentName}? `;
|
|
184
164
|
const rl = readline.createInterface({ input, output });
|
|
185
165
|
let answer;
|
|
186
166
|
try {
|
|
187
|
-
answer = await rl.question(
|
|
167
|
+
answer = await rl.question(` ${promptText}` + chalk.dim("[Y/n] "));
|
|
188
168
|
}
|
|
189
169
|
finally {
|
|
190
170
|
rl.close();
|
|
191
171
|
}
|
|
192
172
|
const confirmed = answer.trim().toLowerCase();
|
|
193
173
|
if (confirmed !== "" && confirmed !== "y" && confirmed !== "yes") {
|
|
194
|
-
|
|
195
|
-
console.log(chalk.dim(" Submission cancelled. Your work is saved."));
|
|
196
|
-
console.log();
|
|
174
|
+
info("Submission cancelled. Your work is saved.");
|
|
197
175
|
try {
|
|
198
176
|
unlinkSync(zipPath);
|
|
199
177
|
}
|
|
@@ -201,7 +179,6 @@ export async function runSubmit(opts) {
|
|
|
201
179
|
process.exit(0);
|
|
202
180
|
}
|
|
203
181
|
}
|
|
204
|
-
console.log();
|
|
205
182
|
// Step 7: Upload with progress
|
|
206
183
|
const uploadSpinner = ora("Uploading submission...").start();
|
|
207
184
|
// ENG-1904: submitZip retries an upload whose connection failed before the
|
|
@@ -211,7 +188,7 @@ export async function runSubmit(opts) {
|
|
|
211
188
|
let attemptNote = "";
|
|
212
189
|
const onRetry = (retry) => {
|
|
213
190
|
attemptNote = ` (attempt ${retry.failedAttempt + 1} of ${retry.maxAttempts})`;
|
|
214
|
-
uploadSpinner.text = `
|
|
191
|
+
uploadSpinner.text = `Couldn't reach Litmus. Retrying upload (${retry.failedAttempt + 1} of ${retry.maxAttempts})...`;
|
|
215
192
|
// Reported whatever the retry goes on to do, because a retry that works
|
|
216
193
|
// otherwise hides the failure from everyone. "warning" is the reporter's
|
|
217
194
|
// tier for a self-heal: archived server-side, never posted.
|
|
@@ -226,9 +203,8 @@ export async function runSubmit(opts) {
|
|
|
226
203
|
const totalMb = (total / (1024 * 1024)).toFixed(1);
|
|
227
204
|
uploadSpinner.text = `Uploading submission... ${uploadedMb}/${totalMb} MB (${pct}%)${attemptNote}`;
|
|
228
205
|
}, onRetry);
|
|
229
|
-
uploadSpinner.succeed("
|
|
206
|
+
uploadSpinner.succeed("Submitted");
|
|
230
207
|
reportSuccess("submit", `Submission ${result.submissionId} received (${zipSizeMb} MB, ${fileCount} files)`);
|
|
231
|
-
console.log();
|
|
232
208
|
if (result.dashboardUrl) {
|
|
233
209
|
// ENG-719: walkthrough modes (VIDEO / LIVE_AGENT / WRITTEN) aren't done at
|
|
234
210
|
// submit — the candidate still has to record their walkthrough. The CLI
|
|
@@ -239,21 +215,26 @@ export async function runSubmit(opts) {
|
|
|
239
215
|
// walkthrough" for VIDEO/LIVE_AGENT, "complete your written reflection"
|
|
240
216
|
// for WRITTEN. Print it verbatim instead of hardcoding the walkthrough
|
|
241
217
|
// wording — WRITTEN candidates would otherwise see the wrong action.
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
console.log(` ${chalk.cyan(result.dashboardUrl)}`);
|
|
218
|
+
for (const line of noteLines(result.message || "One step left: finish on your dashboard."))
|
|
219
|
+
console.log(line);
|
|
245
220
|
}
|
|
246
221
|
else {
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
console.log(chalk.dim(" The company will review your work and be in touch."));
|
|
222
|
+
for (const line of noteLines("You're done. The company will review your work and be in touch."))
|
|
223
|
+
console.log(line);
|
|
250
224
|
}
|
|
251
|
-
|
|
252
|
-
|
|
225
|
+
// Step 8: Delete assessment folder after successful submission. Before the
|
|
226
|
+
// dashboard link (ENG-2895): the link is where the candidate goes next, so
|
|
227
|
+
// it is the last line on screen.
|
|
228
|
+
// The upload landed, so a cleanup error must not reach the catch below and
|
|
229
|
+
// print "Submission failed" in place of the dashboard link (Greptile on #3161).
|
|
230
|
+
try {
|
|
231
|
+
await deleteAssessmentFolder(projectRoot, config.token, folderName);
|
|
232
|
+
}
|
|
233
|
+
catch (cleanupErr) {
|
|
234
|
+
reportEvent("warning", "Post-submit cleanup failed", cleanupErr instanceof Error ? cleanupErr.message : String(cleanupErr), "submit_cleanup_failed");
|
|
253
235
|
}
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
await deleteAssessmentFolder(projectRoot, config.token, folderName);
|
|
236
|
+
if (result.dashboardUrl)
|
|
237
|
+
console.log(` ${chalk.cyan(result.dashboardUrl)}`);
|
|
257
238
|
}
|
|
258
239
|
catch (err) {
|
|
259
240
|
const rawError = err instanceof Error ? err.message : String(err);
|
|
@@ -270,12 +251,11 @@ export async function runSubmit(opts) {
|
|
|
270
251
|
// our submit), not an upload failure. Showing "Upload failed" then a
|
|
271
252
|
// positive handoff message confuses the candidate.
|
|
272
253
|
if (err instanceof ServerError && err.dashboardUrl) {
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
254
|
+
// The server's sentence already says "one step left"; it is the ⚠ line.
|
|
255
|
+
uploadSpinner.stop();
|
|
256
|
+
for (const line of cautionLines(rawError))
|
|
257
|
+
console.log(line);
|
|
277
258
|
console.log(` ${chalk.cyan(err.dashboardUrl)}`);
|
|
278
|
-
console.log();
|
|
279
259
|
// Candidate is moving to the browser to record their walkthrough — the
|
|
280
260
|
// terminal-side tracker has nothing left to observe. Signal it so it
|
|
281
261
|
// doesn't keep heartbeating until the candidate manually kills the
|
|
@@ -310,10 +290,10 @@ export async function runSubmit(opts) {
|
|
|
310
290
|
// tell them congratulations either.
|
|
311
291
|
if (errorCode === "Already submitted") {
|
|
312
292
|
uploadSpinner.succeed("Already submitted");
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
293
|
+
for (const line of noteLines(rawError))
|
|
294
|
+
console.log(line);
|
|
295
|
+
for (const line of noteLines(`Your local copy is kept at ${projectRoot} in case anything needs recovering.`))
|
|
296
|
+
console.log(line);
|
|
317
297
|
stopTracker(projectRoot, config.token);
|
|
318
298
|
releaseAiTrackingForAssessment(projectRoot);
|
|
319
299
|
// A health event, so a rejected-then-retired submit is visible
|
|
@@ -349,14 +329,18 @@ export async function runSubmit(opts) {
|
|
|
349
329
|
? rawError
|
|
350
330
|
: connectionFailed
|
|
351
331
|
? "Submission failed: the connection to Litmus failed on every attempt."
|
|
352
|
-
: "Submission failed.
|
|
332
|
+
: "Submission failed. Run litmus submit again, or submit from your assessment page.";
|
|
333
|
+
const timedOut = !isTerminalCode && rawError.includes("Upload timed out");
|
|
353
334
|
const candidateHint = connectionFailed
|
|
354
|
-
? "Your work is still on this machine. Check your internet connection and run
|
|
355
|
-
:
|
|
335
|
+
? "Your work is still on this machine. Check your internet connection and run litmus submit again. A submission is still accepted up to 5 minutes after your time runs out."
|
|
336
|
+
: timedOut
|
|
337
|
+
? "Your work is still here. Check your connection and run litmus submit again."
|
|
338
|
+
: undefined;
|
|
356
339
|
// Not a soft handoff and not an already-submitted no-op — this is a real
|
|
357
340
|
// upload failure (terminal-codes path or unknown error). Finalize the
|
|
358
341
|
// spinner state now before printing the diagnostics.
|
|
359
|
-
|
|
342
|
+
// `fatal`'s Error: line is the failure; a ✖ spinner line above it said it twice.
|
|
343
|
+
uploadSpinner.stop();
|
|
360
344
|
// For terminal server-side codes (assessment is over), signal the tracker
|
|
361
345
|
// to stop — it has nothing left to observe and would otherwise heartbeat
|
|
362
346
|
// until the candidate manually kills the session. Keep the folder so the
|
|
@@ -376,7 +360,6 @@ export async function runSubmit(opts) {
|
|
|
376
360
|
const zipDiag = `ZIP: ${zipSizeMb} MB (${fileCount} files, ${(uncompressedBytes / (1024 * 1024)).toFixed(1)} MB uncompressed)\nTop dirs: ${topDirs.slice(0, 5).map(d => `${d.dir} (${(d.bytes / (1024 * 1024)).toFixed(1)} MB)`).join(", ")}`;
|
|
377
361
|
const serverDetail = err instanceof ServerError ? `${err.message}\n${err.detail}` : (isKnownError ? undefined : rawError);
|
|
378
362
|
const internalDetail = serverDetail ? `${serverDetail}\n\n${zipDiag}` : zipDiag;
|
|
379
|
-
console.log();
|
|
380
363
|
fatal(candidateMessage, candidateHint, { internalDetail, severity: isKnownError ? "warning" : "error" });
|
|
381
364
|
}
|
|
382
365
|
finally {
|
|
@@ -482,9 +465,8 @@ async function deleteAssessmentFolder(projectRoot, token, folderName) {
|
|
|
482
465
|
unregisterKernel(projectRoot, kernelName);
|
|
483
466
|
try {
|
|
484
467
|
await rm(projectRoot, { recursive: true, force: true });
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
console.log();
|
|
468
|
+
for (const line of noteLines(`Deleted the assessment folder ${folderName}. cd to another folder to keep using this terminal.`))
|
|
469
|
+
console.log(line);
|
|
488
470
|
}
|
|
489
471
|
catch {
|
|
490
472
|
warn(`Could not delete assessment folder. You can manually remove: ${projectRoot}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submit.js","sourceRoot":"","sources":["../../src/commands/submit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"submit.js","sourceRoot":"","sources":["../../src/commands/submit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-end.d.ts","sourceRoot":"","sources":["../../src/lib/session-end.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-end.d.ts","sourceRoot":"","sources":["../../src/lib/session-end.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AAEH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAM5C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAElD"}
|
package/dist/lib/session-end.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
+
import { noteLines } from "./notice.js";
|
|
2
3
|
/**
|
|
3
4
|
* What happens to a NATIVE editor window when the session ends — ENG-2154.
|
|
4
5
|
*
|
|
@@ -93,14 +94,9 @@ import chalk from "chalk";
|
|
|
93
94
|
* candidate is about to see.
|
|
94
95
|
*/
|
|
95
96
|
export function editorEndingLines() {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
"
|
|
99
|
-
" machine and will report a lost connection. That is not a failed submission — it is",
|
|
100
|
-
" this session ending, and nothing is left to save.",
|
|
101
|
-
` ${chalk.dim("Close the window whenever you are ready; we do not close it for you.")}`,
|
|
102
|
-
"",
|
|
103
|
-
];
|
|
97
|
+
// ENG-2895: one notice, wrapped like the rest of the CLI's.
|
|
98
|
+
return noteLines("If VS Code or Cursor is open on this workspace, it will report a lost connection. " +
|
|
99
|
+
"That's expected, not a failed submission. Close it when you're ready.");
|
|
104
100
|
}
|
|
105
101
|
/**
|
|
106
102
|
* The same fact, said before it happens, on the native-editor path of
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-end.js","sourceRoot":"","sources":["../../src/lib/session-end.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"session-end.js","sourceRoot":"","sources":["../../src/lib/session-end.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AAEH;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB;IAC/B,4DAA4D;IAC5D,OAAO,SAAS,CACd,oFAAoF;QAClF,uEAAuE,CAC1E,CAAA;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAC,CAAA;AAC3G,CAAC"}
|