feat: add CODEX_MODEL and CODEX_EFFORT env var support for codex-runner
This commit is contained in:
@@ -128,11 +128,10 @@ async function runCodexExec(prompt: string, resume: boolean): Promise<{ result:
|
|||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
const args: string[] = [];
|
const args: string[] = [];
|
||||||
const effectiveCwd = WORK_DIR || GROUP_DIR;
|
const effectiveCwd = WORK_DIR || GROUP_DIR;
|
||||||
|
const codexModel = process.env.CODEX_MODEL || '';
|
||||||
|
const codexEffort = process.env.CODEX_EFFORT || '';
|
||||||
|
|
||||||
if (resume) {
|
if (resume) {
|
||||||
// Resume the most recent session with a new prompt
|
|
||||||
// --dangerously-bypass-approvals-and-sandbox: fully disables sandbox
|
|
||||||
// (--full-auto forces workspace-write which blocks /workspace/extra/ mounts)
|
|
||||||
args.push(
|
args.push(
|
||||||
'exec', 'resume', '--last',
|
'exec', 'resume', '--last',
|
||||||
'--dangerously-bypass-approvals-and-sandbox',
|
'--dangerously-bypass-approvals-and-sandbox',
|
||||||
@@ -140,17 +139,16 @@ async function runCodexExec(prompt: string, resume: boolean): Promise<{ result:
|
|||||||
prompt,
|
prompt,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
// Fresh session
|
|
||||||
// --dangerously-bypass-approvals-and-sandbox: fully disables sandbox
|
|
||||||
// (--full-auto forces workspace-write which blocks /workspace/extra/ mounts)
|
|
||||||
args.push(
|
args.push(
|
||||||
'exec',
|
'exec',
|
||||||
'--dangerously-bypass-approvals-and-sandbox',
|
'--dangerously-bypass-approvals-and-sandbox',
|
||||||
'-C', effectiveCwd,
|
'-C', effectiveCwd,
|
||||||
'--skip-git-repo-check',
|
'--skip-git-repo-check',
|
||||||
'--color', 'never',
|
'--color', 'never',
|
||||||
prompt,
|
|
||||||
);
|
);
|
||||||
|
if (codexModel) args.push('-m', codexModel);
|
||||||
|
if (codexEffort) args.push('--effort', codexEffort);
|
||||||
|
args.push(prompt);
|
||||||
}
|
}
|
||||||
|
|
||||||
log(`Running: codex ${args.slice(0, 6).join(' ')}... (resume=${resume})`);
|
log(`Running: codex ${args.slice(0, 6).join(' ')}... (resume=${resume})`);
|
||||||
|
|||||||
@@ -126,6 +126,8 @@ function prepareGroupEnvironment(
|
|||||||
'CLAUDE_EFFORT',
|
'CLAUDE_EFFORT',
|
||||||
'OPENAI_API_KEY',
|
'OPENAI_API_KEY',
|
||||||
'CODEX_OPENAI_API_KEY',
|
'CODEX_OPENAI_API_KEY',
|
||||||
|
'CODEX_MODEL',
|
||||||
|
'CODEX_EFFORT',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Build a clean env without Claude Code nesting detection variables
|
// Build a clean env without Claude Code nesting detection variables
|
||||||
@@ -174,6 +176,12 @@ function prepareGroupEnvironment(
|
|||||||
process.env.OPENAI_API_KEY;
|
process.env.OPENAI_API_KEY;
|
||||||
if (openaiKey) env.OPENAI_API_KEY = openaiKey;
|
if (openaiKey) env.OPENAI_API_KEY = openaiKey;
|
||||||
|
|
||||||
|
// Codex model/effort configuration
|
||||||
|
const codexModel = envVars.CODEX_MODEL || process.env.CODEX_MODEL;
|
||||||
|
if (codexModel) env.CODEX_MODEL = codexModel;
|
||||||
|
const codexEffort = envVars.CODEX_EFFORT || process.env.CODEX_EFFORT;
|
||||||
|
if (codexEffort) env.CODEX_EFFORT = codexEffort;
|
||||||
|
|
||||||
// Codex session directory
|
// Codex session directory
|
||||||
const hostCodexDir = path.join(os.homedir(), '.codex');
|
const hostCodexDir = path.join(os.homedir(), '.codex');
|
||||||
const sessionCodexDir = path.join(
|
const sessionCodexDir = path.join(
|
||||||
|
|||||||
Reference in New Issue
Block a user