@claudexor/cli 3.2.1 → 3.3.7

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.
Files changed (77) hide show
  1. package/dist/accounts-services.d.ts +47 -49
  2. package/dist/accounts-services.d.ts.map +1 -1
  3. package/dist/accounts-services.js +46 -9
  4. package/dist/accounts-services.js.map +1 -1
  5. package/dist/claude-oauth-usage.d.ts.map +1 -1
  6. package/dist/claude-oauth-usage.js +13 -1
  7. package/dist/claude-oauth-usage.js.map +1 -1
  8. package/dist/claudexord.d.ts.map +1 -1
  9. package/dist/claudexord.js +16 -25
  10. package/dist/claudexord.js.map +1 -1
  11. package/dist/command-flags.d.ts.map +1 -1
  12. package/dist/command-flags.js +1 -0
  13. package/dist/command-flags.js.map +1 -1
  14. package/dist/control-services.d.ts +235 -53
  15. package/dist/control-services.d.ts.map +1 -1
  16. package/dist/control-services.js +40 -23
  17. package/dist/control-services.js.map +1 -1
  18. package/dist/credential-commands.d.ts.map +1 -1
  19. package/dist/credential-commands.js +6 -9
  20. package/dist/credential-commands.js.map +1 -1
  21. package/dist/mcp-run-projections.d.ts +2 -1
  22. package/dist/mcp-run-projections.d.ts.map +1 -1
  23. package/dist/native-login.d.ts +6 -4
  24. package/dist/native-login.d.ts.map +1 -1
  25. package/dist/native-login.js +18 -1
  26. package/dist/native-login.js.map +1 -1
  27. package/dist/profile-registration.js +2 -2
  28. package/dist/profile-registration.js.map +1 -1
  29. package/dist/review-command.d.ts.map +1 -1
  30. package/dist/review-command.js +27 -1
  31. package/dist/review-command.js.map +1 -1
  32. package/dist/run-applicability.d.ts.map +1 -1
  33. package/dist/run-applicability.js +10 -2
  34. package/dist/run-applicability.js.map +1 -1
  35. package/dist/setup-client-pty.d.ts.map +1 -1
  36. package/dist/setup-client-pty.js +5 -1
  37. package/dist/setup-client-pty.js.map +1 -1
  38. package/dist/setup-device-code-disclosure.d.ts +4 -2
  39. package/dist/setup-device-code-disclosure.d.ts.map +1 -1
  40. package/dist/setup-device-code-disclosure.js +45 -13
  41. package/dist/setup-device-code-disclosure.js.map +1 -1
  42. package/dist/setup-job-store.d.ts +2 -2
  43. package/dist/setup-job-store.d.ts.map +1 -1
  44. package/dist/setup-job-store.js +1 -0
  45. package/dist/setup-job-store.js.map +1 -1
  46. package/dist/setup-job-support.d.ts.map +1 -1
  47. package/dist/setup-job-support.js +6 -3
  48. package/dist/setup-job-support.js.map +1 -1
  49. package/dist/setup-jobs.d.ts +3 -2
  50. package/dist/setup-jobs.d.ts.map +1 -1
  51. package/dist/setup-jobs.js +85 -31
  52. package/dist/setup-jobs.js.map +1 -1
  53. package/dist/setup-login-completion.d.ts +27 -0
  54. package/dist/setup-login-completion.d.ts.map +1 -0
  55. package/dist/setup-login-completion.js +85 -0
  56. package/dist/setup-login-completion.js.map +1 -0
  57. package/dist/setup-login-io.d.ts +36 -0
  58. package/dist/setup-login-io.d.ts.map +1 -0
  59. package/dist/setup-login-io.js +99 -0
  60. package/dist/setup-login-io.js.map +1 -0
  61. package/dist/setup-login-protocol.d.ts +4 -1
  62. package/dist/setup-login-protocol.d.ts.map +1 -1
  63. package/dist/setup-login-protocol.js +21 -10
  64. package/dist/setup-login-protocol.js.map +1 -1
  65. package/dist/setup-login-runner.d.ts +8 -8
  66. package/dist/setup-login-runner.d.ts.map +1 -1
  67. package/dist/setup-login-runner.js +144 -182
  68. package/dist/setup-login-runner.js.map +1 -1
  69. package/dist/status-projection-cache.d.ts +57 -0
  70. package/dist/status-projection-cache.d.ts.map +1 -0
  71. package/dist/status-projection-cache.js +103 -0
  72. package/dist/status-projection-cache.js.map +1 -0
  73. package/dist/thread-continuity-context.d.ts +36 -0
  74. package/dist/thread-continuity-context.d.ts.map +1 -0
  75. package/dist/thread-continuity-context.js +33 -0
  76. package/dist/thread-continuity-context.js.map +1 -0
  77. package/package.json +23 -23
@@ -4,12 +4,12 @@ import { realpathSync } from "node:fs";
4
4
  import { createInterface } from "node:readline";
5
5
  import { dirname, resolve, sep } from "node:path";
6
6
  import { fileURLToPath } from "node:url";
7
- import { defaultProcessGroupService, } from "@claudexor/core";
8
- import { redactSecrets } from "@claudexor/util";
7
+ import { defaultProcessGroupService } from "@claudexor/core";
9
8
  import { startCodexDeviceLogin, } from "./codex-device-login.js";
10
9
  import { terminateAppServerChild } from "./setup-login-child-lifecycle.js";
11
10
  export { terminateAppServerChild } from "./setup-login-child-lifecycle.js";
12
11
  import { nativeLoginEnv } from "./native-login.js";
12
+ import { C0_CONTROL_RE, TERM_ESCAPE_RE, boundedTail, createTailBuffer, watchLoginInput, } from "./setup-login-io.js";
13
13
  import { waitForSetupLoginPermit } from "./setup-login-permit.js";
14
14
  import { SETUP_LOGIN_PROTOCOL_VERSION, atomicPrivateJson, readLoginManifest, verifyExecutableEvidence, } from "./setup-login-protocol.js";
15
15
  /**
@@ -39,7 +39,9 @@ export async function runSetupLoginWorker(manifestPath, options = {}) {
39
39
  const processGroups = options.processGroupService ?? defaultProcessGroupService;
40
40
  const captured = processGroups.captureLeader(options.selfPid ?? process.pid);
41
41
  if (captured.status !== "known") {
42
- throw new Error(describeCaptureFailure(captured));
42
+ throw new Error(captured.status === "missing"
43
+ ? "setup-login worker disappeared before its process group could be captured"
44
+ : `setup-login worker process-group identity is unprovable: ${captured.reason}`);
43
45
  }
44
46
  const observedAt = now().toISOString();
45
47
  const awaitingPermit = {
@@ -55,25 +57,11 @@ export async function runSetupLoginWorker(manifestPath, options = {}) {
55
57
  atomicPrivateJson(manifest.statePath, awaitingPermit);
56
58
  const permit = await waitForSetupLoginPermit(manifest, now, sleep, observedAt);
57
59
  if (!permit) {
58
- persistResult(manifest, {
59
- permitIssuedAt: null,
60
- commandStarted: false,
61
- errorCode: "permit_timeout",
62
- exitCode: null,
63
- signal: null,
64
- finishedAt: now().toISOString(),
65
- });
60
+ persistFailure(manifest, now, null, "permit_timeout");
66
61
  return 1;
67
62
  }
68
63
  if (!verifyExecutableEvidence(manifest.executable)) {
69
- persistResult(manifest, {
70
- permitIssuedAt: permit.issuedAt,
71
- commandStarted: false,
72
- errorCode: "spawn_failed",
73
- exitCode: null,
74
- signal: null,
75
- finishedAt: now().toISOString(),
76
- });
64
+ persistFailure(manifest, now, permit.issuedAt, "spawn_failed");
77
65
  return 1;
78
66
  }
79
67
  atomicPrivateJson(manifest.statePath, { ...awaitingPermit, stage: "running" });
@@ -84,39 +72,62 @@ export async function runSetupLoginWorker(manifestPath, options = {}) {
84
72
  if (manifest.loginMode === "device_code") {
85
73
  return runDeviceCodeLogin(manifest, permit, { now, spawnProcess });
86
74
  }
87
- // Device-auth capability gate (v3.0.3 S6): `--device-auth` exists only
88
- // since codex 0.46.0. Probe the vendor's own `login --help` BEFORE spawning
89
- // so an old CLI yields a typed unsupported outcome instead of an opaque
90
- // argv error. The probe fails OPEN — a broken probe falls through to the
91
- // real spawn, whose own failure carries the diagnostics.
75
+ // `--device-auth` exists only since codex 0.46.0: probe `login --help`
76
+ // first so an old CLI yields a typed unsupported outcome. Fails OPEN — a
77
+ // broken probe falls through to the real spawn and its own diagnostics.
92
78
  if (manifest.args.includes("--device-auth")) {
93
79
  const probe = await probeLoginHelp(manifest.binary, spawnProcess, nativeLoginEnv(manifest.harness, process.env, manifest.profileConfigDir));
94
80
  if (probe.completed && !probe.output.includes("--device-auth")) {
95
- persistResult(manifest, {
96
- permitIssuedAt: permit.issuedAt,
97
- commandStarted: false,
98
- errorCode: "device_auth_unsupported",
99
- exitCode: null,
100
- signal: null,
101
- finishedAt: now().toISOString(),
102
- outputTail: boundedTail(probe.output),
103
- });
81
+ persistFailure(manifest, now, permit.issuedAt, "device_auth_unsupported", boundedTail(probe.output));
104
82
  return 1;
105
83
  }
106
84
  }
107
- // Keep the group leader alive through TERM so the daemon can still prove
108
- // identity and escalate a stubborn descendant with KILL after the grace
109
- // period. The vendor child receives the same group signal directly.
85
+ // Keep the group leader alive through TERM so the daemon can prove identity
86
+ // and escalate stubborn descendants with KILL; the vendor child receives
87
+ // the same group signal directly.
110
88
  const holdLeaderForEscalation = () => undefined;
111
89
  process.on("SIGTERM", holdLeaderForEscalation);
112
90
  process.on("SIGINT", holdLeaderForEscalation);
113
- // Tee the codex login's output (v3.0.3 S6): the user still sees the URL +
114
- // one-time code in Terminal, while a bounded ANSI-stripped tail rides the
115
- // result so the daemon can classify failures (e.g. the ChatGPT
116
- // "Allow device code login" toggle being off) instead of a bare exit code.
117
- const teeOutput = manifest.harness === "codex";
91
+ // Daemon-hosted no-Terminal modes (owner directive 2026-08-04): the runner
92
+ // is detached, so nothing may inherit a TTY. with_input additionally pipes
93
+ // stdin so the daemon-delivered one-shot input can reach the vendor CLI.
94
+ const urlDisclosure = manifest.loginMode === "url_disclosure" || manifest.loginMode === "url_disclosure_with_input";
95
+ const withInput = manifest.loginMode === "url_disclosure_with_input";
96
+ // Tee the login output: a bounded ANSI-stripped tail rides the result for
97
+ // failure classification, and (with deviceCodePath) the vendor's OAuth URL
98
+ // is captured into the sidecar (codex tail-tee tradeoff).
99
+ const teeOutput = manifest.harness === "codex" || manifest.deviceCodePath !== undefined || urlDisclosure;
118
100
  const tail = createTailBuffer();
119
- let child;
101
+ const urlDetector = createOAuthUrlDetector();
102
+ const discloseOAuthUrl = (chunk) => {
103
+ if (!manifest.deviceCodePath)
104
+ return;
105
+ const url = urlDetector.push(chunk);
106
+ if (!url)
107
+ return;
108
+ try {
109
+ // Same transient-sidecar discipline as the device-code flow: the URL
110
+ // rides ONLY this read-time projection file, never the durable receipt.
111
+ // The with-input flow discloses as oauth_url_input so the card knows to
112
+ // render the one-shot paste field alongside the link.
113
+ atomicPrivateJson(manifest.deviceCodePath, {
114
+ version: SETUP_LOGIN_PROTOCOL_VERSION,
115
+ jobId: manifest.jobId,
116
+ executionId: manifest.executionId,
117
+ flow: withInput ? "oauth_url_input" : "oauth_url",
118
+ verificationUrl: url,
119
+ userCode: "",
120
+ disclosedAt: now().toISOString(),
121
+ });
122
+ }
123
+ catch {
124
+ // The disclosure is best-effort context; it must never kill the login.
125
+ }
126
+ };
127
+ // A spawn throw and a wait rejection wrote the SAME receipt, so they share
128
+ // one catch; de-registering the hold handlers is every exit's finally.
129
+ let result;
130
+ let stopInputWatch;
120
131
  try {
121
132
  const spawnOptions = {
122
133
  cwd: manifest.cwd,
@@ -124,52 +135,36 @@ export async function runSetupLoginWorker(manifestPath, options = {}) {
124
135
  // profile's own store; absent = the default vendor store as before.
125
136
  env: nativeLoginEnv(manifest.harness, process.env, manifest.profileConfigDir),
126
137
  detached: false,
127
- stdio: teeOutput ? ["inherit", "pipe", "pipe"] : "inherit",
138
+ stdio: urlDisclosure
139
+ ? [withInput ? "pipe" : "ignore", "pipe", "pipe"]
140
+ : teeOutput
141
+ ? ["inherit", "pipe", "pipe"]
142
+ : "inherit",
128
143
  };
129
- child = spawnProcess(manifest.binary, manifest.args, spawnOptions);
144
+ const child = spawnProcess(manifest.binary, manifest.args, spawnOptions);
130
145
  if (teeOutput) {
131
- child.stdout?.on("data", (chunk) => {
132
- process.stdout.write(chunk);
133
- tail.push(chunk);
134
- });
135
- child.stderr?.on("data", (chunk) => {
136
- process.stderr.write(chunk);
146
+ const tee = (sink) => (chunk) => {
147
+ sink.write(chunk);
137
148
  tail.push(chunk);
138
- });
149
+ discloseOAuthUrl(chunk);
150
+ };
151
+ child.stdout?.on("data", tee(process.stdout));
152
+ child.stderr?.on("data", tee(process.stderr));
153
+ }
154
+ if (withInput && manifest.inputPath) {
155
+ stopInputWatch = watchLoginInput(manifest, child, now);
139
156
  }
157
+ result = await waitForExit(child);
140
158
  }
141
159
  catch {
142
- persistResult(manifest, {
143
- permitIssuedAt: permit.issuedAt,
144
- commandStarted: false,
145
- errorCode: "spawn_failed",
146
- exitCode: null,
147
- signal: null,
148
- finishedAt: now().toISOString(),
149
- });
150
- process.off("SIGTERM", holdLeaderForEscalation);
151
- process.off("SIGINT", holdLeaderForEscalation);
160
+ persistFailure(manifest, now, permit.issuedAt, "spawn_failed");
152
161
  return 1;
153
162
  }
154
- let result;
155
- try {
156
- result = await waitForExit(child);
157
- }
158
- catch {
159
- persistResult(manifest, {
160
- permitIssuedAt: permit.issuedAt,
161
- commandStarted: false,
162
- errorCode: "spawn_failed",
163
- exitCode: null,
164
- signal: null,
165
- finishedAt: now().toISOString(),
166
- });
163
+ finally {
164
+ stopInputWatch?.();
167
165
  process.off("SIGTERM", holdLeaderForEscalation);
168
166
  process.off("SIGINT", holdLeaderForEscalation);
169
- return 1;
170
167
  }
171
- process.off("SIGTERM", holdLeaderForEscalation);
172
- process.off("SIGINT", holdLeaderForEscalation);
173
168
  const capturedTail = tail.text();
174
169
  persistResult(manifest, {
175
170
  permitIssuedAt: permit.issuedAt,
@@ -194,14 +189,7 @@ export async function runSetupLoginWorker(manifestPath, options = {}) {
194
189
  async function runDeviceCodeLogin(manifest, permit, deps) {
195
190
  const { now, spawnProcess } = deps;
196
191
  if (!manifest.deviceCodePath || !manifest.appServerFlow) {
197
- persistResult(manifest, {
198
- permitIssuedAt: permit.issuedAt,
199
- commandStarted: false,
200
- errorCode: "spawn_failed",
201
- exitCode: null,
202
- signal: null,
203
- finishedAt: now().toISOString(),
204
- });
192
+ persistFailure(manifest, now, permit.issuedAt, "spawn_failed");
205
193
  return 1;
206
194
  }
207
195
  let child;
@@ -214,14 +202,7 @@ async function runDeviceCodeLogin(manifest, permit, deps) {
214
202
  });
215
203
  }
216
204
  catch {
217
- persistResult(manifest, {
218
- permitIssuedAt: permit.issuedAt,
219
- commandStarted: false,
220
- errorCode: "spawn_failed",
221
- exitCode: null,
222
- signal: null,
223
- finishedAt: now().toISOString(),
224
- });
205
+ persistFailure(manifest, now, permit.issuedAt, "spawn_failed");
225
206
  return 1;
226
207
  }
227
208
  child.stderr?.resume();
@@ -239,14 +220,7 @@ async function runDeviceCodeLogin(manifest, permit, deps) {
239
220
  await terminateAppServerChild(child, connection);
240
221
  // Typed capability-probe miss: reuse the existing not_supported outcome
241
222
  // so the daemon offers the legacy Terminal fallback (no stdout regex).
242
- persistResult(manifest, {
243
- permitIssuedAt: permit.issuedAt,
244
- commandStarted: false,
245
- errorCode: "device_auth_unsupported",
246
- exitCode: null,
247
- signal: null,
248
- finishedAt: now().toISOString(),
249
- });
223
+ persistFailure(manifest, now, permit.issuedAt, "device_auth_unsupported");
250
224
  return 1;
251
225
  }
252
226
  // Transient disclosure sidecar. The userCode rides ONLY this file (read-time
@@ -262,25 +236,16 @@ async function runDeviceCodeLogin(manifest, permit, deps) {
262
236
  });
263
237
  const outcome = await start.awaitCompletion();
264
238
  await terminateAppServerChild(child, connection);
265
- if (outcome.kind === "completed") {
266
- persistResult(manifest, {
267
- permitIssuedAt: permit.issuedAt,
268
- commandStarted: true,
269
- exitCode: 0,
270
- signal: null,
271
- finishedAt: now().toISOString(),
272
- });
273
- return 0;
274
- }
239
+ const exitCode = outcome.kind === "completed" ? 0 : 1;
275
240
  persistResult(manifest, {
276
241
  permitIssuedAt: permit.issuedAt,
277
242
  commandStarted: true,
278
- exitCode: 1,
243
+ exitCode,
279
244
  signal: null,
280
245
  finishedAt: now().toISOString(),
281
246
  ...(outcome.kind === "failed" ? { outputTail: boundedTail(outcome.detail) } : {}),
282
247
  });
283
- return 1;
248
+ return exitCode;
284
249
  }
285
250
  catch (error) {
286
251
  await terminateAppServerChild(child, connection);
@@ -342,65 +307,52 @@ function appServerConnection(child) {
342
307
  },
343
308
  };
344
309
  }
345
- const OUTPUT_TAIL_BYTES = 4096;
346
- /** Ring buffer of the last OUTPUT_TAIL_BYTES of tee'd vendor output. */
347
- export function createTailBuffer() {
348
- // Byte-accurate ring: keep the final OUTPUT_TAIL_BYTES RAW bytes and decode
349
- // ONCE in text() — a per-chunk String() decode splits multibyte UTF-8 into
350
- // replacement chars and a UTF-16 .slice miscounts the byte bound.
351
- let tail = Buffer.alloc(0);
352
- // Whether the stream ever exceeded the ring — the truncation signal cannot
353
- // be recovered from the decoded string's length (already <= the byte cap),
354
- // so track it HERE and hand it to boundedTail (X224 ring-path fix).
355
- let overflowed = false;
310
+ const OAUTH_URL_SIGNATURE_RE = /(oauth|authori[sz]e|login|sign[-_]?in|device|sso|verification|callback)/i;
311
+ /**
312
+ * First sign-in-shaped URL in vendor CLI output, or null. Terminal escapes are
313
+ * stripped first; trailing prose punctuation is trimmed; a docs link in a
314
+ * banner never qualifies.
315
+ */
316
+ const OAUTH_URL_SCAN_WINDOW = 8_192;
317
+ export function extractOAuthUrl(text) {
318
+ const plain = text.replace(TERM_ESCAPE_RE, "").replace(C0_CONTROL_RE, "");
319
+ for (const match of plain.matchAll(/https:\/\/[^\s"'<>()[\]]+/g)) {
320
+ const url = match[0].replace(/[.,;:!?]+$/, "");
321
+ if (OAUTH_URL_SIGNATURE_RE.test(url))
322
+ return url;
323
+ }
324
+ return null;
325
+ }
326
+ /**
327
+ * Per-login detector. A match ending at the window's very end may be cut by a
328
+ * chunk boundary (wave finding): it is published PROVISIONALLY, superseded by
329
+ * a longer capture, and FINAL only once output continues past its end.
330
+ */
331
+ export function createOAuthUrlDetector() {
332
+ let window = "";
333
+ let published = null;
334
+ let finalized = false;
356
335
  return {
357
336
  push(chunk) {
358
- const combined = Buffer.concat([tail, chunk]);
359
- if (combined.length > OUTPUT_TAIL_BYTES)
360
- overflowed = true;
361
- tail = combined.subarray(-OUTPUT_TAIL_BYTES);
362
- },
363
- text() {
364
- // The ring can start mid-codepoint: drop leading continuation bytes
365
- // (0b10xxxxxx) so the decode never opens with a replacement char.
366
- let start = 0;
367
- while (start < tail.length && (tail[start] & 0b1100_0000) === 0b1000_0000)
368
- start += 1;
369
- return boundedTail(tail.subarray(start).toString("utf8"), overflowed || start > 0);
337
+ if (finalized)
338
+ return null;
339
+ window = (window + chunk.toString("utf8")).slice(-OAUTH_URL_SCAN_WINDOW);
340
+ const plain = window.replace(TERM_ESCAPE_RE, "").replace(C0_CONTROL_RE, "");
341
+ const match = [...plain.matchAll(/https:\/\/[^\s"'<>()[\]]+/g)].find((m) => OAUTH_URL_SIGNATURE_RE.test(m[0]));
342
+ if (!match)
343
+ return null;
344
+ const url = match[0].replace(/[.,;:!?]+$/, "");
345
+ if ((match.index ?? 0) + match[0].length < plain.length) {
346
+ finalized = true;
347
+ return url === published ? null : url;
348
+ }
349
+ if (published !== null && url.length <= published.length)
350
+ return null;
351
+ published = url;
352
+ return url;
370
353
  },
371
354
  };
372
355
  }
373
- /** Strip terminal escapes (CSI, OSC, bare ESC, C0 controls except newline),
374
- * redact secret-like tokens, and clamp - diagnostic evidence entering a
375
- * durable journal/API surface, never a raw vendor log copy (INV-062). */
376
- export function boundedTail(text, truncated = false) {
377
- const plain = text
378
- // eslint-disable-next-line no-control-regex
379
- .replace(/\u001b(?:\[[0-9;?]*[ -/]*[@-~]|\][^\u0007\u001b]*(?:\u0007|\u001b\\)?)/g, "")
380
- // eslint-disable-next-line no-control-regex
381
- .replace(/[\u0000-\u0009\u000b-\u001f\u007f]/g, "");
382
- // Redact the complete sanitized input before any boundary is selected. A
383
- // tail-first clamp can retain only the suffix of a token and thereby remove
384
- // the prefix the detector needs to recognize it.
385
- const redacted = redactSecrets(plain);
386
- // When the source was truncated at the front (ring overflow, or a
387
- // direct-string caller over the byte budget), a secret split by that
388
- // boundary could leave a prefix-less fragment redactSecrets cannot anchor.
389
- // Drop the leading partial token in that case; untruncated output is whole.
390
- // The caller's flag is authoritative (a ring string is already <= the cap,
391
- // so a length check here cannot see the cut); direct callers OR in their
392
- // own over-budget check.
393
- const bytes = Buffer.from(redacted, "utf8");
394
- const cut = truncated || bytes.length > OUTPUT_TAIL_BYTES;
395
- const tail = bytes.subarray(Math.max(0, bytes.length - OUTPUT_TAIL_BYTES));
396
- let start = 0;
397
- while (start < tail.length && (tail[start] & 0b1100_0000) === 0b1000_0000)
398
- start += 1;
399
- let bounded = tail.subarray(start).toString("utf8");
400
- if (cut)
401
- bounded = bounded.replace(/^\S+/, "");
402
- return bounded.trim();
403
- }
404
356
  /** Run `<binary> login --help` captured, bounded to 10s. Fails OPEN: only a
405
357
  * COMPLETED probe whose help text lacks the flag reports unsupported. */
406
358
  function probeLoginHelp(binary, spawnProcess, probeEnv) {
@@ -410,10 +362,10 @@ function probeLoginHelp(binary, spawnProcess, probeEnv) {
410
362
  let retainedBytes = 0;
411
363
  let settled = false;
412
364
  const settle = (completed) => {
413
- if (!settled) {
414
- settled = true;
415
- resolveProbe({ completed, output: Buffer.concat(chunks).toString("utf8") });
416
- }
365
+ if (settled)
366
+ return;
367
+ settled = true;
368
+ resolveProbe({ completed, output: Buffer.concat(chunks).toString("utf8") });
417
369
  };
418
370
  let probe;
419
371
  try {
@@ -476,6 +428,19 @@ function persistResult(manifest, result) {
476
428
  ...result,
477
429
  });
478
430
  }
431
+ /** Every not-started outcome writes the same receipt: no exit code, no signal.
432
+ * Eight call sites spelled it out; one shape means the next field lands once. */
433
+ function persistFailure(manifest, now, permitIssuedAt, errorCode, outputTail) {
434
+ persistResult(manifest, {
435
+ permitIssuedAt,
436
+ commandStarted: false,
437
+ errorCode,
438
+ exitCode: null,
439
+ signal: null,
440
+ finishedAt: now().toISOString(),
441
+ ...(outputTail === undefined ? {} : { outputTail }),
442
+ });
443
+ }
479
444
  function waitForExit(child) {
480
445
  // `close` fires after the stdio streams drain (wave-1 finding: `exit` can
481
446
  // race the final piped data chunks, truncating the captured tail); children
@@ -485,11 +450,6 @@ function waitForExit(child) {
485
450
  child.once("close", (code, signal) => resolveExit({ code, signal }));
486
451
  });
487
452
  }
488
- function describeCaptureFailure(captured) {
489
- return captured.status === "missing"
490
- ? "setup-login worker disappeared before its process group could be captured"
491
- : `setup-login worker process-group identity is unprovable: ${captured.reason}`;
492
- }
493
453
  /** The bootstrap itself never needs model/provider credentials. */
494
454
  function runnerBootstrapEnv(source = process.env) {
495
455
  const env = {};
@@ -501,11 +461,12 @@ function runnerBootstrapEnv(source = process.env) {
501
461
  "LC_ALL",
502
462
  "USER",
503
463
  "LOGNAME",
464
+ // Without the daemon's config root the worker re-roots onto the GLOBAL default (2026-08-04).
465
+ "CLAUDEXOR_CONFIG_DIR",
504
466
  "CLAUDEXOR_CODEX_NATIVE_HOME",
505
467
  "CLAUDEXOR_CLAUDE_NATIVE_DIR",
506
- // Network reachability for the DETACHED worker: without the proxy/CA
507
- // family a corporate-proxy machine cannot reach the vendor at all and
508
- // the device-code login dies opaquely. Pass-through only — never set.
468
+ // Proxy/CA pass-through: without it a corporate-proxy machine cannot
469
+ // reach the vendor and the device-code login dies opaquely. Never set.
509
470
  "HTTP_PROXY",
510
471
  "HTTPS_PROXY",
511
472
  "NO_PROXY",
@@ -526,8 +487,8 @@ function isDirectEntrypoint() {
526
487
  if (!process.argv[1])
527
488
  return false;
528
489
  try {
529
- return (realpathSync(resolve(process.argv[1])) ===
530
- realpathSync(resolve(fileURLToPath(import.meta.url))));
490
+ const self = realpathSync(resolve(fileURLToPath(import.meta.url)));
491
+ return realpathSync(resolve(process.argv[1])) === self;
531
492
  }
532
493
  catch {
533
494
  return false;
@@ -544,7 +505,8 @@ if (isDirectEntrypoint()) {
544
505
  (workerMode ? runSetupLoginWorker(manifestPath) : runSetupLogin(manifestPath)).then((code) => {
545
506
  process.exitCode = code;
546
507
  }, (error) => {
547
- process.stderr.write(`setup-login-runner: ${error instanceof Error ? error.message : String(error)}\n`);
508
+ const detail = error instanceof Error ? error.message : String(error);
509
+ process.stderr.write(`setup-login-runner: ${detail}\n`);
548
510
  process.exitCode = 1;
549
511
  });
550
512
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup-login-runner.js","sourceRoot":"","sources":["../src/setup-login-runner.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAwC,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAEL,0BAA0B,GAE3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,qBAAqB,GAGtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,GAKzB,MAAM,2BAA2B,CAAC;AAWnC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,YAAoB,EACpB,OAAO,GAA4B,EAAE;IAErC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE;QAC7F,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,GAAG,EAAE,kBAAkB,EAAE;QACzB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,YAAoB,EACpB,OAAO,GAA4B,EAAE;IAErC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3F,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC;IACnD,MAAM,aAAa,GAAG,OAAO,CAAC,mBAAmB,IAAI,0BAA0B,CAAC;IAChF,MAAM,QAAQ,GAAG,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7E,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,cAAc,GAA0B;QAC5C,OAAO,EAAE,4BAA4B;QACrC,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,YAAY,EAAE,QAAQ,CAAC,MAAM;QAC7B,KAAK,EAAE,iBAAiB;QACxB,UAAU;QACV,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,cAAc,EAAE,QAAQ,CAAC,cAAc;KACxC,CAAC;IACF,iBAAiB,CAAC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC/E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,aAAa,CAAC,QAAQ,EAAE;YACtB,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,KAAK;YACrB,SAAS,EAAE,gBAAgB;YAC3B,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;SAChC,CAAC,CAAC;QACH,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACnD,aAAa,CAAC,QAAQ,EAAE;YACtB,cAAc,EAAE,MAAM,CAAC,QAAQ;YAC/B,cAAc,EAAE,KAAK;YACrB,SAAS,EAAE,cAAc;YACzB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;SAChC,CAAC,CAAC;QACH,OAAO,CAAC,CAAC;IACX,CAAC;IAED,iBAAiB,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAE/E,2EAA2E;IAC3E,yEAAyE;IACzE,0EAA0E;IAC1E,oCAAoC;IACpC,IAAI,QAAQ,CAAC,SAAS,KAAK,aAAa,EAAE,CAAC;QACzC,OAAO,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,uEAAuE;IACvE,4EAA4E;IAC5E,wEAAwE;IACxE,yEAAyE;IACzE,yDAAyD;IACzD,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,cAAc,CAChC,QAAQ,CAAC,MAAM,EACf,YAAY,EACZ,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CACzE,CAAC;QACF,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAC/D,aAAa,CAAC,QAAQ,EAAE;gBACtB,cAAc,EAAE,MAAM,CAAC,QAAQ;gBAC/B,cAAc,EAAE,KAAK;gBACrB,SAAS,EAAE,yBAAyB;gBACpC,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;gBAC/B,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;aACtC,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,wEAAwE;IACxE,oEAAoE;IACpE,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAC9C,0EAA0E;IAC1E,0EAA0E;IAC1E,+DAA+D;IAC/D,2EAA2E;IAC3E,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC;IAC/C,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAChC,IAAI,KAAK,CAAC;IACV,IAAI,CAAC;QACH,MAAM,YAAY,GAAiB;YACjC,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,qEAAqE;YACrE,oEAAoE;YACpE,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,gBAAgB,CAAC;YAC7E,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;SAC3D,CAAC;QACF,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACnE,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,aAAa,CAAC,QAAQ,EAAE;YACtB,cAAc,EAAE,MAAM,CAAC,QAAQ;YAC/B,cAAc,EAAE,KAAK;YACrB,SAAS,EAAE,cAAc;YACzB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;SAChC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,MAA8D,CAAC;IACnE,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,aAAa,CAAC,QAAQ,EAAE;YACtB,cAAc,EAAE,MAAM,CAAC,QAAQ;YAC/B,cAAc,EAAE,KAAK;YACrB,SAAS,EAAE,cAAc;YACzB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;SAChC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACjC,aAAa,CAAC,QAAQ,EAAE;QACtB,cAAc,EAAE,MAAM,CAAC,QAAQ;QAC/B,cAAc,EAAE,IAAI;QACpB,QAAQ,EAAE,MAAM,CAAC,IAAI;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;QAC/B,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC;YAC/D,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE;YAC9B,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,kBAAkB,CAC/B,QAA4B,EAC5B,MAAwB,EACxB,IAAqD;IAErD,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IACnC,IAAI,CAAC,QAAQ,CAAC,cAAc,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QACxD,aAAa,CAAC,QAAQ,EAAE;YACtB,cAAc,EAAE,MAAM,CAAC,QAAQ;YAC/B,cAAc,EAAE,KAAK;YACrB,SAAS,EAAE,cAAc;YACzB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;SAChC,CAAC,CAAC;QACH,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,KAAmB,CAAC;IACxB,IAAI,CAAC;QACH,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE;YACnD,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,gBAAgB,CAAC;YAC7E,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,aAAa,CAAC,QAAQ,EAAE;YACtB,cAAc,EAAE,MAAM,CAAC,QAAQ;YAC/B,cAAc,EAAE,KAAK;YACrB,SAAS,EAAE,cAAc;YACzB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;SAChC,CAAC,CAAC;QACH,OAAO,CAAC,CAAC;IACX,CAAC;IACD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,UAAU,EAAE;YACpD,IAAI,EAAE,QAAQ,CAAC,aAAa;YAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;QACH,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACnC,MAAM,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACjD,wEAAwE;YACxE,uEAAuE;YACvE,aAAa,CAAC,QAAQ,EAAE;gBACtB,cAAc,EAAE,MAAM,CAAC,QAAQ;gBAC/B,cAAc,EAAE,KAAK;gBACrB,SAAS,EAAE,yBAAyB;gBACpC,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;aAChC,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;QACD,6EAA6E;QAC7E,2EAA2E;QAC3E,iBAAiB,CAAC,QAAQ,CAAC,cAAc,EAAE;YACzC,OAAO,EAAE,4BAA4B;YACrC,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,IAAI,EAAE,QAAQ,CAAC,aAAa;YAC5B,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,eAAe;YACjD,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ;YACnC,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;SACjC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACjD,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACjC,aAAa,CAAC,QAAQ,EAAE;gBACtB,cAAc,EAAE,MAAM,CAAC,QAAQ;gBAC/B,cAAc,EAAE,IAAI;gBACpB,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;aAChC,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;QACD,aAAa,CAAC,QAAQ,EAAE;YACtB,cAAc,EAAE,MAAM,CAAC,QAAQ;YAC/B,cAAc,EAAE,IAAI;YACpB,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;YAC/B,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClF,CAAC,CAAC;QACH,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACjD,aAAa,CAAC,QAAQ,EAAE;YACtB,cAAc,EAAE,MAAM,CAAC,QAAQ;YAC/B,cAAc,EAAE,IAAI;YACpB,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;YAC/B,UAAU,EAAE,WAAW,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAChF,CAAC,CAAC;QACH,OAAO,CAAC,CAAC;IACX,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED;uDACuD;AACvD,SAAS,mBAAmB,CAAC,KAAmB;IAC9C,MAAM,KAAK,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAAO,EAAE,CAAC,CAAC;IACxD,IAAI,YAAY,GAA2C,IAAI,CAAC;IAChE,MAAM,aAAa,GAAmC,EAAE,CAAC;IACzD,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACxB,IAAI,KAAmB,CAAC;QACxB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAiB,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,iDAAiD;QAC3D,CAAC;QACD,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,CAAC,KAAY,EAAE,EAAE;QACjC,KAAK,MAAM,OAAO,IAAI,aAAa;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAClC,SAAS,CAAC,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAC/F,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC1C,OAAO;QACL,IAAI,CAAC,KAAK;YACR,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,CAAC,OAAO;YACb,YAAY,GAAG,OAAO,CAAC;QACzB,CAAC;QACD,OAAO,CAAC,OAAO;YACb,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;QACD,KAAK;YACH,IAAI,CAAC;gBACH,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAiB;YACnB,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B,wEAAwE;AACxE,MAAM,UAAU,gBAAgB;IAC9B,4EAA4E;IAC5E,2EAA2E;IAC3E,kEAAkE;IAClE,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,2EAA2E;IAC3E,2EAA2E;IAC3E,oEAAoE;IACpE,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,OAAO;QACL,IAAI,CAAC,KAAK;YACR,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YAC9C,IAAI,QAAQ,CAAC,MAAM,GAAG,iBAAiB;gBAAE,UAAU,GAAG,IAAI,CAAC;YAC3D,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI;YACF,oEAAoE;YACpE,kEAAkE;YAClE,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,GAAG,WAAW,CAAC,KAAK,WAAW;gBAAE,KAAK,IAAI,CAAC,CAAC;YACvF,OAAO,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;QACrF,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;yEAEyE;AACzE,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,SAAS,GAAG,KAAK;IACzD,MAAM,KAAK,GAAG,IAAI;QAChB,4CAA4C;SAC3C,OAAO,CAAC,yEAAyE,EAAE,EAAE,CAAC;QACvF,4CAA4C;SAC3C,OAAO,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAC;IACtD,yEAAyE;IACzE,4EAA4E;IAC5E,iDAAiD;IACjD,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACtC,kEAAkE;IAClE,qEAAqE;IACrE,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,yEAAyE;IACzE,yBAAyB;IACzB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,iBAAiB,CAAC;IAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAC3E,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,GAAG,WAAW,CAAC,KAAK,WAAW;QAAE,KAAK,IAAI,CAAC,CAAC;IACvF,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,GAAG;QAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/C,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC;AAED;yEACyE;AACzE,SAAS,cAAc,CACrB,MAAc,EACd,YAA0B,EAC1B,QAA2B;IAE3B,OAAO,IAAI,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QAClC,MAAM,gBAAgB,GAAG,MAAM,CAAC;QAChC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,SAAkB,EAAE,EAAE;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,IAAI,CAAC;gBACf,YAAY,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC,CAAC;QACF,IAAI,KAA+B,CAAC;QACpC,IAAI,CAAC;YACH,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;gBAChD,iEAAiE;gBACjE,gEAAgE;gBAChE,GAAG,EAAE,QAAQ;gBACb,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;aAClC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,KAAK,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QACD,uEAAuE;QACvE,gEAAgE;QAChE,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE;YAC/B,IAAI,aAAa,IAAI,gBAAgB;gBAAE,OAAO;YAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,gBAAgB,GAAG,aAAa,CAAC,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAChC,aAAa,IAAI,KAAK,CAAC,MAAM,CAAC;QAChC,CAAC,CAAC;QACF,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,uEAAuE;QACvE,uEAAuE;QACvE,kEAAkE;QAClE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc;YAChB,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,EAAE,MAAM,CAAC,CAAC;QACX,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,YAAoB;IAC5C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAC5C,KAAK,MAAM,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACpF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CACpB,QAA4B,EAC5B,MAGC;IAED,iBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE;QACrC,OAAO,EAAE,4BAA4B;QACrC,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,GAAG,MAAM;KACuB,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,WAAW,CAClB,KAA+B;IAE/B,0EAA0E;IAC1E,4EAA4E;IAC5E,wEAAwE;IACxE,OAAO,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE;QACzC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAC7B,QAA2D;IAE3D,OAAO,QAAQ,CAAC,MAAM,KAAK,SAAS;QAClC,CAAC,CAAC,2EAA2E;QAC7E,CAAC,CAAC,4DAA4D,QAAQ,CAAC,MAAM,EAAE,CAAC;AACpF,CAAC;AAED,mEAAmE;AACnE,SAAS,kBAAkB,CAAC,MAAM,GAAsB,OAAO,CAAC,GAAG;IACjE,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI;QAChB,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,MAAM;QACN,SAAS;QACT,6BAA6B;QAC7B,6BAA6B;QAC7B,qEAAqE;QACrE,sEAAsE;QACtE,sEAAsE;QACtE,YAAY;QACZ,aAAa;QACb,UAAU;QACV,WAAW;QACX,YAAY;QACZ,aAAa;QACb,UAAU;QACV,eAAe;QACf,cAAc;QACd,qBAAqB;KACb,EAAE,CAAC;QACX,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB;IACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,CACL,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CACtD,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,IAAI,kBAAkB,EAAE,EAAE,CAAC;IACzB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC;IAClD,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC/E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CACjF,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC1B,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,uBAAuB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAClF,CAAC;YACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"setup-login-runner.js","sourceRoot":"","sources":["../src/setup-login-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * TTL + single-flight cache for the daemon's poll-heavy status projections.
3
+ *
4
+ * Hit live 2026-08-04: a UI polling `/v2/credential-profiles` and
5
+ * `/v2/harnesses` every 5 seconds made the daemon spawn full harness sweeps
6
+ * (discover + doctor for every adapter, plus a doctor probe per registered
7
+ * credential profile) on EVERY tick — each sweep shells out to the vendor
8
+ * CLIs, takes >8s under load, and starves the daemon's request loop until an
9
+ * interactive login POST times out client-side ("Daemon unreachable:
10
+ * ReadTimeout"). The poller needs cheap reads, not fresh probes per tick, so
11
+ * these projections now serve the last computed value inside a short TTL and
12
+ * coalesce concurrent recomputes into one in-flight sweep. An explicit
13
+ * fresh/snapshot request still bypasses the TTL, and a credential-state
14
+ * change (login/logout) invalidates every registered cache so a fresh login
15
+ * is visible on the next poll rather than a TTL later.
16
+ */
17
+ /** Cheap identity stamp of the global config file: any write — service-layer,
18
+ * CLI, or hand edit — changes it, so config-derived projection facts are never
19
+ * served stale. One stat() per poll read. */
20
+ export declare function globalConfigVersion(): string;
21
+ export declare const STATUS_PROJECTION_TTL_MS = 15000;
22
+ export interface StatusProjectionCacheOptions {
23
+ ttlMs?: number;
24
+ now?: () => number;
25
+ /**
26
+ * Cheap version stamp the cached value must match to be served — the global
27
+ * config file's identity for both poll surfaces. Config-derived facts (the
28
+ * Enabled toggle, registered profiles) are cheap to read and mutable through
29
+ * MANY paths (service mutations, the CLI, a hand edit), so they must never
30
+ * lag a TTL: only the expensive probe-derived facts deserve one. A version
31
+ * mismatch recomputes exactly like an invalidation.
32
+ */
33
+ versionOf?: () => string;
34
+ }
35
+ export declare class StatusProjectionCache<T> {
36
+ private value;
37
+ private inFlight;
38
+ private generation;
39
+ private readonly ttlMs;
40
+ private readonly now;
41
+ private readonly versionOf;
42
+ constructor(opts?: StatusProjectionCacheOptions);
43
+ /** Serve the cached value inside the TTL (same version); otherwise compute
44
+ * once, shared by every concurrent reader. `fresh` bypasses the TTL but
45
+ * still coalesces with a current in-flight compute and re-primes the cache
46
+ * on completion. An invalidation or version change during an in-flight
47
+ * compute keeps that compute's result OUT of the cache (its data predates
48
+ * the change) and later readers start a new one. */
49
+ read(compute: () => Promise<T>, opts?: {
50
+ fresh?: boolean;
51
+ }): Promise<T>;
52
+ invalidate(): void;
53
+ }
54
+ /** Credential state changed (login/logout): every projection that embeds
55
+ * harness/profile status is stale at once. */
56
+ export declare function invalidateStatusProjections(): void;
57
+ //# sourceMappingURL=status-projection-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-projection-cache.d.ts","sourceRoot":"","sources":["../src/status-projection-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH;;6CAE6C;AAC7C,wBAAgB,mBAAmB,IAAI,MAAM,CAO5C;AAED,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAE/C,MAAM,WAAW,4BAA4B;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;CAC1B;AAED,qBAAa,qBAAqB,CAAC,CAAC;IAClC,OAAO,CAAC,KAAK,CAAyD;IACtE,OAAO,CAAC,QAAQ,CAA6E;IAC7F,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IAEzC,YAAY,IAAI,GAAE,4BAAiC,EAKlD;IAED;;;;;wDAKoD;IAC9C,IAAI,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CA6C5E;IAED,UAAU,IAAI,IAAI,CAGjB;CACF;AAED;8CAC8C;AAC9C,wBAAgB,2BAA2B,IAAI,IAAI,CAElD"}