litmus-cli 1.4.16 → 1.4.19
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 +58 -4
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +159 -20
- package/dist/commands/connect.js.map +1 -1
- package/dist/lib/api.d.ts +18 -0
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +58 -1
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/chat-model-config.d.ts +196 -0
- package/dist/lib/chat-model-config.d.ts.map +1 -0
- package/dist/lib/chat-model-config.js +306 -0
- package/dist/lib/chat-model-config.js.map +1 -0
- package/dist/lib/schemas.d.ts +7 -0
- package/dist/lib/schemas.d.ts.map +1 -1
- package/dist/lib/schemas.js +14 -0
- package/dist/lib/schemas.js.map +1 -1
- package/package.json +1 -1
|
@@ -20,14 +20,68 @@ export declare function parseSshCommand(cmd: string): ParsedSsh;
|
|
|
20
20
|
* key + the :2222 port) and the target that ProxyJumps through it. Direct (v1)
|
|
21
21
|
* emits a single stanza. `accept-new` avoids an interactive host-key prompt on a
|
|
22
22
|
* fresh bastion/container key (host-key pinning is a hardening follow-up).
|
|
23
|
+
*
|
|
24
|
+
* ControlPath is ours, deliberately (ENG-1936). A candidate with the conventional
|
|
25
|
+
* `ControlPath ~/.ssh/control-%r@%h:%p` under a global `Host *` gets a socket path
|
|
26
|
+
* built from OUR identifiers — a 36-char workspace uuid as the user, plus the bastion
|
|
27
|
+
* FQDN — which lands at ~111 bytes against macOS's 104-byte sun_path limit. The
|
|
28
|
+
* connection then dies *after* a successful auth:
|
|
29
|
+
*
|
|
30
|
+
* Authenticated to bastion.ws.litmushiring.com using "publickey".
|
|
31
|
+
* unix_listener: path "...too long for Unix domain socket"
|
|
32
|
+
* Connection closed by UNKNOWN port 65535
|
|
33
|
+
*
|
|
34
|
+
* which reads as a Litmus outage rather than as their own ssh config. `%C` is a
|
|
35
|
+
* fixed-length hash of (local host, remote host, port, user), so the path length no
|
|
36
|
+
* longer depends on how long our names are and cannot overflow.
|
|
37
|
+
*
|
|
38
|
+
* This does NOT turn multiplexing on; with no ControlMaster the directive is inert.
|
|
39
|
+
* It only makes sure that a candidate who HAS enabled it multiplexes over a path that
|
|
40
|
+
* fits. Every stanza gets it, because a ProxyJump opens its own connection to the
|
|
41
|
+
* bastion and that one is the long path.
|
|
42
|
+
*
|
|
43
|
+
* WRITING THE DIRECTIVE IS ONLY HALF OF IT. ssh takes the FIRST value it sees for a
|
|
44
|
+
* keyword, so a global `Host *` sitting earlier in the file beats anything we write
|
|
45
|
+
* below it. Verified with `ssh -G`, not assumed: with this block appended after such a
|
|
46
|
+
* stanza the effective ControlPath is still the user's 111-byte one. What wins is the
|
|
47
|
+
* separate `buildControlPathBlock` stanza, which goes ahead of the user's config; the
|
|
48
|
+
* copy here is what applies when there is nothing global to lose to, and keeps this
|
|
49
|
+
* block correct on its own.
|
|
23
50
|
*/
|
|
24
51
|
export declare function buildSshConfigBlock(alias: string, keyPath: string, p: ParsedSsh): string;
|
|
25
52
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
53
|
+
* A stanza carrying ONE directive, written ahead of the candidate's own config.
|
|
54
|
+
*
|
|
55
|
+
* ssh is first-match-wins, so the ControlPath in `buildSshConfigBlock` cannot override a
|
|
56
|
+
* global `Host *` that sets one — and overriding exactly that is the ENG-1936 fix. The
|
|
57
|
+
* obvious move is to put the whole generated block first, and it is wrong: everything
|
|
58
|
+
* else in that block would start winning too, including `StrictHostKeyChecking
|
|
59
|
+
* accept-new`, which would then quietly downgrade a candidate who deliberately set
|
|
60
|
+
* `StrictHostKeyChecking yes` globally. Their host-key policy is not ours to relax to
|
|
61
|
+
* fix our own socket path.
|
|
62
|
+
*
|
|
63
|
+
* So the reordering is scoped to the single keyword that needs it. Everything else keeps
|
|
64
|
+
* losing to the user's settings exactly as it did before, and a directive added to the
|
|
65
|
+
* main block later cannot silently inherit precedence it was never reviewed for. Keep
|
|
66
|
+
* this stanza to ControlPath alone.
|
|
67
|
+
*/
|
|
68
|
+
export declare function buildControlPathBlock(alias: string, p: ParsedSsh): string;
|
|
69
|
+
/**
|
|
70
|
+
* Replace (or insert) this alias's regions in the ~/.ssh/config content. Idempotent:
|
|
71
|
+
* re-running `connect` swaps them and never touches the rest of the user's config.
|
|
72
|
+
* Pure (content in, content out) so it's unit-testable.
|
|
73
|
+
*
|
|
74
|
+
* The main block is APPENDED, as it always was, so nothing in it changes precedence
|
|
75
|
+
* against the user's own stanzas. `controlBlock` — when given — is placed AHEAD of them,
|
|
76
|
+
* because that is the only way its ControlPath can beat a global `Host *`, and it is
|
|
77
|
+
* deliberately the only thing that gets that treatment (see `buildControlPathBlock`).
|
|
78
|
+
*
|
|
79
|
+
* Residual, stated rather than papered over: a ControlPath set in the user's preamble
|
|
80
|
+
* (or in an `Include`d file pulled in before their first stanza) is still read first and
|
|
81
|
+
* still wins. Beating it would mean reordering the candidate's own config, which is not
|
|
82
|
+
* a thing `litmus connect` should do to fix its own socket path.
|
|
29
83
|
*/
|
|
30
|
-
export declare function upsertSshConfigContent(existing: string, alias: string, block: string): string;
|
|
84
|
+
export declare function upsertSshConfigContent(existing: string, alias: string, block: string, controlBlock?: string): string;
|
|
31
85
|
/** Short, stable alias from the workspace hostname (or token as a fallback). */
|
|
32
86
|
export declare function aliasFor(sshHostname: string | null | undefined, token: string): string;
|
|
33
87
|
export type IdeChoice = "vscode" | "browser" | "ssh";
|
|
@@ -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":"AAwCA,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;AA0ED,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAA;AAgBpD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAKtD;AAiFD;;;;;;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,CA+N9E"}
|
package/dist/commands/connect.js
CHANGED
|
@@ -5,7 +5,8 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
|
5
5
|
import { execFileSync, spawn } from "child_process";
|
|
6
6
|
import chalk from "chalk";
|
|
7
7
|
import ora from "ora";
|
|
8
|
-
import { fetchInitMetadata, startWorkspace, getConnection, ServerError, hintForError } from "../lib/api.js";
|
|
8
|
+
import { fetchInitMetadata, startWorkspace, getConnection, fetchEditorChatConfig, ServerError, hintForError } from "../lib/api.js";
|
|
9
|
+
import { applyEditorChatConfig } from "../lib/chat-model-config.js";
|
|
9
10
|
import { resolveApiBase } from "../lib/api-base.js";
|
|
10
11
|
import { fatal, success, info, warn, setErrorContext } from "../lib/errors.js";
|
|
11
12
|
/**
|
|
@@ -29,6 +30,11 @@ const REMOTE_WORKSPACE_DIR = "/home/candidate/workspace";
|
|
|
29
30
|
const KEY_PATH = path.join(os.homedir(), ".ssh", "litmus_ed25519");
|
|
30
31
|
const CONNECT_BEGIN = (alias) => `# >>> litmus-connect ${alias} >>>`;
|
|
31
32
|
const CONNECT_END = (alias) => `# <<< litmus-connect ${alias} <<<`;
|
|
33
|
+
// A SECOND, separate region — see `buildControlPathBlock`. Distinct from the markers
|
|
34
|
+
// above (neither string is a substring of the other), so the two are removed and
|
|
35
|
+
// rewritten independently on every run.
|
|
36
|
+
const CONTROL_BEGIN = (alias) => `# >>> litmus-connect ${alias} controlpath >>>`;
|
|
37
|
+
const CONTROL_END = (alias) => `# <<< litmus-connect ${alias} controlpath <<<`;
|
|
32
38
|
function splitUserHost(s) {
|
|
33
39
|
const at = s.indexOf("@");
|
|
34
40
|
if (at < 0)
|
|
@@ -83,12 +89,40 @@ export function parseSshCommand(cmd) {
|
|
|
83
89
|
* key + the :2222 port) and the target that ProxyJumps through it. Direct (v1)
|
|
84
90
|
* emits a single stanza. `accept-new` avoids an interactive host-key prompt on a
|
|
85
91
|
* fresh bastion/container key (host-key pinning is a hardening follow-up).
|
|
92
|
+
*
|
|
93
|
+
* ControlPath is ours, deliberately (ENG-1936). A candidate with the conventional
|
|
94
|
+
* `ControlPath ~/.ssh/control-%r@%h:%p` under a global `Host *` gets a socket path
|
|
95
|
+
* built from OUR identifiers — a 36-char workspace uuid as the user, plus the bastion
|
|
96
|
+
* FQDN — which lands at ~111 bytes against macOS's 104-byte sun_path limit. The
|
|
97
|
+
* connection then dies *after* a successful auth:
|
|
98
|
+
*
|
|
99
|
+
* Authenticated to bastion.ws.litmushiring.com using "publickey".
|
|
100
|
+
* unix_listener: path "...too long for Unix domain socket"
|
|
101
|
+
* Connection closed by UNKNOWN port 65535
|
|
102
|
+
*
|
|
103
|
+
* which reads as a Litmus outage rather than as their own ssh config. `%C` is a
|
|
104
|
+
* fixed-length hash of (local host, remote host, port, user), so the path length no
|
|
105
|
+
* longer depends on how long our names are and cannot overflow.
|
|
106
|
+
*
|
|
107
|
+
* This does NOT turn multiplexing on; with no ControlMaster the directive is inert.
|
|
108
|
+
* It only makes sure that a candidate who HAS enabled it multiplexes over a path that
|
|
109
|
+
* fits. Every stanza gets it, because a ProxyJump opens its own connection to the
|
|
110
|
+
* bastion and that one is the long path.
|
|
111
|
+
*
|
|
112
|
+
* WRITING THE DIRECTIVE IS ONLY HALF OF IT. ssh takes the FIRST value it sees for a
|
|
113
|
+
* keyword, so a global `Host *` sitting earlier in the file beats anything we write
|
|
114
|
+
* below it. Verified with `ssh -G`, not assumed: with this block appended after such a
|
|
115
|
+
* stanza the effective ControlPath is still the user's 111-byte one. What wins is the
|
|
116
|
+
* separate `buildControlPathBlock` stanza, which goes ahead of the user's config; the
|
|
117
|
+
* copy here is what applies when there is nothing global to lose to, and keeps this
|
|
118
|
+
* block correct on its own.
|
|
86
119
|
*/
|
|
87
120
|
export function buildSshConfigBlock(alias, keyPath, p) {
|
|
88
121
|
const common = [
|
|
89
122
|
` IdentityFile ${keyPath}`,
|
|
90
123
|
` IdentitiesOnly yes`,
|
|
91
124
|
` StrictHostKeyChecking accept-new`,
|
|
125
|
+
` ControlPath ~/.ssh/cm-%C`,
|
|
92
126
|
];
|
|
93
127
|
const out = [CONNECT_BEGIN(alias)];
|
|
94
128
|
if (p.jumpHost) {
|
|
@@ -101,25 +135,88 @@ export function buildSshConfigBlock(alias, keyPath, p) {
|
|
|
101
135
|
out.push(CONNECT_END(alias));
|
|
102
136
|
return out.join("\n") + "\n";
|
|
103
137
|
}
|
|
138
|
+
/** A line that opens a conditional block, i.e. the point after which anything we write
|
|
139
|
+
* is no longer first for the keywords a preceding stanza already set. */
|
|
140
|
+
const OPENS_A_STANZA = /^[ \t]*(Host|Match)[ \t=]/i;
|
|
104
141
|
/**
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
142
|
+
* A stanza carrying ONE directive, written ahead of the candidate's own config.
|
|
143
|
+
*
|
|
144
|
+
* ssh is first-match-wins, so the ControlPath in `buildSshConfigBlock` cannot override a
|
|
145
|
+
* global `Host *` that sets one — and overriding exactly that is the ENG-1936 fix. The
|
|
146
|
+
* obvious move is to put the whole generated block first, and it is wrong: everything
|
|
147
|
+
* else in that block would start winning too, including `StrictHostKeyChecking
|
|
148
|
+
* accept-new`, which would then quietly downgrade a candidate who deliberately set
|
|
149
|
+
* `StrictHostKeyChecking yes` globally. Their host-key policy is not ours to relax to
|
|
150
|
+
* fix our own socket path.
|
|
151
|
+
*
|
|
152
|
+
* So the reordering is scoped to the single keyword that needs it. Everything else keeps
|
|
153
|
+
* losing to the user's settings exactly as it did before, and a directive added to the
|
|
154
|
+
* main block later cannot silently inherit precedence it was never reviewed for. Keep
|
|
155
|
+
* this stanza to ControlPath alone.
|
|
108
156
|
*/
|
|
109
|
-
export function
|
|
110
|
-
const
|
|
111
|
-
|
|
157
|
+
export function buildControlPathBlock(alias, p) {
|
|
158
|
+
const hosts = p.jumpHost ? `${alias} ${alias}-bastion` : alias;
|
|
159
|
+
return [
|
|
160
|
+
CONTROL_BEGIN(alias),
|
|
161
|
+
`# ControlPath only — ahead of your own config so a global ControlPath cannot build`,
|
|
162
|
+
`# an over-long socket path out of the workspace id. Nothing else is overridden.`,
|
|
163
|
+
`Host ${hosts}`,
|
|
164
|
+
` ControlPath ~/.ssh/cm-%C`,
|
|
165
|
+
CONTROL_END(alias),
|
|
166
|
+
].join("\n") + "\n";
|
|
167
|
+
}
|
|
168
|
+
/** Drop one marker-delimited region, wherever in the file it sits. */
|
|
169
|
+
function withoutRegion(existing, begin, end) {
|
|
112
170
|
const bi = existing.indexOf(begin);
|
|
113
|
-
if (bi
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
171
|
+
if (bi < 0)
|
|
172
|
+
return existing;
|
|
173
|
+
const ei = existing.indexOf(end, bi);
|
|
174
|
+
if (ei < 0)
|
|
175
|
+
return existing;
|
|
176
|
+
const out = existing.slice(0, bi) + existing.slice(ei + end.length).replace(/^\n/, "");
|
|
177
|
+
return out.replace(/\n{3,}/g, "\n\n");
|
|
178
|
+
}
|
|
179
|
+
/** Put `block` immediately before the first `Host`/`Match` line, or append if there is
|
|
180
|
+
* none. NOT the top of the file: directives above the first stanza are the user's
|
|
181
|
+
* global preamble and apply to every host, so a `Host` line above them would silently
|
|
182
|
+
* capture them into our stanza. */
|
|
183
|
+
function insertAhead(existing, block) {
|
|
184
|
+
const lines = existing.split("\n");
|
|
185
|
+
const at = lines.findIndex((l) => OPENS_A_STANZA.test(l));
|
|
186
|
+
if (at < 0)
|
|
187
|
+
return append(existing, block);
|
|
188
|
+
const preamble = lines.slice(0, at).join("\n").replace(/\n*$/, "");
|
|
189
|
+
const after = lines.slice(at).join("\n");
|
|
190
|
+
return (preamble.trim().length ? preamble + "\n\n" : "") + block + "\n" + after;
|
|
191
|
+
}
|
|
192
|
+
/** Exactly one blank line before the block, however the prior content ended. Normalised
|
|
193
|
+
* rather than merely separated, so re-running never accretes blank lines where a
|
|
194
|
+
* removed region used to be — the output has to be a fixed point. */
|
|
195
|
+
function append(existing, block) {
|
|
196
|
+
if (!existing.trim().length)
|
|
197
|
+
return block;
|
|
198
|
+
return existing.replace(/\n*$/, "") + "\n\n" + block;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Replace (or insert) this alias's regions in the ~/.ssh/config content. Idempotent:
|
|
202
|
+
* re-running `connect` swaps them and never touches the rest of the user's config.
|
|
203
|
+
* Pure (content in, content out) so it's unit-testable.
|
|
204
|
+
*
|
|
205
|
+
* The main block is APPENDED, as it always was, so nothing in it changes precedence
|
|
206
|
+
* against the user's own stanzas. `controlBlock` — when given — is placed AHEAD of them,
|
|
207
|
+
* because that is the only way its ControlPath can beat a global `Host *`, and it is
|
|
208
|
+
* deliberately the only thing that gets that treatment (see `buildControlPathBlock`).
|
|
209
|
+
*
|
|
210
|
+
* Residual, stated rather than papered over: a ControlPath set in the user's preamble
|
|
211
|
+
* (or in an `Include`d file pulled in before their first stanza) is still read first and
|
|
212
|
+
* still wins. Beating it would mean reordering the candidate's own config, which is not
|
|
213
|
+
* a thing `litmus connect` should do to fix its own socket path.
|
|
214
|
+
*/
|
|
215
|
+
export function upsertSshConfigContent(existing, alias, block, controlBlock) {
|
|
216
|
+
let out = withoutRegion(existing, CONNECT_BEGIN(alias), CONNECT_END(alias));
|
|
217
|
+
out = withoutRegion(out, CONTROL_BEGIN(alias), CONTROL_END(alias));
|
|
218
|
+
out = append(out, block);
|
|
219
|
+
return controlBlock ? insertAhead(out, controlBlock) : out;
|
|
123
220
|
}
|
|
124
221
|
/** Short, stable alias from the workspace hostname (or token as a fallback). */
|
|
125
222
|
export function aliasFor(sshHostname, token) {
|
|
@@ -140,13 +237,13 @@ function ensureSshKey(keyPath) {
|
|
|
140
237
|
stdio: "ignore",
|
|
141
238
|
});
|
|
142
239
|
}
|
|
143
|
-
function writeSshConfig(alias, block) {
|
|
240
|
+
function writeSshConfig(alias, block, controlBlock) {
|
|
144
241
|
const cfgPath = path.join(os.homedir(), ".ssh", "config");
|
|
145
242
|
const dir = path.dirname(cfgPath);
|
|
146
243
|
if (!existsSync(dir))
|
|
147
244
|
mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
148
245
|
const existing = existsSync(cfgPath) ? readFileSync(cfgPath, "utf8") : "";
|
|
149
|
-
writeFileSync(cfgPath, upsertSshConfigContent(existing, alias, block), { mode: 0o600 });
|
|
246
|
+
writeFileSync(cfgPath, upsertSshConfigContent(existing, alias, block, controlBlock), { mode: 0o600 });
|
|
150
247
|
return cfgPath;
|
|
151
248
|
}
|
|
152
249
|
function hasCodeCli() {
|
|
@@ -437,7 +534,7 @@ export async function runConnect(token, ideOpt) {
|
|
|
437
534
|
const alias = aliasFor(conn.ssh_hostname, token);
|
|
438
535
|
pruneStaleHostKeys(parsed);
|
|
439
536
|
const block = buildSshConfigBlock(alias, KEY_PATH, parsed);
|
|
440
|
-
const cfgPath = writeSshConfig(alias, block);
|
|
537
|
+
const cfgPath = writeSshConfig(alias, block, buildControlPathBlock(alias, parsed));
|
|
441
538
|
info(`SSH config written to ${cfgPath} (Host "${alias}")`);
|
|
442
539
|
// SSH option: hand over the command and stop (no editor launch).
|
|
443
540
|
if (ide === "ssh") {
|
|
@@ -447,6 +544,48 @@ export async function runConnect(token, ideOpt) {
|
|
|
447
544
|
console.log(chalk.dim(` (equivalently: ${conn.ssh_command})`));
|
|
448
545
|
return;
|
|
449
546
|
}
|
|
547
|
+
// 5b. Point this machine's Copilot Chat at the Litmus gateway (ENG-1475).
|
|
548
|
+
//
|
|
549
|
+
// ONLY ON THE NATIVE VS CODE PATH, and that is the whole reason it is here rather
|
|
550
|
+
// than in the container. VS Code reads USER-scoped config from the CLIENT machine in
|
|
551
|
+
// a Remote-SSH window, so the file hostd stages inside the container is correct and
|
|
552
|
+
// never consulted by this surface. The browser IDE is the opposite case — it runs in
|
|
553
|
+
// the container and reads hostd's copy — so configuring it from here would write a
|
|
554
|
+
// second answer to the same question. The `ssh` branch returned above: someone who
|
|
555
|
+
// asked for a terminal command should not find a VS Code config they did not ask for.
|
|
556
|
+
//
|
|
557
|
+
// Best-effort, loudly. Nothing here throws — `fetchEditorChatConfig` answers a state
|
|
558
|
+
// for every failure and the write answers `skipped` — because a Chat model we could
|
|
559
|
+
// not configure must never cost a candidate their workspace. But a SKIP is reported,
|
|
560
|
+
// because the alternative is a candidate staring at a model picker with no Litmus
|
|
561
|
+
// entry and nothing said about it.
|
|
562
|
+
//
|
|
563
|
+
// A reconnect can also arrive AFTER the session behind the entry already in the file
|
|
564
|
+
// is gone (submitted, torn down, revoked). That answer is `unconfigured`, and it has
|
|
565
|
+
// to reach the writer's removal path: leaving the entry behind leaves a dead `lwt_`
|
|
566
|
+
// bearer token in the candidate's own VS Code config. `unavailable` — we could not
|
|
567
|
+
// ask — is deliberately NOT that, and changes nothing. See EditorChatConfigResult.
|
|
568
|
+
const chat = await fetchEditorChatConfig(backendUrl, token);
|
|
569
|
+
const outcome = applyEditorChatConfig(chat);
|
|
570
|
+
if (chat.state === "configured") {
|
|
571
|
+
if (outcome.status === "written") {
|
|
572
|
+
info(`Copilot Chat model "${chat.config.model}" configured in ${outcome.path}`);
|
|
573
|
+
}
|
|
574
|
+
else if (outcome.status === "skipped") {
|
|
575
|
+
warn(`Couldn't configure the Litmus model for Copilot Chat: ${outcome.reason}`);
|
|
576
|
+
console.log(chalk.dim(" Your workspace is unaffected; the in-container AI CLIs are already signed in."));
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
else if (chat.state === "unconfigured") {
|
|
580
|
+
if (outcome.status === "written") {
|
|
581
|
+
info(`Removed the expired Litmus model from Copilot Chat (${outcome.path})`);
|
|
582
|
+
}
|
|
583
|
+
else if (outcome.status === "skipped") {
|
|
584
|
+
warn(`Couldn't remove the expired Litmus model from Copilot Chat: ${outcome.reason}`);
|
|
585
|
+
console.log(chalk.dim(" Delete the \"Litmus\" provider from VS Code's model picker if it appears."));
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
// "unchanged" on any path: there was nothing to do. Say nothing.
|
|
450
589
|
// 6. Launch native VS Code — ensuring Remote-SSH is installed first — or print
|
|
451
590
|
// how to connect if the `code` CLI is absent.
|
|
452
591
|
if (!hasCodeCli()) {
|
|
@@ -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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"}
|
package/dist/lib/api.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { InitMetadata, SubmitResult, SubmitStatus, WorkspaceConnection } from "./schemas.js";
|
|
2
|
+
import type { EditorChatConfigResult } from "./chat-model-config.js";
|
|
2
3
|
/** Error with full server response details for internal error reporting */
|
|
3
4
|
export declare class ServerError extends Error {
|
|
4
5
|
statusCode: number | undefined;
|
|
@@ -131,6 +132,23 @@ export declare function startWorkspace(backendUrl: string, token: string, sshPub
|
|
|
131
132
|
* ssh_command, healthy). `litmus connect` polls this until `healthy`.
|
|
132
133
|
*/
|
|
133
134
|
export declare function getConnection(backendUrl: string, token: string): Promise<WorkspaceConnection>;
|
|
135
|
+
/**
|
|
136
|
+
* GET /workspace/editor-chat-config — the BYOK provider for the candidate's own VS Code
|
|
137
|
+
* (ENG-1475). Never throws: Copilot Chat is an enhancement, and `litmus connect` must open
|
|
138
|
+
* the workspace whether or not it could be configured.
|
|
139
|
+
*
|
|
140
|
+
* ANSWERS IN THREE STATES, not two, and the reason is on `EditorChatConfigResult`: a
|
|
141
|
+
* response that says this candidate has no session is authority to REMOVE a stale entry
|
|
142
|
+
* from their config, and a failure to ask is authority for nothing at all. Collapsing the
|
|
143
|
+
* two into `null` is how an obsolete `lwt_` token gets left in the candidate's VS Code —
|
|
144
|
+
* or, the other way round, how a working model gets deleted because one request timed out.
|
|
145
|
+
*
|
|
146
|
+
* NEVER RETRIED and never logged. The response body carries a bearer credential, and
|
|
147
|
+
* `fetchWithRetries` records request metadata for the error reporter — so this takes the
|
|
148
|
+
* plain fetch path and its body never reaches an error object. For the same reason no
|
|
149
|
+
* `reason` below quotes the body; each is a fixed string or a status code.
|
|
150
|
+
*/
|
|
151
|
+
export declare function fetchEditorChatConfig(backendUrl: string, token: string): Promise<EditorChatConfigResult>;
|
|
134
152
|
export interface SubmitWorkspaceResult {
|
|
135
153
|
success: boolean;
|
|
136
154
|
already_submitted: boolean;
|
package/dist/lib/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACjG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAGpE,2EAA2E;AAC3E,qBAAa,WAAY,SAAQ,KAAK;IACpC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,YAAY,EAAE,MAAM,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAI9B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;IAKhC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;gBAEjB,IAAI,EAAE;QAChB,OAAO,EAAE,MAAM,CAAA;QACf,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;QAC9B,YAAY,EAAE,MAAM,CAAA;QACpB,GAAG,EAAE,MAAM,CAAA;QACX,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACxC,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/B,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB;IAaD,0EAA0E;IAC1E,IAAI,MAAM,IAAI,MAAM,CA8BnB;CACF;AAuED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAIpD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB,yEAAyE,CAAA;AAE1G;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAIjD;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,yJAAoJ,CAAA;AAElL;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,gFAAgF,CAAA;AAEjH;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAIjD;AAyFD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC,CAkCvB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,CAAC,CAS9B;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,sBAAsB,CAAC,CAuCjC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,qBAAqB,CAAC,CAwBhC;AAkCD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC,CA6DnB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC,CA8BvB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,EAAE,GAChB,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACrD,OAAO,CAAC,YAAY,CAAC,CAoIvB"}
|
package/dist/lib/api.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createReadStream, statSync } from "fs";
|
|
2
2
|
import { request as httpsRequest } from "https";
|
|
3
3
|
import { request as httpRequest } from "http";
|
|
4
|
-
import { InitMetadataSchema, SubmitResultSchema, SubmitStatusSchema, WorkspaceConnectionSchema } from "./schemas.js";
|
|
4
|
+
import { EditorChatConfigSchema, InitMetadataSchema, SubmitResultSchema, SubmitStatusSchema, WorkspaceConnectionSchema } from "./schemas.js";
|
|
5
5
|
import { CLI_VERSION } from "./version.js";
|
|
6
6
|
/** Error with full server response details for internal error reporting */
|
|
7
7
|
export class ServerError extends Error {
|
|
@@ -368,6 +368,63 @@ export async function getConnection(backendUrl, token) {
|
|
|
368
368
|
});
|
|
369
369
|
return parseWorkspaceConnection(res, rawBody, url, durationMs);
|
|
370
370
|
}
|
|
371
|
+
/**
|
|
372
|
+
* GET /workspace/editor-chat-config — the BYOK provider for the candidate's own VS Code
|
|
373
|
+
* (ENG-1475). Never throws: Copilot Chat is an enhancement, and `litmus connect` must open
|
|
374
|
+
* the workspace whether or not it could be configured.
|
|
375
|
+
*
|
|
376
|
+
* ANSWERS IN THREE STATES, not two, and the reason is on `EditorChatConfigResult`: a
|
|
377
|
+
* response that says this candidate has no session is authority to REMOVE a stale entry
|
|
378
|
+
* from their config, and a failure to ask is authority for nothing at all. Collapsing the
|
|
379
|
+
* two into `null` is how an obsolete `lwt_` token gets left in the candidate's VS Code —
|
|
380
|
+
* or, the other way round, how a working model gets deleted because one request timed out.
|
|
381
|
+
*
|
|
382
|
+
* NEVER RETRIED and never logged. The response body carries a bearer credential, and
|
|
383
|
+
* `fetchWithRetries` records request metadata for the error reporter — so this takes the
|
|
384
|
+
* plain fetch path and its body never reaches an error object. For the same reason no
|
|
385
|
+
* `reason` below quotes the body; each is a fixed string or a status code.
|
|
386
|
+
*/
|
|
387
|
+
export async function fetchEditorChatConfig(backendUrl, token) {
|
|
388
|
+
let res;
|
|
389
|
+
try {
|
|
390
|
+
res = await fetch(`${backendUrl}/workspace/editor-chat-config`, {
|
|
391
|
+
headers: authHeaders(token),
|
|
392
|
+
signal: AbortSignal.timeout(TIMEOUT_MS),
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
catch {
|
|
396
|
+
// Transport error or timeout. We learned nothing.
|
|
397
|
+
return { state: "unavailable", reason: "the workspace API could not be reached" };
|
|
398
|
+
}
|
|
399
|
+
// Includes the 404 a backend too old for this route serves. An old deployment is not a
|
|
400
|
+
// statement that this candidate has no AI session, so it must not delete one.
|
|
401
|
+
if (!res.ok)
|
|
402
|
+
return { state: "unavailable", reason: `the workspace API returned ${res.status}` };
|
|
403
|
+
let body;
|
|
404
|
+
try {
|
|
405
|
+
body = await res.json();
|
|
406
|
+
}
|
|
407
|
+
catch {
|
|
408
|
+
return { state: "unavailable", reason: "the workspace API sent a response that was not JSON" };
|
|
409
|
+
}
|
|
410
|
+
const parsed = EditorChatConfigSchema.safeParse(body);
|
|
411
|
+
if (!parsed.success) {
|
|
412
|
+
return { state: "unavailable", reason: "the workspace API sent an unrecognised response" };
|
|
413
|
+
}
|
|
414
|
+
// The authoritative "no AI for this candidate" — an unminted, revoked or expired session.
|
|
415
|
+
if (!parsed.data.configured)
|
|
416
|
+
return { state: "unconfigured" };
|
|
417
|
+
const { url, model, token: chatToken } = parsed.data;
|
|
418
|
+
// All three or nothing: a partial config yields a provider entry VS Code would drop on
|
|
419
|
+
// startup anyway, and a URL with no credential is a model that 401s on first use — a
|
|
420
|
+
// Litmus model in the picker that fails is worse than an absent one. UNAVAILABLE rather
|
|
421
|
+
// than unconfigured: the server claimed a session exists, so this is a malformed answer,
|
|
422
|
+
// not permission to throw away a config that may still be good.
|
|
423
|
+
if (!url || !model || !chatToken) {
|
|
424
|
+
return { state: "unavailable", reason: "the workspace API reported a session with fields missing" };
|
|
425
|
+
}
|
|
426
|
+
return { state: "configured", config: { url, model, token: chatToken } };
|
|
427
|
+
}
|
|
371
428
|
/**
|
|
372
429
|
* POST /workspace/submit — finalize the v2 workspace: the backend snapshots the
|
|
373
430
|
* container's live filesystem (capture_workspace_zip, provider-agnostic), tears
|
package/dist/lib/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,OAAO,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,MAAM,CAAA;AAI7C,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAG5I,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,2EAA2E;AAC3E,MAAM,OAAO,WAAY,SAAQ,KAAK;IAiBpC,YAAY,IAUX;QACC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAA;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;QACrC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QACnB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,EAAE,CAAA;QACjD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAA;QAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;IACjC,CAAC;IAED,0EAA0E;IAC1E,IAAI,MAAM;QACR,MAAM,KAAK,GAAa,EAAE,CAAA;QAE1B,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QAC9B,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,IAAI,SAAS,EAAE,CAAC,CAAA;QAErD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA;QAC9C,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC1B,CAAC;QAED,6EAA6E;QAC7E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAA;QACtF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACjC,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI;gBAC/C,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,iBAAiB;gBACtD,CAAC,CAAC,IAAI,CAAC,YAAY,CAAA;YACrB,KAAK,CAAC,IAAI,CAAC,qBAAqB,SAAS,EAAE,CAAC,CAAA;QAC9C,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;CACF;AAED,MAAM,UAAU,GAAG,KAAM,CAAA,CAAC,qCAAqC;AAE/D,kFAAkF;AAClF,oFAAoF;AACpF,+EAA+E;AAC/E,oFAAoF;AACpF,mFAAmF;AACnF,mFAAmF;AACnF,sEAAsE;AACtE,EAAE;AACF,kFAAkF;AAClF,oFAAoF;AACpF,qFAAqF;AACrF,4CAA4C;AAC5C,EAAE;AACF,uFAAuF;AACvF,8EAA8E;AAC9E,8EAA8E;AAC9E,gEAAgE;AAChE,iFAAiF;AACjF,+EAA+E;AAC/E,8EAA8E;AAC9E,kCAAkC;AAClC,EAAE;AACF,iFAAiF;AACjF,sFAAsF;AACtF,oFAAoF;AACpF,iFAAiF;AACjF,MAAM,mBAAmB,GAAG,KAAM,CAAA,CAAI,kCAAkC;AACxE,MAAM,mBAAmB,GAAG,MAAO,CAAA,CAAG,2CAA2C;AACjF,mFAAmF;AACnF,sEAAsE;AACtE,MAAM,0BAA0B,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,KAAM,CAAA;AACrF,MAAM,cAAc,GAAG,CAAC,CAAA;AACxB,MAAM,aAAa,GAAG,GAAG,CAAA;AACzB,MAAM,YAAY,GAAG,IAAI,CAAA;AAEzB,gFAAgF;AAChF,6EAA6E;AAC7E,wEAAwE;AAExE;;;;;;;;;;;;;;GAcG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc;IACtD,cAAc,EAAE,aAAa,EAAE,WAAW;CAC3C,CAAC,CAAA;AAEF,SAAS,gBAAgB,CAAC,GAAY;IACpC,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACzC,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,IAAI,CAAA;IACzE,MAAM,KAAK,GAAI,GAAsC,CAAC,KAAK,CAAA;IAC3D,MAAM,IAAI,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IACxE,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AAC9D,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,IAAI,GAAG,YAAY,WAAW;QAAE,OAAO,KAAK,CAAA;IAC5C,IAAI,gBAAgB,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACtC,OAAO,GAAG,YAAY,KAAK,IAAI,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAClF,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,sEAAsE,CAAA;AAE1G;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,IAAI,CAAC,CAAC,GAAG,YAAY,WAAW,CAAC;QAAE,OAAO,KAAK,CAAA;IAC/C,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG;QAAE,OAAO,IAAI,CAAA;IACvC,OAAO,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,eAAe,CAAA;AAChE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,iJAAiJ,CAAA;AAElL;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,6EAA6E,CAAA;AAEjH;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,IAAI,cAAc,CAAC,GAAG,CAAC;QAAE,OAAO,oBAAoB,CAAA;IACpD,IAAI,WAAW,CAAC,GAAG,CAAC;QAAE,OAAO,iBAAiB,CAAA;IAC9C,OAAO,oBAAoB,CAAA;AAC7B,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,oEAAoE;IACpE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,IAAI,OAAO,EAAE,YAAY,CAAC,CAAA;IACjE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAA;AACxD,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAC9C,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,EAAyE;IAEzE,IAAI,OAAgB,CAAA;IACpB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,cAAc,EAAE,OAAO,EAAE,EAAE,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAA;YACzB,sEAAsE;YACtE,uEAAuE;YACvE,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC;gBAC7D,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;gBAC/B,SAAQ;YACV,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,GAAG,GAAG,CAAA;YACb,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC;gBAC1D,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;gBAC/B,SAAQ;YACV,CAAC;YACD,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IACD,uEAAuE;IACvE,wEAAwE;IACxE,IAAI,OAAO;QAAE,MAAM,OAAO,CAAA;IAC1B,OAAO,EAAE,EAAE,CAAA;AACb,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,GAAW,EACX,IAAiB;IAEjB,OAAO,WAAW,CAAC,KAAK,IAAI,EAAE;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;QACrC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;QAChC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA;IACrC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,IAA6B;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAC1B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClD,MAAM,IAAI,GAAI,MAAkC,CAAC,KAAK,CAAA;QACtD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAA;IAC3C,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,KAAK,CAAA;IACrD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,MAAM,OAAO,GAA2B;QACtC,eAAe,EAAE,UAAU,KAAK,EAAE;QAClC,sBAAsB,EAAE,WAAW;KACpC,CAAA;IACD,+DAA+D;IAC/D,0EAA0E;IAC1E,0EAA0E;IAC1E,sDAAsD;IACtD,6EAA6E;IAC7E,4EAA4E;IAC5E,4EAA4E;IAC5E,+BAA+B;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAA;IACnD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,4BAA4B,CAAC,GAAG,MAAM,CAAA;IAChD,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAe,EACf,KAAa;IAEb,MAAM,GAAG,GAAG,GAAG,OAAO,eAAe,CAAA;IACrC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;QAC/D,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC;QAC3B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;KACxC,CAAC,CAAA;IACF,IAAI,IAAI,GAA4B,EAAE,CAAA;IACtC,IAAI,CAAC;QAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IAEtF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,OAAO,GAAI,IAAI,CAAC,OAAkB,IAAK,IAAI,CAAC,KAAgB,IAAI,mBAAmB,GAAG,CAAC,MAAM,EAAE,CAAA;QACrG,MAAM,IAAI,WAAW,CAAC;YACpB,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG;YAC3D,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1D,UAAU;YACV,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC;SAClC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAI,GAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChG,MAAM,IAAI,WAAW,CAAC;YACpB,qFAAqF;YACrF,qFAAqF;YACrF,mFAAmF;YACnF,oFAAoF;YACpF,OAAO,EAAE,4DAA4D;YACrE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,mBAAmB,MAAM,EAAE,EAAE,GAAG;YAChF,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1D,UAAU;SACX,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAkB,EAClB,KAAa,EACb,SAAiB;IAEjB,MAAM,GAAG,GAAG,GAAG,UAAU,kBAAkB,CAAA;IAC3C,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;QAC/D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE;QACtE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;QAC/C,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,0BAA0B,CAAC;KACxD,CAAC,CAAA;IACF,OAAO,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAkB,EAClB,KAAa;IAEb,MAAM,GAAG,GAAG,GAAG,UAAU,uBAAuB,CAAA;IAChD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;QAC/D,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC;QAC3B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;KACxC,CAAC,CAAA;IACF,OAAO,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;AAChE,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,UAAkB,EAClB,KAAa;IAEb,IAAI,GAAa,CAAA;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,+BAA+B,EAAE;YAC9D,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC;YAC3B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;SACxC,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,kDAAkD;QAClD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,wCAAwC,EAAE,CAAA;IACnF,CAAC;IACD,uFAAuF;IACvF,8EAA8E;IAC9E,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,8BAA8B,GAAG,CAAC,MAAM,EAAE,EAAE,CAAA;IAEhG,IAAI,IAAa,CAAA;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,qDAAqD,EAAE,CAAA;IAChG,CAAC;IACD,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACrD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,iDAAiD,EAAE,CAAA;IAC5F,CAAC;IAED,0FAA0F;IAC1F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAA;IAE7D,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,IAAI,CAAA;IACpD,uFAAuF;IACvF,qFAAqF;IACrF,wFAAwF;IACxF,yFAAyF;IACzF,gEAAgE;IAChE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;QACjC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,0DAA0D,EAAE,CAAA;IACrG,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAA;AAC1E,CAAC;AAQD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAkB,EAClB,KAAa;IAEb,MAAM,GAAG,GAAG,GAAG,UAAU,mBAAmB,CAAA;IAC5C,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;QAC/D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE;QACtE,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;KACxC,CAAC,CAAA;IACF,IAAI,IAAI,GAA4B,EAAE,CAAA;IACtC,IAAI,CAAC;QAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IACtF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;QAC3E,MAAM,IAAI,WAAW,CAAC;YACpB,OAAO,EAAG,IAAI,CAAC,OAAkB,IAAI,SAAS,IAAI,mBAAmB,GAAG,CAAC,MAAM,EAAE;YACjF,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG;YAClD,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1D,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,SAAS;SAC3D,CAAC,CAAA;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI;QAC9B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,KAAK,IAAI;QAClD,YAAY,EAAE,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI;KAC/E,CAAA;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,GAAa,EACb,OAAe,EACf,GAAW,EACX,UAAkB;IAElB,IAAI,IAAI,GAA4B,EAAE,CAAA;IACtC,IAAI,CAAC;QAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IACtF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,8EAA8E;QAC9E,+EAA+E;QAC/E,6DAA6D;QAC7D,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;QAC3E,MAAM,OAAO,GAAI,IAAI,CAAC,OAAkB,IAAI,SAAS,IAAK,IAAI,CAAC,KAAgB,IAAI,mBAAmB,GAAG,CAAC,MAAM,EAAE,CAAA;QAClH,MAAM,IAAI,WAAW,CAAC;YACpB,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG;YAC3D,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1D,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,SAAS;SAC3D,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,CAAC;QACH,OAAO,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAI,GAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChG,MAAM,IAAI,WAAW,CAAC;YACpB,OAAO,EAAE,+FAA+F;YACxG,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,mBAAmB,MAAM,EAAE,EAAE,GAAG;YAChF,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,UAAU;SACvE,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,KAAa;IAEb,MAAM,GAAG,GAAG,GAAG,OAAO,mBAAmB,CAAA;IACzC,wEAAwE;IACxE,uEAAuE;IACvE,wEAAwE;IACxE,+DAA+D;IAC/D,IAAI,OAAgB,CAAA;IACpB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,cAAc,EAAE,OAAO,EAAE,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,IAAI,CAAC;YACH,qEAAqE;YACrE,iEAAiE;YACjE,kEAAkE;YAClE,+DAA+D;YAC/D,qEAAqE;YACrE,oEAAoE;YACpE,yCAAyC;YACzC,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAA;YACzC,MAAM,WAAW,GAAG,UAAU,CAC5B,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,6CAA6C,EAAE,cAAc,CAAC,CAAC,EACxG,UAAU,CACX,CAAA;YACD,IAAI,GAAa,CAAA;YACjB,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBACrB,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC;oBAC3B,MAAM,EAAE,WAAW,CAAC,MAAM;iBAC3B,CAAC,CAAA;YACJ,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,WAAW,CAAC,CAAA;YAC3B,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;YACrC,IAAI,GAAG,CAAC,EAAE;gBAAE,OAAO,GAAG,CAAA;YACtB,yEAAyE;YACzE,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC;gBACtD,IAAI,CAAC;oBAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBACpD,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;gBAC/B,SAAQ;YACV,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YAChC,IAAI,IAAI,GAA4B,EAAE,CAAA;YACtC,IAAI,CAAC;gBAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;YACtF,MAAM,OAAO,GAAI,IAAI,CAAC,OAAkB,IAAK,IAAI,CAAC,KAAgB,IAAI,mBAAmB,GAAG,CAAC,MAAM,EAAE,CAAA;YACrG,MAAM,IAAI,WAAW,CAAC;gBACpB,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG;gBAC3D,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC1D,UAAU;gBACV,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC;aAClC,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,GAAG,GAAG,CAAA;YACb,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC;gBAC1D,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;gBAC/B,SAAQ;YACV,CAAC;YACD,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IACD,6EAA6E;IAC7E,iCAAiC;IACjC,MAAM,OAAO,IAAI,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,UAAkB,EAClB,KAAa;IAEb,MAAM,GAAG,GAAG,GAAG,UAAU,aAAa,CAAA;IACtC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;QAC/D,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC;QAC3B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;KACxC,CAAC,CAAA;IACF,IAAI,IAAI,GAA4B,EAAE,CAAA;IACtC,IAAI,CAAC;QAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IAEtF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,OAAO,GAAI,IAAI,CAAC,OAAkB,IAAK,IAAI,CAAC,KAAgB,IAAI,mBAAmB,GAAG,CAAC,MAAM,EAAE,CAAA;QACrG,MAAM,IAAI,WAAW,CAAC;YACpB,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG;YAC3D,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1D,UAAU;YACV,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC;SAClC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAI,GAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChG,MAAM,IAAI,WAAW,CAAC;YACpB,OAAO,EAAE,qGAAqG;YAC9G,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,mBAAmB,MAAM,EAAE,EAAE,GAAG;YAChF,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1D,UAAU;SACX,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,UAAkB,EAClB,KAAa,EACb,MAAiB;IAEjB,MAAM,GAAG,GAAG,GAAG,UAAU,eAAe,CAAA;IACxC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;QAC/D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE;QACtE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QAChC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;KACxC,CAAC,CAAA;IACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,IAAI,IAAI,GAA4B,EAAE,CAAA;QACtC,IAAI,CAAC;YAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;YAC7D,CAAC,CAAG,MAAkC,CAAC,OAA8B;YACrE,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;QACnD,MAAM,IAAI,WAAW,CAAC;YACpB,OAAO,EAAE,SAAS,IAAK,IAAI,CAAC,OAAkB,IAAK,IAAI,CAAC,KAAgB,IAAI,mBAAmB,GAAG,CAAC,MAAM,EAAE;YAC3G,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG;YAClD,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1D,UAAU;YACV,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;SACvF,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,UAAkB,EAClB,KAAa,EACb,OAAe,EACf,QAAgB,EAChB,UAAsD;IAEtD,MAAM,GAAG,GAAG,GAAG,UAAU,aAAa,CAAA;IACtC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAA;IAEvC,MAAM,QAAQ,GAAG,aAAa,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAC3B,KAAK,QAAQ,8DAA8D,QAAQ,4CAA4C,CAChI,CAAA;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,QAAQ,QAAQ,CAAC,CAAA;IACxD,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAA;IAEhE,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAA;IAChC,MAAM,UAAU,GAAG,CAAC,QAAQ,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAExD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAA;QAC1E,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,iCAAiC,QAAQ,EAAE;gBAC3D,gBAAgB,EAAE,SAAS,CAAC,QAAQ,EAAE;gBACtC,GAAG,WAAW,CAAC,KAAK,CAAC;aACtB;YACD,OAAO,EAAE,MAAO,EAAE,mBAAmB;SACtC,EAAE,CAAC,GAAG,EAAE,EAAE;YACT,uEAAuE;YACvE,wEAAwE;YACxE,sEAAsE;YACtE,MAAM,MAAM,GAAa,EAAE,CAAA;YAC3B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;YACzD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;gBACnD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;gBACrC,MAAM,UAAU,GAA2B,EAAE,CAAA;gBAC7C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACjD,IAAI,OAAO,CAAC,KAAK,QAAQ;wBAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;yBACvC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACzD,CAAC;gBACD,MAAM,MAAM,GAAG,EAAE,eAAe,EAAE,GAAG,UAAU,KAAK,EAAE,CAAA;gBAEtD,8DAA8D;gBAC9D,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,WAAW,CAAC;wBACrB,OAAO,EAAE,wHAAwH;wBACjI,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS;wBACnD,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM;qBAChD,CAAC,CAAC,CAAA;oBACH,OAAM;gBACR,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAA;oBACxD,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;wBAC5C,yDAAyD;wBACzD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAsD,CAAA;wBAC1E,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;4BAC7D,CAAC,CAAE,MAAM,CAAC,OAAkB,IAAK,MAAM,CAAC,KAAgB;4BACxD,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;wBACnD,MAAM,OAAO,GAAG,SAAS,IAAK,IAAI,CAAC,OAAkB,IAAK,IAAI,CAAC,KAAgB,IAAI,mBAAmB,GAAG,CAAC,UAAU,EAAE,CAAA;wBACtH,0DAA0D;wBAC1D,gEAAgE;wBAChE,2DAA2D;wBAC3D,MAAM,YAAY,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;4BAChE,CAAC,CAAE,MAAM,CAAC,YAAmC;4BAC7C,CAAC,CAAC,SAAS,CAAA;wBACb,MAAM,CAAC,IAAI,WAAW,CAAC;4BACrB,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS;4BACvE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY;4BAC7D,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC;yBAClC,CAAC,CAAC,CAAA;oBACL,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC;4BACH,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;wBACzC,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,MAAM,MAAM,GAAI,GAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;4BAChG,MAAM,CAAC,IAAI,WAAW,CAAC;gCACrB,OAAO,EAAE,2HAA2H;gCACpI,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,IAAI,mBAAmB,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS;gCAC5F,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM;6BAChD,CAAC,CAAC,CAAA;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,CAAC,IAAI,WAAW,CAAC;wBACrB,OAAO,EAAE,qCAAqC,GAAG,CAAC,UAAU,GAAG;wBAC/D,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS;wBAC9D,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM;qBAChD,CAAC,CAAC,CAAA;gBACL,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACpB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;YACrC,MAAM,CAAC,IAAI,WAAW,CAAC;gBACrB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS;gBACvD,UAAU,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,GAAG,UAAU,KAAK,EAAE,YAAY,EAAG,CAA2B,CAAC,IAAI,IAAI,SAAS,EAAE;aAC1H,CAAC,CAAC,CAAA;QACL,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACrB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;YACrC,GAAG,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC;gBAC1B,OAAO,EAAE,kBAAkB;gBAC3B,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS;gBACvD,UAAU,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,GAAG,UAAU,KAAK,EAAE;aAC5D,CAAC,CAAC,CAAA;QACL,CAAC,CAAC,CAAA;QAEF,yBAAyB;QACzB,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACpB,IAAI,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAA;QAE/B,uDAAuD;QACvD,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;QAC1E,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE;YAC/C,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAA;YAC/E,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;YACjC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,UAAU,CAAC,KAAK,EAAE,CAAA;gBAClB,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;YAC9C,CAAC;QACH,CAAC,CAAC,CAAA;QACF,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACxB,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACpB,CAAC,CAAC,CAAA;QACF,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,GAAG,CAAC,OAAO,EAAE,CAAA;YACb,MAAM,CAAC,GAAG,CAAC,CAAA;QACb,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Point the candidate's own VS Code Copilot Chat at the Litmus gateway (ENG-1475).
|
|
3
|
+
*
|
|
4
|
+
* ## Why this is written on the LAPTOP and not in the container
|
|
5
|
+
*
|
|
6
|
+
* hostd already stages a `chatLanguageModels.json` into each editor data root inside the
|
|
7
|
+
* container, and for the browser IDE that is the right place. It cannot work for native
|
|
8
|
+
* VS Code: in a Remote-SSH window VS Code reads USER-scoped configuration from the CLIENT
|
|
9
|
+
* machine and only the `Machine` folder from the server, so the in-container file is
|
|
10
|
+
* correct and simply never consulted. `litmus connect` is already the thing that writes to
|
|
11
|
+
* the candidate's own machine — it writes `~/.ssh/config` — so the config goes in beside
|
|
12
|
+
* it, at the same moment, from the same command.
|
|
13
|
+
*
|
|
14
|
+
* ## Why the credential rides in a header of ours
|
|
15
|
+
*
|
|
16
|
+
* A literal `apiKey` in this file is NOT transmitted: VS Code keeps that value in secret
|
|
17
|
+
* storage behind an `${input:…}` reference, and no file can populate secret storage. The
|
|
18
|
+
* extension's own escape hatch is per-model `requestHeaders`, which drops 36 reserved
|
|
19
|
+
* names — `authorization` and `api-key` among them. No CUSTOM name is reserved, so
|
|
20
|
+
* `X-Litmus-Token` passes through, and `backend/api/openai_proxy.py` accepts it as a
|
|
21
|
+
* second carrier for exactly this reason.
|
|
22
|
+
*
|
|
23
|
+
* MEASURED, not inferred: a real Chat request through the shipped extension (0.63.0)
|
|
24
|
+
* arrived at a listener carrying `x-litmus-token` intact, with `proxy-*`, `sec-*` and
|
|
25
|
+
* `host` overrides dropped as the extension documents.
|
|
26
|
+
*
|
|
27
|
+
* ## Why every write here merges
|
|
28
|
+
*
|
|
29
|
+
* This is the candidate's REAL VS Code configuration, on their own machine, and they may
|
|
30
|
+
* have added their own providers through Chat's "New Model" UI. Replacing the document
|
|
31
|
+
* would delete configuration that was never ours. So: read what is there, update or insert
|
|
32
|
+
* our one entry, write everything else back untouched — and when the file cannot be read
|
|
33
|
+
* back as a list of providers, refuse to touch it at all rather than flatten it.
|
|
34
|
+
*/
|
|
35
|
+
/** The three fields the gateway hands us. `token` is a bearer credential. */
|
|
36
|
+
export interface ChatByokConfig {
|
|
37
|
+
url: string;
|
|
38
|
+
model: string;
|
|
39
|
+
token: string;
|
|
40
|
+
}
|
|
41
|
+
export declare const CHAT_LM_VENDOR = "customendpoint";
|
|
42
|
+
export declare const LITMUS_PROVIDER_NAME = "Litmus";
|
|
43
|
+
export declare const LITMUS_TOKEN_HEADER = "X-Litmus-Token";
|
|
44
|
+
export declare const GATEWAY_PATH_MARK = "/proxy/openai/";
|
|
45
|
+
/** The document could not be read back as a list of providers, so its contents cannot be
|
|
46
|
+
* preserved across a merge. The caller's only correct response is to leave the file alone. */
|
|
47
|
+
export declare class ChatConfigUnreadable extends Error {
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Where VS Code keeps USER-scoped configuration, per platform. Stable VS Code only, which
|
|
51
|
+
* matches the rest of `connect`: it probes and launches `code`, so Insiders (`code-insiders`,
|
|
52
|
+
* `Code - Insiders`) is not a surface this flow reaches, and writing a file for an editor we
|
|
53
|
+
* never open would be a config the candidate cannot account for.
|
|
54
|
+
*
|
|
55
|
+
* Returns null when the platform's own location cannot be determined — on Windows that is a
|
|
56
|
+
* missing %APPDATA%, which is not a path worth guessing at.
|
|
57
|
+
*/
|
|
58
|
+
export declare function vsCodeUserDir(platform?: NodeJS.Platform, env?: NodeJS.ProcessEnv, home?: string): string | null;
|
|
59
|
+
/** The full path to the file this module owns one entry in. */
|
|
60
|
+
export declare function chatModelConfigPath(platform?: NodeJS.Platform, env?: NodeJS.ProcessEnv, home?: string): string | null;
|
|
61
|
+
/**
|
|
62
|
+
* Our provider entry.
|
|
63
|
+
*
|
|
64
|
+
* EVERY MODEL FIELD IS POPULATED, and that is not tidiness: VS Code rewrites this file on
|
|
65
|
+
* startup and DROPS provider entries whose models are incomplete, so a half-filled model
|
|
66
|
+
* does not degrade — the whole entry vanishes and the candidate sees no Litmus model at all.
|
|
67
|
+
*
|
|
68
|
+
* The display name is derived from the model id rather than being a second constant, so it
|
|
69
|
+
* cannot drift from the id the server actually sent. It matches hostd's `Litmus (gpt-4o)`
|
|
70
|
+
* for the default model, for the reason given on LITMUS_PROVIDER_NAME.
|
|
71
|
+
*/
|
|
72
|
+
export declare function buildProviderEntry(cfg: ChatByokConfig): Record<string, unknown>;
|
|
73
|
+
/**
|
|
74
|
+
* Is this one provider entry the one Litmus manages? Three legs, each load-bearing — the
|
|
75
|
+
* same test hostd applies in the container, for the same reasons:
|
|
76
|
+
*
|
|
77
|
+
* * VENDOR alone is not enough: `customendpoint` is the id EVERY OpenAI-compatible
|
|
78
|
+
* provider registers under, so a candidate's own endpoint carries it too.
|
|
79
|
+
* * NAME alone is not enough either, and this is the subtle one: `name` is the picker's
|
|
80
|
+
* display label and nothing stops a candidate typing "Litmus" into it. On its own it
|
|
81
|
+
* would hand us their entry to overwrite.
|
|
82
|
+
* * So the URL has to agree as well. An entry is ours only if EVERY model in it points at
|
|
83
|
+
* the Litmus gateway. A candidate's provider called "Litmus" that dials their own Ollama
|
|
84
|
+
* fails this leg, is not ours, and is preserved untouched.
|
|
85
|
+
*
|
|
86
|
+
* Anything unrecognisable answers false and is therefore preserved: a non-object member, an
|
|
87
|
+
* entry with no models, a model with no url. We only ever claim what we can positively
|
|
88
|
+
* identify as ours.
|
|
89
|
+
*/
|
|
90
|
+
export declare function isLitmusEntry(item: unknown): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* The new file contents: `entry` upserted into `existing`, everything else preserved.
|
|
93
|
+
*
|
|
94
|
+
* Pure (content in, content out) so the merge is unit-testable without touching a real
|
|
95
|
+
* VS Code install — the merge is the part of this module that can destroy something.
|
|
96
|
+
*
|
|
97
|
+
* OUR ENTRY KEEPS ITS POSITION when it already exists, so a re-run does not shuffle the
|
|
98
|
+
* candidate's picker order. Any DUPLICATE Litmus entries collapse into that one slot: two
|
|
99
|
+
* would both be ours by the test above, and leaving the extras would mean the next run kept
|
|
100
|
+
* re-finding them.
|
|
101
|
+
*
|
|
102
|
+
* Passing `entry: null` REMOVES our entry and leaves the rest of the document — for the
|
|
103
|
+
* case where there is no longer a credential to write. Removing the file instead would take
|
|
104
|
+
* the candidate's own providers with it.
|
|
105
|
+
*
|
|
106
|
+
* Throws ChatConfigUnreadable for anything whose entries we could not enumerate: content
|
|
107
|
+
* that is not JSON, or JSON that is not an array. A file with no content at all (empty or
|
|
108
|
+
* whitespace) is NOT one of those — it demonstrably holds no entries, so writing over it
|
|
109
|
+
* preserves everything there was to preserve.
|
|
110
|
+
*/
|
|
111
|
+
export declare function upsertChatProviders(existing: string, entry: Record<string, unknown> | null): string;
|
|
112
|
+
/**
|
|
113
|
+
* Does this document already hold an entry this module owns?
|
|
114
|
+
*
|
|
115
|
+
* Only the removal path needs this — "is there anything of ours to take out" — so a
|
|
116
|
+
* document it cannot parse answers false rather than throwing: the caller runs the merge
|
|
117
|
+
* first, and the merge is what refuses an unreadable file.
|
|
118
|
+
*/
|
|
119
|
+
export declare function containsLitmusEntry(existing: string): boolean;
|
|
120
|
+
export type ChatConfigOutcome =
|
|
121
|
+
/** The file on disk now holds exactly what this module intended. */
|
|
122
|
+
{
|
|
123
|
+
status: "written";
|
|
124
|
+
path: string;
|
|
125
|
+
}
|
|
126
|
+
/** There was nothing to do, and nothing was touched. Not a failure — say nothing. */
|
|
127
|
+
| {
|
|
128
|
+
status: "unchanged";
|
|
129
|
+
reason: string;
|
|
130
|
+
}
|
|
131
|
+
/** We could not act. The file is exactly as we found it, and the reason is worth saying. */
|
|
132
|
+
| {
|
|
133
|
+
status: "skipped";
|
|
134
|
+
reason: string;
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Write the provider into the candidate's VS Code config, merging with what is there.
|
|
138
|
+
*
|
|
139
|
+
* ATOMIC, via a temp file in the same directory plus a rename. The obvious write — open,
|
|
140
|
+
* truncate, write — has a window in which the file on disk is half a document, and this is
|
|
141
|
+
* the candidate's live editor configuration: a machine that slept or a `litmus connect` that
|
|
142
|
+
* was Ctrl-C'd in that window would leave a truncated file, which the next run would
|
|
143
|
+
* correctly refuse to touch, permanently costing them their Chat configuration. `rename` is
|
|
144
|
+
* atomic within a filesystem, and the temp lives in the same directory precisely so it is
|
|
145
|
+
* the same filesystem.
|
|
146
|
+
*
|
|
147
|
+
* MODE 0600, unlike hostd's copy of this file. That one carries no credential and has to be
|
|
148
|
+
* readable by a different uid; this one carries the candidate's bearer token and is read by
|
|
149
|
+
* VS Code running as the candidate themself, so the narrower mode is both correct and free.
|
|
150
|
+
*
|
|
151
|
+
* Never throws. Every failure — an unreadable existing document, an unwritable directory, a
|
|
152
|
+
* platform whose config dir we cannot locate — answers `skipped` with a reason, because a
|
|
153
|
+
* Chat model we could not configure must never cost a candidate their workspace.
|
|
154
|
+
*
|
|
155
|
+
* `cfg: null` takes the REMOVAL path (see `upsertChatProviders`), and answers `unchanged`
|
|
156
|
+
* when the document holds no entry of ours: there is a difference between "we took the
|
|
157
|
+
* stale entry out" and "there was never one", and only the first is worth telling the
|
|
158
|
+
* candidate about or worth touching their file for.
|
|
159
|
+
*/
|
|
160
|
+
export declare function writeChatModelConfig(cfg: ChatByokConfig | null, cfgPath?: string | null): ChatConfigOutcome;
|
|
161
|
+
/**
|
|
162
|
+
* What the server said about this candidate's Chat credential — THREE answers, not two.
|
|
163
|
+
*
|
|
164
|
+
* The distinction is the whole point of this type. `litmus connect` re-runs on every
|
|
165
|
+
* reconnect, and by then the session that minted the token in the file may be gone: the
|
|
166
|
+
* candidate submitted, the workspace was torn down, the mint was revoked. Leaving the entry
|
|
167
|
+
* behind leaves a dead `lwt_` bearer credential sitting in the candidate's own VS Code
|
|
168
|
+
* configuration, and a Litmus model in their picker that 401s when they select it.
|
|
169
|
+
*
|
|
170
|
+
* So an authoritative "this candidate has no AI session" has to reach the writer's removal
|
|
171
|
+
* path. But the opposite mistake is worse: deleting a WORKING configuration because one
|
|
172
|
+
* request timed out costs a candidate their model mid-assessment, for no reason at all. A
|
|
173
|
+
* failure to ask is not an answer, so it gets its own state and changes nothing.
|
|
174
|
+
*
|
|
175
|
+
* Only a response we actually read and understood is authority. A transport error, a
|
|
176
|
+
* timeout, a non-2xx (including the 404 an older backend serves for a route it does not
|
|
177
|
+
* have), a body that is not JSON, a body that does not parse, and a `configured: true`
|
|
178
|
+
* missing its fields are all `unavailable`: we could not establish what is true.
|
|
179
|
+
*/
|
|
180
|
+
export type EditorChatConfigResult = {
|
|
181
|
+
state: "configured";
|
|
182
|
+
config: ChatByokConfig;
|
|
183
|
+
} | {
|
|
184
|
+
state: "unconfigured";
|
|
185
|
+
} | {
|
|
186
|
+
state: "unavailable";
|
|
187
|
+
reason: string;
|
|
188
|
+
};
|
|
189
|
+
/**
|
|
190
|
+
* Turn what the server said into what happens to the file. The whole decision, in one
|
|
191
|
+
* place, so it can be exercised against a real file without a network or a VS Code.
|
|
192
|
+
*
|
|
193
|
+
* `unavailable` is the one that must not touch anything — see the type above.
|
|
194
|
+
*/
|
|
195
|
+
export declare function applyEditorChatConfig(result: EditorChatConfigResult, cfgPath?: string | null): ChatConfigOutcome;
|
|
196
|
+
//# sourceMappingURL=chat-model-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-model-config.d.ts","sourceRoot":"","sources":["../../src/lib/chat-model-config.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,6EAA6E;AAC7E,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAID,eAAO,MAAM,cAAc,mBAAmB,CAAA;AAU9C,eAAO,MAAM,oBAAoB,WAAW,CAAA;AAK5C,eAAO,MAAM,mBAAmB,mBAAmB,CAAA;AAOnD,eAAO,MAAM,iBAAiB,mBAAmB,CAAA;AAEjD;+FAC+F;AAC/F,qBAAa,oBAAqB,SAAQ,KAAK;CAAG;AAoBlD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,GAAE,MAAqB,GAC1B,MAAM,GAAG,IAAI,CAcf;AAED,+DAA+D;AAC/D,wBAAgB,mBAAmB,CACjC,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,GAAE,MAAqB,GAC1B,MAAM,GAAG,IAAI,CAGf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqB/E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAYpD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,CA8BnG;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAQ7D;AAED,MAAM,MAAM,iBAAiB;AAC3B,oEAAoE;AAClE;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACrC,qFAAqF;GACnF;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACzC,4FAA4F;GAC1F;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEzC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,cAAc,GAAG,IAAI,EAC1B,OAAO,GAAE,MAAM,GAAG,IAA4B,GAC7C,iBAAiB,CA0DnB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,sBAAsB,GAC9B;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,GAC/C;IAAE,KAAK,EAAE,cAAc,CAAA;CAAE,GACzB;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5C;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,sBAAsB,EAC9B,OAAO,GAAE,MAAM,GAAG,IAA4B,GAC7C,iBAAiB,CAGnB"}
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
import { randomBytes } from "crypto";
|
|
2
|
+
import os from "os";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import { existsSync, mkdirSync, openSync, writeSync, fsyncSync, closeSync, readFileSync, renameSync, unlinkSync } from "fs";
|
|
5
|
+
// The vendor the Copilot extension contributes for OpenAI-compatible endpoints. NOT a name
|
|
6
|
+
// we chose: core rejects an entry whose vendor is not a registered provider id.
|
|
7
|
+
export const CHAT_LM_VENDOR = "customendpoint";
|
|
8
|
+
// The provider label in Chat's model picker, and one leg of the ownership test below.
|
|
9
|
+
//
|
|
10
|
+
// DELIBERATELY IDENTICAL to hostd's `_CHAT_LM_PROVIDER_NAME`. A candidate can open the
|
|
11
|
+
// browser IDE (configured by hostd, in the container) and native VS Code (configured here,
|
|
12
|
+
// on the laptop) in the same assessment; two names for one gateway would read as two
|
|
13
|
+
// different models, and the platform's output is a COMPARATIVE grade, so "which model did
|
|
14
|
+
// they use" must have exactly one answer. Changing it here without changing it there also
|
|
15
|
+
// breaks recognition: an entry written by the other writer would stop being seen as ours.
|
|
16
|
+
export const LITMUS_PROVIDER_NAME = "Litmus";
|
|
17
|
+
// The header the gateway accepts as an alternative to `Authorization`. Must stay in sync
|
|
18
|
+
// with `CANDIDATE_TOKEN_HEADER` in backend/api/openai_proxy.py — matched case-insensitively
|
|
19
|
+
// there, as HTTP header names are.
|
|
20
|
+
export const LITMUS_TOKEN_HEADER = "X-Litmus-Token";
|
|
21
|
+
// The path segment every Litmus-gateway OpenAI-wire URL carries, and the third leg of the
|
|
22
|
+
// ownership test. RECOGNITION ONLY — the url we WRITE always comes from the server, and
|
|
23
|
+
// this must never be used to build one. Deliberately the route FAMILY rather than the model
|
|
24
|
+
// or the full URL, so an entry we wrote for an earlier session (different host, different
|
|
25
|
+
// model) is still recognised as ours instead of being left behind beside a second "Litmus".
|
|
26
|
+
export const GATEWAY_PATH_MARK = "/proxy/openai/";
|
|
27
|
+
/** The document could not be read back as a list of providers, so its contents cannot be
|
|
28
|
+
* preserved across a merge. The caller's only correct response is to leave the file alone. */
|
|
29
|
+
export class ChatConfigUnreadable extends Error {
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The path flavour of the TARGET platform — which is not the host's.
|
|
33
|
+
*
|
|
34
|
+
* The default `path` export is bound to the platform the process is RUNNING on, so joining
|
|
35
|
+
* a macOS or Linux path with it on Windows yields backslashes and names a file that
|
|
36
|
+
* platform does not read. Everything below builds a path for a platform passed IN as an
|
|
37
|
+
* argument, so every one of those joins has to be the target's, never the host's.
|
|
38
|
+
*
|
|
39
|
+
* This is not hypothetical: it shipped, and the only job that runs the CLI suite on Windows
|
|
40
|
+
* is `cli-publish.yml`'s, which fires on a `cli/v*` tag — after review, after merge. The
|
|
41
|
+
* v1.4.18 publish is what failed. Anything added here that takes a target platform must go
|
|
42
|
+
* through this helper; the plain `path` is correct ONLY for a path on the machine we are on
|
|
43
|
+
* (see `writeChatModelConfig`, which operates on a real local file).
|
|
44
|
+
*/
|
|
45
|
+
function pathFor(platform) {
|
|
46
|
+
return platform === "win32" ? path.win32 : path.posix;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Where VS Code keeps USER-scoped configuration, per platform. Stable VS Code only, which
|
|
50
|
+
* matches the rest of `connect`: it probes and launches `code`, so Insiders (`code-insiders`,
|
|
51
|
+
* `Code - Insiders`) is not a surface this flow reaches, and writing a file for an editor we
|
|
52
|
+
* never open would be a config the candidate cannot account for.
|
|
53
|
+
*
|
|
54
|
+
* Returns null when the platform's own location cannot be determined — on Windows that is a
|
|
55
|
+
* missing %APPDATA%, which is not a path worth guessing at.
|
|
56
|
+
*/
|
|
57
|
+
export function vsCodeUserDir(platform = process.platform, env = process.env, home = os.homedir()) {
|
|
58
|
+
const p = pathFor(platform);
|
|
59
|
+
if (platform === "win32") {
|
|
60
|
+
const appData = env.APPDATA;
|
|
61
|
+
return appData ? p.join(appData, "Code", "User") : null;
|
|
62
|
+
}
|
|
63
|
+
if (platform === "darwin") {
|
|
64
|
+
return p.join(home, "Library", "Application Support", "Code", "User");
|
|
65
|
+
}
|
|
66
|
+
// Linux (and anything else POSIX): XDG, with the spec's own default. `isAbsolute` is the
|
|
67
|
+
// target's too — `C:\xdg` is absolute to Windows and relative to Linux, and it is the
|
|
68
|
+
// Linux answer that decides whether a Linux config dir honours it.
|
|
69
|
+
const xdg = env.XDG_CONFIG_HOME;
|
|
70
|
+
return p.join(xdg && p.isAbsolute(xdg) ? xdg : p.join(home, ".config"), "Code", "User");
|
|
71
|
+
}
|
|
72
|
+
/** The full path to the file this module owns one entry in. */
|
|
73
|
+
export function chatModelConfigPath(platform = process.platform, env = process.env, home = os.homedir()) {
|
|
74
|
+
const dir = vsCodeUserDir(platform, env, home);
|
|
75
|
+
return dir ? pathFor(platform).join(dir, "chatLanguageModels.json") : null;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Our provider entry.
|
|
79
|
+
*
|
|
80
|
+
* EVERY MODEL FIELD IS POPULATED, and that is not tidiness: VS Code rewrites this file on
|
|
81
|
+
* startup and DROPS provider entries whose models are incomplete, so a half-filled model
|
|
82
|
+
* does not degrade — the whole entry vanishes and the candidate sees no Litmus model at all.
|
|
83
|
+
*
|
|
84
|
+
* The display name is derived from the model id rather than being a second constant, so it
|
|
85
|
+
* cannot drift from the id the server actually sent. It matches hostd's `Litmus (gpt-4o)`
|
|
86
|
+
* for the default model, for the reason given on LITMUS_PROVIDER_NAME.
|
|
87
|
+
*/
|
|
88
|
+
export function buildProviderEntry(cfg) {
|
|
89
|
+
return {
|
|
90
|
+
vendor: CHAT_LM_VENDOR,
|
|
91
|
+
name: LITMUS_PROVIDER_NAME,
|
|
92
|
+
// Group-level default. Our proxy serves the chat-completions wire, and naming it makes
|
|
93
|
+
// the entry independent of the extension's URL-shaped inference.
|
|
94
|
+
apiType: "chat-completions",
|
|
95
|
+
models: [
|
|
96
|
+
{
|
|
97
|
+
id: cfg.model,
|
|
98
|
+
name: `${LITMUS_PROVIDER_NAME} (${cfg.model})`,
|
|
99
|
+
url: cfg.url,
|
|
100
|
+
toolCalling: true,
|
|
101
|
+
vision: true,
|
|
102
|
+
maxInputTokens: 128000,
|
|
103
|
+
maxOutputTokens: 16000,
|
|
104
|
+
// The credential. `authorization` would be stripped here; a custom name is not.
|
|
105
|
+
requestHeaders: { [LITMUS_TOKEN_HEADER]: cfg.token },
|
|
106
|
+
},
|
|
107
|
+
],
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Is this one provider entry the one Litmus manages? Three legs, each load-bearing — the
|
|
112
|
+
* same test hostd applies in the container, for the same reasons:
|
|
113
|
+
*
|
|
114
|
+
* * VENDOR alone is not enough: `customendpoint` is the id EVERY OpenAI-compatible
|
|
115
|
+
* provider registers under, so a candidate's own endpoint carries it too.
|
|
116
|
+
* * NAME alone is not enough either, and this is the subtle one: `name` is the picker's
|
|
117
|
+
* display label and nothing stops a candidate typing "Litmus" into it. On its own it
|
|
118
|
+
* would hand us their entry to overwrite.
|
|
119
|
+
* * So the URL has to agree as well. An entry is ours only if EVERY model in it points at
|
|
120
|
+
* the Litmus gateway. A candidate's provider called "Litmus" that dials their own Ollama
|
|
121
|
+
* fails this leg, is not ours, and is preserved untouched.
|
|
122
|
+
*
|
|
123
|
+
* Anything unrecognisable answers false and is therefore preserved: a non-object member, an
|
|
124
|
+
* entry with no models, a model with no url. We only ever claim what we can positively
|
|
125
|
+
* identify as ours.
|
|
126
|
+
*/
|
|
127
|
+
export function isLitmusEntry(item) {
|
|
128
|
+
if (typeof item !== "object" || item === null || Array.isArray(item))
|
|
129
|
+
return false;
|
|
130
|
+
const e = item;
|
|
131
|
+
if (e.vendor !== CHAT_LM_VENDOR || e.name !== LITMUS_PROVIDER_NAME)
|
|
132
|
+
return false;
|
|
133
|
+
const models = e.models;
|
|
134
|
+
if (!Array.isArray(models) || models.length === 0)
|
|
135
|
+
return false;
|
|
136
|
+
return models.every((m) => typeof m === "object" && m !== null &&
|
|
137
|
+
typeof m.url === "string" &&
|
|
138
|
+
m.url.includes(GATEWAY_PATH_MARK));
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* The new file contents: `entry` upserted into `existing`, everything else preserved.
|
|
142
|
+
*
|
|
143
|
+
* Pure (content in, content out) so the merge is unit-testable without touching a real
|
|
144
|
+
* VS Code install — the merge is the part of this module that can destroy something.
|
|
145
|
+
*
|
|
146
|
+
* OUR ENTRY KEEPS ITS POSITION when it already exists, so a re-run does not shuffle the
|
|
147
|
+
* candidate's picker order. Any DUPLICATE Litmus entries collapse into that one slot: two
|
|
148
|
+
* would both be ours by the test above, and leaving the extras would mean the next run kept
|
|
149
|
+
* re-finding them.
|
|
150
|
+
*
|
|
151
|
+
* Passing `entry: null` REMOVES our entry and leaves the rest of the document — for the
|
|
152
|
+
* case where there is no longer a credential to write. Removing the file instead would take
|
|
153
|
+
* the candidate's own providers with it.
|
|
154
|
+
*
|
|
155
|
+
* Throws ChatConfigUnreadable for anything whose entries we could not enumerate: content
|
|
156
|
+
* that is not JSON, or JSON that is not an array. A file with no content at all (empty or
|
|
157
|
+
* whitespace) is NOT one of those — it demonstrably holds no entries, so writing over it
|
|
158
|
+
* preserves everything there was to preserve.
|
|
159
|
+
*/
|
|
160
|
+
export function upsertChatProviders(existing, entry) {
|
|
161
|
+
let parsed = [];
|
|
162
|
+
if (existing.trim().length > 0) {
|
|
163
|
+
try {
|
|
164
|
+
parsed = JSON.parse(existing);
|
|
165
|
+
}
|
|
166
|
+
catch (err) {
|
|
167
|
+
throw new ChatConfigUnreadable(`not valid JSON (${err instanceof Error ? err.message : String(err)})`);
|
|
168
|
+
}
|
|
169
|
+
if (!Array.isArray(parsed)) {
|
|
170
|
+
throw new ChatConfigUnreadable(`top level is ${typeof parsed}, not an array`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
const entries = parsed;
|
|
174
|
+
const out = [];
|
|
175
|
+
let placed = false;
|
|
176
|
+
for (const item of entries) {
|
|
177
|
+
if (!isLitmusEntry(item)) {
|
|
178
|
+
out.push(item);
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
if (entry && !placed) {
|
|
182
|
+
out.push(entry);
|
|
183
|
+
placed = true;
|
|
184
|
+
}
|
|
185
|
+
// Ours, but either superseded (already placed) or being removed: drop it.
|
|
186
|
+
}
|
|
187
|
+
if (entry && !placed)
|
|
188
|
+
out.push(entry);
|
|
189
|
+
return JSON.stringify(out, null, 2) + "\n";
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Does this document already hold an entry this module owns?
|
|
193
|
+
*
|
|
194
|
+
* Only the removal path needs this — "is there anything of ours to take out" — so a
|
|
195
|
+
* document it cannot parse answers false rather than throwing: the caller runs the merge
|
|
196
|
+
* first, and the merge is what refuses an unreadable file.
|
|
197
|
+
*/
|
|
198
|
+
export function containsLitmusEntry(existing) {
|
|
199
|
+
if (existing.trim().length === 0)
|
|
200
|
+
return false;
|
|
201
|
+
try {
|
|
202
|
+
const parsed = JSON.parse(existing);
|
|
203
|
+
return Array.isArray(parsed) && parsed.some(isLitmusEntry);
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
return false;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Write the provider into the candidate's VS Code config, merging with what is there.
|
|
211
|
+
*
|
|
212
|
+
* ATOMIC, via a temp file in the same directory plus a rename. The obvious write — open,
|
|
213
|
+
* truncate, write — has a window in which the file on disk is half a document, and this is
|
|
214
|
+
* the candidate's live editor configuration: a machine that slept or a `litmus connect` that
|
|
215
|
+
* was Ctrl-C'd in that window would leave a truncated file, which the next run would
|
|
216
|
+
* correctly refuse to touch, permanently costing them their Chat configuration. `rename` is
|
|
217
|
+
* atomic within a filesystem, and the temp lives in the same directory precisely so it is
|
|
218
|
+
* the same filesystem.
|
|
219
|
+
*
|
|
220
|
+
* MODE 0600, unlike hostd's copy of this file. That one carries no credential and has to be
|
|
221
|
+
* readable by a different uid; this one carries the candidate's bearer token and is read by
|
|
222
|
+
* VS Code running as the candidate themself, so the narrower mode is both correct and free.
|
|
223
|
+
*
|
|
224
|
+
* Never throws. Every failure — an unreadable existing document, an unwritable directory, a
|
|
225
|
+
* platform whose config dir we cannot locate — answers `skipped` with a reason, because a
|
|
226
|
+
* Chat model we could not configure must never cost a candidate their workspace.
|
|
227
|
+
*
|
|
228
|
+
* `cfg: null` takes the REMOVAL path (see `upsertChatProviders`), and answers `unchanged`
|
|
229
|
+
* when the document holds no entry of ours: there is a difference between "we took the
|
|
230
|
+
* stale entry out" and "there was never one", and only the first is worth telling the
|
|
231
|
+
* candidate about or worth touching their file for.
|
|
232
|
+
*/
|
|
233
|
+
export function writeChatModelConfig(cfg, cfgPath = chatModelConfigPath()) {
|
|
234
|
+
if (!cfgPath)
|
|
235
|
+
return { status: "skipped", reason: "could not locate the VS Code user config directory" };
|
|
236
|
+
const entry = cfg ? buildProviderEntry(cfg) : null;
|
|
237
|
+
// Host `path`, deliberately: `cfgPath` is a real path on the machine this is running on,
|
|
238
|
+
// not a path built for some other platform. `pathFor` above is for the latter.
|
|
239
|
+
const dir = path.dirname(cfgPath);
|
|
240
|
+
// The temp name carries RANDOMNESS, not just the pid. A pid alone is unique among LIVE
|
|
241
|
+
// processes but not over time: a connect killed between the `wx` create and the rename
|
|
242
|
+
// leaves the file behind, and the next process to be handed that pid then hits EEXIST on
|
|
243
|
+
// its own name and cannot write at all. Randomness retires that collision class outright,
|
|
244
|
+
// which is why it is preferred here over retrying once after unlinking the stale file —
|
|
245
|
+
// a retry still has to decide whether the file it just deleted belonged to a live process.
|
|
246
|
+
const tmp = path.join(dir, `.chatLanguageModels.json.litmus-${process.pid}-${randomBytes(6).toString("hex")}`);
|
|
247
|
+
try {
|
|
248
|
+
if (!existsSync(dir))
|
|
249
|
+
mkdirSync(dir, { recursive: true });
|
|
250
|
+
// THE ONE RULE: we only ever write over content we could read back. A read failure that
|
|
251
|
+
// is not "no such file" is an unknown state, and an unknown state is left alone.
|
|
252
|
+
let existing = "";
|
|
253
|
+
if (existsSync(cfgPath))
|
|
254
|
+
existing = readFileSync(cfgPath, "utf8");
|
|
255
|
+
const next = upsertChatProviders(existing, entry);
|
|
256
|
+
// Removing something that is not there is not a write. Without this the removal path
|
|
257
|
+
// would reformat a document we have no entry in — and where there is no file at all it
|
|
258
|
+
// would CREATE one, leaving the candidate a config they never had and cannot account
|
|
259
|
+
// for. Deliberately after the upsert above, so an unreadable document is still refused
|
|
260
|
+
// (below) rather than quietly reported as having nothing to remove.
|
|
261
|
+
if (!entry && !containsLitmusEntry(existing)) {
|
|
262
|
+
return { status: "unchanged", reason: "no Litmus entry to remove" };
|
|
263
|
+
}
|
|
264
|
+
// Mode is set at CREATE time, not after the rename: publishing the real path first and
|
|
265
|
+
// narrowing it afterwards is a window in which the token sits at a readable path.
|
|
266
|
+
const fd = openSync(tmp, "wx", 0o600);
|
|
267
|
+
try {
|
|
268
|
+
writeSync(fd, next);
|
|
269
|
+
// fsync before the rename — atomic is not the same as durable, and a crash can
|
|
270
|
+
// otherwise leave the rename applied with the new file's blocks unwritten, which is
|
|
271
|
+
// the truncated file again by another route.
|
|
272
|
+
fsyncSync(fd);
|
|
273
|
+
}
|
|
274
|
+
finally {
|
|
275
|
+
closeSync(fd);
|
|
276
|
+
}
|
|
277
|
+
renameSync(tmp, cfgPath);
|
|
278
|
+
return { status: "written", path: cfgPath };
|
|
279
|
+
}
|
|
280
|
+
catch (err) {
|
|
281
|
+
try {
|
|
282
|
+
unlinkSync(tmp);
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
// Nothing to clean up, or we could not — either way the target is untouched.
|
|
286
|
+
}
|
|
287
|
+
// The message never carries the token: `cfg` is not interpolated anywhere here, and the
|
|
288
|
+
// only values that reach this string are a path and an error class's own text.
|
|
289
|
+
return {
|
|
290
|
+
status: "skipped",
|
|
291
|
+
reason: err instanceof ChatConfigUnreadable ? `${cfgPath} ${err.message}` : String(err),
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Turn what the server said into what happens to the file. The whole decision, in one
|
|
297
|
+
* place, so it can be exercised against a real file without a network or a VS Code.
|
|
298
|
+
*
|
|
299
|
+
* `unavailable` is the one that must not touch anything — see the type above.
|
|
300
|
+
*/
|
|
301
|
+
export function applyEditorChatConfig(result, cfgPath = chatModelConfigPath()) {
|
|
302
|
+
if (result.state === "unavailable")
|
|
303
|
+
return { status: "unchanged", reason: result.reason };
|
|
304
|
+
return writeChatModelConfig(result.state === "configured" ? result.config : null, cfgPath);
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=chat-model-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-model-config.js","sourceRoot":"","sources":["../../src/lib/chat-model-config.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/schemas.d.ts
CHANGED
|
@@ -37,4 +37,11 @@ export declare const WorkspaceConnectionSchema: z.ZodObject<{
|
|
|
37
37
|
browser_ide_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
38
38
|
}, z.core.$strip>;
|
|
39
39
|
export type WorkspaceConnection = z.infer<typeof WorkspaceConnectionSchema>;
|
|
40
|
+
export declare const EditorChatConfigSchema: z.ZodObject<{
|
|
41
|
+
configured: z.ZodBoolean;
|
|
42
|
+
url: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
|
|
43
|
+
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
44
|
+
token: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
45
|
+
}, z.core.$strip>;
|
|
46
|
+
export type EditorChatConfigResponse = z.infer<typeof EditorChatConfigSchema>;
|
|
40
47
|
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/lib/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,kBAAkB;;;;;;;;;;;iBAgB7B,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE7D,eAAO,MAAM,kBAAkB;;;;;iBAQ7B,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAK7D,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,eAAO,MAAM,kBAAkB;;iBAE7B,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAM7D,eAAO,MAAM,yBAAyB;;;;;;iBAQpC,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/lib/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,kBAAkB;;;;;;;;;;;iBAgB7B,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE7D,eAAO,MAAM,kBAAkB;;;;;iBAQ7B,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAK7D,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,eAAO,MAAM,kBAAkB;;iBAE7B,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAM7D,eAAO,MAAM,yBAAyB;;;;;;iBAQpC,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAU3E,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAA;AAEF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA"}
|
package/dist/lib/schemas.js
CHANGED
|
@@ -46,4 +46,18 @@ export const WorkspaceConnectionSchema = z.object({
|
|
|
46
46
|
// v1/Fly, or until the ingress path is live). Powers `connect --ide browser`.
|
|
47
47
|
browser_ide_url: z.string().nullish(),
|
|
48
48
|
});
|
|
49
|
+
// ENG-1475: the BYOK provider `litmus connect` writes into the candidate's own VS Code, so
|
|
50
|
+
// Copilot Chat can reach the gateway. `configured: false` (everything else absent) is the
|
|
51
|
+
// ordinary "no AI for this candidate" answer and must be handled, not treated as an error.
|
|
52
|
+
//
|
|
53
|
+
// `.nullish()` on the three payload fields rather than a discriminated union: an older
|
|
54
|
+
// backend that does not serve this route at all is already handled by the caller (it
|
|
55
|
+
// catches and degrades), and a union here would turn a backend that sends `configured:
|
|
56
|
+
// true` with a field we did not expect into a hard parse failure in the middle of connect.
|
|
57
|
+
export const EditorChatConfigSchema = z.object({
|
|
58
|
+
configured: z.boolean(),
|
|
59
|
+
url: z.url().nullish(),
|
|
60
|
+
model: z.string().nullish(),
|
|
61
|
+
token: z.string().nullish(),
|
|
62
|
+
});
|
|
49
63
|
//# sourceMappingURL=schemas.js.map
|
package/dist/lib/schemas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/lib/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE;IACtB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAE1B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE;IAEnB,cAAc,EAAE,CAAC,CAAC,KAAK,EAAE;IACzB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IAEzB,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,4DAA4D;IAC5D,2EAA2E;IAC3E,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACtE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE;IACtB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,0EAA0E;IAC1E,2EAA2E;IAC3E,8DAA8D;IAC9D,YAAY,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;CAChC,CAAC,CAAA;AAIF,6EAA6E;AAC7E,4EAA4E;AAC5E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtD,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE;CAC3B,CAAC,CAAA;AAIF,kEAAkE;AAClE,uEAAuE;AACvE,2EAA2E;AAC3E,yEAAyE;AACzE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IACjC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC9C,uEAAuE;IACvE,8EAA8E;IAC9E,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;CACtC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/lib/schemas.ts"],"names":[],"mappings":"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"}
|