feat: per-group model/effort overrides via containerConfig
This commit is contained in:
@@ -202,10 +202,16 @@ 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
|
// Codex model/effort configuration (per-group overrides global)
|
||||||
const codexModel = envVars.CODEX_MODEL || process.env.CODEX_MODEL;
|
const codexModel =
|
||||||
|
group.containerConfig?.codexModel ||
|
||||||
|
envVars.CODEX_MODEL ||
|
||||||
|
process.env.CODEX_MODEL;
|
||||||
if (codexModel) env.CODEX_MODEL = codexModel;
|
if (codexModel) env.CODEX_MODEL = codexModel;
|
||||||
const codexEffort = envVars.CODEX_EFFORT || process.env.CODEX_EFFORT;
|
const codexEffort =
|
||||||
|
group.containerConfig?.codexEffort ||
|
||||||
|
envVars.CODEX_EFFORT ||
|
||||||
|
process.env.CODEX_EFFORT;
|
||||||
if (codexEffort) env.CODEX_EFFORT = codexEffort;
|
if (codexEffort) env.CODEX_EFFORT = codexEffort;
|
||||||
|
|
||||||
// Codex session directory
|
// Codex session directory
|
||||||
@@ -243,7 +249,7 @@ function prepareGroupEnvironment(
|
|||||||
process.env.CLAUDE_CODE_OAUTH_TOKEN ||
|
process.env.CLAUDE_CODE_OAUTH_TOKEN ||
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
// Model/thinking config
|
// Model/thinking config (per-group overrides global)
|
||||||
for (const key of [
|
for (const key of [
|
||||||
'CLAUDE_MODEL',
|
'CLAUDE_MODEL',
|
||||||
'CLAUDE_THINKING',
|
'CLAUDE_THINKING',
|
||||||
@@ -253,6 +259,12 @@ function prepareGroupEnvironment(
|
|||||||
const val = envVars[key as keyof typeof envVars] || process.env[key];
|
const val = envVars[key as keyof typeof envVars] || process.env[key];
|
||||||
if (val) env[key] = val;
|
if (val) env[key] = val;
|
||||||
}
|
}
|
||||||
|
if (group.containerConfig?.claudeModel) {
|
||||||
|
env.CLAUDE_MODEL = group.containerConfig.claudeModel;
|
||||||
|
}
|
||||||
|
if (group.containerConfig?.claudeEffort) {
|
||||||
|
env.CLAUDE_EFFORT = group.containerConfig.claudeEffort;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return { env, groupDir, runnerDir };
|
return { env, groupDir, runnerDir };
|
||||||
|
|||||||
@@ -7,6 +7,11 @@ export interface AdditionalMount {
|
|||||||
export interface ContainerConfig {
|
export interface ContainerConfig {
|
||||||
additionalMounts?: AdditionalMount[];
|
additionalMounts?: AdditionalMount[];
|
||||||
timeout?: number; // Default: 300000 (5 minutes)
|
timeout?: number; // Default: 300000 (5 minutes)
|
||||||
|
// Per-group model/effort overrides (take precedence over global env vars)
|
||||||
|
codexModel?: string;
|
||||||
|
codexEffort?: string;
|
||||||
|
claudeModel?: string;
|
||||||
|
claudeEffort?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type AgentType = 'claude-code' | 'codex';
|
export type AgentType = 'claude-code' | 'codex';
|
||||||
|
|||||||
Reference in New Issue
Block a user