@sireai/optimus 0.1.11 → 0.1.14
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/optimus.js +58 -11
- package/dist/cli/optimus.js.map +1 -1
- package/dist/config/load-config.js +1 -1
- package/dist/problem-solving-core/codex/codex-auth-resolver.d.ts +3 -0
- package/dist/problem-solving-core/codex/codex-auth-resolver.js +101 -17
- package/dist/problem-solving-core/codex/codex-auth-resolver.js.map +1 -1
- package/dist/problem-solving-core/codex/codex-connectivity-checks.js +24 -14
- package/dist/problem-solving-core/codex/codex-connectivity-checks.js.map +1 -1
- package/dist/problem-solving-core/codex/codex-preflight.d.ts +0 -1
- package/dist/problem-solving-core/codex/codex-preflight.js +13 -21
- package/dist/problem-solving-core/codex/codex-preflight.js.map +1 -1
- package/dist/problem-solving-core/codex/codex-provider-profile.js +3 -0
- package/dist/problem-solving-core/codex/codex-provider-profile.js.map +1 -1
- package/dist/problem-solving-core/codex/codex-runner.js +10 -2
- package/dist/problem-solving-core/codex/codex-runner.js.map +1 -1
- package/dist/task-environment/observability/runtime-panel.d.ts +1 -1
- package/dist/task-environment/observability/runtime-panel.js +4 -1
- package/dist/task-environment/observability/runtime-panel.js.map +1 -1
- package/dist/task-environment/orchestration/triage-runner.js +10 -2
- package/dist/task-environment/orchestration/triage-runner.js.map +1 -1
- package/dist/task-environment/runtime/optimus-runtime.d.ts +1 -0
- package/dist/task-environment/runtime/optimus-runtime.js +1 -1
- package/dist/task-environment/runtime/optimus-runtime.js.map +1 -1
- package/dist/types.d.ts +15 -1
- package/optimus.config.template.json +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ export interface ResolvedCodexAuth {
|
|
|
7
7
|
}
|
|
8
8
|
interface CodexAuthResolverOptions {
|
|
9
9
|
shellEnvFiles?: string[];
|
|
10
|
+
codexAuthFile?: string;
|
|
10
11
|
}
|
|
11
12
|
export declare class CodexAuthResolver {
|
|
12
13
|
private readonly config;
|
|
@@ -14,6 +15,8 @@ export declare class CodexAuthResolver {
|
|
|
14
15
|
private readonly options;
|
|
15
16
|
constructor(config: OptimusConfig, processEnv?: NodeJS.ProcessEnv, options?: CodexAuthResolverOptions);
|
|
16
17
|
resolve(): ResolvedCodexAuth;
|
|
18
|
+
private readCodexCliAuthState;
|
|
19
|
+
private buildDiagnostics;
|
|
17
20
|
private collectStringEnv;
|
|
18
21
|
private injectShellEnvFallback;
|
|
19
22
|
private getDefaultShellEnvFiles;
|
|
@@ -24,7 +24,15 @@ export class CodexAuthResolver {
|
|
|
24
24
|
const configuredApiKey = this.config.codex.apiKey?.trim();
|
|
25
25
|
const apiKeyEnvName = resolvePrimaryCodexApiKeyEnvName(this.config, this.processEnv);
|
|
26
26
|
const envApiKey = apiKeyEnvName ? resolvedEnv[apiKeyEnvName]?.trim() : undefined;
|
|
27
|
-
const
|
|
27
|
+
const cliAuthFilePath = authMode === "codex_cli_login"
|
|
28
|
+
? this.options.codexAuthFile ?? join(this.processEnv.HOME?.trim() || homedir(), ".codex", "auth.json")
|
|
29
|
+
: undefined;
|
|
30
|
+
const cliAuthState = authMode === "codex_cli_login" && cliAuthFilePath
|
|
31
|
+
? this.readCodexCliAuthState(cliAuthFilePath)
|
|
32
|
+
: { authenticated: false };
|
|
33
|
+
const requiredEnvVars = authMode === "codex_cli_login" || configuredApiKey
|
|
34
|
+
? []
|
|
35
|
+
: resolveRequiredCodexEnvVars(this.config, this.processEnv);
|
|
28
36
|
const presentEnvVars = requiredEnvVars.filter((name) => {
|
|
29
37
|
const value = resolvedEnv[name];
|
|
30
38
|
return typeof value === "string" && value.trim().length > 0;
|
|
@@ -32,31 +40,107 @@ export class CodexAuthResolver {
|
|
|
32
40
|
const missingEnvVars = requiredEnvVars.filter((name) => !presentEnvVars.includes(name));
|
|
33
41
|
const resolvedBaseUrl = resolveCodexSdkBaseUrl(this.config);
|
|
34
42
|
const provider = resolveConfiguredCodexProvider(this.config);
|
|
35
|
-
const apiKey = authMode === "codex_cli_login" ?
|
|
43
|
+
const apiKey = authMode === "codex_cli_login" ? cliAuthState.apiKey : configuredApiKey || envApiKey;
|
|
36
44
|
const source = authMode === "codex_cli_login"
|
|
37
45
|
? "cli_login"
|
|
38
46
|
: configuredApiKey ? "config" : envApiKey ? "env" : "unknown";
|
|
39
47
|
const authenticated = authMode === "codex_cli_login"
|
|
40
|
-
?
|
|
48
|
+
? cliAuthState.authenticated
|
|
41
49
|
: Boolean(apiKey) && missingEnvVars.length === 0;
|
|
42
|
-
const verification =
|
|
50
|
+
const verification = "static";
|
|
51
|
+
const diagnostics = this.buildDiagnostics({
|
|
52
|
+
authMode,
|
|
53
|
+
authenticated,
|
|
54
|
+
source,
|
|
55
|
+
...(apiKeyEnvName ? { apiKeyEnvName } : {}),
|
|
56
|
+
requiredEnvVars,
|
|
57
|
+
presentEnvVars,
|
|
58
|
+
missingEnvVars,
|
|
59
|
+
verification,
|
|
60
|
+
...(provider?.providerId ? { providerId: provider.providerId } : {}),
|
|
61
|
+
...(provider?.displayName ? { providerDisplayName: provider.displayName } : {}),
|
|
62
|
+
...(resolvedBaseUrl ? { resolvedBaseUrl } : {}),
|
|
63
|
+
...(cliAuthFilePath ? { cliAuthFilePath } : {})
|
|
64
|
+
});
|
|
43
65
|
return {
|
|
44
66
|
...(apiKey ? { apiKey } : {}),
|
|
45
67
|
...(resolvedBaseUrl ? { baseUrl: resolvedBaseUrl } : {}),
|
|
46
68
|
env: resolvedEnv,
|
|
47
|
-
diagnostics
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
69
|
+
diagnostics
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
// Codex CLI login currently persists either OPENAI_API_KEY or ChatGPT OAuth tokens in ~/.codex/auth.json.
|
|
73
|
+
// Optimus needs to treat both shapes as authenticated; only the OPENAI_API_KEY form can be injected as CODEX_API_KEY directly.
|
|
74
|
+
readCodexCliAuthState(authFile) {
|
|
75
|
+
let raw = "";
|
|
76
|
+
try {
|
|
77
|
+
raw = readFileSync(authFile, "utf8");
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return { authenticated: false };
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
const parsed = JSON.parse(raw);
|
|
84
|
+
const apiKey = typeof parsed.OPENAI_API_KEY === "string" ? parsed.OPENAI_API_KEY.trim() : "";
|
|
85
|
+
const accessToken = typeof parsed.tokens?.access_token === "string" ? parsed.tokens.access_token.trim() : "";
|
|
86
|
+
return {
|
|
87
|
+
...(apiKey.length > 0 ? { apiKey } : {}),
|
|
88
|
+
...(accessToken.length > 0 ? { accessToken } : {}),
|
|
89
|
+
authenticated: apiKey.length > 0 || accessToken.length > 0
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return { authenticated: false };
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
buildDiagnostics(input) {
|
|
97
|
+
if (input.authMode === "codex_cli_login") {
|
|
98
|
+
return {
|
|
99
|
+
mode: input.authMode,
|
|
100
|
+
authenticated: input.authenticated,
|
|
101
|
+
source: input.source,
|
|
102
|
+
validationPath: "codex_cli_login",
|
|
103
|
+
requirement: "Local Codex CLI login (~/.codex/auth.json)",
|
|
104
|
+
fixHint: "Run `codex login`, then rerun `optimus doctor --quick` or `optimus health-check`.",
|
|
105
|
+
requiredEnvVars: [],
|
|
106
|
+
presentEnvVars: [],
|
|
107
|
+
missingEnvVars: [],
|
|
108
|
+
...(input.cliAuthFilePath ? { authFilePath: input.cliAuthFilePath } : {}),
|
|
109
|
+
verification: input.verification
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
if (input.authMode === "model_provider") {
|
|
113
|
+
const providerLabel = input.providerDisplayName ?? input.providerId ?? "configured provider";
|
|
114
|
+
const envLabel = input.apiKeyEnvName ?? "provider API key env";
|
|
115
|
+
return {
|
|
116
|
+
mode: input.authMode,
|
|
117
|
+
authenticated: input.authenticated,
|
|
118
|
+
source: input.source,
|
|
119
|
+
validationPath: "model_provider",
|
|
120
|
+
requirement: `${providerLabel} API key (${envLabel}) or codex.apiKey`,
|
|
121
|
+
fixHint: `Provide ${envLabel} in .env.local, or rerun \`optimus setup\` and enter the provider API key.`,
|
|
122
|
+
...(input.apiKeyEnvName ? { apiKeyEnvName: input.apiKeyEnvName } : {}),
|
|
123
|
+
requiredEnvVars: input.requiredEnvVars,
|
|
124
|
+
presentEnvVars: input.presentEnvVars,
|
|
125
|
+
missingEnvVars: input.missingEnvVars,
|
|
126
|
+
...(input.providerId ? { providerId: input.providerId } : {}),
|
|
127
|
+
...(input.providerDisplayName ? { providerDisplayName: input.providerDisplayName } : {}),
|
|
128
|
+
...(input.resolvedBaseUrl ? { baseUrl: input.resolvedBaseUrl } : {}),
|
|
129
|
+
verification: input.verification
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
mode: input.authMode,
|
|
134
|
+
authenticated: input.authenticated,
|
|
135
|
+
source: input.source,
|
|
136
|
+
validationPath: "openai_api_key",
|
|
137
|
+
requirement: "OpenAI API key (OPENAI_API_KEY) or codex.apiKey",
|
|
138
|
+
fixHint: "Provide OPENAI_API_KEY in .env.local, or rerun `optimus setup` and enter the OpenAI API key.",
|
|
139
|
+
...(input.apiKeyEnvName ? { apiKeyEnvName: input.apiKeyEnvName } : {}),
|
|
140
|
+
requiredEnvVars: input.requiredEnvVars,
|
|
141
|
+
presentEnvVars: input.presentEnvVars,
|
|
142
|
+
missingEnvVars: input.missingEnvVars,
|
|
143
|
+
verification: input.verification
|
|
60
144
|
};
|
|
61
145
|
}
|
|
62
146
|
// SDK env only accepts string values, so process env is filtered here before any injection.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-auth-resolver.js","sourceRoot":"","sources":["../../../src/problem-solving-core/codex/codex-auth-resolver.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,sIAAsI;AACtI,uHAAuH;AAEvH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,8BAA8B,EAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gCAAgC,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"codex-auth-resolver.js","sourceRoot":"","sources":["../../../src/problem-solving-core/codex/codex-auth-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
// Connectivity checks translate Codex and provider failures into scheduler-facing diagnostics.
|
|
2
2
|
// The checks are lightweight and descriptive: they summarize sandbox network policy, Codex auxiliary reachability, and provider host reachability.
|
|
3
3
|
// This module does not perform active network probes; it derives structured signals from config plus observed failure context.
|
|
4
|
-
import { resolveConfiguredCodexProvider } from "./codex-provider-profile.js";
|
|
4
|
+
import { resolveCodexAuthMode, resolveConfiguredCodexProvider } from "./codex-provider-profile.js";
|
|
5
5
|
const CODEX_AUXILIARY_HOST = "chatgpt.com";
|
|
6
|
-
|
|
6
|
+
const OPENAI_API_HOST = "api.openai.com";
|
|
7
|
+
function resolveEndpointHost(config) {
|
|
8
|
+
const authMode = resolveCodexAuthMode(config);
|
|
9
|
+
if (authMode !== "model_provider") {
|
|
10
|
+
return OPENAI_API_HOST;
|
|
11
|
+
}
|
|
7
12
|
const profile = resolveConfiguredCodexProvider(config);
|
|
8
13
|
const configuredBaseUrl = config.codex.baseUrl?.trim();
|
|
9
14
|
const candidate = profile?.baseUrl ?? configuredBaseUrl;
|
|
@@ -49,24 +54,29 @@ function buildAuxiliaryConnectivityCheck(message) {
|
|
|
49
54
|
detail: "No Codex auxiliary control-plane connectivity failure was observed in this health-check."
|
|
50
55
|
};
|
|
51
56
|
}
|
|
52
|
-
function
|
|
53
|
-
const
|
|
54
|
-
|
|
57
|
+
function buildModelEndpointConnectivityCheck(config, message, failureCategory) {
|
|
58
|
+
const endpointHost = resolveEndpointHost(config);
|
|
59
|
+
const authMode = resolveCodexAuthMode(config);
|
|
60
|
+
if (endpointHost && message?.includes(endpointHost)) {
|
|
55
61
|
return {
|
|
56
|
-
name: "
|
|
62
|
+
name: "model_endpoint_connectivity",
|
|
57
63
|
ok: false,
|
|
58
|
-
host:
|
|
59
|
-
detail:
|
|
64
|
+
host: endpointHost,
|
|
65
|
+
detail: authMode === "model_provider"
|
|
66
|
+
? `Model-provider endpoint request failed while accessing ${endpointHost}.`
|
|
67
|
+
: `OpenAI model endpoint request failed while accessing ${endpointHost}.`,
|
|
60
68
|
failureCategory: failureCategory ?? "network_error"
|
|
61
69
|
};
|
|
62
70
|
}
|
|
63
71
|
return {
|
|
64
|
-
name: "
|
|
72
|
+
name: "model_endpoint_connectivity",
|
|
65
73
|
ok: true,
|
|
66
|
-
...(
|
|
67
|
-
detail:
|
|
68
|
-
?
|
|
69
|
-
|
|
74
|
+
...(endpointHost ? { host: endpointHost } : {}),
|
|
75
|
+
detail: endpointHost
|
|
76
|
+
? authMode === "model_provider"
|
|
77
|
+
? `No model-provider connectivity failure was observed for ${endpointHost} in this health-check.`
|
|
78
|
+
: `No OpenAI endpoint connectivity failure was observed for ${endpointHost} in this health-check.`
|
|
79
|
+
: "No explicit model endpoint host is configured for connectivity diagnostics."
|
|
70
80
|
};
|
|
71
81
|
}
|
|
72
82
|
// Health-check connectivity is reported as scheduler-facing diagnostics rather than hard preflight gates.
|
|
@@ -75,7 +85,7 @@ export function buildCodexConnectivityChecks(input) {
|
|
|
75
85
|
return [
|
|
76
86
|
buildSandboxNetworkCheck(input.config),
|
|
77
87
|
buildAuxiliaryConnectivityCheck(input.failureMessage),
|
|
78
|
-
|
|
88
|
+
buildModelEndpointConnectivityCheck(input.config, input.failureMessage, input.failureCategory)
|
|
79
89
|
];
|
|
80
90
|
}
|
|
81
91
|
//# sourceMappingURL=codex-connectivity-checks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-connectivity-checks.js","sourceRoot":"","sources":["../../../src/problem-solving-core/codex/codex-connectivity-checks.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,mJAAmJ;AACnJ,+HAA+H;AAG/H,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"codex-connectivity-checks.js","sourceRoot":"","sources":["../../../src/problem-solving-core/codex/codex-connectivity-checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ export declare class CodexPreflight {
|
|
|
5
5
|
constructor(config: OptimusConfig, processEnv?: NodeJS.ProcessEnv);
|
|
6
6
|
run(): Promise<CodexPreflightReport>;
|
|
7
7
|
private buildAuthCheck;
|
|
8
|
-
private describeMissingAuthInputs;
|
|
9
8
|
private buildModelCheck;
|
|
10
9
|
private buildModelProviderCheck;
|
|
11
10
|
private buildTaskHarnessCheck;
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import { access } from "node:fs/promises";
|
|
5
5
|
import { CodexAuthResolver } from "./codex-auth-resolver.js";
|
|
6
6
|
import { resolveCodexAuthMode, resolveConfiguredCodexModelProvider, resolveConfiguredCodexProvider, resolveEffectiveCodexModel } from "./codex-provider-profile.js";
|
|
7
|
-
import { resolvePrimaryCodexApiKeyEnvName } from "./codex-required-env.js";
|
|
8
7
|
export class CodexPreflight {
|
|
9
8
|
config;
|
|
10
9
|
processEnv;
|
|
@@ -18,7 +17,7 @@ export class CodexPreflight {
|
|
|
18
17
|
const checks = [];
|
|
19
18
|
checks.push(this.buildModelCheck());
|
|
20
19
|
checks.push(this.buildModelProviderCheck());
|
|
21
|
-
checks.push(this.buildAuthCheck(auth.diagnostics
|
|
20
|
+
checks.push(this.buildAuthCheck(auth.diagnostics));
|
|
22
21
|
checks.push(await this.buildTaskHarnessCheck());
|
|
23
22
|
checks.push(this.buildApprovalPolicyCheck());
|
|
24
23
|
const failedCheck = checks.find((check) => !check.ok);
|
|
@@ -34,37 +33,30 @@ export class CodexPreflight {
|
|
|
34
33
|
...(failedCheck?.failureCategory ? { failureCategory: failedCheck.failureCategory } : {})
|
|
35
34
|
};
|
|
36
35
|
}
|
|
37
|
-
buildAuthCheck(
|
|
38
|
-
|
|
39
|
-
if (authMode === "codex_cli_login") {
|
|
40
|
-
return {
|
|
41
|
-
name: "auth",
|
|
42
|
-
ok: true,
|
|
43
|
-
detail: "Codex auth mode is codex_cli_login. Local CLI login will be validated at runtime."
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
if (!authenticated) {
|
|
36
|
+
buildAuthCheck(auth) {
|
|
37
|
+
if (!auth.authenticated) {
|
|
47
38
|
return {
|
|
48
39
|
name: "auth",
|
|
49
40
|
ok: false,
|
|
50
|
-
detail: `Missing Codex authentication.
|
|
41
|
+
detail: `Missing Codex authentication for ${auth.validationPath}. Required credential: ${auth.requirement}.`,
|
|
51
42
|
failureCategory: "auth_missing"
|
|
52
43
|
};
|
|
53
44
|
}
|
|
54
45
|
return {
|
|
55
46
|
name: "auth",
|
|
56
47
|
ok: true,
|
|
57
|
-
detail:
|
|
48
|
+
detail: `Codex authentication resolved via ${auth.validationPath}.`
|
|
58
49
|
};
|
|
59
50
|
}
|
|
60
|
-
describeMissingAuthInputs() {
|
|
61
|
-
const auth = new CodexAuthResolver(this.config, this.processEnv).resolve();
|
|
62
|
-
if (auth.diagnostics.missingEnvVars.length === 0) {
|
|
63
|
-
return `${resolvePrimaryCodexApiKeyEnvName(this.config, this.processEnv) ?? "runtime login"} or codex.apiKey`;
|
|
64
|
-
}
|
|
65
|
-
return auth.diagnostics.missingEnvVars.join(", ");
|
|
66
|
-
}
|
|
67
51
|
buildModelCheck() {
|
|
52
|
+
const authMode = resolveCodexAuthMode(this.config);
|
|
53
|
+
if (authMode === "codex_cli_login") {
|
|
54
|
+
return {
|
|
55
|
+
name: "model",
|
|
56
|
+
ok: true,
|
|
57
|
+
detail: "Codex model is inherited from the local Codex CLI login environment."
|
|
58
|
+
};
|
|
59
|
+
}
|
|
68
60
|
const model = resolveEffectiveCodexModel(this.config);
|
|
69
61
|
if (!model || model.trim().length === 0) {
|
|
70
62
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-preflight.js","sourceRoot":"","sources":["../../../src/problem-solving-core/codex/codex-preflight.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,0HAA0H;AAC1H,2HAA2H;AAE3H,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,mCAAmC,EACnC,8BAA8B,EAC9B,0BAA0B,EAC3B,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"codex-preflight.js","sourceRoot":"","sources":["../../../src/problem-solving-core/codex/codex-preflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,9 @@ export function resolveCodexAuthMode(config) {
|
|
|
8
8
|
return config.codex.provider ? "model_provider" : "openai_api_key";
|
|
9
9
|
}
|
|
10
10
|
export function resolveEffectiveCodexModel(config) {
|
|
11
|
+
if (resolveCodexAuthMode(config) === "codex_cli_login") {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
11
14
|
const configuredModel = config.codex.model?.trim();
|
|
12
15
|
return configuredModel && configuredModel.length > 0 ? configuredModel : undefined;
|
|
13
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-provider-profile.js","sourceRoot":"","sources":["../../../src/problem-solving-core/codex/codex-provider-profile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codex-provider-profile.js","sourceRoot":"","sources":["../../../src/problem-solving-core/codex/codex-provider-profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
// CodexRunner is the execution bridge between Optimus task orchestration and the Codex SDK.
|
|
2
2
|
// It prepares runtime-owned CODEX_HOME state, builds thread options and prompts, streams SDK events into task states, and validates structured results.
|
|
3
3
|
// This module owns Codex execution behavior, but task claiming, harness selection, and persistence stay outside in orchestration/store layers.
|
|
4
|
-
import { mkdir, writeFile, readFile, access } from "node:fs/promises";
|
|
4
|
+
import { mkdir, writeFile, readFile, access, copyFile } from "node:fs/promises";
|
|
5
5
|
import { join, resolve, relative, sep, posix as posixPath } from "node:path";
|
|
6
6
|
import { Codex } from "@openai/codex-sdk";
|
|
7
7
|
import { buildExecutionContextPrompt, buildExecutionTaskPackage, discoverExecutionAdditionalDirectories, resolveOptimusWritableRootDir } from "../../task-environment/execution-addresses.js";
|
|
8
8
|
import { OptimusLogger } from "../../task-environment/observability/logger.js";
|
|
9
9
|
import { CodexAuthResolver } from "./codex-auth-resolver.js";
|
|
10
10
|
import { buildCodexConnectivityChecks } from "./codex-connectivity-checks.js";
|
|
11
|
-
import { renderRuntimeCodexHomeConfig, resolveConfiguredCodexModelProvider, resolveEffectiveCodexModel } from "./codex-provider-profile.js";
|
|
11
|
+
import { renderRuntimeCodexHomeConfig, resolveCodexAuthMode, resolveConfiguredCodexModelProvider, resolveEffectiveCodexModel } from "./codex-provider-profile.js";
|
|
12
12
|
import { CodexPreflight } from "./codex-preflight.js";
|
|
13
13
|
import { classifyCodexFailureCategory } from "./codex-failure-classifier.js";
|
|
14
14
|
function normalizePromptValue(value) {
|
|
@@ -1014,6 +1014,14 @@ export class CodexRunner {
|
|
|
1014
1014
|
throw new CodexExecutionError("Unable to render runtime codex-home/config.toml. Check codex.provider and codex.model.", "config_error");
|
|
1015
1015
|
}
|
|
1016
1016
|
await writeFile(join(this.config.codex.homeDir, "config.toml"), configText, "utf8");
|
|
1017
|
+
if (resolveCodexAuthMode(this.config) === "codex_cli_login") {
|
|
1018
|
+
const auth = new CodexAuthResolver(this.config).resolve();
|
|
1019
|
+
const authFilePath = auth.diagnostics.authFilePath;
|
|
1020
|
+
if (!authFilePath || !auth.diagnostics.authenticated) {
|
|
1021
|
+
throw new CodexExecutionError("Local Codex CLI login was not found at ~/.codex/auth.json.", "auth_missing");
|
|
1022
|
+
}
|
|
1023
|
+
await copyFile(authFilePath, join(this.config.codex.homeDir, "auth.json"));
|
|
1024
|
+
}
|
|
1017
1025
|
}
|
|
1018
1026
|
createCodexClient() {
|
|
1019
1027
|
const auth = new CodexAuthResolver(this.config).resolve();
|