@cliwatch/cli-bench 0.7.0 → 0.8.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 (50) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/ci.d.ts.map +1 -1
  3. package/dist/ci.js +14 -0
  4. package/dist/ci.js.map +1 -1
  5. package/dist/client/index.d.ts +1 -1
  6. package/dist/client/index.d.ts.map +1 -1
  7. package/dist/client/sdk.gen.d.ts +7 -1
  8. package/dist/client/sdk.gen.d.ts.map +1 -1
  9. package/dist/client/sdk.gen.js +8 -0
  10. package/dist/client/sdk.gen.js.map +1 -1
  11. package/dist/client/types.gen.d.ts +75 -12
  12. package/dist/client/types.gen.d.ts.map +1 -1
  13. package/dist/client/zod.gen.d.ts +92 -10
  14. package/dist/client/zod.gen.d.ts.map +1 -1
  15. package/dist/client/zod.gen.js +26 -7
  16. package/dist/client/zod.gen.js.map +1 -1
  17. package/dist/config.d.ts +0 -3
  18. package/dist/config.d.ts.map +1 -1
  19. package/dist/config.js +0 -16
  20. package/dist/config.js.map +1 -1
  21. package/dist/index.js +5 -10
  22. package/dist/index.js.map +1 -1
  23. package/dist/init.js +1 -1
  24. package/dist/models.d.ts +4 -9
  25. package/dist/models.d.ts.map +1 -1
  26. package/dist/models.js +1 -1
  27. package/dist/models.js.map +1 -1
  28. package/dist/project.d.ts.map +1 -1
  29. package/dist/project.js +86 -1
  30. package/dist/project.js.map +1 -1
  31. package/dist/prompt.d.ts +2 -8
  32. package/dist/prompt.d.ts.map +1 -1
  33. package/dist/prompt.js +2 -35
  34. package/dist/prompt.js.map +1 -1
  35. package/dist/runner.d.ts +5 -3
  36. package/dist/runner.d.ts.map +1 -1
  37. package/dist/runner.js +153 -124
  38. package/dist/runner.js.map +1 -1
  39. package/dist/schemas.d.ts +6 -1
  40. package/dist/schemas.d.ts.map +1 -1
  41. package/dist/schemas.js +3 -1
  42. package/dist/schemas.js.map +1 -1
  43. package/dist/suite-generator.d.ts.map +1 -1
  44. package/dist/suite-generator.js +35 -4
  45. package/dist/suite-generator.js.map +1 -1
  46. package/package.json +1 -1
  47. package/dist/help-loader.d.ts +0 -17
  48. package/dist/help-loader.d.ts.map +0 -1
  49. package/dist/help-loader.js +0 -65
  50. package/dist/help-loader.js.map +0 -1
package/dist/prompt.d.ts CHANGED
@@ -1,13 +1,7 @@
1
1
  /**
2
2
  * Builds prompts for CLI benchmark agents.
3
- *
4
- * One unified system message for all context modes.
5
- * The user message varies by context mode:
6
- * - zero-shot: CLI name + task intent only
7
- * - help: CLI name + top-level --help output + task intent
8
- * - docs: CLI name + documentation contents + task intent
9
3
  */
10
- import type { ContextMode, Task } from './models.js';
4
+ import type { Task } from './models.js';
11
5
  export declare function buildSystemMessage(customPrompt?: string): string;
12
- export declare function buildUserMessage(cliName: string, task: Task, contextMode: ContextMode, contextPayload?: string | null): string;
6
+ export declare function buildUserMessage(cliName: string, task: Task): string;
13
7
  //# sourceMappingURL=prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AASrD,wBAAgB,kBAAkB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAC7B,MAAM,CA+BR"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AASxC,wBAAgB,kBAAkB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAEpE"}
package/dist/prompt.js CHANGED
@@ -1,11 +1,5 @@
1
1
  /**
2
2
  * Builds prompts for CLI benchmark agents.
3
- *
4
- * One unified system message for all context modes.
5
- * The user message varies by context mode:
6
- * - zero-shot: CLI name + task intent only
7
- * - help: CLI name + top-level --help output + task intent
8
- * - docs: CLI name + documentation contents + task intent
9
3
  */
10
4
  const AGENT_SYSTEM_MESSAGE = `You are a CLI expert. You have a run_command tool to execute shell commands. Use it to accomplish the user's task.
11
5
 
@@ -19,34 +13,7 @@ export function buildSystemMessage(customPrompt) {
19
13
  }
20
14
  return AGENT_SYSTEM_MESSAGE;
21
15
  }
22
- export function buildUserMessage(cliName, task, contextMode, contextPayload) {
23
- switch (contextMode) {
24
- case 'help':
25
- if (contextPayload) {
26
- return `CLI: ${cliName}
27
-
28
- Help text:
29
- $ ${cliName} --help
30
- ${contextPayload}
31
-
32
- Task: ${task.intent}`;
33
- }
34
- // Fall through to zero-shot if no help available
35
- return `CLI: ${cliName}\n\nTask: ${task.intent}`;
36
- case 'docs':
37
- if (contextPayload) {
38
- return `CLI: ${cliName}
39
-
40
- Documentation:
41
- ${contextPayload}
42
-
43
- Task: ${task.intent}`;
44
- }
45
- // Fall through to zero-shot if no docs available
46
- return `CLI: ${cliName}\n\nTask: ${task.intent}`;
47
- case 'zero-shot':
48
- default:
49
- return `CLI: ${cliName}\n\nTask: ${task.intent}`;
50
- }
16
+ export function buildUserMessage(cliName, task) {
17
+ return `CLI: ${cliName}\n\nTask: ${task.intent}`;
51
18
  }
52
19
  //# sourceMappingURL=prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,oBAAoB,GAAG;;;;;gDAKmB,CAAC;AAEjD,MAAM,UAAU,kBAAkB,CAAC,YAAqB;IACtD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,GAAG,oBAAoB,OAAO,YAAY,EAAE,CAAC;IACtD,CAAC;IACD,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,OAAe,EACf,IAAU,EACV,WAAwB,EACxB,cAA8B;IAE9B,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,MAAM;YACT,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,QAAQ,OAAO;;;IAG1B,OAAO;EACT,cAAc;;QAER,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC;YACD,iDAAiD;YACjD,OAAO,QAAQ,OAAO,aAAa,IAAI,CAAC,MAAM,EAAE,CAAC;QAEnD,KAAK,MAAM;YACT,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,QAAQ,OAAO;;;EAG5B,cAAc;;QAER,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC;YACD,iDAAiD;YACjD,OAAO,QAAQ,OAAO,aAAa,IAAI,CAAC,MAAM,EAAE,CAAC;QAEnD,KAAK,WAAW,CAAC;QACjB;YACE,OAAO,QAAQ,OAAO,aAAa,IAAI,CAAC,MAAM,EAAE,CAAC;IACrD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,oBAAoB,GAAG;;;;;gDAKmB,CAAC;AAEjD,MAAM,UAAU,kBAAkB,CAAC,YAAqB;IACtD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,GAAG,oBAAoB,OAAO,YAAY,EAAE,CAAC;IACtD,CAAC;IACD,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,IAAU;IAC1D,OAAO,QAAQ,OAAO,aAAa,IAAI,CAAC,MAAM,EAAE,CAAC;AACnD,CAAC"}
package/dist/runner.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Orchestrates the task x model x contextMode matrix with tool-calling agents.
2
+ * Orchestrates the task x model matrix with tool-calling agents.
3
3
  *
4
4
  * For each task:
5
5
  * - Create temp workdir (or use configured one)
@@ -55,8 +55,6 @@ export interface RunGridOptions {
55
55
  githubUrl?: string;
56
56
  /** Serialized YAML of the resolved task suite. */
57
57
  taskSuiteContent?: string;
58
- /** Directory containing the config file (for resolving docs.md). */
59
- configDir?: string;
60
58
  /** Env var names whose values should be redacted from results. */
61
59
  redactEnvVars?: string[];
62
60
  /** Regex patterns to redact from results (e.g. API-echoed account IDs). */
@@ -67,10 +65,14 @@ export interface RunGridOptions {
67
65
  fileSetup?: string[];
68
66
  /** Config-level cleanup commands (run after each task). */
69
67
  fileCleanup?: string[];
68
+ /** Config-level scaffold directory (copied into workdir before setup). */
69
+ fileScaffold?: string;
70
70
  /** Original project files (config + task files) for upload. */
71
71
  projectFiles?: Record<string, string>;
72
72
  /** Override the language model (for testing with mock models). */
73
73
  modelOverride?: LanguageModel;
74
+ /** Retry tasks on infra errors (0 tokens). Default: 1. */
75
+ infraRetries?: number;
74
76
  }
75
77
  export declare function runGrid(opts: RunGridOptions): Promise<GridReport[]>;
76
78
  export declare function uploadReport(report: GridReport, backendUrl: string, apiKey: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,EAA6B,KAAK,aAAa,EAAE,MAAM,IAAI,CAAC;AAGnE,OAAO,KAAK,EACV,SAAS,EACT,IAAI,EACJ,UAAU,EAKX,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAUjD,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAKxE;AAGD;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAE5E;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACvC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GACxB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAOpC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GACxB,MAAM,EAAE,CAEV;AAoOD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,kEAAkE;IAClE,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAoCzE;AA8RD,wBAAsB,YAAY,CAChC,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAsBf"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,EAA6B,KAAK,aAAa,EAAE,MAAM,IAAI,CAAC;AAGnE,OAAO,KAAK,EACV,SAAS,EACT,IAAI,EACJ,UAAU,EAIX,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AASjD,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAKxE;AAGD;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAE5E;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACvC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GACxB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAOpC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GACxB,MAAM,EAAE,CAEV;AA+OD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,kEAAkE;IAClE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAoCzE;AAuTD,wBAAsB,YAAY,CAChC,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAsBf"}
package/dist/runner.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Orchestrates the task x model x contextMode matrix with tool-calling agents.
2
+ * Orchestrates the task x model matrix with tool-calling agents.
3
3
  *
4
4
  * For each task:
5
5
  * - Create temp workdir (or use configured one)
@@ -9,7 +9,7 @@
9
9
  * - After maxSteps or completion: run assertions
10
10
  * - Aggregate into GridReport
11
11
  */
12
- import { readFile, mkdtemp, rm } from 'node:fs/promises';
12
+ import { readFile, mkdtemp, rm, cp } from 'node:fs/promises';
13
13
  import { join } from 'node:path';
14
14
  import { tmpdir } from 'node:os';
15
15
  import { parse as parseYaml } from 'yaml';
@@ -18,7 +18,6 @@ import { z } from 'zod';
18
18
  import { getModel, filterModels } from './providers.js';
19
19
  import { buildSystemMessage, buildUserMessage } from './prompt.js';
20
20
  import { runAssertions } from './assertions.js';
21
- import { loadTopLevelHelp } from './help-loader.js';
22
21
  import { execCommand, runSetup } from './exec.js';
23
22
  import { TaskSuiteSchema } from './schemas.js';
24
23
  import { detectCI, computeTaskSuiteHash } from './ci.js';
@@ -83,7 +82,10 @@ async function detectCliVersion(versionCommand) {
83
82
  try {
84
83
  const result = await execCommand(versionCommand);
85
84
  if (result.exitCode === 0 && result.stdout.trim()) {
86
- return result.stdout.trim().split('\n')[0];
85
+ const line = result.stdout.trim().split('\n')[0];
86
+ // Strip CLI name prefix (e.g. "drizzle-kit: 0.31.8" → "0.31.8")
87
+ const match = line.match(/(\d+\.\d+\.\d+\S*)/);
88
+ return match ? match[1] : line;
87
89
  }
88
90
  }
89
91
  catch {
@@ -122,6 +124,7 @@ async function runAgentTask(model, systemMessage, userMessage, task, workdir, ta
122
124
  },
123
125
  },
124
126
  stopWhen: stepCountIs(task.max_turns ?? 5),
127
+ maxRetries: 2,
125
128
  temperature: 0,
126
129
  });
127
130
  const totalLatencyMs = Date.now() - start;
@@ -173,8 +176,8 @@ async function runAgentTask(model, systemMessage, userMessage, task, workdir, ta
173
176
  return {
174
177
  passed: false,
175
178
  assertionResults: [],
176
- turnsUsed: 0,
177
- commandsRun: [],
179
+ turnsUsed: commandsRun.length,
180
+ commandsRun,
178
181
  totalInputTokens: 0,
179
182
  totalOutputTokens: 0,
180
183
  totalLatencyMs: Date.now() - start,
@@ -188,15 +191,23 @@ async function runAgentTask(model, systemMessage, userMessage, task, workdir, ta
188
191
  }
189
192
  /** An eval with 0 tokens is an infra error (gateway timeout, auth failure, etc.) — not a real task result. */
190
193
  function isInfraError(t) {
191
- return t.totalInputTokens + t.totalOutputTokens === 0 && !t.passed;
194
+ return t.totalInputTokens + t.totalOutputTokens === 0 && t.commandsRun.length === 0 && !t.passed;
195
+ }
196
+ /** Same check on AgentResult (before it's wrapped into TaskEval). */
197
+ function isInfraErrorResult(r) {
198
+ return r.totalInputTokens + r.totalOutputTokens === 0 && r.commandsRun.length === 0 && !r.passed;
192
199
  }
193
- function aggregateModelResult(model, taskResults, contextMode) {
200
+ function aggregateModelResult(model, taskResults) {
194
201
  // Exclude infra errors from pass rate — they're not real task failures
195
202
  const scorable = taskResults.filter((t) => !isInfraError(t));
196
203
  const infraErrors = taskResults.length - scorable.length;
197
204
  if (infraErrors > 0) {
198
205
  console.warn(` ⚠ ${infraErrors} task(s) excluded from stats (infra error, 0 tokens)`);
199
206
  }
207
+ const recovered = taskResults.filter((t) => (t.infraRetries ?? 0) > 0 && !isInfraError(t));
208
+ if (recovered.length > 0) {
209
+ console.log(` ↻ ${recovered.length} task(s) recovered after infra retry`);
210
+ }
200
211
  const passRate = scorable.length > 0
201
212
  ? scorable.filter((t) => t.passed).length / scorable.length
202
213
  : 0;
@@ -215,7 +226,6 @@ function aggregateModelResult(model, taskResults, contextMode) {
215
226
  provider: model.provider,
216
227
  modelId: model.id,
217
228
  displayName: model.displayName,
218
- contextMode,
219
229
  taskResults,
220
230
  passRate,
221
231
  avgTurnsToSuccess,
@@ -234,7 +244,6 @@ export async function runGrid(opts) {
234
244
  cliName: opts.cliName,
235
245
  tasks: opts.tasks,
236
246
  models: opts.models ?? filterModels(config.models),
237
- contextModes: config.contextModes,
238
247
  limiter,
239
248
  config,
240
249
  versionCommand: opts.versionCommand,
@@ -246,52 +255,22 @@ export async function runGrid(opts) {
246
255
  websiteUrl: opts.websiteUrl,
247
256
  githubUrl: opts.githubUrl,
248
257
  taskSuiteContent: opts.taskSuiteContent,
249
- configDir: opts.configDir,
250
258
  redactEnvVars: opts.redactEnvVars,
251
259
  redactPatterns: opts.redactPatterns,
252
260
  fileEnv: opts.fileEnv,
253
261
  fileSetup: opts.fileSetup,
254
262
  fileCleanup: opts.fileCleanup,
263
+ fileScaffold: opts.fileScaffold,
255
264
  projectFiles: opts.projectFiles,
256
265
  modelOverride: opts.modelOverride,
266
+ infraRetries: opts.infraRetries,
257
267
  });
258
268
  if (report)
259
269
  reports.push(report);
260
270
  return reports;
261
271
  }
262
- /**
263
- * Load context payload for a given mode.
264
- */
265
- async function loadContextPayload(contextMode, cliName, configDir) {
266
- switch (contextMode) {
267
- case 'help': {
268
- const helpText = await loadTopLevelHelp(cliName);
269
- if (!helpText) {
270
- console.warn(` Warning: could not capture --help for ${cliName}, falling back to zero-shot`);
271
- }
272
- return helpText;
273
- }
274
- case 'docs': {
275
- if (!configDir) {
276
- console.warn(` Warning: no config directory for docs mode, falling back to zero-shot`);
277
- return null;
278
- }
279
- try {
280
- const docsPath = join(configDir, 'docs.md');
281
- return await readFile(docsPath, 'utf-8');
282
- }
283
- catch {
284
- console.warn(` Warning: docs.md not found in ${configDir}, falling back to zero-shot`);
285
- return null;
286
- }
287
- }
288
- case 'zero-shot':
289
- default:
290
- return null;
291
- }
292
- }
293
272
  async function runCliGrid(opts) {
294
- const { cliName, tasks, models, contextModes, limiter, config, versionCommand, systemPrompt } = opts;
273
+ const { cliName, tasks, models, limiter, config, versionCommand, systemPrompt } = opts;
295
274
  const redact = buildRedactor({
296
275
  envVarNames: opts.redactEnvVars ?? [],
297
276
  patterns: opts.redactPatterns ?? [],
@@ -308,99 +287,149 @@ async function runCliGrid(opts) {
308
287
  if (config.dryRun) {
309
288
  const firstTask = tasks[0];
310
289
  if (firstTask) {
311
- for (const contextMode of contextModes) {
312
- const contextPayload = await loadContextPayload(contextMode, cliName, opts.configDir);
313
- const sysMsg = buildSystemMessage(systemPrompt);
314
- const userMessage = buildUserMessage(cliName, firstTask, contextMode, contextPayload);
315
- const dryEnv = resolveEnv({ ...opts.fileEnv, ...firstTask.env }, { workdir: '/tmp/cli-bench-XXXXXX' });
316
- console.log(`\n--- Dry Run: ${cliName} / ${firstTask.id} (${contextMode}) ---`);
317
- console.log(`System: ${sysMsg}\n`);
318
- console.log(`User:\n${userMessage}\n`);
319
- if (dryEnv) {
320
- console.log(`Env: ${JSON.stringify(dryEnv, null, 2)}\n`);
321
- }
322
- console.log(`--- End Dry Run ---\n`);
290
+ const sysMsg = buildSystemMessage(systemPrompt);
291
+ const userMessage = buildUserMessage(cliName, firstTask);
292
+ const dryEnv = resolveEnv({ ...opts.fileEnv, ...firstTask.env }, { workdir: '/tmp/cli-bench-XXXXXX' });
293
+ const dryScaffold = firstTask.scaffold !== false
294
+ ? (firstTask.scaffold ?? opts.fileScaffold)
295
+ : undefined;
296
+ console.log(`\n--- Dry Run: ${cliName} / ${firstTask.id} ---`);
297
+ console.log(`System: ${sysMsg}\n`);
298
+ console.log(`User:\n${userMessage}\n`);
299
+ if (dryScaffold) {
300
+ console.log(`Scaffold: ${dryScaffold}\n`);
323
301
  }
302
+ if (dryEnv) {
303
+ console.log(`Env: ${JSON.stringify(dryEnv, null, 2)}\n`);
304
+ }
305
+ console.log(`--- End Dry Run ---\n`);
324
306
  }
325
307
  return null;
326
308
  }
327
309
  const modelResults = [];
328
- for (const contextMode of contextModes) {
329
- console.log(`\n Context: ${contextMode}`);
330
- const contextPayload = await loadContextPayload(contextMode, cliName, opts.configDir);
331
- const sysMsg = buildSystemMessage(systemPrompt);
332
- for (const model of models) {
333
- console.log(` Model: ${model.displayName}`);
334
- const taskResults = [];
335
- const workItems = [];
336
- for (const task of tasks) {
337
- const repeatCount = opts.globalRepeat ?? task.repeat ?? 1;
338
- for (let ri = 0; ri < repeatCount; ri++) {
339
- workItems.push({ task, repeatIndex: ri, repeatTotal: repeatCount });
310
+ const sysMsg = buildSystemMessage(systemPrompt);
311
+ for (const model of models) {
312
+ console.log(` Model: ${model.displayName}`);
313
+ const taskResults = [];
314
+ const workItems = [];
315
+ for (const task of tasks) {
316
+ const repeatCount = opts.globalRepeat ?? task.repeat ?? 1;
317
+ for (let ri = 0; ri < repeatCount; ri++) {
318
+ workItems.push({ task, repeatIndex: ri, repeatTotal: repeatCount });
319
+ }
320
+ }
321
+ const taskPromises = workItems.map(({ task, repeatIndex, repeatTotal }) => limiter.run(async () => {
322
+ // Fresh temp workdir per repeat -- critical for independence
323
+ const workdir = opts.workdir ?? config.workdir ?? await mkdtemp(join(tmpdir(), 'cli-bench-'));
324
+ const shouldCleanup = !opts.workdir && !config.workdir;
325
+ // Merge config-level + task-level env, resolve {{workdir}} templates
326
+ const taskEnv = resolveEnv({ ...opts.fileEnv, ...task.env }, { workdir });
327
+ try {
328
+ // Copy scaffold into workdir (task-level overrides config-level, false disables)
329
+ const scaffold = task.scaffold !== false
330
+ ? (task.scaffold ?? opts.fileScaffold)
331
+ : undefined;
332
+ if (scaffold) {
333
+ await cp(scaffold, workdir, { recursive: true });
334
+ }
335
+ const userMessage = buildUserMessage(cliName, task);
336
+ if (opts.fileSetup && opts.fileSetup.length > 0) {
337
+ await runSetup(resolveCommands(opts.fileSetup, { workdir }), { cwd: workdir, env: taskEnv });
338
+ }
339
+ if (task.setup && task.setup.length > 0) {
340
+ await runSetup(resolveCommands(task.setup, { workdir }), { cwd: workdir, env: taskEnv });
340
341
  }
342
+ const maxInfraRetries = opts.infraRetries ?? 1;
343
+ let agentResult = await runAgentTask(model, sysMsg, userMessage, task, workdir, taskEnv, opts.modelOverride);
344
+ // Retry on infra errors (0 tokens = API failure, not a real task result).
345
+ // Since 0-turn means no commands ran, the workdir is untouched and safe to reuse.
346
+ let infraRetryCount = 0;
347
+ for (let retry = 0; retry < maxInfraRetries && isInfraErrorResult(agentResult); retry++) {
348
+ infraRetryCount = retry + 1;
349
+ const delay = 1000 * (retry + 1); // 1s, 2s, 3s...
350
+ console.log(` ↻ ${task.id} infra error, retrying in ${delay / 1000}s (${infraRetryCount}/${maxInfraRetries})...`);
351
+ await new Promise((r) => setTimeout(r, delay));
352
+ agentResult = await runAgentTask(model, sysMsg, userMessage, task, workdir, taskEnv, opts.modelOverride);
353
+ }
354
+ const taskEval = {
355
+ taskId: task.id,
356
+ passed: agentResult.passed,
357
+ failureReason: agentResult.failureReason,
358
+ assertionResults: agentResult.assertionResults,
359
+ turnsUsed: agentResult.turnsUsed,
360
+ totalInputTokens: agentResult.totalInputTokens,
361
+ totalOutputTokens: agentResult.totalOutputTokens,
362
+ totalLatencyMs: agentResult.totalLatencyMs,
363
+ commandsRun: agentResult.commandsRun,
364
+ difficulty: task.difficulty,
365
+ category: task.category,
366
+ conversationTrace: agentResult.conversationTrace,
367
+ taskDefinition: {
368
+ id: task.id,
369
+ intent: task.intent,
370
+ assert: task.assert,
371
+ setup: task.setup,
372
+ max_turns: task.max_turns,
373
+ difficulty: task.difficulty,
374
+ category: task.category,
375
+ },
376
+ repeatIndex: repeatTotal > 1 ? repeatIndex : undefined,
377
+ infraRetries: infraRetryCount > 0 ? infraRetryCount : undefined,
378
+ };
379
+ const totalTokens = agentResult.totalInputTokens + agentResult.totalOutputTokens;
380
+ const icon = agentResult.passed ? '✓' : totalTokens === 0 ? '⚠' : '✗';
381
+ const repeatLabel = repeatTotal > 1 ? ` [${repeatIndex + 1}/${repeatTotal}]` : '';
382
+ const retryLabel = infraRetryCount > 0 ? ` retry=${infraRetryCount}` : '';
383
+ console.log(` ${icon} ${task.id}${repeatLabel} (turns=${agentResult.turnsUsed}, tokens=${totalTokens}${retryLabel})`);
384
+ return redact(taskEval);
341
385
  }
342
- const taskPromises = workItems.map(({ task, repeatIndex, repeatTotal }) => limiter.run(async () => {
343
- // Fresh temp workdir per repeatcritical for independence
344
- const workdir = opts.workdir ?? config.workdir ?? await mkdtemp(join(tmpdir(), 'cli-bench-'));
345
- const shouldCleanup = !opts.workdir && !config.workdir;
346
- // Merge config-level + task-level env, resolve {{workdir}} templates
347
- const taskEnv = resolveEnv({ ...opts.fileEnv, ...task.env }, { workdir });
348
- try {
349
- const userMessage = buildUserMessage(cliName, task, contextMode, contextPayload);
350
- if (opts.fileSetup && opts.fileSetup.length > 0) {
351
- await runSetup(resolveCommands(opts.fileSetup, { workdir }), { cwd: workdir, env: taskEnv });
352
- }
353
- if (task.setup && task.setup.length > 0) {
354
- await runSetup(resolveCommands(task.setup, { workdir }), { cwd: workdir, env: taskEnv });
355
- }
356
- const agentResult = await runAgentTask(model, sysMsg, userMessage, task, workdir, taskEnv, opts.modelOverride);
357
- const taskEval = {
358
- taskId: task.id,
359
- passed: agentResult.passed,
360
- failureReason: agentResult.failureReason,
361
- assertionResults: agentResult.assertionResults,
362
- turnsUsed: agentResult.turnsUsed,
363
- totalInputTokens: agentResult.totalInputTokens,
364
- totalOutputTokens: agentResult.totalOutputTokens,
365
- totalLatencyMs: agentResult.totalLatencyMs,
366
- commandsRun: agentResult.commandsRun,
386
+ catch (e) {
387
+ // Scaffold copy or setup failurereturn a failed TaskEval
388
+ // instead of crashing the entire grid
389
+ const repeatLabel = repeatTotal > 1 ? ` [${repeatIndex + 1}/${repeatTotal}]` : '';
390
+ const reason = e instanceof Error ? e.message : String(e);
391
+ console.log(` ⚠ ${task.id}${repeatLabel} (setup error: ${reason})`);
392
+ return redact({
393
+ taskId: task.id,
394
+ passed: false,
395
+ failureReason: reason,
396
+ assertionResults: [],
397
+ turnsUsed: 0,
398
+ totalInputTokens: 0,
399
+ totalOutputTokens: 0,
400
+ totalLatencyMs: 0,
401
+ commandsRun: [],
402
+ difficulty: task.difficulty,
403
+ category: task.category,
404
+ conversationTrace: [{ error: reason }],
405
+ taskDefinition: {
406
+ id: task.id,
407
+ intent: task.intent,
408
+ assert: task.assert,
409
+ setup: task.setup,
410
+ max_turns: task.max_turns,
367
411
  difficulty: task.difficulty,
368
412
  category: task.category,
369
- conversationTrace: agentResult.conversationTrace,
370
- taskDefinition: {
371
- id: task.id,
372
- intent: task.intent,
373
- assert: task.assert,
374
- setup: task.setup,
375
- max_turns: task.max_turns,
376
- difficulty: task.difficulty,
377
- category: task.category,
378
- },
379
- repeatIndex: repeatTotal > 1 ? repeatIndex : undefined,
380
- };
381
- const totalTokens = agentResult.totalInputTokens + agentResult.totalOutputTokens;
382
- const icon = agentResult.passed ? '✓' : totalTokens === 0 ? '⚠' : '✗';
383
- const repeatLabel = repeatTotal > 1 ? ` [${repeatIndex + 1}/${repeatTotal}]` : '';
384
- console.log(` ${icon} ${task.id}${repeatLabel} (turns=${agentResult.turnsUsed}, tokens=${totalTokens})`);
385
- return redact(taskEval);
413
+ },
414
+ repeatIndex: repeatTotal > 1 ? repeatIndex : undefined,
415
+ });
416
+ }
417
+ finally {
418
+ // Run cleanup commands (task-level first, then config-level)
419
+ const cleanup = [...(task.cleanup ?? []), ...(opts.fileCleanup ?? [])];
420
+ if (cleanup.length > 0) {
421
+ await runSetup(resolveCommands(cleanup, { workdir }), { cwd: workdir, env: taskEnv });
386
422
  }
387
- finally {
388
- // Run cleanup commands (task-level first, then config-level)
389
- const cleanup = [...(task.cleanup ?? []), ...(opts.fileCleanup ?? [])];
390
- if (cleanup.length > 0) {
391
- await runSetup(resolveCommands(cleanup, { workdir }), { cwd: workdir, env: taskEnv });
392
- }
393
- if (shouldCleanup) {
394
- await rm(workdir, { recursive: true, force: true }).catch(() => { });
395
- }
423
+ if (shouldCleanup) {
424
+ await rm(workdir, { recursive: true, force: true }).catch(() => { });
396
425
  }
397
- }));
398
- const results = await Promise.all(taskPromises);
399
- for (const taskEval of results) {
400
- taskResults.push(taskEval);
401
426
  }
402
- modelResults.push(aggregateModelResult(model, taskResults, contextMode));
427
+ }));
428
+ const results = await Promise.all(taskPromises);
429
+ for (const taskEval of results) {
430
+ taskResults.push(taskEval);
403
431
  }
432
+ modelResults.push(aggregateModelResult(model, taskResults));
404
433
  }
405
434
  const ciMetadata = detectCI();
406
435
  const taskSuiteHash = computeTaskSuiteHash(tasks);
@@ -444,7 +473,7 @@ function printReportSummary(report) {
444
473
  console.log(`\n--- ${report.cli} Summary ---`);
445
474
  console.log(`Tasks: ${report.taskCount}${report.totalEvals ? `, Evals: ${report.totalEvals}` : ''}`);
446
475
  for (const mr of report.modelResults) {
447
- console.log(` ${mr.displayName} [${mr.contextMode}]: pass=${(mr.passRate * 100).toFixed(0)}% avgTurns=${mr.avgTurnsToSuccess.toFixed(1)} avgTokens=${Math.round(mr.avgTotalTokens)}`);
476
+ console.log(` ${mr.displayName}: pass=${(mr.passRate * 100).toFixed(0)}% avgTurns=${mr.avgTurnsToSuccess.toFixed(1)} avgTokens=${Math.round(mr.avgTotalTokens)}`);
448
477
  // Per-task breakdown when repeats are used
449
478
  if (report.totalEvals && report.totalEvals > report.taskCount) {
450
479
  const byTask = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}