@vercel/agent-eval 1.1.1 → 1.2.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.
Files changed (61) hide show
  1. package/dist/lib/agents/claude-code/agent.d.ts +30 -0
  2. package/dist/lib/agents/claude-code/agent.d.ts.map +1 -0
  3. package/dist/lib/agents/claude-code/agent.js +80 -0
  4. package/dist/lib/agents/claude-code/agent.js.map +1 -0
  5. package/dist/lib/agents/claude-code/run.mjs +217 -0
  6. package/dist/lib/agents/codex/agent.d.ts +61 -0
  7. package/dist/lib/agents/codex/agent.d.ts.map +1 -0
  8. package/dist/lib/agents/codex/agent.js +221 -0
  9. package/dist/lib/agents/codex/agent.js.map +1 -0
  10. package/dist/lib/agents/codex/run.mjs +365 -0
  11. package/dist/lib/agents/cursor/agent.d.ts +32 -0
  12. package/dist/lib/agents/cursor/agent.d.ts.map +1 -0
  13. package/dist/lib/agents/cursor/agent.js +86 -0
  14. package/dist/lib/agents/cursor/agent.js.map +1 -0
  15. package/dist/lib/agents/cursor/run.mjs +183 -0
  16. package/dist/lib/agents/eval-helper.mjs +222 -0
  17. package/dist/lib/agents/gemini/agent.d.ts +27 -0
  18. package/dist/lib/agents/gemini/agent.d.ts.map +1 -0
  19. package/dist/lib/agents/gemini/agent.js +69 -0
  20. package/dist/lib/agents/gemini/agent.js.map +1 -0
  21. package/dist/lib/agents/gemini/run.mjs +180 -0
  22. package/dist/lib/agents/index.js +5 -5
  23. package/dist/lib/agents/index.js.map +1 -1
  24. package/dist/lib/agents/opencode/agent.d.ts +68 -0
  25. package/dist/lib/agents/opencode/agent.d.ts.map +1 -0
  26. package/dist/lib/agents/opencode/agent.js +165 -0
  27. package/dist/lib/agents/opencode/agent.js.map +1 -0
  28. package/dist/lib/agents/opencode/run.mjs +308 -0
  29. package/dist/lib/agents/plugin/contract.d.ts +157 -0
  30. package/dist/lib/agents/plugin/contract.d.ts.map +1 -0
  31. package/dist/lib/agents/plugin/contract.js +22 -0
  32. package/dist/lib/agents/plugin/contract.js.map +1 -0
  33. package/dist/lib/agents/plugin/orchestrator.d.ts +22 -0
  34. package/dist/lib/agents/plugin/orchestrator.d.ts.map +1 -0
  35. package/dist/lib/agents/plugin/orchestrator.js +286 -0
  36. package/dist/lib/agents/plugin/orchestrator.js.map +1 -0
  37. package/dist/lib/agents/shared.d.ts +7 -1
  38. package/dist/lib/agents/shared.d.ts.map +1 -1
  39. package/dist/lib/agents/shared.js +30 -3
  40. package/dist/lib/agents/shared.js.map +1 -1
  41. package/package.json +2 -2
  42. package/dist/lib/agents/claude-code.d.ts +0 -33
  43. package/dist/lib/agents/claude-code.d.ts.map +0 -1
  44. package/dist/lib/agents/claude-code.js +0 -310
  45. package/dist/lib/agents/claude-code.js.map +0 -1
  46. package/dist/lib/agents/codex.d.ts +0 -23
  47. package/dist/lib/agents/codex.d.ts.map +0 -1
  48. package/dist/lib/agents/codex.js +0 -364
  49. package/dist/lib/agents/codex.js.map +0 -1
  50. package/dist/lib/agents/cursor.d.ts +0 -10
  51. package/dist/lib/agents/cursor.d.ts.map +0 -1
  52. package/dist/lib/agents/cursor.js +0 -207
  53. package/dist/lib/agents/cursor.js.map +0 -1
  54. package/dist/lib/agents/gemini.d.ts +0 -10
  55. package/dist/lib/agents/gemini.d.ts.map +0 -1
  56. package/dist/lib/agents/gemini.js +0 -208
  57. package/dist/lib/agents/gemini.js.map +0 -1
  58. package/dist/lib/agents/opencode.d.ts +0 -46
  59. package/dist/lib/agents/opencode.d.ts.map +0 -1
  60. package/dist/lib/agents/opencode.js +0 -365
  61. package/dist/lib/agents/opencode.js.map +0 -1
@@ -1,310 +0,0 @@
1
- /**
2
- * Claude Code agent implementation.
3
- * Uses Vercel AI Gateway for model access.
4
- */
5
- import { createSandbox, collectLocalFiles, splitTestFiles, verifyNoTestFiles, } from '../sandbox.js';
6
- import { runValidation, captureGeneratedFiles, createVitestConfig, AI_GATEWAY, ANTHROPIC_DIRECT, initGitAndCommit, injectTranscriptContext, prepareNeutralWorkspace, } from './shared.js';
7
- /**
8
- * Capture the Claude Code transcript from the sandbox.
9
- * Claude Code stores transcripts at ~/.claude/projects/-{workdir}/{session-id}.jsonl
10
- */
11
- async function captureTranscript(sandbox) {
12
- try {
13
- // Get the working directory to construct the transcript path
14
- const workdir = sandbox.getWorkingDirectory();
15
- // Claude Code uses the path with slashes replaced by dashes
16
- const projectPath = workdir.replace(/\//g, '-');
17
- const claudeProjectDir = `~/.claude/projects/${projectPath}`;
18
- // Find the most recent .jsonl file (the transcript)
19
- const findResult = await sandbox.runShell(`ls -t ${claudeProjectDir}/*.jsonl 2>/dev/null | head -1`);
20
- if (findResult.exitCode !== 0 || !findResult.stdout.trim()) {
21
- return undefined;
22
- }
23
- const transcriptPath = findResult.stdout.trim();
24
- const content = await sandbox.readFile(transcriptPath);
25
- return content || undefined;
26
- }
27
- catch {
28
- // Transcript capture is best-effort
29
- return undefined;
30
- }
31
- }
32
- export function extractObservedModelFromClaudeTranscript(transcript) {
33
- if (!transcript)
34
- return undefined;
35
- let observedModel;
36
- for (const line of transcript.split('\n')) {
37
- if (!line.trim())
38
- continue;
39
- try {
40
- const event = JSON.parse(line);
41
- if (typeof event.message?.model === 'string') {
42
- observedModel = event.message.model;
43
- }
44
- }
45
- catch {
46
- // Ignore non-JSON transcript lines.
47
- }
48
- }
49
- return observedModel;
50
- }
51
- /**
52
- * Build the Claude Code CLI argument list.
53
- *
54
- * Exported for tests because the argument order is regression-sensitive:
55
- * `--allowedTools` is variadic — it keeps consuming positional tokens until
56
- * the next flag. Two rules follow:
57
- *
58
- * 1. The tools must be a single comma-separated value (separate tokens broke
59
- * every run in #141).
60
- * 2. `--allowedTools` must be followed by another flag, NEVER directly by
61
- * the prompt. The comma token alone is not enough: a live smoke run on
62
- * claude 2.1.112 with `... --allowedTools "WebSearch,WebFetch" <prompt>`
63
- * consumed the prompt as another tool name and failed with "Input must
64
- * be provided either through stdin or as a prompt argument".
65
- *
66
- * `--allowedTools` is therefore emitted first, and the always-present
67
- * `--dangerously-skip-permissions` flag guarantees the variadic capture is
68
- * terminated before the trailing positional prompt.
69
- */
70
- export function buildClaudeCodeCliArgs(options) {
71
- const cliArgs = ['--print'];
72
- if (options.webResearch) {
73
- cliArgs.push('--allowedTools', 'WebSearch,WebFetch');
74
- }
75
- if (options.model) {
76
- cliArgs.push('--model', options.model);
77
- }
78
- cliArgs.push('--dangerously-skip-permissions');
79
- const effort = options.agentOptions?.effort;
80
- if (effort) {
81
- cliArgs.push('--effort', effort);
82
- }
83
- cliArgs.push(options.prompt);
84
- return cliArgs;
85
- }
86
- /**
87
- * Create Claude Code agent with specified authentication method.
88
- */
89
- export function createClaudeCodeAgent({ useVercelAiGateway }) {
90
- return {
91
- name: useVercelAiGateway ? 'vercel-ai-gateway/claude-code' : 'claude-code',
92
- displayName: useVercelAiGateway ? 'Claude Code (Vercel AI Gateway)' : 'Claude Code',
93
- getApiKeyEnvVar() {
94
- if (useVercelAiGateway)
95
- return AI_GATEWAY.apiKeyEnvVar;
96
- if (process.env.CLAUDE_CODE_OAUTH_TOKEN)
97
- return 'CLAUDE_CODE_OAUTH_TOKEN';
98
- return ANTHROPIC_DIRECT.apiKeyEnvVar;
99
- },
100
- getDefaultModel() {
101
- return 'opus';
102
- },
103
- async run(fixturePath, options) {
104
- const startTime = Date.now();
105
- let sandbox = null;
106
- let agentOutput = '';
107
- let transcript;
108
- let aborted = false;
109
- let sandboxStopped = false;
110
- let hasReturned = false;
111
- const captureTranscriptBestEffort = async () => {
112
- if (!sandbox || sandboxStopped || transcript)
113
- return;
114
- transcript = await captureTranscript(sandbox);
115
- };
116
- // Handle abort signal
117
- const abortHandler = () => {
118
- aborted = true;
119
- if (sandbox && !sandboxStopped) {
120
- sandboxStopped = true;
121
- sandbox.stop().catch(() => { });
122
- }
123
- };
124
- if (options.signal) {
125
- if (options.signal.aborted) {
126
- hasReturned = true;
127
- return {
128
- success: false,
129
- output: '',
130
- error: 'Aborted before start',
131
- duration: 0,
132
- };
133
- }
134
- options.signal.addEventListener('abort', abortHandler);
135
- }
136
- try {
137
- // Collect files from fixture
138
- const allFiles = await collectLocalFiles(fixturePath);
139
- const { workspaceFiles, testFiles } = splitTestFiles(allFiles);
140
- // Check for abort before expensive operations
141
- if (aborted) {
142
- hasReturned = true;
143
- return {
144
- success: false,
145
- output: '',
146
- error: 'Aborted',
147
- duration: Date.now() - startTime,
148
- };
149
- }
150
- // Create sandbox
151
- sandbox = await createSandbox({
152
- timeout: options.timeout,
153
- runtime: 'node24',
154
- backend: options.sandbox,
155
- });
156
- // Check for abort after sandbox creation (abort may have fired during create)
157
- if (aborted) {
158
- hasReturned = true;
159
- return {
160
- success: false,
161
- output: '',
162
- error: 'Aborted',
163
- duration: Date.now() - startTime,
164
- sandboxId: sandbox.sandboxId,
165
- };
166
- }
167
- // Upload workspace files (excluding tests)
168
- await sandbox.uploadFiles(workspaceFiles);
169
- await initGitAndCommit(sandbox);
170
- // Run setup function if provided
171
- if (options.setup) {
172
- await options.setup(sandbox);
173
- }
174
- const neutralWorkspace = await prepareNeutralWorkspace(sandbox);
175
- // Install dependencies
176
- let installResult = await sandbox.runCommand('npm', ['install']);
177
- if (installResult.exitCode !== 0) {
178
- installResult = await sandbox.runCommand('npm', ['install']);
179
- }
180
- if (installResult.exitCode !== 0) {
181
- const output = (installResult.stdout + installResult.stderr).trim().split('\n').slice(-10).join('\n');
182
- throw new Error(`npm install failed (exit code ${installResult.exitCode}):\n${output}`);
183
- }
184
- // Install Claude Code CLI globally
185
- const cliPackage = options.agentOptions?.cliPackage || '@anthropic-ai/claude-code';
186
- const cliInstall = await sandbox.runCommand('npm', [
187
- 'install',
188
- '-g',
189
- cliPackage,
190
- ]);
191
- if (cliInstall.exitCode !== 0) {
192
- throw new Error(`Claude Code install failed: ${cliInstall.stderr}`);
193
- }
194
- // Verify no test files in sandbox
195
- await verifyNoTestFiles(sandbox);
196
- // Build sandbox environment based on authentication method.
197
- // Note: options.apiKey is always resolved from process.env[getApiKeyEnvVar()]
198
- // by the CLI (cli.ts), so the env-var check here is consistent with getApiKeyEnvVar().
199
- let claudeEnv;
200
- if (useVercelAiGateway) {
201
- claudeEnv = {
202
- ANTHROPIC_BASE_URL: AI_GATEWAY.baseUrl,
203
- ANTHROPIC_AUTH_TOKEN: options.apiKey,
204
- ANTHROPIC_API_KEY: '',
205
- };
206
- }
207
- else if (process.env.CLAUDE_CODE_OAUTH_TOKEN) {
208
- claudeEnv = {
209
- CLAUDE_CODE_OAUTH_TOKEN: options.apiKey,
210
- };
211
- }
212
- else {
213
- claudeEnv = {
214
- ANTHROPIC_API_KEY: options.apiKey,
215
- };
216
- }
217
- // Build CLI arguments
218
- const cliArgs = buildClaudeCodeCliArgs(options);
219
- // Run Claude Code with appropriate authentication
220
- const claudeResult = await sandbox.runCommand('claude', cliArgs, {
221
- env: { ...claudeEnv, ...neutralWorkspace.env },
222
- });
223
- agentOutput = claudeResult.stdout + claudeResult.stderr;
224
- if (claudeResult.exitCode !== 0) {
225
- await captureTranscriptBestEffort();
226
- const observedModel = extractObservedModelFromClaudeTranscript(transcript);
227
- // Extract meaningful error from output (last few lines usually contain the error)
228
- const errorLines = agentOutput.trim().split('\n').slice(-5).join('\n');
229
- hasReturned = true;
230
- return {
231
- success: false,
232
- output: agentOutput,
233
- transcript,
234
- error: errorLines || `Claude Code exited with code ${claudeResult.exitCode}`,
235
- duration: Date.now() - startTime,
236
- sandboxId: sandbox.sandboxId,
237
- observedModel,
238
- };
239
- }
240
- // Capture transcript before validation when available
241
- await captureTranscriptBestEffort();
242
- const observedModel = extractObservedModelFromClaudeTranscript(transcript);
243
- if (options.validation !== 'none') {
244
- // Upload test files for validation
245
- await sandbox.uploadFiles(testFiles);
246
- // Create vitest config for EVAL.ts/tsx
247
- await createVitestConfig(sandbox);
248
- // Inject transcript context so EVAL.ts tests can assert on agent behavior
249
- await injectTranscriptContext(sandbox, transcript, 'claude-code', options.model);
250
- }
251
- // Run validation scripts
252
- const validationResults = await runValidation(sandbox, options.scripts ?? [], options.validation);
253
- // Capture generated files
254
- const { generatedFiles, deletedFiles } = await captureGeneratedFiles(sandbox);
255
- hasReturned = true;
256
- return {
257
- success: validationResults.allPassed,
258
- output: agentOutput,
259
- transcript,
260
- duration: Date.now() - startTime,
261
- testResult: validationResults.test,
262
- scriptsResults: validationResults.scripts,
263
- sandboxId: sandbox.sandboxId,
264
- generatedFiles,
265
- deletedFiles,
266
- observedModel,
267
- };
268
- }
269
- catch (error) {
270
- await captureTranscriptBestEffort();
271
- // Check if this was an abort
272
- if (aborted) {
273
- hasReturned = true;
274
- return {
275
- success: false,
276
- output: agentOutput,
277
- transcript,
278
- error: 'Aborted',
279
- duration: Date.now() - startTime,
280
- sandboxId: sandbox?.sandboxId,
281
- };
282
- }
283
- hasReturned = true;
284
- return {
285
- success: false,
286
- output: agentOutput,
287
- transcript,
288
- error: error instanceof Error ? error.message : String(error),
289
- duration: Date.now() - startTime,
290
- sandboxId: sandbox?.sandboxId,
291
- };
292
- }
293
- finally {
294
- // If we're about to return and sandbox is still up, try one final transcript capture.
295
- if (hasReturned) {
296
- await captureTranscriptBestEffort();
297
- }
298
- // Clean up abort listener
299
- if (options.signal) {
300
- options.signal.removeEventListener('abort', abortHandler);
301
- }
302
- if (sandbox && !sandboxStopped) {
303
- sandboxStopped = true;
304
- await sandbox.stop();
305
- }
306
- }
307
- },
308
- };
309
- }
310
- //# sourceMappingURL=claude-code.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/lib/agents/claude-code.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- /**
2
- * OpenAI Codex CLI agent implementation.
3
- * Uses Vercel AI Gateway for model access.
4
- */
5
- import type { Agent } from './types.js';
6
- export declare function extractCodexThreadId(output: string): string | undefined;
7
- export declare function extractObservedModelFromCodexSession(transcript: string | undefined): string | undefined;
8
- /**
9
- * Generate Codex profile config content.
10
- *
11
- * `reasoningEffort` and `model_verbosity` are written into the profile so a
12
- * fresh `codex exec` doesn't pick up the CLI defaults of `"low"`, which are
13
- * rejected by `gpt-5.2-codex`. Defaults to `"medium"` when `reasoningEffort`
14
- * is omitted.
15
- */
16
- export declare function generateCodexConfig(model: string | undefined, useVercelAiGateway: boolean, reasoningEffort?: string, webResearch?: boolean): string;
17
- /**
18
- * Create Codex agent with specified authentication method.
19
- */
20
- export declare function createCodexAgent({ useVercelAiGateway }: {
21
- useVercelAiGateway: boolean;
22
- }): Agent;
23
- //# sourceMappingURL=codex.d.ts.map
@@ -1 +0,0 @@
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;AAwEzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAcvE;AAED,wBAAgB,oCAAoC,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAqBvG;AAuCD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,kBAAkB,EAAE,OAAO,EAC3B,eAAe,CAAC,EAAE,MAAM,EACxB,WAAW,CAAC,EAAE,OAAO,GACpB,MAAM,CA4BR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,EAAE;IAAE,kBAAkB,EAAE,OAAO,CAAA;CAAE,GAAG,KAAK,CAqO/F"}