@vercel/agent-eval 0.14.1 → 0.14.3
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.
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
* Uses Vercel AI Gateway for model access.
|
|
4
4
|
*/
|
|
5
5
|
import type { Agent } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Generate Codex profile config content.
|
|
8
|
+
*
|
|
9
|
+
* `reasoningEffort` and `model_verbosity` are written into the profile so a
|
|
10
|
+
* fresh `codex exec` doesn't pick up the CLI defaults of `"low"`, which are
|
|
11
|
+
* rejected by `gpt-5.2-codex`. Defaults to `"medium"` when `reasoningEffort`
|
|
12
|
+
* is omitted.
|
|
13
|
+
*/
|
|
14
|
+
export declare function generateCodexConfig(model: string, useVercelAiGateway: boolean, reasoningEffort?: string): string;
|
|
6
15
|
/**
|
|
7
16
|
* Create Codex agent with specified authentication method.
|
|
8
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/lib/agents/codex.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAmC,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/lib/agents/codex.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAmC,MAAM,YAAY,CAAC;AA4FzE;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,kBAAkB,EAAE,OAAO,EAC3B,eAAe,GAAE,MAAiC,GACjD,MAAM,CA0BR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,EAAE;IAAE,kBAAkB,EAAE,OAAO,CAAA;CAAE,GAAG,KAAK,CA0N/F"}
|
package/dist/lib/agents/codex.js
CHANGED
|
@@ -47,35 +47,57 @@ function extractTranscriptFromOutput(output) {
|
|
|
47
47
|
return lines.join('\n');
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
|
-
*
|
|
50
|
+
* Default reasoning effort and verbosity baked into the generated Codex
|
|
51
|
+
* profile.
|
|
52
|
+
*
|
|
53
|
+
* The Codex CLI itself defaults both `model_reasoning_effort` and
|
|
54
|
+
* `model_verbosity` to `"low"`, but the default Codex model
|
|
55
|
+
* (`gpt-5.2-codex`) only accepts `"medium"` for both — so an out-of-the-box
|
|
56
|
+
* `codex exec` against the AI Gateway fails with:
|
|
57
|
+
* "Unsupported value: 'low' is not supported with the 'gpt-5.2-codex'
|
|
58
|
+
* model. Supported values are: 'medium'."
|
|
59
|
+
* (the error covers both the `reasoning.effort` and `text.verbosity` request
|
|
60
|
+
* parameters, depending on which the model rejected first).
|
|
61
|
+
*
|
|
62
|
+
* `"medium"` is also a valid value for the non-codex GPT-5.x models, so it's
|
|
63
|
+
* a safe default. Callers can override reasoning effort per-run via
|
|
64
|
+
* `model: "gpt-5.2-codex?reasoningEffort=high"`.
|
|
51
65
|
*/
|
|
52
|
-
|
|
66
|
+
const DEFAULT_REASONING_EFFORT = 'medium';
|
|
67
|
+
const DEFAULT_MODEL_VERBOSITY = 'medium';
|
|
68
|
+
/**
|
|
69
|
+
* Generate Codex profile config content.
|
|
70
|
+
*
|
|
71
|
+
* `reasoningEffort` and `model_verbosity` are written into the profile so a
|
|
72
|
+
* fresh `codex exec` doesn't pick up the CLI defaults of `"low"`, which are
|
|
73
|
+
* rejected by `gpt-5.2-codex`. Defaults to `"medium"` when `reasoningEffort`
|
|
74
|
+
* is omitted.
|
|
75
|
+
*/
|
|
76
|
+
export function generateCodexConfig(model, useVercelAiGateway, reasoningEffort = DEFAULT_REASONING_EFFORT) {
|
|
53
77
|
if (useVercelAiGateway) {
|
|
54
78
|
// AI Gateway uses prefixed model names like "openai/gpt-5.2-codex"
|
|
55
79
|
const fullModel = model.includes('/') ? model : `openai/${model}`;
|
|
56
80
|
return `# Codex configuration for Vercel AI Gateway
|
|
57
|
-
|
|
81
|
+
model_provider = "vercel"
|
|
82
|
+
model = "${fullModel}"
|
|
83
|
+
model_reasoning_effort = "${reasoningEffort}"
|
|
84
|
+
model_verbosity = "${DEFAULT_MODEL_VERBOSITY}"
|
|
58
85
|
|
|
59
86
|
[model_providers.vercel]
|
|
60
87
|
name = "Vercel AI Gateway"
|
|
61
88
|
base_url = "${AI_GATEWAY.openAiBaseUrl}"
|
|
62
89
|
env_key = "${AI_GATEWAY.apiKeyEnvVar}"
|
|
63
90
|
wire_api = "responses"
|
|
64
|
-
|
|
65
|
-
[profiles.default]
|
|
66
|
-
model_provider = "vercel"
|
|
67
|
-
model = "${fullModel}"
|
|
68
91
|
`;
|
|
69
92
|
}
|
|
70
93
|
else {
|
|
71
94
|
// Direct OpenAI API — use the built-in "openai" provider (no custom provider needed)
|
|
72
95
|
const directModel = model.includes('/') ? model.split('/').pop() : model;
|
|
73
96
|
return `# Direct OpenAI API configuration
|
|
74
|
-
profile = "default"
|
|
75
|
-
|
|
76
|
-
[profiles.default]
|
|
77
97
|
model_provider = "openai"
|
|
78
98
|
model = "${directModel}"
|
|
99
|
+
model_reasoning_effort = "${reasoningEffort}"
|
|
100
|
+
model_verbosity = "${DEFAULT_MODEL_VERBOSITY}"
|
|
79
101
|
`;
|
|
80
102
|
}
|
|
81
103
|
}
|
|
@@ -175,10 +197,15 @@ export function createCodexAgent({ useVercelAiGateway }) {
|
|
|
175
197
|
}
|
|
176
198
|
// Parse model string for query parameters (e.g. "gpt-5.2-codex?reasoningEffort=high")
|
|
177
199
|
const { model: baseModel, reasoningEffort } = parseModelString(options.model);
|
|
178
|
-
// Create Codex config
|
|
200
|
+
// Create Codex profile config. Recent Codex CLI versions reject the old
|
|
201
|
+
// top-level `profile = "default"` key in config.toml and instead load
|
|
202
|
+
// `$CODEX_HOME/<profile>.config.toml` when `--profile <profile>` is set.
|
|
203
|
+
// The reasoning_effort is baked into the profile (rather than passed via
|
|
204
|
+
// -c at runtime) so the value is visible in saved configs and so the
|
|
205
|
+
// CLI's own default of "low" can't sneak through.
|
|
179
206
|
await sandbox.runShell('mkdir -p ~/.codex');
|
|
180
|
-
const configContent = generateCodexConfig(baseModel, useVercelAiGateway);
|
|
181
|
-
await sandbox.runShell(`cat
|
|
207
|
+
const configContent = generateCodexConfig(baseModel, useVercelAiGateway, reasoningEffort);
|
|
208
|
+
await sandbox.runShell(`cat > ~/.codex/default.config.toml << 'EOF'
|
|
182
209
|
${configContent}
|
|
183
210
|
EOF`);
|
|
184
211
|
// Verify no test files in sandbox
|
|
@@ -186,11 +213,17 @@ EOF`);
|
|
|
186
213
|
// Build Codex CLI command
|
|
187
214
|
const envVarToSet = useVercelAiGateway ? AI_GATEWAY.apiKeyEnvVar : OPENAI_DIRECT.apiKeyEnvVar;
|
|
188
215
|
const escapedPrompt = options.prompt.replace(/'/g, "'\\''");
|
|
189
|
-
const reasoningFlag = reasoningEffort ? ` -c model_reasoning_effort="${reasoningEffort}"` : '';
|
|
190
216
|
// Direct OpenAI API needs unprefixed model names (e.g. "gpt-5.2-codex" not "openai/gpt-5.2-codex")
|
|
191
217
|
const cliModel = useVercelAiGateway ? baseModel : (baseModel.includes('/') ? baseModel.split('/').pop() : baseModel);
|
|
218
|
+
// Pass reasoning effort and verbosity via -c too; CLI flags have the
|
|
219
|
+
// highest precedence and we've observed Codex CLI silently falling back
|
|
220
|
+
// to its "low" defaults for both fields even when the profile sets them.
|
|
221
|
+
// Both default to "medium" for compatibility with gpt-5.2-codex.
|
|
222
|
+
const effectiveReasoningEffort = reasoningEffort ?? DEFAULT_REASONING_EFFORT;
|
|
223
|
+
const reasoningFlag = ` -c model_reasoning_effort="${effectiveReasoningEffort}"`;
|
|
224
|
+
const verbosityFlag = ` -c model_verbosity="${DEFAULT_MODEL_VERBOSITY}"`;
|
|
192
225
|
// codex login sets up bearer auth for the CLI; the built-in openai provider requires it
|
|
193
|
-
const codexResult = await sandbox.runShell(`echo '${options.apiKey}' | codex login --with-api-key && codex exec --model ${cliModel} --dangerously-bypass-approvals-and-sandbox --json --skip-git-repo-check${reasoningFlag} '${escapedPrompt}'`, { [envVarToSet]: options.apiKey, ...neutralWorkspace.env });
|
|
226
|
+
const codexResult = await sandbox.runShell(`echo '${options.apiKey}' | codex login --with-api-key && codex exec --profile default --model ${cliModel} --dangerously-bypass-approvals-and-sandbox --json --skip-git-repo-check${reasoningFlag}${verbosityFlag} '${escapedPrompt}'`, { [envVarToSet]: options.apiKey, ...neutralWorkspace.env });
|
|
194
227
|
agentOutput = codexResult.stdout + codexResult.stderr;
|
|
195
228
|
transcript = extractTranscriptFromOutput(agentOutput);
|
|
196
229
|
if (codexResult.exitCode !== 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/lib/agents/codex.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,iBAAiB,GAElB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAKrB;;;GAGG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,MAAM,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAEpC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtC,IAAI,eAAmC,CAAC;IAExC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,OAAO,KAAK,CAAC,CAAC;YAAE,SAAS;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,GAAG,KAAK,iBAAiB,EAAE,CAAC;YAC9B,eAAe,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,SAAS,2BAA2B,CAAC,MAAc;IACjD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,8DAA8D;IAC9D,2DAA2D;IAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/lib/agents/codex.ts"],"names":[],"mappings":"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"}
|