@vercel/agent-eval 2.4.1 → 2.5.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 (123) hide show
  1. package/dist/cli.js +27 -21
  2. package/dist/cli.js.map +1 -1
  3. package/dist/index.d.ts +8 -4
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +5 -2
  6. package/dist/index.js.map +1 -1
  7. package/dist/lib/agents/claude-code/agent.d.ts.map +1 -1
  8. package/dist/lib/agents/claude-code/agent.js +5 -1
  9. package/dist/lib/agents/claude-code/agent.js.map +1 -1
  10. package/dist/lib/agents/codex/agent.d.ts.map +1 -1
  11. package/dist/lib/agents/codex/agent.js +5 -1
  12. package/dist/lib/agents/codex/agent.js.map +1 -1
  13. package/dist/lib/agents/cursor/agent.d.ts.map +1 -1
  14. package/dist/lib/agents/cursor/agent.js +5 -0
  15. package/dist/lib/agents/cursor/agent.js.map +1 -1
  16. package/dist/lib/agents/fx/agent.d.ts.map +1 -1
  17. package/dist/lib/agents/fx/agent.js +3 -0
  18. package/dist/lib/agents/fx/agent.js.map +1 -1
  19. package/dist/lib/agents/fx/run.mjs +26 -0
  20. package/dist/lib/agents/gemini/agent.d.ts.map +1 -1
  21. package/dist/lib/agents/gemini/agent.js +5 -1
  22. package/dist/lib/agents/gemini/agent.js.map +1 -1
  23. package/dist/lib/agents/index.d.ts +1 -0
  24. package/dist/lib/agents/index.d.ts.map +1 -1
  25. package/dist/lib/agents/index.js +2 -0
  26. package/dist/lib/agents/index.js.map +1 -1
  27. package/dist/lib/agents/opencode/agent.d.ts.map +1 -1
  28. package/dist/lib/agents/opencode/agent.js +6 -0
  29. package/dist/lib/agents/opencode/agent.js.map +1 -1
  30. package/dist/lib/agents/plugin/contract.d.ts +40 -0
  31. package/dist/lib/agents/plugin/contract.d.ts.map +1 -1
  32. package/dist/lib/agents/plugin/contract.js.map +1 -1
  33. package/dist/lib/agents/plugin/orchestrator.d.ts +19 -0
  34. package/dist/lib/agents/plugin/orchestrator.d.ts.map +1 -1
  35. package/dist/lib/agents/plugin/orchestrator.js +265 -52
  36. package/dist/lib/agents/plugin/orchestrator.js.map +1 -1
  37. package/dist/lib/agents/redact.d.ts +34 -3
  38. package/dist/lib/agents/redact.d.ts.map +1 -1
  39. package/dist/lib/agents/redact.js +148 -35
  40. package/dist/lib/agents/redact.js.map +1 -1
  41. package/dist/lib/agents/shared.d.ts +24 -1
  42. package/dist/lib/agents/shared.d.ts.map +1 -1
  43. package/dist/lib/agents/shared.js +48 -13
  44. package/dist/lib/agents/shared.js.map +1 -1
  45. package/dist/lib/agents/types.d.ts +24 -1
  46. package/dist/lib/agents/types.d.ts.map +1 -1
  47. package/dist/lib/agents/verifier.d.ts +96 -0
  48. package/dist/lib/agents/verifier.d.ts.map +1 -0
  49. package/dist/lib/agents/verifier.js +176 -0
  50. package/dist/lib/agents/verifier.js.map +1 -0
  51. package/dist/lib/config.d.ts.map +1 -1
  52. package/dist/lib/config.js +23 -0
  53. package/dist/lib/config.js.map +1 -1
  54. package/dist/lib/dashboard.d.ts +3 -1
  55. package/dist/lib/dashboard.d.ts.map +1 -1
  56. package/dist/lib/dashboard.js +12 -1
  57. package/dist/lib/dashboard.js.map +1 -1
  58. package/dist/lib/docker-sandbox.d.ts +9 -0
  59. package/dist/lib/docker-sandbox.d.ts.map +1 -1
  60. package/dist/lib/docker-sandbox.js +15 -0
  61. package/dist/lib/docker-sandbox.js.map +1 -1
  62. package/dist/lib/fingerprint.d.ts +3 -0
  63. package/dist/lib/fingerprint.d.ts.map +1 -1
  64. package/dist/lib/fingerprint.js +34 -0
  65. package/dist/lib/fingerprint.js.map +1 -1
  66. package/dist/lib/o11y/index.d.ts +2 -2
  67. package/dist/lib/o11y/index.d.ts.map +1 -1
  68. package/dist/lib/o11y/index.js +1 -1
  69. package/dist/lib/o11y/index.js.map +1 -1
  70. package/dist/lib/o11y/parsers/claude-code.d.ts +19 -1
  71. package/dist/lib/o11y/parsers/claude-code.d.ts.map +1 -1
  72. package/dist/lib/o11y/parsers/claude-code.js +72 -1
  73. package/dist/lib/o11y/parsers/claude-code.js.map +1 -1
  74. package/dist/lib/o11y/parsers/codex.d.ts +13 -1
  75. package/dist/lib/o11y/parsers/codex.d.ts.map +1 -1
  76. package/dist/lib/o11y/parsers/codex.js +68 -1
  77. package/dist/lib/o11y/parsers/codex.js.map +1 -1
  78. package/dist/lib/o11y/parsers/fx.d.ts +2 -1
  79. package/dist/lib/o11y/parsers/fx.d.ts.map +1 -1
  80. package/dist/lib/o11y/parsers/fx.js +21 -1
  81. package/dist/lib/o11y/parsers/fx.js.map +1 -1
  82. package/dist/lib/o11y/parsers/gemini.d.ts +13 -1
  83. package/dist/lib/o11y/parsers/gemini.d.ts.map +1 -1
  84. package/dist/lib/o11y/parsers/gemini.js +35 -1
  85. package/dist/lib/o11y/parsers/gemini.js.map +1 -1
  86. package/dist/lib/o11y/parsers/index.d.ts +6 -1
  87. package/dist/lib/o11y/parsers/index.d.ts.map +1 -1
  88. package/dist/lib/o11y/parsers/index.js +13 -1
  89. package/dist/lib/o11y/parsers/index.js.map +1 -1
  90. package/dist/lib/o11y/parsers/opencode.d.ts +17 -1
  91. package/dist/lib/o11y/parsers/opencode.d.ts.map +1 -1
  92. package/dist/lib/o11y/parsers/opencode.js +47 -4
  93. package/dist/lib/o11y/parsers/opencode.js.map +1 -1
  94. package/dist/lib/o11y/types.d.ts +30 -0
  95. package/dist/lib/o11y/types.d.ts.map +1 -1
  96. package/dist/lib/o11y/usage.d.ts +27 -0
  97. package/dist/lib/o11y/usage.d.ts.map +1 -0
  98. package/dist/lib/o11y/usage.js +75 -0
  99. package/dist/lib/o11y/usage.js.map +1 -0
  100. package/dist/lib/reporters.d.ts +101 -0
  101. package/dist/lib/reporters.d.ts.map +1 -0
  102. package/dist/lib/reporters.js +176 -0
  103. package/dist/lib/reporters.js.map +1 -0
  104. package/dist/lib/results.d.ts +15 -2
  105. package/dist/lib/results.d.ts.map +1 -1
  106. package/dist/lib/results.js +75 -4
  107. package/dist/lib/results.js.map +1 -1
  108. package/dist/lib/runner.d.ts +16 -1
  109. package/dist/lib/runner.d.ts.map +1 -1
  110. package/dist/lib/runner.js +85 -3
  111. package/dist/lib/runner.js.map +1 -1
  112. package/dist/lib/sandbox.d.ts +9 -0
  113. package/dist/lib/sandbox.d.ts.map +1 -1
  114. package/dist/lib/sandbox.js +14 -1
  115. package/dist/lib/sandbox.js.map +1 -1
  116. package/dist/lib/types.d.ts +184 -0
  117. package/dist/lib/types.d.ts.map +1 -1
  118. package/dist/lib/types.js.map +1 -1
  119. package/dist/lib/version.d.ts +7 -0
  120. package/dist/lib/version.d.ts.map +1 -0
  121. package/dist/lib/version.js +8 -0
  122. package/dist/lib/version.js.map +1 -0
  123. package/package.json +1 -1
@@ -14,8 +14,10 @@
14
14
  */
15
15
  import { readFileSync } from 'node:fs';
16
16
  import { fileURLToPath } from 'node:url';
17
- import { createSandbox, collectLocalFiles, splitTestFiles, verifyNoTestFiles, } from '../../sandbox.js';
18
- import { runValidation, captureGeneratedFiles, createVitestConfig, initGitAndCommit, injectTranscriptContext, prepareNeutralWorkspace, resolveAgentApiKey, EVAL_HELPER_PATH, JUDGE_TRANSCRIPT_FILE, JUDGE_CONFIG_PATH, JUDGE_RUNNER_PATH, } from '../shared.js';
17
+ import { createSandbox, collectLocalFiles, resolveBackend, splitTestFiles, verifyNoTestFiles, ENV_VAR_NAME_PATTERN, } from '../../sandbox.js';
18
+ import { AGENT_EVAL_VERSION } from '../../version.js';
19
+ import { runValidation, captureGeneratedFiles, createVitestConfig, initGitAndCommit, injectTranscriptContext, prepareNeutralWorkspace, resolveAgentApiKey, NEUTRAL_WORKSPACE_ENV, EVAL_HELPER_PATH, JUDGE_TRANSCRIPT_FILE, JUDGE_CONFIG_PATH, JUDGE_RUNNER_PATH, } from '../shared.js';
20
+ import { agentInstallSteps, applyAgentChanges, captureAgentChanges, createProtectedPathMatcher, findTampering, fixtureUsesJudge, pathsChangedSince, projectInstallSteps, snapshotWorkspace, VERIFIER_PROTECTED_PATHS, } from '../verifier.js';
19
21
  import { redactRunResult } from '../redact.js';
20
22
  import { getAgent } from '../registry.js';
21
23
  import { assertBundledSkillsControl, assertCrossAgentJudgeSupport, assertWebResearchControl, } from './contract.js';
@@ -84,11 +86,55 @@ export function resolveJudgeRuntime(def, options) {
84
86
  };
85
87
  }
86
88
  /**
87
- * Run all install steps for an agent, reproducing the old per-step error wording.
89
+ * Every credential a run injects: the codegen agent's key, every `agentEnv`
90
+ * value, and, when the judge is pinned to a different agent, the judge's own
91
+ * key (it can reach the transcript too). Redaction scrubs these from everything
92
+ * a run hands back.
93
+ *
94
+ * Resolving the judge can throw (an unregistered agent, a missing runner file).
95
+ * That is the run's failure to report, not redaction's, so the judge key is then
96
+ * left out rather than turning redaction into a throw.
97
+ */
98
+ export function runCredentials(def, options) {
99
+ const credentials = [options.apiKey, ...Object.values(options.agentEnv ?? {})];
100
+ try {
101
+ const judgeApiKey = resolveJudgeRuntime(def, options).judgeOptions.apiKey;
102
+ if (judgeApiKey && judgeApiKey !== options.apiKey)
103
+ credentials.push(judgeApiKey);
104
+ }
105
+ catch {
106
+ // See above: fall back to the credentials we know.
107
+ }
108
+ return credentials;
109
+ }
110
+ /**
111
+ * Reject an `agentEnv` that would change what the agent is authenticated as or
112
+ * which workspace identity it sees. The variables the orchestrator sets itself
113
+ * (the agent's auth env and the neutral workspace identity) must win, and a
114
+ * silent override would make the run measure something other than what was
115
+ * configured, so any collision is an error rather than a precedence rule.
116
+ */
117
+ export function assertAgentEnv(def, options) {
118
+ const agentEnv = options.agentEnv;
119
+ if (!agentEnv)
120
+ return;
121
+ const invalid = Object.keys(agentEnv).filter((key) => !ENV_VAR_NAME_PATTERN.test(key));
122
+ if (invalid.length > 0) {
123
+ throw new Error(`agentEnv has invalid environment variable names: ${invalid.join(', ')}`);
124
+ }
125
+ const reserved = new Set([...Object.keys(def.authEnv(options)), ...Object.keys(NEUTRAL_WORKSPACE_ENV)]);
126
+ const collisions = Object.keys(agentEnv).filter((key) => reserved.has(key)).sort();
127
+ if (collisions.length > 0) {
128
+ throw new Error(`agentEnv cannot set ${collisions.join(', ')}: reserved for ${def.displayName} authentication ` +
129
+ `or the sandbox workspace identity`);
130
+ }
131
+ }
132
+ /**
133
+ * Run install steps, reproducing the old per-step error wording.
88
134
  * Throws on final failure so the caller's catch turns it into an error result.
89
135
  */
90
- async function runInstallSteps(sandbox, def, options) {
91
- for (const step of def.install(options)) {
136
+ async function runInstallSteps(sandbox, steps) {
137
+ for (const step of steps) {
92
138
  const exec = () => step.kind === 'shell'
93
139
  ? sandbox.runShell(step.script ?? '')
94
140
  : sandbox.runCommand(step.cmd ?? '', step.args ?? []);
@@ -109,6 +155,53 @@ async function runInstallSteps(sandbox, def, options) {
109
155
  }
110
156
  }
111
157
  }
158
+ /** How long a version command may run before it is abandoned. */
159
+ const DEFAULT_VERSION_COMMAND_TIMEOUT_MS = 30_000;
160
+ /**
161
+ * `sh -c` script that runs its arguments after the first under coreutils
162
+ * `timeout` (first argument: seconds, then a KILL 5 seconds later) when the
163
+ * sandbox has it, and as-is otherwise.
164
+ */
165
+ const BOUNDED_COMMAND = 'secs=$1; shift; if command -v timeout >/dev/null 2>&1; then exec timeout -k 5 "$secs" "$@"; fi; exec "$@"';
166
+ /**
167
+ * Run the definition's version command and return its trimmed stdout. Any
168
+ * failure (no command, non-zero exit, empty output, an error from the sandbox,
169
+ * or running past its timeout) returns undefined: provenance is a record of the
170
+ * run, never a reason to fail or stall it.
171
+ */
172
+ async function readAgentCliVersion(sandbox, def, options) {
173
+ let timer;
174
+ try {
175
+ const command = def.versionCommand?.(options);
176
+ if (!command)
177
+ return undefined;
178
+ const timeoutMs = command.timeoutMs !== undefined && Number.isFinite(command.timeoutMs) && command.timeoutMs > 0
179
+ ? command.timeoutMs
180
+ : DEFAULT_VERSION_COMMAND_TIMEOUT_MS;
181
+ const argv = command.kind === 'shell' ? ['bash', '-c', command.script] : [command.cmd, ...(command.args ?? [])];
182
+ // Two bounds, because a hung version command would otherwise hold the run
183
+ // until the attempt's own timeout fails it: coreutils `timeout` kills the
184
+ // process in the sandbox when it's installed, and a host-side timer stops
185
+ // waiting either way. The abandoned command's eventual result (or rejection,
186
+ // once the sandbox stops) is swallowed.
187
+ const run = sandbox
188
+ .runCommand('sh', ['-c', BOUNDED_COMMAND, 'sh', String(timeoutMs / 1000), ...argv])
189
+ .catch(() => undefined);
190
+ const timedOut = new Promise((resolve) => {
191
+ timer = setTimeout(() => resolve(undefined), timeoutMs);
192
+ });
193
+ const result = await Promise.race([run, timedOut]);
194
+ const version = result?.stdout.trim();
195
+ return result?.exitCode === 0 && version ? version : undefined;
196
+ }
197
+ catch {
198
+ return undefined;
199
+ }
200
+ finally {
201
+ if (timer)
202
+ clearTimeout(timer);
203
+ }
204
+ }
112
205
  /** Write the agent's config files into the sandbox (codex TOML, opencode.json, …). */
113
206
  async function writeConfigFiles(sandbox, def, options) {
114
207
  for (const cf of def.configFiles(options)) {
@@ -121,6 +214,35 @@ async function writeConfigFiles(sandbox, def, options) {
121
214
  }
122
215
  }
123
216
  }
217
+ /**
218
+ * Upload what validation needs (tests, vitest config, transcript context, judge
219
+ * runtime) and run it. Shared by both verifiers so the grading environment is
220
+ * built the same way in the agent's sandbox and in a separate one.
221
+ */
222
+ async function validate(sandbox, testFiles, transcript, def, options, judgeRuntime, workspaceEnv, usage) {
223
+ // The JUDGE's auth env is set on the eval process so EVAL.ts judge matchers can
224
+ // re-invoke the agent in-sandbox (the vitest process inherits it to children).
225
+ // By default the judge is the codegen agent+model; options.judge pins a fixed one.
226
+ const validationEnv = { ...judgeRuntime.authEnv, ...workspaceEnv };
227
+ if (options.validation !== 'none') {
228
+ await sandbox.uploadFiles(testFiles);
229
+ await createVitestConfig(sandbox);
230
+ await injectTranscriptContext(sandbox, transcript, def.o11yAgentName, options.model, usage);
231
+ // Judge runtime: ship the eval helper, materialize the raw transcript as a
232
+ // file the judge agent can read by path, record the judge config, and — only
233
+ // when the judge is a DIFFERENT agent — ship its runner alongside run.mjs.
234
+ const judgeFiles = {
235
+ [EVAL_HELPER_PATH]: readFileSync(EVAL_HELPER_DISK_PATH, 'utf8'),
236
+ [JUDGE_TRANSCRIPT_FILE]: transcript ?? '',
237
+ [JUDGE_CONFIG_PATH]: JSON.stringify(judgeRuntime.config),
238
+ };
239
+ if (judgeRuntime.runnerSource) {
240
+ judgeFiles[JUDGE_RUNNER_PATH] = judgeRuntime.runnerSource;
241
+ }
242
+ await sandbox.writeFiles(judgeFiles);
243
+ }
244
+ return runValidation(sandbox, options.scripts ?? [], options.validation, validationEnv);
245
+ }
124
246
  /**
125
247
  * Read the RunnerResult the in-sandbox run.mjs produced.
126
248
  *
@@ -176,30 +298,30 @@ async function readRunnerResult(sandbox, resultPath, nodeResult) {
176
298
  export async function runWithDefinition(def, fixturePath, options) {
177
299
  assertBundledSkillsControl(def, options.disableBundledSkills);
178
300
  assertWebResearchControl(def, options.webResearch);
179
- const result = await runOnce(def, fixturePath, options);
180
- // A judge pinned to a different agent authenticates with its own key, and it can
181
- // reach the transcript too, so redact both. Resolving the judge can throw (an
182
- // unregistered agent, a missing runner file) — that is the run's failure to
183
- // report, not redaction's, so fall back to the codegen key rather than turning it
184
- // into a throw on a path that previously returned a result.
185
- let judgeApiKey;
186
- try {
187
- judgeApiKey = resolveJudgeRuntime(def, options).judgeOptions.apiKey;
188
- }
189
- catch {
190
- judgeApiKey = undefined;
191
- }
192
- return redactRunResult(result, [options.apiKey, judgeApiKey]);
301
+ assertAgentEnv(def, options);
302
+ // Provenance is attached here rather than at each of runOnce's returns, for the
303
+ // same reason redaction is: a later return can't drop it by omission. runOnce
304
+ // fills in what it observes (the sandbox's image and user, the CLI version).
305
+ const provenance = {
306
+ agentEvalVersion: AGENT_EVAL_VERSION,
307
+ sandboxBackend: resolveBackend({ backend: options.sandbox }),
308
+ };
309
+ const result = { ...(await runOnce(def, fixturePath, options, provenance)), provenance };
310
+ return redactRunResult(result, runCredentials(def, options));
193
311
  }
194
- async function runOnce(def, fixturePath, options) {
312
+ async function runOnce(def, fixturePath, options, provenance) {
195
313
  const startTime = Date.now();
196
314
  let sandbox = null;
197
315
  let agentOutput = '';
198
316
  let transcript;
199
317
  let observedModel;
200
318
  let modelRepair;
319
+ let usage;
201
320
  let aborted = false;
202
321
  let sandboxStopped = false;
322
+ // The separate verifier's sandbox, when options.verifier is 'separate'.
323
+ let verifier = null;
324
+ let verifierStopped = false;
203
325
  // --- abort wiring (identical to the old adapter) ---------------------------
204
326
  const abortHandler = () => {
205
327
  aborted = true;
@@ -207,6 +329,10 @@ async function runOnce(def, fixturePath, options) {
207
329
  sandboxStopped = true;
208
330
  sandbox.stop().catch(() => { });
209
331
  }
332
+ if (verifier && !verifierStopped) {
333
+ verifierStopped = true;
334
+ verifier.stop().catch(() => { });
335
+ }
210
336
  };
211
337
  if (options.signal) {
212
338
  if (options.signal.aborted) {
@@ -225,15 +351,22 @@ async function runOnce(def, fixturePath, options) {
225
351
  // re-invocation of the runner (eval-helper.mjs); codex's shell-canary
226
352
  // memoization (~/.codex/agent-eval-canary.json, see codex/run.mjs) relies
227
353
  // on that shared lifetime — a sandbox-per-invocation change would make
228
- // every judge assertion re-pay the canary exec.
229
- sandbox = await createSandbox({
354
+ // every judge assertion re-pay the canary exec. (With verifier: 'separate'
355
+ // the judge runs in the verifier instead, which pays the canary once.)
356
+ const sandboxOptions = {
230
357
  timeout: options.timeout,
231
358
  // `image` and `runtime` are mutually exclusive; keep the legacy runtime
232
359
  // default unless the caller opted into an image.
233
360
  ...(options.sandboxImage ? { image: options.sandboxImage } : { runtime: 'node24' }),
234
361
  user: options.sandboxUser,
235
362
  backend: options.sandbox,
236
- });
363
+ };
364
+ sandbox = await createSandbox(sandboxOptions);
365
+ provenance.sandboxBackend = sandbox.backend;
366
+ if (sandbox.image)
367
+ provenance.sandboxImage = sandbox.image;
368
+ if (sandbox.username)
369
+ provenance.sandboxUser = sandbox.username;
237
370
  if (aborted) {
238
371
  return {
239
372
  success: false,
@@ -252,14 +385,17 @@ async function runOnce(def, fixturePath, options) {
252
385
  }
253
386
  const neutralWorkspace = await prepareNeutralWorkspace(sandbox);
254
387
  // 4. SETUP from the definition: install (project deps + CLI) then config files.
255
- await runInstallSteps(sandbox, def, options);
388
+ await runInstallSteps(sandbox, def.install(options));
256
389
  await writeConfigFiles(sandbox, def, options);
390
+ const agentCliVersion = await readAgentCliVersion(sandbox, def, options);
391
+ if (agentCliVersion)
392
+ provenance.agentCliVersion = agentCliVersion;
257
393
  // 4b. If the agentic judge is pinned to a DIFFERENT agent, install its CLI +
258
394
  // config too — the codegen setup above only installed the codegen agent.
259
395
  // (npm install of project deps re-runs idempotently; the CLI is the point.)
260
396
  const judgeRuntime = resolveJudgeRuntime(def, options);
261
397
  if (!judgeRuntime.isSelf) {
262
- await runInstallSteps(sandbox, judgeRuntime.judgeDef, judgeRuntime.judgeOptions);
398
+ await runInstallSteps(sandbox, judgeRuntime.judgeDef.install(judgeRuntime.judgeOptions));
263
399
  await writeConfigFiles(sandbox, judgeRuntime.judgeDef, judgeRuntime.judgeOptions);
264
400
  }
265
401
  // 5. Guard: no stray test files leaked into the workspace before the agent runs.
@@ -268,9 +404,16 @@ async function runOnce(def, fixturePath, options) {
268
404
  // (next to the compiled definition) and write it into the sandbox.
269
405
  const runnerSource = readFileSync(def.runnerPath, 'utf8');
270
406
  await sandbox.writeFiles({ [RUNNER_PATH]: runnerSource });
407
+ // 6b. Tampering detection (separate verifier or protectedPaths only): snapshot
408
+ // the workspace so only changes made by the agent itself are reported.
409
+ const separate = options.verifier === 'separate';
410
+ const tracksTampering = separate || (options.protectedPaths?.length ?? 0) > 0;
411
+ const preAgentTree = tracksTampering ? await snapshotWorkspace(sandbox) : undefined;
271
412
  // 7. INVOKE the runner. Auth + neutral env are set on the node process (merged,
272
413
  // neutral overrides — same precedence as the old adapter). The apiKey rides
273
- // in env only, never in the argv JSON.
414
+ // in env only, never in the argv JSON. The caller's agentEnv joins them here
415
+ // and nowhere else: validation and judge runs never receive it. Collisions
416
+ // were rejected up front, so listing it first changes no precedence.
274
417
  const input = {
275
418
  prompt: options.prompt,
276
419
  model: options.model,
@@ -284,7 +427,7 @@ async function runOnce(def, fixturePath, options) {
284
427
  // that must match the TOML config). Omitted entirely for agents without it.
285
428
  extra: def.runnerExtra?.(options),
286
429
  };
287
- const runEnv = { ...def.authEnv(options), ...neutralWorkspace.env };
430
+ const runEnv = { ...options.agentEnv, ...def.authEnv(options), ...neutralWorkspace.env };
288
431
  const nodeResult = await sandbox.runCommand('node', [RUNNER_PATH, JSON.stringify(input)], { env: runEnv });
289
432
  // 8. Read the runner's result (file → marker → throw-on-crash).
290
433
  const runnerResult = await readRunnerResult(sandbox, RESULT_PATH, nodeResult);
@@ -292,6 +435,7 @@ async function runOnce(def, fixturePath, options) {
292
435
  transcript = runnerResult.transcript ?? undefined;
293
436
  observedModel = runnerResult.observedModel ?? undefined;
294
437
  modelRepair = runnerResult.modelRepair ?? undefined;
438
+ usage = runnerResult.usage ?? undefined;
295
439
  if (aborted) {
296
440
  return {
297
441
  success: false,
@@ -314,34 +458,93 @@ async function runOnce(def, fixturePath, options) {
314
458
  sandboxId: sandbox.sandboxId,
315
459
  observedModel,
316
460
  modelRepair,
461
+ ...(usage ? { usage } : {}),
462
+ };
463
+ }
464
+ // 10. VALIDATION. Protected paths the agent changed are worked out first,
465
+ // before anything else is written to the workspace.
466
+ const isProtected = createProtectedPathMatcher([
467
+ ...(separate ? VERIFIER_PROTECTED_PATHS : []),
468
+ ...(options.protectedPaths ?? []),
469
+ ]);
470
+ const tampering = preAgentTree
471
+ ? findTampering(await pathsChangedSince(sandbox, preAgentTree), isProtected)
472
+ : undefined;
473
+ if (!separate) {
474
+ // Shared verifier (the default): grade in the agent's own sandbox. With
475
+ // protectedPaths set, tampering is only reported; grading is unchanged.
476
+ const validationResults = await validate(sandbox, testFiles, transcript, def, options, judgeRuntime, neutralWorkspace.env, usage);
477
+ // 11. Capture generated/deleted files (git diff).
478
+ const { generatedFiles, deletedFiles } = await captureGeneratedFiles(sandbox);
479
+ return {
480
+ success: validationResults.allPassed,
481
+ output: agentOutput,
482
+ transcript,
483
+ duration: Date.now() - startTime,
484
+ testResult: validationResults.test,
485
+ scriptsResults: validationResults.scripts,
486
+ sandboxId: sandbox.sandboxId,
487
+ generatedFiles,
488
+ deletedFiles,
489
+ observedModel,
490
+ modelRepair,
491
+ ...(usage ? { usage } : {}),
492
+ ...(tampering ? { tampering } : {}),
317
493
  };
318
494
  }
319
- // 10. VALIDATION (unchanged shared helpers; parseTranscript runs host-side here).
320
- // The JUDGE's auth env is set on the eval process so EVAL.ts judge matchers can
321
- // re-invoke the agent in-sandbox (the vitest process inherits it to children).
322
- // By default the judge is the codegen agent+model; options.judge pins a fixed one
323
- // (judgeRuntime was resolved at step 4b so its CLI could be installed).
324
- const validationEnv = { ...judgeRuntime.authEnv, ...neutralWorkspace.env };
325
- if (options.validation !== 'none') {
326
- await sandbox.uploadFiles(testFiles);
327
- await createVitestConfig(sandbox);
328
- await injectTranscriptContext(sandbox, transcript, def.o11yAgentName, options.model);
329
- // Judge runtime: ship the eval helper, materialize the raw transcript as a
330
- // file the judge agent can read by path, record the judge config, and — only
331
- // when the judge is a DIFFERENT agent — ship its runner alongside run.mjs.
332
- const judgeFiles = {
333
- [EVAL_HELPER_PATH]: readFileSync(EVAL_HELPER_DISK_PATH, 'utf8'),
334
- [JUDGE_TRANSCRIPT_FILE]: transcript ?? '',
335
- [JUDGE_CONFIG_PATH]: JSON.stringify(judgeRuntime.config),
495
+ // 10s. SEPARATE VERIFIER. Grade in a fresh sandbox that receives only the
496
+ // agent's file changes, so nothing else the agent did can reach the grader.
497
+ // a. Capture the changes while the agent's sandbox still exists. The
498
+ // capture is untrusted (it runs git where the agent could replace it),
499
+ // so anything it reports beyond the snapshot comparison is checked too.
500
+ const changes = await captureAgentChanges(sandbox);
501
+ const verifierTampering = findTampering([
502
+ ...(tampering ?? []),
503
+ ...Object.keys(changes.generatedFiles),
504
+ ...changes.deletedFiles,
505
+ ...changes.rejectedPaths,
506
+ ], isProtected);
507
+ // b. Stop the agent's sandbox: its processes and installs end with it. A
508
+ // failed stop can't affect a different sandbox, so it doesn't fail the run.
509
+ sandboxStopped = true;
510
+ await sandbox.stop().catch(() => { });
511
+ // c. Same backend, image or runtime, and user as the agent's sandbox.
512
+ verifier = await createSandbox(sandboxOptions);
513
+ if (aborted) {
514
+ return {
515
+ success: false,
516
+ output: agentOutput,
517
+ transcript,
518
+ error: 'Aborted',
519
+ duration: Date.now() - startTime,
520
+ sandboxId: sandbox.sandboxId,
336
521
  };
337
- if (judgeRuntime.runnerSource) {
338
- judgeFiles[JUDGE_RUNNER_PATH] = judgeRuntime.runnerSource;
522
+ }
523
+ // d. Rebuild the workspace the way the agent's started: the original files,
524
+ // the git baseline, the user's setup, and the neutral workspace. Setup
525
+ // runs before the replay because its file writes landed after the
526
+ // baseline, so they are already part of the agent's diff.
527
+ await verifier.uploadFiles(workspaceFiles);
528
+ await initGitAndCommit(verifier);
529
+ if (options.setup) {
530
+ await options.setup(verifier);
531
+ }
532
+ const verifierWorkspace = await prepareNeutralWorkspace(verifier);
533
+ // e. Replay the agent's changes, minus protected paths.
534
+ await applyAgentChanges(verifier, changes, isProtected);
535
+ // f. Fresh project dependencies, and the judge's CLI only when the eval
536
+ // can call the judge (a self-grading judge also re-runs run.mjs).
537
+ await runInstallSteps(verifier, projectInstallSteps(def.install(options)));
538
+ if (options.validation !== 'none' && fixtureUsesJudge(allFiles)) {
539
+ const { judgeDef, judgeOptions } = judgeRuntime;
540
+ await runInstallSteps(verifier, agentInstallSteps(judgeDef.install(judgeOptions)));
541
+ await writeConfigFiles(verifier, judgeDef, judgeOptions);
542
+ if (judgeRuntime.isSelf) {
543
+ await verifier.writeFiles({ [RUNNER_PATH]: runnerSource });
339
544
  }
340
- await sandbox.writeFiles(judgeFiles);
341
545
  }
342
- const validationResults = await runValidation(sandbox, options.scripts ?? [], options.validation, validationEnv);
343
- // 11. Capture generated/deleted files (git diff).
344
- const { generatedFiles, deletedFiles } = await captureGeneratedFiles(sandbox);
546
+ // g. Grade.
547
+ const validationResults = await validate(verifier, testFiles, transcript, def, options, judgeRuntime, verifierWorkspace.env, usage);
345
548
  return {
346
549
  success: validationResults.allPassed,
347
550
  output: agentOutput,
@@ -350,10 +553,14 @@ async function runOnce(def, fixturePath, options) {
350
553
  testResult: validationResults.test,
351
554
  scriptsResults: validationResults.scripts,
352
555
  sandboxId: sandbox.sandboxId,
353
- generatedFiles,
354
- deletedFiles,
556
+ generatedFiles: changes.generatedFiles,
557
+ deletedFiles: changes.deletedFiles,
355
558
  observedModel,
356
559
  modelRepair,
560
+ ...(usage ? { usage } : {}),
561
+ verifier: 'separate',
562
+ verifierSandboxId: verifier.sandboxId,
563
+ tampering: verifierTampering,
357
564
  };
358
565
  }
359
566
  catch (error) {
@@ -377,6 +584,8 @@ async function runOnce(def, fixturePath, options) {
377
584
  sandboxId: sandbox?.sandboxId,
378
585
  observedModel,
379
586
  modelRepair,
587
+ ...(usage ? { usage } : {}),
588
+ ...(verifier ? { verifier: 'separate', verifierSandboxId: verifier.sandboxId } : {}),
380
589
  };
381
590
  }
382
591
  finally {
@@ -387,6 +596,10 @@ async function runOnce(def, fixturePath, options) {
387
596
  sandboxStopped = true;
388
597
  await sandbox.stop();
389
598
  }
599
+ if (verifier && !verifierStopped) {
600
+ verifierStopped = true;
601
+ await verifier.stop();
602
+ }
390
603
  }
391
604
  }
392
605
  //# sourceMappingURL=orchestrator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../../src/lib/agents/plugin/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../../src/lib/agents/plugin/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -23,10 +23,30 @@
23
23
  * JWT prefix match flags). The tradeoff is that a credential the framework never
24
24
  * saw is not covered: if a run refreshes its own token mid-flight, only the value
25
25
  * we started with is redacted.
26
+ *
27
+ * "Exact" includes the forms a JSON encoder gives the value. Transcripts are
28
+ * JSON: a credential containing a quote, a backslash, a newline, or non-ASCII
29
+ * text appears escaped there (`a\"b`, `line1\nline2`, `\u00e9`), and a literal
30
+ * match on the raw value would miss it while anyone could decode it back. See
31
+ * {@link encodedForms}.
26
32
  */
27
33
  import type { AgentRunResult } from './types.js';
28
34
  export declare const REDACTED = "[REDACTED]";
29
- /** Replace every occurrence of each secret with {@link REDACTED}. */
35
+ /**
36
+ * The text a secret can turn into inside JSON output: as written, escaped once
37
+ * by the encoders the agent CLIs and common tools use, and escaped twice (JSON
38
+ * inside a JSON string, such as a tool's JSON output recorded in a JSONL
39
+ * transcript).
40
+ *
41
+ * Encoders agree on quotes, backslashes, and control characters but differ on
42
+ * the rest, so each style is covered: plain (JavaScript, Rust), ASCII-only with
43
+ * `\u` escapes for every non-ASCII character (Python's default), HTML-safe
44
+ * `<`, `>`, `&`, U+2028, and U+2029 (Go's default), and escaped slashes. Hex
45
+ * digits appear in both cases. A secret made only of characters no encoder
46
+ * escapes has a single form: itself.
47
+ */
48
+ export declare function encodedForms(secret: string): string[];
49
+ /** Replace every occurrence of each secret, in any of its {@link encodedForms}, with {@link REDACTED}. */
30
50
  export declare function redactSecrets(text: string, secrets: readonly (string | undefined)[]): string;
31
51
  /**
32
52
  * Buffer-level equivalent of {@link redactSecrets}.
@@ -37,8 +57,8 @@ export declare function redactSecrets(text: string, secrets: readonly (string |
37
57
  * exactly the files byte-fidelity exists to protect. Passing a Buffer to
38
58
  * {@link redactSecrets} is worse still — Buffer has no `split`, so it throws.
39
59
  *
40
- * Credentials are ASCII, so their UTF-8 byte sequence is located and spliced out
41
- * directly and every other byte is copied through untouched.
60
+ * Each secret form's UTF-8 byte sequence is located and spliced out directly,
61
+ * and every other byte is copied through untouched.
42
62
  */
43
63
  export declare function redactSecretsBuffer(content: Buffer, secrets: readonly (string | undefined)[]): Buffer;
44
64
  /**
@@ -52,4 +72,15 @@ export declare function redactSecretsBuffer(content: Buffer, secrets: readonly (
52
72
  * model names, deleted-file paths — are passed through untouched.
53
73
  */
54
74
  export declare function redactRunResult(result: AgentRunResult, secrets: readonly (string | undefined)[]): AgentRunResult;
75
+ /**
76
+ * Redact every string (and Buffer) inside an arbitrary value. Used for payloads
77
+ * that leave the run as plain data, such as reporter events, where the value
78
+ * carries user-attached fields (`analysis`, `metadata`) that
79
+ * {@link redactRunResult} never saw.
80
+ *
81
+ * Returns a copy: arrays and plain objects are rebuilt, strings and Buffers are
82
+ * redacted, and everything else (numbers, functions, class instances such as
83
+ * Date) is passed through by reference. The input is not mutated.
84
+ */
85
+ export declare function redactValue<T>(value: T, secrets: readonly (string | undefined)[]): T;
55
86
  //# sourceMappingURL=redact.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../../../src/lib/agents/redact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,YAAY,CAAC;AAE/D,eAAO,MAAM,QAAQ,eAAe,CAAC;AAmBrC,qEAAqE;AACrE,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GACvC,MAAM,CAQR;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GACvC,MAAM,CAoBR;AASD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GACvC,cAAc,CAmChB"}
1
+ {"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../../../src/lib/agents/redact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,YAAY,CAAC;AAE/D,eAAO,MAAM,QAAQ,eAAe,CAAC;AA0CrC;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAYrD;AA+CD,0GAA0G;AAC1G,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GACvC,MAAM,CAER;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GACvC,MAAM,CAER;AAMD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GACvC,cAAc,CAoChB;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,CA4BpF"}