@alvax-ai/adapter-codex-local 0.1.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.
- package/dist/cli/format-event.d.ts +2 -0
- package/dist/cli/format-event.d.ts.map +1 -0
- package/dist/cli/format-event.js +213 -0
- package/dist/cli/format-event.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/quota-probe.d.ts +3 -0
- package/dist/cli/quota-probe.d.ts.map +1 -0
- package/dist/cli/quota-probe.js +97 -0
- package/dist/cli/quota-probe.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +81 -0
- package/dist/index.js.map +1 -0
- package/dist/server/codex-args.d.ts +11 -0
- package/dist/server/codex-args.d.ts.map +1 -0
- package/dist/server/codex-args.js +55 -0
- package/dist/server/codex-args.js.map +1 -0
- package/dist/server/codex-home.d.ts +15 -0
- package/dist/server/codex-home.d.ts.map +1 -0
- package/dist/server/codex-home.js +107 -0
- package/dist/server/codex-home.js.map +1 -0
- package/dist/server/execute.d.ts +15 -0
- package/dist/server/execute.d.ts.map +1 -0
- package/dist/server/execute.js +677 -0
- package/dist/server/execute.js.map +1 -0
- package/dist/server/index.d.ts +8 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +57 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/parse.d.ts +22 -0
- package/dist/server/parse.d.ts.map +1 -0
- package/dist/server/parse.js +213 -0
- package/dist/server/parse.js.map +1 -0
- package/dist/server/quota.d.ts +64 -0
- package/dist/server/quota.d.ts.map +1 -0
- package/dist/server/quota.js +432 -0
- package/dist/server/quota.js.map +1 -0
- package/dist/server/skills.d.ts +8 -0
- package/dist/server/skills.d.ts.map +1 -0
- package/dist/server/skills.js +65 -0
- package/dist/server/skills.js.map +1 -0
- package/dist/server/test.d.ts +3 -0
- package/dist/server/test.d.ts.map +1 -0
- package/dist/server/test.js +259 -0
- package/dist/server/test.js.map +1 -0
- package/dist/ui/build-config.d.ts +3 -0
- package/dist/ui/build-config.d.ts.map +1 -0
- package/dist/ui/build-config.js +113 -0
- package/dist/ui/build-config.js.map +1 -0
- package/dist/ui/index.d.ts +3 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +3 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/parse-stdout.d.ts +3 -0
- package/dist/ui/parse-stdout.d.ts.map +1 -0
- package/dist/ui/parse-stdout.js +261 -0
- package/dist/ui/parse-stdout.js.map +1 -0
- package/package.json +59 -0
- package/skills/alvax/SKILL.md +448 -0
- package/skills/alvax/references/api-reference.md +284 -0
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { asString, parseObject, ensurePathInEnv, } from "@alvax-ai/adapter-utils/server-utils";
|
|
2
|
+
import { ensureAdapterExecutionTargetCommandResolvable, ensureAdapterExecutionTargetDirectory, maybeRunSandboxInstallCommand, runAdapterExecutionTargetProcess, describeAdapterExecutionTarget, resolveAdapterExecutionTargetCwd, } from "@alvax-ai/adapter-utils/execution-target";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import os from "node:os";
|
|
5
|
+
import { parseCodexJsonl } from "./parse.js";
|
|
6
|
+
import { SANDBOX_INSTALL_COMMAND } from "../index.js";
|
|
7
|
+
import { codexHomeDir, readCodexAuthInfo } from "./quota.js";
|
|
8
|
+
import { buildCodexExecArgs } from "./codex-args.js";
|
|
9
|
+
function summarizeStatus(checks) {
|
|
10
|
+
if (checks.some((check) => check.level === "error"))
|
|
11
|
+
return "fail";
|
|
12
|
+
if (checks.some((check) => check.level === "warn"))
|
|
13
|
+
return "warn";
|
|
14
|
+
return "pass";
|
|
15
|
+
}
|
|
16
|
+
function isNonEmpty(value) {
|
|
17
|
+
return typeof value === "string" && value.trim().length > 0;
|
|
18
|
+
}
|
|
19
|
+
function firstNonEmptyLine(text) {
|
|
20
|
+
return (text
|
|
21
|
+
.split(/\r?\n/)
|
|
22
|
+
.map((line) => line.trim())
|
|
23
|
+
.find(Boolean) ?? "");
|
|
24
|
+
}
|
|
25
|
+
function commandLooksLike(command, expected) {
|
|
26
|
+
const base = path.basename(command).toLowerCase();
|
|
27
|
+
return base === expected || base === `${expected}.cmd` || base === `${expected}.exe`;
|
|
28
|
+
}
|
|
29
|
+
function summarizeProbeDetail(stdout, stderr, parsedError) {
|
|
30
|
+
const raw = parsedError?.trim() || firstNonEmptyLine(stderr) || firstNonEmptyLine(stdout);
|
|
31
|
+
if (!raw)
|
|
32
|
+
return null;
|
|
33
|
+
const clean = raw.replace(/\s+/g, " ").trim();
|
|
34
|
+
const max = 240;
|
|
35
|
+
return clean.length > max ? `${clean.slice(0, max - 1)}…` : clean;
|
|
36
|
+
}
|
|
37
|
+
const CODEX_AUTH_REQUIRED_RE = /(?:not\s+logged\s+in|login\s+required|authentication\s+required|unauthorized|invalid(?:\s+or\s+missing)?\s+api(?:[_\s-]?key)?|openai[_\s-]?api[_\s-]?key|api[_\s-]?key.*required|please\s+run\s+`?codex\s+login`?)/i;
|
|
38
|
+
export async function testEnvironment(ctx) {
|
|
39
|
+
const checks = [];
|
|
40
|
+
const config = parseObject(ctx.config);
|
|
41
|
+
const command = asString(config.command, "codex");
|
|
42
|
+
const target = ctx.executionTarget ?? null;
|
|
43
|
+
const targetIsRemote = target?.kind === "remote";
|
|
44
|
+
const cwd = resolveAdapterExecutionTargetCwd(target, asString(config.cwd, ""), process.cwd());
|
|
45
|
+
const targetLabel = targetIsRemote
|
|
46
|
+
? ctx.environmentName ?? describeAdapterExecutionTarget(target)
|
|
47
|
+
: null;
|
|
48
|
+
const runId = `codex-envtest-${Date.now()}-${Math.random().toString(16).slice(2)}`;
|
|
49
|
+
if (targetLabel) {
|
|
50
|
+
checks.push({
|
|
51
|
+
code: "codex_environment_target",
|
|
52
|
+
level: "info",
|
|
53
|
+
message: `Probing inside environment: ${targetLabel}`,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
await ensureAdapterExecutionTargetDirectory(runId, target, cwd, {
|
|
58
|
+
cwd,
|
|
59
|
+
env: {},
|
|
60
|
+
createIfMissing: true,
|
|
61
|
+
});
|
|
62
|
+
checks.push({
|
|
63
|
+
code: "codex_cwd_valid",
|
|
64
|
+
level: "info",
|
|
65
|
+
message: `Working directory is valid: ${cwd}`,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
checks.push({
|
|
70
|
+
code: "codex_cwd_invalid",
|
|
71
|
+
level: "error",
|
|
72
|
+
message: err instanceof Error ? err.message : "Invalid working directory",
|
|
73
|
+
detail: cwd,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
const envConfig = parseObject(config.env);
|
|
77
|
+
const env = {};
|
|
78
|
+
for (const [key, value] of Object.entries(envConfig)) {
|
|
79
|
+
if (typeof value === "string")
|
|
80
|
+
env[key] = value;
|
|
81
|
+
}
|
|
82
|
+
const runtimeEnv = ensurePathInEnv({ ...process.env, ...env });
|
|
83
|
+
const installCheck = await maybeRunSandboxInstallCommand({
|
|
84
|
+
runId,
|
|
85
|
+
target,
|
|
86
|
+
adapterKey: "codex",
|
|
87
|
+
installCommand: SANDBOX_INSTALL_COMMAND,
|
|
88
|
+
detectCommand: command,
|
|
89
|
+
env,
|
|
90
|
+
});
|
|
91
|
+
if (installCheck)
|
|
92
|
+
checks.push(installCheck);
|
|
93
|
+
try {
|
|
94
|
+
await ensureAdapterExecutionTargetCommandResolvable(command, target, cwd, runtimeEnv);
|
|
95
|
+
checks.push({
|
|
96
|
+
code: "codex_command_resolvable",
|
|
97
|
+
level: "info",
|
|
98
|
+
message: `Command is executable: ${command}`,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
checks.push({
|
|
103
|
+
code: "codex_command_unresolvable",
|
|
104
|
+
level: "error",
|
|
105
|
+
message: err instanceof Error ? err.message : "Command is not executable",
|
|
106
|
+
detail: command,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
const configOpenAiKey = env.OPENAI_API_KEY;
|
|
110
|
+
const hostOpenAiKey = targetIsRemote ? undefined : process.env.OPENAI_API_KEY;
|
|
111
|
+
if (isNonEmpty(configOpenAiKey) || isNonEmpty(hostOpenAiKey)) {
|
|
112
|
+
const source = isNonEmpty(configOpenAiKey) ? "adapter config env" : "server environment";
|
|
113
|
+
checks.push({
|
|
114
|
+
code: "codex_openai_api_key_present",
|
|
115
|
+
level: "info",
|
|
116
|
+
message: "OPENAI_API_KEY is set for Codex authentication.",
|
|
117
|
+
detail: `Detected in ${source}.`,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
else if (!targetIsRemote) {
|
|
121
|
+
// Local-only auth file check. On remote targets, the probe will surface
|
|
122
|
+
// any missing-auth errors directly from the remote `codex` invocation.
|
|
123
|
+
const codexHome = isNonEmpty(env.CODEX_HOME) ? env.CODEX_HOME : undefined;
|
|
124
|
+
const codexAuth = await readCodexAuthInfo(codexHome).catch(() => null);
|
|
125
|
+
if (codexAuth) {
|
|
126
|
+
checks.push({
|
|
127
|
+
code: "codex_native_auth_present",
|
|
128
|
+
level: "info",
|
|
129
|
+
message: "Codex is authenticated via its own auth configuration.",
|
|
130
|
+
detail: codexAuth.email ? `Logged in as ${codexAuth.email}.` : `Credentials found in ${path.join(codexHome ?? codexHomeDir(), "auth.json")}.`,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
checks.push({
|
|
135
|
+
code: "codex_openai_api_key_missing",
|
|
136
|
+
level: "warn",
|
|
137
|
+
message: "OPENAI_API_KEY is not set. Codex runs may fail until authentication is configured.",
|
|
138
|
+
hint: "Set OPENAI_API_KEY in adapter env, shell environment, or run `codex auth` to log in.",
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
const canRunProbe = checks.every((check) => check.code !== "codex_cwd_invalid" && check.code !== "codex_command_unresolvable");
|
|
143
|
+
if (canRunProbe) {
|
|
144
|
+
if (!commandLooksLike(command, "codex")) {
|
|
145
|
+
checks.push({
|
|
146
|
+
code: "codex_hello_probe_skipped_custom_command",
|
|
147
|
+
level: "info",
|
|
148
|
+
message: "Skipped hello probe because command is not `codex`.",
|
|
149
|
+
detail: command,
|
|
150
|
+
hint: "Use the `codex` CLI command to run the automatic login and installation probe.",
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
const execArgs = buildCodexExecArgs({ ...config, fastMode: false });
|
|
155
|
+
const args = execArgs.args;
|
|
156
|
+
if (execArgs.fastModeIgnoredReason) {
|
|
157
|
+
checks.push({
|
|
158
|
+
code: "codex_fast_mode_unsupported_model",
|
|
159
|
+
level: "warn",
|
|
160
|
+
message: execArgs.fastModeIgnoredReason,
|
|
161
|
+
hint: "Switch the agent model to GPT-5.4 or enter a manual model ID to enable Codex Fast mode.",
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
// Codex CLI (>= 0.122) ignores the OPENAI_API_KEY env var and only reads
|
|
165
|
+
// credentials from $CODEX_HOME/auth.json. When we have a key available,
|
|
166
|
+
// wrap the probe with a shell that materializes a per-run auth.json so
|
|
167
|
+
// the CLI can authenticate. The key content is passed via env (not on
|
|
168
|
+
// the command line) to avoid leaking it into process listings.
|
|
169
|
+
const probeApiKey = isNonEmpty(configOpenAiKey)
|
|
170
|
+
? configOpenAiKey
|
|
171
|
+
: isNonEmpty(hostOpenAiKey)
|
|
172
|
+
? hostOpenAiKey
|
|
173
|
+
: null;
|
|
174
|
+
let probeCommand = command;
|
|
175
|
+
let probeArgs = args;
|
|
176
|
+
const probeEnv = { ...env };
|
|
177
|
+
if (probeApiKey) {
|
|
178
|
+
const probeHome = targetIsRemote
|
|
179
|
+
? `/tmp/alvax-codex-probe-${runId}`
|
|
180
|
+
: path.join(os.tmpdir(), `alvax-codex-probe-${runId}`);
|
|
181
|
+
probeEnv.CODEX_HOME = probeHome;
|
|
182
|
+
probeEnv._ALVAX_CODEX_AUTH_JSON = JSON.stringify({ OPENAI_API_KEY: probeApiKey });
|
|
183
|
+
probeCommand = "sh";
|
|
184
|
+
// Trap on EXIT removes the probe home (with the API-key auth.json) on
|
|
185
|
+
// any exit path; we drop `exec` so the wrapper shell stays alive long
|
|
186
|
+
// enough for the trap to fire after the child returns.
|
|
187
|
+
probeArgs = [
|
|
188
|
+
"-c",
|
|
189
|
+
'set -e; mkdir -p "$CODEX_HOME"; umask 077; printf "%s" "$_ALVAX_CODEX_AUTH_JSON" > "$CODEX_HOME/auth.json"; unset _ALVAX_CODEX_AUTH_JSON; trap \'rm -rf "$CODEX_HOME"\' EXIT INT TERM; "$0" "$@"',
|
|
190
|
+
command,
|
|
191
|
+
...args,
|
|
192
|
+
];
|
|
193
|
+
}
|
|
194
|
+
const probe = await runAdapterExecutionTargetProcess(runId, target, probeCommand, probeArgs, {
|
|
195
|
+
cwd,
|
|
196
|
+
env: probeEnv,
|
|
197
|
+
timeoutSec: 45,
|
|
198
|
+
graceSec: 5,
|
|
199
|
+
stdin: "Respond with hello.",
|
|
200
|
+
onLog: async () => { },
|
|
201
|
+
});
|
|
202
|
+
const parsed = parseCodexJsonl(probe.stdout);
|
|
203
|
+
const detail = summarizeProbeDetail(probe.stdout, probe.stderr, parsed.errorMessage);
|
|
204
|
+
const authEvidence = `${parsed.errorMessage ?? ""}\n${probe.stdout}\n${probe.stderr}`.trim();
|
|
205
|
+
if (probe.timedOut) {
|
|
206
|
+
checks.push({
|
|
207
|
+
code: "codex_hello_probe_timed_out",
|
|
208
|
+
level: "warn",
|
|
209
|
+
message: "Codex hello probe timed out.",
|
|
210
|
+
hint: "Retry the probe. If this persists, verify Codex can run `Respond with hello` from this directory manually.",
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
else if ((probe.exitCode ?? 1) === 0) {
|
|
214
|
+
const summary = parsed.summary.trim();
|
|
215
|
+
const hasHello = /\bhello\b/i.test(summary);
|
|
216
|
+
checks.push({
|
|
217
|
+
code: hasHello ? "codex_hello_probe_passed" : "codex_hello_probe_unexpected_output",
|
|
218
|
+
level: hasHello ? "info" : "warn",
|
|
219
|
+
message: hasHello
|
|
220
|
+
? "Codex hello probe succeeded."
|
|
221
|
+
: "Codex probe ran but did not return `hello` as expected.",
|
|
222
|
+
...(summary ? { detail: summary.replace(/\s+/g, " ").trim().slice(0, 240) } : {}),
|
|
223
|
+
...(hasHello
|
|
224
|
+
? {}
|
|
225
|
+
: {
|
|
226
|
+
hint: "Try the probe manually (`codex exec --json -` then prompt: Respond with hello) to inspect full output.",
|
|
227
|
+
}),
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
else if (CODEX_AUTH_REQUIRED_RE.test(authEvidence)) {
|
|
231
|
+
checks.push({
|
|
232
|
+
code: "codex_hello_probe_auth_required",
|
|
233
|
+
level: "warn",
|
|
234
|
+
message: "Codex CLI is installed, but authentication is not ready.",
|
|
235
|
+
...(detail ? { detail } : {}),
|
|
236
|
+
hint: probeApiKey
|
|
237
|
+
? "OPENAI_API_KEY was provided but Codex still rejected the request. Verify the key is valid for the OpenAI Responses API (e.g. `curl -H \"Authorization: Bearer $OPENAI_API_KEY\" https://api.openai.com/v1/models`), or run `codex login` and seed `~/.codex/auth.json`."
|
|
238
|
+
: "Codex CLI does not read OPENAI_API_KEY from the environment; set OPENAI_API_KEY in this adapter's config (so Alvax writes it to `$CODEX_HOME/auth.json`) or run `codex login` on the host first.",
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
checks.push({
|
|
243
|
+
code: "codex_hello_probe_failed",
|
|
244
|
+
level: "error",
|
|
245
|
+
message: "Codex hello probe failed.",
|
|
246
|
+
...(detail ? { detail } : {}),
|
|
247
|
+
hint: "Run `codex exec --json -` manually in this working directory and prompt `Respond with hello` to debug.",
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
return {
|
|
253
|
+
adapterType: ctx.adapterType,
|
|
254
|
+
status: summarizeStatus(checks),
|
|
255
|
+
checks,
|
|
256
|
+
testedAt: new Date().toISOString(),
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/server/test.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,QAAQ,EACR,WAAW,EACX,eAAe,GAChB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,6CAA6C,EAC7C,qCAAqC,EACrC,6BAA6B,EAC7B,gCAAgC,EAChC,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,0CAA0C,CAAC;AAClD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,SAAS,eAAe,CAAC,MAAiC;IACxD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IACnE,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAClE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO,CACL,IAAI;SACD,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CACvB,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe,EAAE,QAAgB;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,GAAG,QAAQ,MAAM,IAAI,IAAI,KAAK,GAAG,QAAQ,MAAM,CAAC;AACvF,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc,EAAE,MAAc,EAAE,WAA0B;IACtF,MAAM,GAAG,GAAG,WAAW,EAAE,IAAI,EAAE,IAAI,iBAAiB,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1F,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,MAAM,GAAG,GAAG,GAAG,CAAC;IAChB,OAAO,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AACpE,CAAC;AAED,MAAM,sBAAsB,GAC1B,qNAAqN,CAAC;AAExN,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAkC;IAElC,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC;IAC3C,MAAM,cAAc,GAAG,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC;IACjD,MAAM,GAAG,GAAG,gCAAgC,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9F,MAAM,WAAW,GAAG,cAAc;QAChC,CAAC,CAAC,GAAG,CAAC,eAAe,IAAI,8BAA8B,CAAC,MAAM,CAAC;QAC/D,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,KAAK,GAAG,iBAAiB,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnF,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,+BAA+B,WAAW,EAAE;SACtD,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,MAAM,qCAAqC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE;YAC9D,GAAG;YACH,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,+BAA+B,GAAG,EAAE;SAC9C,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B;YACzE,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;IACL,CAAC;IAED,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAClD,CAAC;IACD,MAAM,UAAU,GAAG,eAAe,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,MAAM,6BAA6B,CAAC;QACvD,KAAK;QACL,MAAM;QACN,UAAU,EAAE,OAAO;QACnB,cAAc,EAAE,uBAAuB;QACvC,aAAa,EAAE,OAAO;QACtB,GAAG;KACJ,CAAC,CAAC;IACH,IAAI,YAAY;QAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,6CAA6C,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACtF,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,0BAA0B;YAChC,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,0BAA0B,OAAO,EAAE;SAC7C,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,4BAA4B;YAClC,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B;YACzE,MAAM,EAAE,OAAO;SAChB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,eAAe,GAAG,GAAG,CAAC,cAAc,CAAC;IAC3C,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC9E,IAAI,UAAU,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC;QACzF,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,8BAA8B;YACpC,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,iDAAiD;YAC1D,MAAM,EAAE,eAAe,MAAM,GAAG;SACjC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC3B,wEAAwE;QACxE,uEAAuE;QACvE,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,2BAA2B;gBACjC,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,wDAAwD;gBACjE,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,wBAAwB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,YAAY,EAAE,EAAE,WAAW,CAAC,GAAG;aAC9I,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,8BAA8B;gBACpC,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,oFAAoF;gBAC7F,IAAI,EAAE,sFAAsF;aAC7F,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GACf,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,mBAAmB,IAAI,KAAK,CAAC,IAAI,KAAK,4BAA4B,CAAC,CAAC;IAC7G,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,0CAA0C;gBAChD,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,qDAAqD;gBAC9D,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,gFAAgF;aACvF,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACpE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC3B,IAAI,QAAQ,CAAC,qBAAqB,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,mCAAmC;oBACzC,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,QAAQ,CAAC,qBAAqB;oBACvC,IAAI,EAAE,yFAAyF;iBAChG,CAAC,CAAC;YACL,CAAC;YAED,yEAAyE;YACzE,wEAAwE;YACxE,uEAAuE;YACvE,sEAAsE;YACtE,+DAA+D;YAC/D,MAAM,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC;gBAC7C,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC;oBACzB,CAAC,CAAC,aAAa;oBACf,CAAC,CAAC,IAAI,CAAC;YACX,IAAI,YAAY,GAAG,OAAO,CAAC;YAC3B,IAAI,SAAS,GAAG,IAAI,CAAC;YACrB,MAAM,QAAQ,GAA2B,EAAE,GAAG,GAAG,EAAE,CAAC;YACpD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,SAAS,GAAG,cAAc;oBAC9B,CAAC,CAAC,0BAA0B,KAAK,EAAE;oBACnC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,qBAAqB,KAAK,EAAE,CAAC,CAAC;gBACzD,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAC;gBAChC,QAAQ,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;gBAClF,YAAY,GAAG,IAAI,CAAC;gBACpB,sEAAsE;gBACtE,sEAAsE;gBACtE,uDAAuD;gBACvD,SAAS,GAAG;oBACV,IAAI;oBACJ,kMAAkM;oBAClM,OAAO;oBACP,GAAG,IAAI;iBACR,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,gCAAgC,CAClD,KAAK,EACL,MAAM,EACN,YAAY,EACZ,SAAS,EACT;gBACE,GAAG;gBACH,GAAG,EAAE,QAAQ;gBACb,UAAU,EAAE,EAAE;gBACd,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,qBAAqB;gBAC5B,KAAK,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;aACtB,CACF,CAAC;YACF,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YACrF,MAAM,YAAY,GAAG,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,KAAK,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YAE7F,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,6BAA6B;oBACnC,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,8BAA8B;oBACvC,IAAI,EAAE,4GAA4G;iBACnH,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACtC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,qCAAqC;oBACnF,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;oBACjC,OAAO,EAAE,QAAQ;wBACf,CAAC,CAAC,8BAA8B;wBAChC,CAAC,CAAC,yDAAyD;oBAC7D,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjF,GAAG,CAAC,QAAQ;wBACV,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC;4BACE,IAAI,EAAE,wGAAwG;yBAC/G,CAAC;iBACP,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBACrD,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,iCAAiC;oBACvC,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,0DAA0D;oBACnE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7B,IAAI,EAAE,WAAW;wBACf,CAAC,CAAC,yQAAyQ;wBAC3Q,CAAC,CAAC,kMAAkM;iBACvM,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,0BAA0B;oBAChC,KAAK,EAAE,OAAO;oBACd,OAAO,EAAE,2BAA2B;oBACpC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7B,IAAI,EAAE,wGAAwG;iBAC/G,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;QAC/B,MAAM;QACN,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACnC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-config.d.ts","sourceRoot":"","sources":["../../src/ui/build-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAoElE,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqCpF"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { DEFAULT_CODEX_LOCAL_BYPASS_APPROVALS_AND_SANDBOX, DEFAULT_CODEX_LOCAL_MODEL, } from "../index.js";
|
|
2
|
+
function parseCommaArgs(value) {
|
|
3
|
+
return value
|
|
4
|
+
.split(",")
|
|
5
|
+
.map((item) => item.trim())
|
|
6
|
+
.filter(Boolean);
|
|
7
|
+
}
|
|
8
|
+
function parseEnvVars(text) {
|
|
9
|
+
const env = {};
|
|
10
|
+
for (const line of text.split(/\r?\n/)) {
|
|
11
|
+
const trimmed = line.trim();
|
|
12
|
+
if (!trimmed || trimmed.startsWith("#"))
|
|
13
|
+
continue;
|
|
14
|
+
const eq = trimmed.indexOf("=");
|
|
15
|
+
if (eq <= 0)
|
|
16
|
+
continue;
|
|
17
|
+
const key = trimmed.slice(0, eq).trim();
|
|
18
|
+
const value = trimmed.slice(eq + 1);
|
|
19
|
+
if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(key))
|
|
20
|
+
continue;
|
|
21
|
+
env[key] = value;
|
|
22
|
+
}
|
|
23
|
+
return env;
|
|
24
|
+
}
|
|
25
|
+
function parseEnvBindings(bindings) {
|
|
26
|
+
if (typeof bindings !== "object" || bindings === null || Array.isArray(bindings))
|
|
27
|
+
return {};
|
|
28
|
+
const env = {};
|
|
29
|
+
for (const [key, raw] of Object.entries(bindings)) {
|
|
30
|
+
if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(key))
|
|
31
|
+
continue;
|
|
32
|
+
if (typeof raw === "string") {
|
|
33
|
+
env[key] = { type: "plain", value: raw };
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
if (typeof raw !== "object" || raw === null || Array.isArray(raw))
|
|
37
|
+
continue;
|
|
38
|
+
const rec = raw;
|
|
39
|
+
if (rec.type === "plain" && typeof rec.value === "string") {
|
|
40
|
+
env[key] = { type: "plain", value: rec.value };
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
if (rec.type === "secret_ref" && typeof rec.secretId === "string") {
|
|
44
|
+
env[key] = {
|
|
45
|
+
type: "secret_ref",
|
|
46
|
+
secretId: rec.secretId,
|
|
47
|
+
...(typeof rec.version === "number" || rec.version === "latest"
|
|
48
|
+
? { version: rec.version }
|
|
49
|
+
: {}),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return env;
|
|
54
|
+
}
|
|
55
|
+
function parseJsonObject(text) {
|
|
56
|
+
const trimmed = text.trim();
|
|
57
|
+
if (!trimmed)
|
|
58
|
+
return null;
|
|
59
|
+
try {
|
|
60
|
+
const parsed = JSON.parse(trimmed);
|
|
61
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed))
|
|
62
|
+
return null;
|
|
63
|
+
return parsed;
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export function buildCodexLocalConfig(v) {
|
|
70
|
+
const ac = {};
|
|
71
|
+
if (v.cwd)
|
|
72
|
+
ac.cwd = v.cwd;
|
|
73
|
+
if (v.instructionsFilePath)
|
|
74
|
+
ac.instructionsFilePath = v.instructionsFilePath;
|
|
75
|
+
ac.model = v.model || DEFAULT_CODEX_LOCAL_MODEL;
|
|
76
|
+
if (v.thinkingEffort)
|
|
77
|
+
ac.modelReasoningEffort = v.thinkingEffort;
|
|
78
|
+
ac.timeoutSec = 0;
|
|
79
|
+
ac.graceSec = 15;
|
|
80
|
+
const env = parseEnvBindings(v.envBindings);
|
|
81
|
+
const legacy = parseEnvVars(v.envVars);
|
|
82
|
+
for (const [key, value] of Object.entries(legacy)) {
|
|
83
|
+
if (!Object.prototype.hasOwnProperty.call(env, key)) {
|
|
84
|
+
env[key] = { type: "plain", value };
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (Object.keys(env).length > 0)
|
|
88
|
+
ac.env = env;
|
|
89
|
+
ac.search = v.search;
|
|
90
|
+
ac.fastMode = v.fastMode;
|
|
91
|
+
ac.dangerouslyBypassApprovalsAndSandbox =
|
|
92
|
+
typeof v.dangerouslyBypassSandbox === "boolean"
|
|
93
|
+
? v.dangerouslyBypassSandbox
|
|
94
|
+
: DEFAULT_CODEX_LOCAL_BYPASS_APPROVALS_AND_SANDBOX;
|
|
95
|
+
if (v.workspaceStrategyType === "git_worktree") {
|
|
96
|
+
ac.workspaceStrategy = {
|
|
97
|
+
type: "git_worktree",
|
|
98
|
+
...(v.workspaceBaseRef ? { baseRef: v.workspaceBaseRef } : {}),
|
|
99
|
+
...(v.workspaceBranchTemplate ? { branchTemplate: v.workspaceBranchTemplate } : {}),
|
|
100
|
+
...(v.worktreeParentDir ? { worktreeParentDir: v.worktreeParentDir } : {}),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
const runtimeServices = parseJsonObject(v.runtimeServicesJson ?? "");
|
|
104
|
+
if (runtimeServices && Array.isArray(runtimeServices.services)) {
|
|
105
|
+
ac.workspaceRuntime = runtimeServices;
|
|
106
|
+
}
|
|
107
|
+
if (v.command)
|
|
108
|
+
ac.command = v.command;
|
|
109
|
+
if (v.extraArgs)
|
|
110
|
+
ac.extraArgs = parseCommaArgs(v.extraArgs);
|
|
111
|
+
return ac;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=build-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-config.js","sourceRoot":"","sources":["../../src/ui/build-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/ui/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-stdout.d.ts","sourceRoot":"","sources":["../../src/ui/parse-stdout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AA+N/D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,eAAe,EAAE,CA2EhF"}
|