@claudexor/cli 3.5.0 → 3.8.0

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 (157) hide show
  1. package/dist/accounts-projection.d.ts +22 -14
  2. package/dist/accounts-projection.d.ts.map +1 -1
  3. package/dist/accounts-projection.js +112 -60
  4. package/dist/accounts-projection.js.map +1 -1
  5. package/dist/accounts-services.d.ts +140 -128
  6. package/dist/accounts-services.d.ts.map +1 -1
  7. package/dist/accounts-services.js +22 -9
  8. package/dist/accounts-services.js.map +1 -1
  9. package/dist/accounts-unified-migration.d.ts +110 -0
  10. package/dist/accounts-unified-migration.d.ts.map +1 -0
  11. package/dist/accounts-unified-migration.js +422 -0
  12. package/dist/accounts-unified-migration.js.map +1 -0
  13. package/dist/agy-quota-source.d.ts +1 -0
  14. package/dist/agy-quota-source.d.ts.map +1 -1
  15. package/dist/agy-quota-source.js +61 -108
  16. package/dist/agy-quota-source.js.map +1 -1
  17. package/dist/auth-login-harnesses.d.ts +7 -5
  18. package/dist/auth-login-harnesses.d.ts.map +1 -1
  19. package/dist/auth-login-harnesses.js +10 -9
  20. package/dist/auth-login-harnesses.js.map +1 -1
  21. package/dist/capabilities.d.ts.map +1 -1
  22. package/dist/capabilities.js +6 -1
  23. package/dist/capabilities.js.map +1 -1
  24. package/dist/claude-oauth-usage.d.ts.map +1 -1
  25. package/dist/claude-oauth-usage.js +9 -3
  26. package/dist/claude-oauth-usage.js.map +1 -1
  27. package/dist/claude-statusline.d.ts.map +1 -1
  28. package/dist/claude-statusline.js +14 -1
  29. package/dist/claude-statusline.js.map +1 -1
  30. package/dist/claudexord-entry.d.ts +7 -2
  31. package/dist/claudexord-entry.d.ts.map +1 -1
  32. package/dist/claudexord-entry.js +33 -11
  33. package/dist/claudexord-entry.js.map +1 -1
  34. package/dist/claudexord.d.ts.map +1 -1
  35. package/dist/claudexord.js +25 -37
  36. package/dist/claudexord.js.map +1 -1
  37. package/dist/cli.js +2 -1
  38. package/dist/cli.js.map +1 -1
  39. package/dist/codex-quota-source.d.ts.map +1 -1
  40. package/dist/codex-quota-source.js +8 -3
  41. package/dist/codex-quota-source.js.map +1 -1
  42. package/dist/command-flags.d.ts.map +1 -1
  43. package/dist/command-flags.js +1 -0
  44. package/dist/command-flags.js.map +1 -1
  45. package/dist/control-services.d.ts +206 -188
  46. package/dist/control-services.d.ts.map +1 -1
  47. package/dist/control-services.js +54 -122
  48. package/dist/control-services.js.map +1 -1
  49. package/dist/credential-commands.d.ts +16 -0
  50. package/dist/credential-commands.d.ts.map +1 -1
  51. package/dist/credential-commands.js +93 -39
  52. package/dist/credential-commands.js.map +1 -1
  53. package/dist/credential-profile-mutations.d.ts +70 -0
  54. package/dist/credential-profile-mutations.d.ts.map +1 -0
  55. package/dist/credential-profile-mutations.js +219 -0
  56. package/dist/credential-profile-mutations.js.map +1 -0
  57. package/dist/credential-status-invalidation.d.ts +11 -0
  58. package/dist/credential-status-invalidation.d.ts.map +1 -0
  59. package/dist/credential-status-invalidation.js +36 -0
  60. package/dist/credential-status-invalidation.js.map +1 -0
  61. package/dist/daemon-admission-runtime.d.ts +5 -0
  62. package/dist/daemon-admission-runtime.d.ts.map +1 -1
  63. package/dist/daemon-admission-runtime.js +1 -0
  64. package/dist/daemon-admission-runtime.js.map +1 -1
  65. package/dist/delegation-belt-descriptor.d.ts +2 -1
  66. package/dist/delegation-belt-descriptor.d.ts.map +1 -1
  67. package/dist/delegation-belt-descriptor.js +2 -1
  68. package/dist/delegation-belt-descriptor.js.map +1 -1
  69. package/dist/harness-command-specs.d.ts.map +1 -1
  70. package/dist/harness-command-specs.js +4 -4
  71. package/dist/harness-command-specs.js.map +1 -1
  72. package/dist/harness-command.d.ts +5 -3
  73. package/dist/harness-command.d.ts.map +1 -1
  74. package/dist/harness-command.js +5 -3
  75. package/dist/harness-command.js.map +1 -1
  76. package/dist/harness-install-lease.d.ts +11 -0
  77. package/dist/harness-install-lease.d.ts.map +1 -0
  78. package/dist/harness-install-lease.js +98 -0
  79. package/dist/harness-install-lease.js.map +1 -0
  80. package/dist/harness-install-proof.d.ts +36 -0
  81. package/dist/harness-install-proof.d.ts.map +1 -0
  82. package/dist/harness-install-proof.js +148 -0
  83. package/dist/harness-install-proof.js.map +1 -0
  84. package/dist/harness-install-recipes.d.ts +80 -0
  85. package/dist/harness-install-recipes.d.ts.map +1 -0
  86. package/dist/harness-install-recipes.js +130 -0
  87. package/dist/harness-install-recipes.js.map +1 -0
  88. package/dist/harness-installer.d.ts +45 -46
  89. package/dist/harness-installer.d.ts.map +1 -1
  90. package/dist/harness-installer.js +248 -156
  91. package/dist/harness-installer.js.map +1 -1
  92. package/dist/mcp-run-projections.d.ts +1 -1
  93. package/dist/native-login.d.ts +7 -0
  94. package/dist/native-login.d.ts.map +1 -1
  95. package/dist/native-login.js +40 -17
  96. package/dist/native-login.js.map +1 -1
  97. package/dist/profile-registration.d.ts +15 -1
  98. package/dist/profile-registration.d.ts.map +1 -1
  99. package/dist/profile-registration.js +124 -7
  100. package/dist/profile-registration.js.map +1 -1
  101. package/dist/quota-services.d.ts +4 -4
  102. package/dist/quota-subject-universe.d.ts.map +1 -1
  103. package/dist/quota-subject-universe.js +6 -0
  104. package/dist/quota-subject-universe.js.map +1 -1
  105. package/dist/remote-command.d.ts +0 -2
  106. package/dist/remote-command.d.ts.map +1 -1
  107. package/dist/remote-command.js +3 -74
  108. package/dist/remote-command.js.map +1 -1
  109. package/dist/run-orchestrator.d.ts +28 -0
  110. package/dist/run-orchestrator.d.ts.map +1 -0
  111. package/dist/run-orchestrator.js +43 -0
  112. package/dist/run-orchestrator.js.map +1 -0
  113. package/dist/settings-service.d.ts +1 -1
  114. package/dist/settings-service.js +3 -3
  115. package/dist/settings-service.js.map +1 -1
  116. package/dist/setup-attach-command.d.ts +30 -0
  117. package/dist/setup-attach-command.d.ts.map +1 -0
  118. package/dist/setup-attach-command.js +118 -0
  119. package/dist/setup-attach-command.js.map +1 -0
  120. package/dist/setup-job-store.d.ts +2 -2
  121. package/dist/setup-job-support.d.ts +36 -9
  122. package/dist/setup-job-support.d.ts.map +1 -1
  123. package/dist/setup-job-support.js +81 -10
  124. package/dist/setup-job-support.js.map +1 -1
  125. package/dist/setup-jobs.d.ts +4 -4
  126. package/dist/setup-jobs.d.ts.map +1 -1
  127. package/dist/setup-jobs.js +50 -47
  128. package/dist/setup-jobs.js.map +1 -1
  129. package/dist/setup-login-capability.d.ts +37 -0
  130. package/dist/setup-login-capability.d.ts.map +1 -0
  131. package/dist/setup-login-capability.js +96 -0
  132. package/dist/setup-login-capability.js.map +1 -0
  133. package/dist/setup-login-io.d.ts +4 -1
  134. package/dist/setup-login-io.d.ts.map +1 -1
  135. package/dist/setup-login-io.js +22 -3
  136. package/dist/setup-login-io.js.map +1 -1
  137. package/dist/setup-login-pty.d.ts +64 -22
  138. package/dist/setup-login-pty.d.ts.map +1 -1
  139. package/dist/setup-login-pty.js +289 -48
  140. package/dist/setup-login-pty.js.map +1 -1
  141. package/dist/setup-login-runner-support.d.ts +12 -0
  142. package/dist/setup-login-runner-support.d.ts.map +1 -0
  143. package/dist/setup-login-runner-support.js +65 -0
  144. package/dist/setup-login-runner-support.js.map +1 -0
  145. package/dist/setup-login-runner.d.ts +2 -0
  146. package/dist/setup-login-runner.d.ts.map +1 -1
  147. package/dist/setup-login-runner.js +119 -116
  148. package/dist/setup-login-runner.js.map +1 -1
  149. package/dist/setup-runner-outcome.d.ts +10 -0
  150. package/dist/setup-runner-outcome.d.ts.map +1 -0
  151. package/dist/setup-runner-outcome.js +49 -0
  152. package/dist/setup-runner-outcome.js.map +1 -0
  153. package/dist/thread-continuity-context.d.ts +24 -0
  154. package/dist/thread-continuity-context.d.ts.map +1 -1
  155. package/dist/thread-continuity-context.js +17 -0
  156. package/dist/thread-continuity-context.js.map +1 -1
  157. package/package.json +24 -24
@@ -1,58 +1,299 @@
1
- import { existsSync } from "node:fs";
2
- /** Refusal when this host has no way to give a login a terminal. */
3
- export const PTY_UNAVAILABLE = "this sign-in needs a terminal on stdin and no terminal helper (expect, script) is available here; run the CLI login instead";
4
- /** Refusal when the sealed command cannot be carried to the helper verbatim. */
5
- export const PTY_UNQUOTABLE = "this sign-in command contains characters the terminal helper cannot carry unchanged; run the CLI login instead";
1
+ import { spawn } from "node:child_process";
2
+ import { constants } from "node:fs";
3
+ import { access, lstat } from "node:fs/promises";
4
+ import { fileURLToPath } from "node:url";
5
+ export const CONPTY_HELPER_PROTOCOL = "claudexor-conpty-helper-v1";
6
+ export const CONPTY_HELPER_ARCHITECTURE = "x64";
7
+ const SAFE_DETAILS = {
8
+ unavailable: "terminal transport helper is unavailable on this host",
9
+ unsupported: "terminal transport is unsupported on this host",
10
+ probe_failed: "terminal transport capability probe failed",
11
+ };
6
12
  /**
7
- * Wrap a login command that needs a real terminal on stdin.
13
+ * Resolve and wrap a login command that needs a real terminal on stdin.
8
14
  *
9
- * Proven by experiment on this platform pair (2026-08-16): BSD `script(1)`
10
- * calls `tcgetattr` on its OWN stdin and dies with "Operation not supported"
11
- * the moment that stdin is a pipe, which is exactly how a daemon-hosted runner
12
- * spawns it so macOS cannot use it. `expect(1)`, which ships with macOS,
13
- * allocates the pty itself and relays plain pipes, and util-linux `script`
14
- * accepts non-tty stdio where `expect` is usually not installed. Probing for
15
- * the tool rather than branching on the platform therefore lands on the one
16
- * that works on both, with a typed refusal when neither exists.
17
- *
18
- * The command is passed to Tcl brace-quoted; a word containing a brace or a
19
- * backslash is REFUSED rather than escaped, because a mis-escaped word would
20
- * become a different command than the manifest digest sealed.
15
+ * This is the single host-capability and spawn-spec owner used by setup
16
+ * admission, status projection, and the worker immediately before spawn. A
17
+ * Windows helper is never reported ready from file presence: its bounded
18
+ * `--probe` must create and close an HPCON and return the exact protocol marker.
21
19
  */
22
- export function ptyWrappedCommand(binary, args, exists = existsSync) {
23
- const words = [binary, ...args];
24
- const EXPECT = "/usr/bin/expect";
25
- const SCRIPT = "/usr/bin/script";
26
- if (exists(EXPECT)) {
27
- if (words.some((word) => /[{}\\\n]/.test(word)))
28
- return { refusal: PTY_UNQUOTABLE };
29
- const spawnCommand = words.map((word) => `{${word}}`).join(" ");
20
+ export async function resolvePtyWrappedCommand(childBinary, childArgs, options = {}) {
21
+ const platform = options.platform ?? process.platform;
22
+ const inspect = options.inspectExecutable ?? inspectExecutable;
23
+ if (platform === "win32") {
24
+ const helper = await resolveWindowsHelper(options.helperPath, inspect);
25
+ if (helper.status !== "ready")
26
+ return helper;
27
+ const probe = await (options.probeConpty ?? probeConptyHelper)(helper.path);
28
+ if (probe === "unsupported") {
29
+ return {
30
+ status: "unsupported",
31
+ backend: "windows_conpty",
32
+ errorCode: "terminal_transport_unsupported",
33
+ detail: SAFE_DETAILS.unsupported,
34
+ };
35
+ }
36
+ if (probe !== "ready") {
37
+ return {
38
+ status: "probe_failed",
39
+ backend: "windows_conpty",
40
+ errorCode: "terminal_transport_probe_failed",
41
+ detail: SAFE_DETAILS.probe_failed,
42
+ };
43
+ }
30
44
  return {
31
- binary: EXPECT,
32
- // `interact` relays our pipes both ways for the whole login; the vendor
33
- // sees a terminal, we see its URL and can write the pasted code.
34
- //
35
- // Everything after it exists because `interact` returns expect's OWN
36
- // status, not the vendor's: without this an authentication that the
37
- // vendor REJECTED would be recorded as a successful login, and its
38
- // diagnostic tail would be dropped. `wait` yields the child's exit code,
39
- // a signal death is reported as one, and a spawn that never started is
40
- // 127 — the same shape a shell would give.
41
- args: [
42
- "-c",
43
- `set timeout -1; if {[catch {spawn -noecho ${spawnCommand}}]} { exit 127 }; ` +
44
- "set pid [exp_pid]; interact; catch {wait} r; " +
45
- "if {[lsearch -exact $r CHILDKILLED] >= 0} { exit 129 }; " +
46
- "catch {exec kill -TERM $pid}; exit [lindex $r 3]",
47
- ],
45
+ status: "ready",
46
+ backend: "windows_conpty",
47
+ command: { binary: helper.path, args: ["--", childBinary, ...childArgs] },
48
+ helperControlStderr: true,
48
49
  };
49
50
  }
50
- if (exists(SCRIPT) && process.platform !== "darwin") {
51
+ const words = [childBinary, ...childArgs];
52
+ const expectPath = options.expectPath ?? "/usr/bin/expect";
53
+ const scriptPath = options.scriptPath ?? "/usr/bin/script";
54
+ const expect = await inspect(expectPath);
55
+ if (expect === "regular_executable") {
56
+ if (!words.some((word) => /[{}\\\n]/.test(word))) {
57
+ const spawnCommand = words.map((word) => `{${word}}`).join(" ");
58
+ return {
59
+ status: "ready",
60
+ backend: "expect",
61
+ command: {
62
+ binary: expectPath,
63
+ // `interact` relays our pipes for the whole login. `wait` is
64
+ // load-bearing: interact returns expect's status, not the vendor's.
65
+ args: [
66
+ "-c",
67
+ `set timeout -1; if {[catch {spawn -noecho ${spawnCommand}}]} { exit 127 }; ` +
68
+ "set pid [exp_pid]; interact; catch {wait} r; " +
69
+ "if {[lsearch -exact $r CHILDKILLED] >= 0} { exit 129 }; " +
70
+ "catch {exec kill -TERM $pid}; exit [lindex $r 3]",
71
+ ],
72
+ },
73
+ helperControlStderr: false,
74
+ };
75
+ }
76
+ // Linux can still carry this exact argv through util-linux script. macOS
77
+ // script requires its own stdin to be a TTY and is not a daemon backend.
78
+ if (platform === "darwin") {
79
+ return {
80
+ status: "unsupported",
81
+ backend: "expect",
82
+ errorCode: "terminal_transport_unsupported",
83
+ detail: SAFE_DETAILS.unsupported,
84
+ };
85
+ }
86
+ }
87
+ if (platform === "linux" && (await inspect(scriptPath)) === "regular_executable") {
51
88
  const quoted = words.map((word) => `'${word.replaceAll("'", `'"'"'`)}'`).join(" ");
52
- // `-e` for the same reason: without it script reports its own status and
53
- // a rejected login reads as a successful one.
54
- return { binary: SCRIPT, args: ["-e", "-q", "-c", quoted, "/dev/null"] };
89
+ return {
90
+ status: "ready",
91
+ backend: "script",
92
+ command: { binary: scriptPath, args: ["-e", "-q", "-c", quoted, "/dev/null"] },
93
+ helperControlStderr: false,
94
+ };
95
+ }
96
+ return {
97
+ status: "unavailable",
98
+ backend: null,
99
+ errorCode: "terminal_transport_unavailable",
100
+ detail: SAFE_DETAILS.unavailable,
101
+ };
102
+ }
103
+ async function resolveWindowsHelper(explicitPath, inspect) {
104
+ const candidates = explicitPath
105
+ ? [explicitPath]
106
+ : [
107
+ fileURLToPath(new URL("./native/claudexor-conpty-helper.exe", import.meta.url)),
108
+ fileURLToPath(new URL("../../core/dist/native/claudexor-conpty-helper.exe", import.meta.url)),
109
+ ];
110
+ for (const candidate of candidates) {
111
+ const result = await inspect(candidate);
112
+ if (result === "missing")
113
+ continue;
114
+ if (result === "regular_executable")
115
+ return { status: "ready", path: candidate };
116
+ // A present non-regular adjacent entry is a fail-closed unavailable
117
+ // backend, never permission to search a less-authoritative fallback.
118
+ break;
119
+ }
120
+ return {
121
+ status: "unavailable",
122
+ backend: "windows_conpty",
123
+ errorCode: "terminal_transport_unavailable",
124
+ detail: SAFE_DETAILS.unavailable,
125
+ };
126
+ }
127
+ async function inspectExecutable(path) {
128
+ try {
129
+ const info = await lstat(path);
130
+ if (!info.isFile() || info.isSymbolicLink())
131
+ return "invalid";
132
+ await access(path, constants.X_OK);
133
+ return "regular_executable";
55
134
  }
56
- return { refusal: PTY_UNAVAILABLE };
135
+ catch (error) {
136
+ return error.code === "ENOENT" ? "missing" : "invalid";
137
+ }
138
+ }
139
+ async function probeConptyHelper(path) {
140
+ return await new Promise((resolveProbe) => {
141
+ const cap = 4_096;
142
+ const stdout = [];
143
+ const stderr = [];
144
+ let stdoutBytes = 0;
145
+ let stderrBytes = 0;
146
+ let settled = false;
147
+ let timer;
148
+ const settle = (result) => {
149
+ if (settled)
150
+ return;
151
+ settled = true;
152
+ if (timer)
153
+ clearTimeout(timer);
154
+ resolveProbe(result);
155
+ };
156
+ let child;
157
+ try {
158
+ child = spawn(path, ["--probe"], {
159
+ shell: false,
160
+ windowsHide: true,
161
+ detached: false,
162
+ stdio: ["ignore", "pipe", "pipe"],
163
+ });
164
+ }
165
+ catch {
166
+ settle("failed");
167
+ return;
168
+ }
169
+ const overflow = () => {
170
+ try {
171
+ child.kill();
172
+ }
173
+ catch {
174
+ /* best effort */
175
+ }
176
+ settle("failed");
177
+ };
178
+ child.stdout?.on("data", (chunk) => {
179
+ stdoutBytes += chunk.length;
180
+ if (stdoutBytes > cap)
181
+ return overflow();
182
+ stdout.push(Buffer.from(chunk));
183
+ });
184
+ child.stderr?.on("data", (chunk) => {
185
+ stderrBytes += chunk.length;
186
+ if (stderrBytes > cap)
187
+ return overflow();
188
+ stderr.push(Buffer.from(chunk));
189
+ });
190
+ child.once("error", () => settle("failed"));
191
+ child.once("close", (code, signal) => {
192
+ if (settled)
193
+ return;
194
+ if (code === 3 && signal === null && isExactUnsupportedProbeFrame(stdoutBytes, stderr)) {
195
+ return settle("unsupported");
196
+ }
197
+ const marker = Buffer.concat(stdout);
198
+ settle(code === 0 &&
199
+ signal === null &&
200
+ stderrBytes === 0 &&
201
+ marker.equals(Buffer.from(`${CONPTY_HELPER_PROTOCOL}\t${CONPTY_HELPER_ARCHITECTURE}\n`, "ascii"))
202
+ ? "ready"
203
+ : "failed");
204
+ });
205
+ timer = setTimeout(() => overflow(), 5_000);
206
+ timer.unref?.();
207
+ });
208
+ }
209
+ /** Exit 3 is authoritative only when the owned helper reports the one API-load
210
+ * unsupported frame it can emit before creating an HPCON. No raw phase or
211
+ * Win32 error code crosses the resolver boundary. */
212
+ function isExactUnsupportedProbeFrame(stdoutBytes, stderr) {
213
+ if (stdoutBytes !== 0)
214
+ return false;
215
+ const frame = Buffer.concat(stderr);
216
+ const prefix = Buffer.from(`${CONPTY_HELPER_PROTOCOL}\terror\t1\t`, "ascii");
217
+ if (frame.length < prefix.length + 2 ||
218
+ !frame.subarray(0, prefix.length).equals(prefix) ||
219
+ frame[frame.length - 1] !== 0x0a) {
220
+ return false;
221
+ }
222
+ const codeBytes = frame.subarray(prefix.length, frame.length - 1);
223
+ if (codeBytes.length === 0 ||
224
+ (codeBytes.length > 1 && codeBytes[0] === 0x30) ||
225
+ codeBytes.some((byte) => byte < 0x30 || byte > 0x39)) {
226
+ return false;
227
+ }
228
+ const code = Number(codeBytes.toString("ascii"));
229
+ return Number.isSafeInteger(code) && code >= 0 && code <= 0xffff_ffff;
230
+ }
231
+ /** Bounded parser for helper-only stderr. It never returns raw bytes. */
232
+ export function createConptyControlParser(limit = 4_096) {
233
+ const chunks = [];
234
+ let bytes = 0;
235
+ let overflow = false;
236
+ return {
237
+ push(chunk) {
238
+ if (overflow)
239
+ return;
240
+ bytes += chunk.length;
241
+ if (bytes > limit) {
242
+ overflow = true;
243
+ chunks.length = 0;
244
+ return;
245
+ }
246
+ chunks.push(Buffer.from(chunk));
247
+ },
248
+ finish() {
249
+ const state = {
250
+ started: false,
251
+ childPid: null,
252
+ error: null,
253
+ malformed: overflow,
254
+ };
255
+ if (overflow)
256
+ return state;
257
+ const text = Buffer.concat(chunks).toString("ascii");
258
+ for (const line of text.split(/\r?\n/).filter(Boolean)) {
259
+ const fields = line.split("\t");
260
+ if (fields[0] !== CONPTY_HELPER_PROTOCOL) {
261
+ state.malformed = true;
262
+ continue;
263
+ }
264
+ if (fields[1] === "started" && fields.length === 3) {
265
+ const pid = Number(fields[2]);
266
+ if (state.started || !Number.isSafeInteger(pid) || pid <= 0)
267
+ state.malformed = true;
268
+ else {
269
+ state.started = true;
270
+ state.childPid = pid;
271
+ }
272
+ continue;
273
+ }
274
+ if (fields[1] === "error" && fields.length === 4) {
275
+ const phase = Number(fields[2]);
276
+ const code = Number(fields[3]);
277
+ if (state.error !== null ||
278
+ !Number.isSafeInteger(phase) ||
279
+ phase < 1 ||
280
+ phase > 10 ||
281
+ !Number.isSafeInteger(code) ||
282
+ code < 0 ||
283
+ code > 0xffff_ffff) {
284
+ state.malformed = true;
285
+ }
286
+ else {
287
+ state.error = { phase, code };
288
+ }
289
+ continue;
290
+ }
291
+ state.malformed = true;
292
+ }
293
+ if (!state.started && state.error === null)
294
+ state.malformed = true;
295
+ return state;
296
+ },
297
+ };
57
298
  }
58
299
  //# sourceMappingURL=setup-login-pty.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup-login-pty.js","sourceRoot":"","sources":["../src/setup-login-pty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,oEAAoE;AACpE,MAAM,CAAC,MAAM,eAAe,GAC1B,6HAA6H,CAAC;AAEhI,gFAAgF;AAChF,MAAM,CAAC,MAAM,cAAc,GACzB,gHAAgH,CAAC;AAEnH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAc,EACd,IAAc,EACd,MAAM,GAA8B,UAAU;IAE9C,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,iBAAiB,CAAC;IACjC,MAAM,MAAM,GAAG,iBAAiB,CAAC;IACjC,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACnB,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;QACpF,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,OAAO;YACL,MAAM,EAAE,MAAM;YACd,wEAAwE;YACxE,iEAAiE;YACjE,EAAE;YACF,qEAAqE;YACrE,oEAAoE;YACpE,mEAAmE;YACnE,yEAAyE;YACzE,uEAAuE;YACvE,2CAA2C;YAC3C,IAAI,EAAE;gBACJ,IAAI;gBACJ,6CAA6C,YAAY,oBAAoB;oBAC3E,+CAA+C;oBAC/C,0DAA0D;oBAC1D,kDAAkD;aACrD;SACF,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnF,yEAAyE;QACzE,8CAA8C;QAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC;IAC3E,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"setup-login-pty.js","sourceRoot":"","sources":["../src/setup-login-pty.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { ChildProcess } from "node:child_process";
2
+ import { type SetupLoginManifest, type SetupLoginRunnerResult } from "./setup-login-protocol.js";
3
+ export declare function persistRunnerResult(manifest: SetupLoginManifest, result: Omit<SetupLoginRunnerResult, "version" | "jobId" | "executionId" | "commandDigest" | "manifestDigest">): void;
4
+ export declare function persistRunnerFailure(manifest: SetupLoginManifest, now: () => Date, permitIssuedAt: string | null, errorCode: NonNullable<SetupLoginRunnerResult["errorCode"]>, outputTail?: string): void;
5
+ export declare function persistRunnerCommandFailure(manifest: SetupLoginManifest, now: () => Date, permitIssuedAt: string | null, errorCode: NonNullable<SetupLoginRunnerResult["errorCode"]>, commandStarted: boolean, outputTail?: string): void;
6
+ export declare function waitForRunnerExit(child: ChildProcess): Promise<{
7
+ code: number | null;
8
+ signal: NodeJS.Signals | null;
9
+ }>;
10
+ /** The bootstrap itself never needs model/provider credentials. */
11
+ export declare function runnerBootstrapEnv(source?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
12
+ //# sourceMappingURL=setup-login-runner-support.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-login-runner-support.d.ts","sourceRoot":"","sources":["../src/setup-login-runner-support.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC5B,MAAM,2BAA2B,CAAC;AAEnC,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,kBAAkB,EAC5B,MAAM,EAAE,IAAI,CACV,sBAAsB,EACtB,SAAS,GAAG,OAAO,GAAG,aAAa,GAAG,eAAe,GAAG,gBAAgB,CACzE,GACA,IAAI,CASN;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,kBAAkB,EAC5B,GAAG,EAAE,MAAM,IAAI,EACf,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,SAAS,EAAE,WAAW,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,EAC3D,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CAEN;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,kBAAkB,EAC5B,GAAG,EAAE,MAAM,IAAI,EACf,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,SAAS,EAAE,WAAW,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,EAC3D,cAAc,EAAE,OAAO,EACvB,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CAUN;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;CAAE,CAAC,CAKjE;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,CAAC,MAAM,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU,CA8B7F"}
@@ -0,0 +1,65 @@
1
+ import { WINDOWS_RUNTIME_ENV_KEYS, pickAllowlistedEnv } from "@claudexor/core";
2
+ import { SETUP_LOGIN_PROTOCOL_VERSION, atomicPrivateJson, } from "./setup-login-protocol.js";
3
+ export function persistRunnerResult(manifest, result) {
4
+ atomicPrivateJson(manifest.resultPath, {
5
+ version: SETUP_LOGIN_PROTOCOL_VERSION,
6
+ jobId: manifest.jobId,
7
+ executionId: manifest.executionId,
8
+ commandDigest: manifest.commandDigest,
9
+ manifestDigest: manifest.manifestDigest,
10
+ ...result,
11
+ });
12
+ }
13
+ export function persistRunnerFailure(manifest, now, permitIssuedAt, errorCode, outputTail) {
14
+ persistRunnerCommandFailure(manifest, now, permitIssuedAt, errorCode, false, outputTail);
15
+ }
16
+ export function persistRunnerCommandFailure(manifest, now, permitIssuedAt, errorCode, commandStarted, outputTail) {
17
+ persistRunnerResult(manifest, {
18
+ permitIssuedAt,
19
+ commandStarted,
20
+ errorCode,
21
+ exitCode: null,
22
+ signal: null,
23
+ finishedAt: now().toISOString(),
24
+ ...(outputTail === undefined ? {} : { outputTail }),
25
+ });
26
+ }
27
+ export function waitForRunnerExit(child) {
28
+ return new Promise((resolveExit, reject) => {
29
+ child.once("error", reject);
30
+ child.once("close", (code, signal) => resolveExit({ code, signal }));
31
+ });
32
+ }
33
+ /** The bootstrap itself never needs model/provider credentials. */
34
+ export function runnerBootstrapEnv(source = process.env) {
35
+ return pickAllowlistedEnv(source, [
36
+ "PATH",
37
+ "HOME",
38
+ "TMPDIR",
39
+ "LANG",
40
+ "LC_ALL",
41
+ "LC_CTYPE",
42
+ "TERM",
43
+ "COLORTERM",
44
+ "NO_COLOR",
45
+ "SHELL",
46
+ "USER",
47
+ "LOGNAME",
48
+ "CLAUDEXOR_CONFIG_DIR",
49
+ "CLAUDEXOR_CODEX_NATIVE_HOME",
50
+ "CLAUDEXOR_CLAUDE_NATIVE_DIR",
51
+ "HTTP_PROXY",
52
+ "HTTPS_PROXY",
53
+ "NO_PROXY",
54
+ "ALL_PROXY",
55
+ "http_proxy",
56
+ "https_proxy",
57
+ "no_proxy",
58
+ "all_proxy",
59
+ "SSL_CERT_FILE",
60
+ "SSL_CERT_DIR",
61
+ "NODE_EXTRA_CA_CERTS",
62
+ ...WINDOWS_RUNTIME_ENV_KEYS,
63
+ ]);
64
+ }
65
+ //# sourceMappingURL=setup-login-runner-support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-login-runner-support.js","sourceRoot":"","sources":["../src/setup-login-runner-support.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,GAGlB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,UAAU,mBAAmB,CACjC,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,MAAM,UAAU,oBAAoB,CAClC,QAA4B,EAC5B,GAAe,EACf,cAA6B,EAC7B,SAA2D,EAC3D,UAAmB;IAEnB,2BAA2B,CAAC,QAAQ,EAAE,GAAG,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,QAA4B,EAC5B,GAAe,EACf,cAA6B,EAC7B,SAA2D,EAC3D,cAAuB,EACvB,UAAmB;IAEnB,mBAAmB,CAAC,QAAQ,EAAE;QAC5B,cAAc;QACd,cAAc;QACd,SAAS;QACT,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;QAC/B,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;KACpD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAmB;IAEnB,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,mEAAmE;AACnE,MAAM,UAAU,kBAAkB,CAAC,MAAM,GAAsB,OAAO,CAAC,GAAG;IACxE,OAAO,kBAAkB,CAAC,MAAM,EAAE;QAChC,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,UAAU;QACV,MAAM;QACN,WAAW;QACX,UAAU;QACV,OAAO;QACP,MAAM;QACN,SAAS;QACT,sBAAsB;QACtB,6BAA6B;QAC7B,6BAA6B;QAC7B,YAAY;QACZ,aAAa;QACb,UAAU;QACV,WAAW;QACX,YAAY;QACZ,aAAa;QACb,UAAU;QACV,WAAW;QACX,eAAe;QACf,cAAc;QACd,qBAAqB;QACrB,GAAG,wBAAwB;KAC5B,CAAC,CAAC;AACL,CAAC"}
@@ -2,6 +2,7 @@
2
2
  import { spawn } from "node:child_process";
3
3
  import { processGroupServiceWithWindowsSupport } from "@claudexor/core";
4
4
  export { terminateAppServerChild } from "./setup-login-child-lifecycle.js";
5
+ import { resolvePtyWrappedCommand } from "./setup-login-pty.js";
5
6
  export { createOAuthUrlDetector, extractOAuthUrl } from "./setup-login-url.js";
6
7
  export interface SetupLoginRunnerOptions {
7
8
  now?: () => Date;
@@ -10,6 +11,7 @@ export interface SetupLoginRunnerOptions {
10
11
  processGroupService?: ReturnType<typeof processGroupServiceWithWindowsSupport>;
11
12
  selfPid?: number;
12
13
  runnerPath?: string;
14
+ resolvePtyCommand?: typeof resolvePtyWrappedCommand;
13
15
  }
14
16
  /**
15
17
  * Terminal-visible bootstrap. It creates a detached worker process group and
@@ -1 +1 @@
1
- {"version":3,"file":"setup-login-runner.d.ts","sourceRoot":"","sources":["../src/setup-login-runner.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAwC,MAAM,oBAAoB,CAAC;AAKjF,OAAO,EAGL,qCAAqC,EACtC,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAI3E,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAc/E,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,KAAK,CAAC;IAC5B,mBAAmB,CAAC,EAAE,UAAU,CAAC,OAAO,qCAAqC,CAAC,CAAC;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED,gFAAgF;AAChF,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,MAAM,CAAC,CA8KjB"}
1
+ {"version":3,"file":"setup-login-runner.d.ts","sourceRoot":"","sources":["../src/setup-login-runner.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAwC,MAAM,oBAAoB,CAAC;AAKjF,OAAO,EAAE,qCAAqC,EAAE,MAAM,iBAAiB,CAAC;AAOxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAE3E,OAAO,EAEL,wBAAwB,EAEzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAoB/E,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,KAAK,CAAC;IAC5B,mBAAmB,CAAC,EAAE,UAAU,CAAC,OAAO,qCAAqC,CAAC,CAAC;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,wBAAwB,CAAC;CACrD;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,gFAAgF;AAChF,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,MAAM,CAAC,CAkPjB"}