coding-agent-benchmarks 0.1.3 → 0.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.
- package/README.md +61 -18
- package/dist/adapters/claudeCodeCLI.d.ts +4 -0
- package/dist/adapters/claudeCodeCLI.d.ts.map +1 -1
- package/dist/adapters/claudeCodeCLI.js +6 -0
- package/dist/adapters/claudeCodeCLI.js.map +1 -1
- package/dist/adapters/copilotCLI.d.ts +4 -0
- package/dist/adapters/copilotCLI.d.ts.map +1 -1
- package/dist/adapters/copilotCLI.js +6 -0
- package/dist/adapters/copilotCLI.js.map +1 -1
- package/dist/evaluator.d.ts +20 -2
- package/dist/evaluator.d.ts.map +1 -1
- package/dist/evaluator.js +50 -51
- package/dist/evaluator.js.map +1 -1
- package/dist/reporter.d.ts +43 -0
- package/dist/reporter.d.ts.map +1 -0
- package/dist/reporter.js +281 -0
- package/dist/reporter.js.map +1 -0
- package/dist/runner.js +80 -65
- package/dist/runner.js.map +1 -1
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/baselineManager.d.ts +2 -2
- package/dist/utils/baselineManager.d.ts.map +1 -1
- package/dist/utils/baselineManager.js +2 -2
- package/dist/utils/baselineManager.js.map +1 -1
- package/package.json +21 -4
package/README.md
CHANGED
|
@@ -51,12 +51,6 @@ npx coding-agent-benchmarks evaluate --scenario typescript-no-any
|
|
|
51
51
|
npx coding-agent-benchmarks evaluate --category typescript
|
|
52
52
|
npx coding-agent-benchmarks evaluate --tag best-practices
|
|
53
53
|
|
|
54
|
-
# Save as baseline for future comparison
|
|
55
|
-
npx coding-agent-benchmarks evaluate --save-baseline
|
|
56
|
-
|
|
57
|
-
# Compare with baseline
|
|
58
|
-
npx coding-agent-benchmarks evaluate --compare-baseline
|
|
59
|
-
|
|
60
54
|
# Export report as JSON
|
|
61
55
|
npx coding-agent-benchmarks evaluate --output report.json
|
|
62
56
|
```
|
|
@@ -81,6 +75,12 @@ module.exports = {
|
|
|
81
75
|
// Workspace root (auto-detected if not specified)
|
|
82
76
|
workspaceRoot: process.cwd(),
|
|
83
77
|
|
|
78
|
+
// Enable automatic baseline saving (optional)
|
|
79
|
+
saveBaseline: false,
|
|
80
|
+
|
|
81
|
+
// Enable automatic baseline comparison (optional)
|
|
82
|
+
compareBaseline: false,
|
|
83
|
+
|
|
84
84
|
// Define your test scenarios
|
|
85
85
|
scenarios: [
|
|
86
86
|
{
|
|
@@ -244,21 +244,28 @@ Violations are weighted by severity:
|
|
|
244
244
|
|
|
245
245
|
## Baseline Tracking
|
|
246
246
|
|
|
247
|
-
|
|
247
|
+
Track evaluation results over time by enabling baseline management in your config file:
|
|
248
248
|
|
|
249
|
-
```
|
|
250
|
-
|
|
249
|
+
```javascript
|
|
250
|
+
// benchmarks.config.js
|
|
251
|
+
module.exports = {
|
|
252
|
+
saveBaseline: true,
|
|
253
|
+
compareBaseline: true,
|
|
254
|
+
|
|
255
|
+
scenarios: [/* ... */],
|
|
256
|
+
};
|
|
251
257
|
```
|
|
252
258
|
|
|
253
259
|
Baselines are stored in `.benchmarks/baselines/{adapter}/{model}/{scenario-id}.json`
|
|
254
260
|
|
|
255
|
-
|
|
261
|
+
The `{model}` folder name depends on the adapter:
|
|
262
|
+
- **Copilot adapter**: `claude-sonnet-4.5` (default)
|
|
263
|
+
- **Claude Code adapter**: `sonnet` (default)
|
|
264
|
+
- Custom model names if specified via `--model` option
|
|
256
265
|
|
|
257
|
-
|
|
258
|
-
npx coding-agent-benchmarks evaluate --compare-baseline
|
|
259
|
-
```
|
|
266
|
+
When `compareBaseline` is enabled, the report will show score deltas and whether results improved or regressed.
|
|
260
267
|
|
|
261
|
-
|
|
268
|
+
**Tip**: Add `.benchmarks/` to your `.gitignore` to keep baseline data local to each developer.
|
|
262
269
|
|
|
263
270
|
## CLI Commands
|
|
264
271
|
|
|
@@ -275,8 +282,6 @@ Run benchmark evaluations.
|
|
|
275
282
|
- `--threshold <number>`: Minimum passing score (default: `0.8`)
|
|
276
283
|
- `--verbose`: Show detailed output
|
|
277
284
|
- `--output <file>`: Export JSON report
|
|
278
|
-
- `--save-baseline`: Save results as baseline
|
|
279
|
-
- `--compare-baseline`: Compare with baseline
|
|
280
285
|
- `--workspace-root <path>`: Workspace root directory
|
|
281
286
|
|
|
282
287
|
### `list`
|
|
@@ -298,6 +303,43 @@ Test LLM judge with a custom prompt (for debugging).
|
|
|
298
303
|
**Options:**
|
|
299
304
|
- `--model <model>`: LLM model to use
|
|
300
305
|
|
|
306
|
+
## Understanding Output
|
|
307
|
+
|
|
308
|
+
When running evaluations, each scenario displays a live status that updates as it progresses:
|
|
309
|
+
|
|
310
|
+
```
|
|
311
|
+
Evaluating 3 scenario(s)...
|
|
312
|
+
|
|
313
|
+
✓ [1/3] typescript-no-any PASS (score: 1.00) 14.8s
|
|
314
|
+
✗ [2/3] react-inline-styles FAIL (score: 0.60) 22.1s
|
|
315
|
+
○ [3/3] async-error-handling SKIP (error) 2m 5s
|
|
316
|
+
|
|
317
|
+
============================================================
|
|
318
|
+
EVALUATION SUMMARY
|
|
319
|
+
============================================================
|
|
320
|
+
Total scenarios: 3
|
|
321
|
+
Passed: 1
|
|
322
|
+
Failed: 1
|
|
323
|
+
Skipped: 1
|
|
324
|
+
...
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### Status Indicators
|
|
328
|
+
|
|
329
|
+
| Status | Symbol | Meaning |
|
|
330
|
+
|--------|--------|---------|
|
|
331
|
+
| **PASS** | ✓ | Scenario passed validation (score ≥ 0.8, no violations) |
|
|
332
|
+
| **FAIL** | ✗ | Scenario was evaluated but didn't pass (low score or violations) |
|
|
333
|
+
| **SKIP** | ○ | Scenario couldn't be evaluated due to an error |
|
|
334
|
+
|
|
335
|
+
### Common Causes for SKIP
|
|
336
|
+
|
|
337
|
+
- **Timeout**: Code generation exceeded the configured timeout
|
|
338
|
+
- **Adapter failure**: The CLI (Copilot or Claude Code) crashed or returned an error
|
|
339
|
+
- **File system errors**: Couldn't read context files or write generated code
|
|
340
|
+
|
|
341
|
+
> **Note**: In interactive terminals, you'll see a spinner animation (⠋) while scenarios are running. In CI/non-TTY environments, output falls back to simple line-by-line logging.
|
|
342
|
+
|
|
301
343
|
## Programmatic Usage
|
|
302
344
|
|
|
303
345
|
You can also use the framework programmatically:
|
|
@@ -306,14 +348,15 @@ You can also use the framework programmatically:
|
|
|
306
348
|
import { Evaluator, loadConfig } from 'coding-agent-benchmarks';
|
|
307
349
|
|
|
308
350
|
async function runEvaluation() {
|
|
309
|
-
|
|
310
|
-
const { scenarios } = await loadConfig();
|
|
351
|
+
const { config, scenarios } = await loadConfig();
|
|
311
352
|
|
|
312
353
|
// Create evaluator
|
|
313
354
|
const evaluator = new Evaluator({
|
|
314
355
|
adapter: 'copilot',
|
|
315
356
|
model: 'openai/gpt-4.1',
|
|
316
357
|
verbose: true,
|
|
358
|
+
saveBaseline: config.saveBaseline,
|
|
359
|
+
compareBaseline: config.compareBaseline,
|
|
317
360
|
});
|
|
318
361
|
|
|
319
362
|
// Check adapter availability
|
|
@@ -15,6 +15,10 @@ export declare class ClaudeCodeCLIAdapter implements CodeGenerationAdapter {
|
|
|
15
15
|
* Check if Claude Code CLI is available
|
|
16
16
|
*/
|
|
17
17
|
checkAvailability(): Promise<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* Get the model being used
|
|
20
|
+
*/
|
|
21
|
+
getModel(): string;
|
|
18
22
|
/**
|
|
19
23
|
* Build the full prompt with context files
|
|
20
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeCodeCLI.d.ts","sourceRoot":"","sources":["../../src/adapters/claudeCodeCLI.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAIjD,MAAM,WAAW,2BAA2B;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,qBAAa,oBAAqB,YAAW,qBAAqB;IAChE,SAAgB,IAAI,EAAG,aAAa,CAAU;IAC9C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,KAAK,CAAS;gBAEV,OAAO,CAAC,EAAE,2BAA2B;IAKjD;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAgB3C;;OAEG;IACH,OAAO,CAAC,WAAW;IA8BnB;;;OAGG;IACG,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,EAChC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GACtB,OAAO,CAAC,MAAM,EAAE,CAAC;CA8ErB"}
|
|
1
|
+
{"version":3,"file":"claudeCodeCLI.d.ts","sourceRoot":"","sources":["../../src/adapters/claudeCodeCLI.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAIjD,MAAM,WAAW,2BAA2B;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,qBAAa,oBAAqB,YAAW,qBAAqB;IAChE,SAAgB,IAAI,EAAG,aAAa,CAAU;IAC9C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,KAAK,CAAS;gBAEV,OAAO,CAAC,EAAE,2BAA2B;IAKjD;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAgB3C;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,OAAO,CAAC,WAAW;IA8BnB;;;OAGG;IACG,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,EAChC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GACtB,OAAO,CAAC,MAAM,EAAE,CAAC;CA8ErB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeCodeCLI.js","sourceRoot":"","sources":["../../src/adapters/claudeCodeCLI.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"claudeCodeCLI.js","sourceRoot":"","sources":["../../src/adapters/claudeCodeCLI.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iDAAsC;AACtC,uCAAyB;AACzB,2CAA6B;AAE7B,gDAA+E;AAC/E,4DAAiF;AAOjF,MAAM,aAAa,GAAG,QAAQ,CAAC;AAE/B,MAAa,oBAAoB;IAK/B,YAAY,OAAqC;QAJjC,SAAI,GAAG,aAAsB,CAAC;QAK5C,IAAI,CAAC,aAAa,GAAG,IAAA,qCAAoB,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,aAAa,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE;gBACtC,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACpB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACK,WAAW,CACjB,MAAc,EACd,YAAgC;QAEhC,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,IAAA,iCAAgB,EAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YACpE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBAClC,MAAM,cAAc,GAAG,QAAQ;qBAC5B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBACX,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC;oBAC5D,OAAO,OAAO,GAAG,CAAC,IAAI,WAAW,GAAG,KAAK,GAAG,CAAC,OAAO,UAAU,CAAC;gBACjE,CAAC,CAAC;qBACD,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,KAAK,CAAC,IAAI,CACR,0GAA0G,CAC3G,CAAC;QAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CACZ,MAAc,EACd,YAAgC,EAChC,OAAuB;QAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAE1D,uCAAuC;QACvC,MAAM,YAAY,GAAG,IAAA,gCAAqB,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE/D,gFAAgF;QAChF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAC;YAC1E,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YAE/C,MAAM,OAAO,GAAG,QAAQ,QAAQ,sBAAsB,IAAI,CAAC,KAAK,yIAAyI,CAAC;YAC1M,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;gBACxC,GAAG,EAAE,IAAI,CAAC,aAAa;gBACvB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;aAChC,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,8DAA8D;YAC9D,IAAI,aAAa,GAA0B,IAAI,CAAC;YAChD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC9C,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACrB,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,OAAO,IAAI,CAAC,CAAC,CAAC;gBACpE,CAAC,EAAE,OAAO,CAAC,CAAC;YACd,CAAC;YAED,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,IAAI,aAAa,EAAE,CAAC;oBAClB,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC9B,CAAC;gBAED,qBAAqB;gBACrB,IAAI,CAAC;oBACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC;gBAAC,MAAM,CAAC;oBACP,wBAAwB;gBAC1B,CAAC;gBAED,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,IAAI,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC;oBACjF,OAAO;gBACT,CAAC;gBAED,0DAA0D;gBAC1D,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,IAAA,gCAAqB,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC9D,MAAM,YAAY,GAAG,IAAA,8BAAmB,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC;oBACpE,OAAO,CAAC,YAAY,CAAC,CAAC;gBACxB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACzB,IAAI,aAAa,EAAE,CAAC;oBAClB,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC9B,CAAC;gBACD,qBAAqB;gBACrB,IAAI,CAAC;oBACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC;gBAAC,MAAM,CAAC;oBACP,wBAAwB;gBAC1B,CAAC;gBACD,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA3JD,oDA2JC"}
|
|
@@ -15,6 +15,10 @@ export declare class CopilotCLIAdapter implements CodeGenerationAdapter {
|
|
|
15
15
|
* Check if GitHub Copilot CLI is available
|
|
16
16
|
*/
|
|
17
17
|
checkAvailability(): Promise<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* Get the model being used
|
|
20
|
+
*/
|
|
21
|
+
getModel(): string;
|
|
18
22
|
/**
|
|
19
23
|
* Build the full prompt with context files
|
|
20
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilotCLI.d.ts","sourceRoot":"","sources":["../../src/adapters/copilotCLI.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAOjD,MAAM,WAAW,wBAAwB;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,qBAAa,iBAAkB,YAAW,qBAAqB;IAC7D,SAAgB,IAAI,EAAG,SAAS,CAAU;IAC1C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,KAAK,CAAS;gBAEV,OAAO,CAAC,EAAE,wBAAwB;IAK9C;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAgB3C;;OAEG;IACH,OAAO,CAAC,WAAW;IA8BnB;;;OAGG;IACG,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,EAChC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GACtB,OAAO,CAAC,MAAM,EAAE,CAAC;CAkFrB"}
|
|
1
|
+
{"version":3,"file":"copilotCLI.d.ts","sourceRoot":"","sources":["../../src/adapters/copilotCLI.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAOjD,MAAM,WAAW,wBAAwB;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,qBAAa,iBAAkB,YAAW,qBAAqB;IAC7D,SAAgB,IAAI,EAAG,SAAS,CAAU;IAC1C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,KAAK,CAAS;gBAEV,OAAO,CAAC,EAAE,wBAAwB;IAK9C;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAgB3C;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,OAAO,CAAC,WAAW;IA8BnB;;;OAGG;IACG,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,EAChC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GACtB,OAAO,CAAC,MAAM,EAAE,CAAC;CAkFrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilotCLI.js","sourceRoot":"","sources":["../../src/adapters/copilotCLI.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iDAAsC;AACtC,uCAAyB;AACzB,2CAA6B;AAE7B,gDAA+E;AAC/E,4DAGiC;AAOjC,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAE1C,MAAa,iBAAiB;IAK5B,YAAY,OAAkC;QAJ9B,SAAI,GAAG,SAAkB,CAAC;QAKxC,IAAI,CAAC,aAAa,GAAG,IAAA,qCAAoB,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,aAAa,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE;gBACvC,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACpB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,WAAW,CACjB,MAAc,EACd,YAAgC;QAEhC,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,IAAA,iCAAgB,EAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YACpE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBAClC,MAAM,cAAc,GAAG,QAAQ;qBAC5B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBACX,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC;oBAC5D,OAAO,OAAO,GAAG,CAAC,IAAI,WAAW,GAAG,KAAK,GAAG,CAAC,OAAO,UAAU,CAAC;gBACjE,CAAC,CAAC;qBACD,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,KAAK,CAAC,IAAI,CACR,0GAA0G,CAC3G,CAAC;QAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CACZ,MAAc,EACd,YAAgC,EAChC,OAAuB;QAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAE1D,uCAAuC;QACvC,MAAM,YAAY,GAAG,IAAA,gCAAqB,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE/D,gFAAgF;QAChF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,0BAA0B,CAAC,CAAC;YAC3E,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YAE/C,MAAM,OAAO,GAAG,QAAQ,QAAQ,uBAAuB,IAAI,CAAC,KAAK,0GAA0G,CAAC;YAC5K,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;gBACxC,GAAG,EAAE,IAAI,CAAC,aAAa;gBACvB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;aAChC,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,8DAA8D;YAC9D,IAAI,aAAa,GAA0B,IAAI,CAAC;YAChD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC9C,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACrB,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,OAAO,IAAI,CAAC,CAAC,CAAC;gBAChE,CAAC,EAAE,OAAO,CAAC,CAAC;YACd,CAAC;YAED,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,IAAI,aAAa,EAAE,CAAC;oBAClB,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC9B,CAAC;gBAED,qBAAqB;gBACrB,IAAI,CAAC;oBACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC;gBAAC,MAAM,CAAC;oBACP,wBAAwB;gBAC1B,CAAC;gBAED,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,MAAM,CACJ,IAAI,KAAK,CACP,gCAAgC,IAAI,aAAa,MAAM,EAAE,CAC1D,CACF,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,0DAA0D;gBAC1D,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,IAAA,gCAAqB,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC9D,MAAM,YAAY,GAAG,IAAA,8BAAmB,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC;oBACpE,OAAO,CAAC,YAAY,CAAC,CAAC;gBACxB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACzB,IAAI,aAAa,EAAE,CAAC;oBAClB,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC9B,CAAC;gBACD,qBAAqB;gBACrB,IAAI,CAAC;oBACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC;gBAAC,MAAM,CAAC;oBACP,wBAAwB;gBAC1B,CAAC;gBACD,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"copilotCLI.js","sourceRoot":"","sources":["../../src/adapters/copilotCLI.ts"],"names":[],"mappings":"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"}
|
package/dist/evaluator.d.ts
CHANGED
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Main evaluation engine
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { EventEmitter } from "events";
|
|
5
|
+
import { AdapterType, TestScenario, EvaluationResult, EvaluationReport } from "./types";
|
|
6
|
+
/**
|
|
7
|
+
* Events emitted by the Evaluator during execution
|
|
8
|
+
*/
|
|
9
|
+
export interface EvaluatorEvents {
|
|
10
|
+
"evaluation:start": (scenarios: TestScenario[]) => void;
|
|
11
|
+
"scenario:start": (scenarioId: string, scenario: TestScenario) => void;
|
|
12
|
+
"scenario:generating": (scenarioId: string) => void;
|
|
13
|
+
"scenario:validating": (scenarioId: string) => void;
|
|
14
|
+
"scenario:complete": (scenarioId: string, result: EvaluationResult, model: string) => void;
|
|
15
|
+
"evaluation:complete": (report: EvaluationReport) => void;
|
|
16
|
+
log: (message: string) => void;
|
|
17
|
+
}
|
|
5
18
|
export interface EvaluatorOptions {
|
|
6
19
|
adapter: AdapterType;
|
|
7
20
|
model?: string;
|
|
@@ -11,12 +24,17 @@ export interface EvaluatorOptions {
|
|
|
11
24
|
saveBaseline?: boolean;
|
|
12
25
|
compareBaseline?: boolean;
|
|
13
26
|
}
|
|
14
|
-
export declare class Evaluator {
|
|
27
|
+
export declare class Evaluator extends EventEmitter {
|
|
15
28
|
private adapter;
|
|
16
29
|
private workspaceRoot;
|
|
17
30
|
private baselineManager;
|
|
18
31
|
private options;
|
|
19
32
|
constructor(options: EvaluatorOptions);
|
|
33
|
+
/**
|
|
34
|
+
* Type-safe event emitter methods
|
|
35
|
+
*/
|
|
36
|
+
on<K extends keyof EvaluatorEvents>(event: K, listener: EvaluatorEvents[K]): this;
|
|
37
|
+
emit<K extends keyof EvaluatorEvents>(event: K, ...args: Parameters<EvaluatorEvents[K]>): boolean;
|
|
20
38
|
/**
|
|
21
39
|
* Create adapter instance based on type
|
|
22
40
|
*/
|
package/dist/evaluator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,WAAW,EAEX,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,SAAS,CAAC;AASjB,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,
|
|
1
|
+
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EACL,WAAW,EAEX,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,SAAS,CAAC;AASjB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IACxD,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IACvE,qBAAqB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,qBAAqB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,mBAAmB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3F,qBAAqB,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC1D,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,OAAO,CAAmB;gBAEtB,OAAO,EAAE,gBAAgB;IAUrC;;OAEG;IACM,EAAE,CAAC,CAAC,SAAS,MAAM,eAAe,EACzC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAC3B,IAAI;IAIE,IAAI,CAAC,CAAC,SAAS,MAAM,eAAe,EAC3C,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GACtC,OAAO;IAIV;;OAEG;IACH,OAAO,CAAC,aAAa;IAiBrB;;OAEG;IACG,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlD;;OAEG;IACH,eAAe,CACb,SAAS,EAAE,YAAY,EAAE,EACzB,OAAO,EAAE;QACP,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,GACA,YAAY,EAAE;IA0BjB;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6JzE;;OAEG;IACG,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAsDrE"}
|
package/dist/evaluator.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.Evaluator = void 0;
|
|
7
|
+
const events_1 = require("events");
|
|
7
8
|
const copilotCLI_1 = require("./adapters/copilotCLI");
|
|
8
9
|
const claudeCodeCLI_1 = require("./adapters/claudeCodeCLI");
|
|
9
10
|
const patternValidator_1 = require("./validators/patternValidator");
|
|
@@ -11,25 +12,35 @@ const llmJudge_1 = require("./validators/llmJudge");
|
|
|
11
12
|
const eslintValidator_1 = require("./validators/eslintValidator");
|
|
12
13
|
const workspaceUtils_1 = require("./utils/workspaceUtils");
|
|
13
14
|
const baselineManager_1 = require("./utils/baselineManager");
|
|
14
|
-
class Evaluator {
|
|
15
|
+
class Evaluator extends events_1.EventEmitter {
|
|
15
16
|
constructor(options) {
|
|
17
|
+
super();
|
|
16
18
|
this.options = options;
|
|
17
19
|
this.workspaceRoot = (0, workspaceUtils_1.resolveWorkspaceRoot)(options.workspaceRoot);
|
|
18
20
|
this.baselineManager = new baselineManager_1.BaselineManager(this.workspaceRoot);
|
|
19
21
|
// Create adapter based on type
|
|
20
22
|
this.adapter = this.createAdapter(options.adapter);
|
|
21
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Type-safe event emitter methods
|
|
26
|
+
*/
|
|
27
|
+
on(event, listener) {
|
|
28
|
+
return super.on(event, listener);
|
|
29
|
+
}
|
|
30
|
+
emit(event, ...args) {
|
|
31
|
+
return super.emit(event, ...args);
|
|
32
|
+
}
|
|
22
33
|
/**
|
|
23
34
|
* Create adapter instance based on type
|
|
24
35
|
*/
|
|
25
36
|
createAdapter(type) {
|
|
26
37
|
switch (type) {
|
|
27
|
-
case
|
|
38
|
+
case "copilot":
|
|
28
39
|
return new copilotCLI_1.CopilotCLIAdapter({
|
|
29
40
|
workspaceRoot: this.workspaceRoot,
|
|
30
41
|
model: this.options.model,
|
|
31
42
|
});
|
|
32
|
-
case
|
|
43
|
+
case "claude-code":
|
|
33
44
|
return new claudeCodeCLI_1.ClaudeCodeCLIAdapter({
|
|
34
45
|
workspaceRoot: this.workspaceRoot,
|
|
35
46
|
model: this.options.model,
|
|
@@ -51,18 +62,18 @@ class Evaluator {
|
|
|
51
62
|
let filtered = scenarios;
|
|
52
63
|
// Filter by scenario ID pattern
|
|
53
64
|
if (filters.scenarioPattern) {
|
|
54
|
-
const pattern = filters.scenarioPattern.replace(/\*/g,
|
|
65
|
+
const pattern = filters.scenarioPattern.replace(/\*/g, ".*");
|
|
55
66
|
const regex = new RegExp(pattern);
|
|
56
|
-
filtered = filtered.filter(s => regex.test(s.id));
|
|
67
|
+
filtered = filtered.filter((s) => regex.test(s.id));
|
|
57
68
|
}
|
|
58
69
|
// Filter by category
|
|
59
70
|
if (filters.category) {
|
|
60
|
-
const categories = filters.category.split(
|
|
61
|
-
filtered = filtered.filter(s => categories.includes(s.category));
|
|
71
|
+
const categories = filters.category.split(",").map((c) => c.trim());
|
|
72
|
+
filtered = filtered.filter((s) => categories.includes(s.category));
|
|
62
73
|
}
|
|
63
74
|
// Filter by tags
|
|
64
75
|
if (filters.tags && filters.tags.length > 0) {
|
|
65
|
-
filtered = filtered.filter(s => filters.tags.some(tag => s.tags.includes(tag)));
|
|
76
|
+
filtered = filtered.filter((s) => filters.tags.some((tag) => s.tags.includes(tag)));
|
|
66
77
|
}
|
|
67
78
|
return filtered;
|
|
68
79
|
}
|
|
@@ -73,12 +84,13 @@ class Evaluator {
|
|
|
73
84
|
const startTime = Date.now();
|
|
74
85
|
try {
|
|
75
86
|
if (this.options.verbose) {
|
|
76
|
-
|
|
77
|
-
|
|
87
|
+
this.emit("log", `\nEvaluating scenario: ${scenario.id}`);
|
|
88
|
+
this.emit("log", ` Description: ${scenario.description}`);
|
|
78
89
|
}
|
|
79
|
-
//
|
|
90
|
+
// Emit generating phase
|
|
91
|
+
this.emit("scenario:generating", scenario.id);
|
|
80
92
|
if (this.options.verbose) {
|
|
81
|
-
|
|
93
|
+
this.emit("log", " Generating code...");
|
|
82
94
|
}
|
|
83
95
|
// Resolve timeout (null = no timeout, undefined = use defaults)
|
|
84
96
|
let timeout;
|
|
@@ -96,8 +108,10 @@ class Evaluator {
|
|
|
96
108
|
}
|
|
97
109
|
const generatedFiles = await this.adapter.generate(scenario.prompt, scenario.contextFiles, timeout);
|
|
98
110
|
if (this.options.verbose) {
|
|
99
|
-
|
|
111
|
+
this.emit("log", ` Generated ${generatedFiles.length} file(s)`);
|
|
100
112
|
}
|
|
113
|
+
// Emit validating phase
|
|
114
|
+
this.emit("scenario:validating", scenario.id);
|
|
101
115
|
// Run validators
|
|
102
116
|
const validationResults = [];
|
|
103
117
|
// Pattern validator
|
|
@@ -105,29 +119,30 @@ class Evaluator {
|
|
|
105
119
|
const patternResult = await patternValidator.validate(generatedFiles, scenario);
|
|
106
120
|
validationResults.push(patternResult);
|
|
107
121
|
if (this.options.verbose && patternResult.score >= 0) {
|
|
108
|
-
|
|
122
|
+
this.emit("log", ` Pattern validation: ${patternResult.score.toFixed(2)}`);
|
|
109
123
|
}
|
|
110
124
|
// LLM judge validator
|
|
111
125
|
const llmValidator = new llmJudge_1.LLMJudgeValidator(this.workspaceRoot, this.options.model);
|
|
112
126
|
const llmResult = await llmValidator.validate(generatedFiles, scenario);
|
|
113
127
|
validationResults.push(llmResult);
|
|
114
128
|
if (this.options.verbose && llmResult.score >= 0) {
|
|
115
|
-
|
|
129
|
+
this.emit("log", ` LLM judge: ${llmResult.score.toFixed(2)}`);
|
|
116
130
|
}
|
|
117
131
|
// ESLint validator
|
|
118
132
|
const eslintValidator = new eslintValidator_1.ESLintValidator(this.workspaceRoot);
|
|
119
133
|
const eslintResult = await eslintValidator.validate(generatedFiles, scenario);
|
|
120
134
|
validationResults.push(eslintResult);
|
|
121
135
|
if (this.options.verbose && eslintResult.score >= 0) {
|
|
122
|
-
|
|
136
|
+
this.emit("log", ` ESLint: ${eslintResult.score.toFixed(2)}`);
|
|
123
137
|
}
|
|
124
138
|
// Calculate overall score (average of non-skipped validators)
|
|
125
|
-
const activeResults = validationResults.filter(r => r.score >= 0);
|
|
139
|
+
const activeResults = validationResults.filter((r) => r.score >= 0);
|
|
126
140
|
const overallScore = activeResults.length > 0
|
|
127
|
-
? activeResults.reduce((sum, r) => sum + r.score, 0) /
|
|
141
|
+
? activeResults.reduce((sum, r) => sum + r.score, 0) /
|
|
142
|
+
activeResults.length
|
|
128
143
|
: 0;
|
|
129
144
|
// Collect all violations
|
|
130
|
-
const allViolations = validationResults.flatMap(r => r.violations);
|
|
145
|
+
const allViolations = validationResults.flatMap((r) => r.violations);
|
|
131
146
|
// Check if passed (score above threshold and no violations)
|
|
132
147
|
const passed = overallScore >= 0.8 && allViolations.length === 0;
|
|
133
148
|
const result = {
|
|
@@ -140,26 +155,26 @@ class Evaluator {
|
|
|
140
155
|
};
|
|
141
156
|
// Compare with baseline if requested
|
|
142
157
|
if (this.options.compareBaseline) {
|
|
143
|
-
const comparison = this.baselineManager.compareWithBaseline(result, this.options.adapter, this.
|
|
158
|
+
const comparison = this.baselineManager.compareWithBaseline(result, this.options.adapter, this.adapter.getModel());
|
|
144
159
|
if (comparison) {
|
|
145
160
|
result.baselineComparison = comparison;
|
|
146
161
|
}
|
|
147
162
|
}
|
|
148
163
|
// Save baseline if requested
|
|
149
164
|
if (this.options.saveBaseline) {
|
|
150
|
-
this.baselineManager.saveBaseline(result, this.options.adapter, this.
|
|
165
|
+
this.baselineManager.saveBaseline(result, this.options.adapter, this.adapter.getModel());
|
|
151
166
|
}
|
|
152
167
|
return result;
|
|
153
168
|
}
|
|
154
169
|
catch (error) {
|
|
155
170
|
const errorMessage = String(error);
|
|
156
|
-
const isTimeout = errorMessage.includes(
|
|
171
|
+
const isTimeout = errorMessage.includes("timed out");
|
|
157
172
|
// Create a violation for timeout errors
|
|
158
173
|
const violations = isTimeout
|
|
159
174
|
? [
|
|
160
175
|
{
|
|
161
|
-
type:
|
|
162
|
-
message:
|
|
176
|
+
type: "pattern",
|
|
177
|
+
message: "Code generation timed out",
|
|
163
178
|
severity: scenario.severity,
|
|
164
179
|
details: errorMessage,
|
|
165
180
|
},
|
|
@@ -182,39 +197,21 @@ class Evaluator {
|
|
|
182
197
|
async evaluate(scenarios) {
|
|
183
198
|
const startTime = Date.now();
|
|
184
199
|
const results = [];
|
|
185
|
-
|
|
200
|
+
// Emit evaluation start event
|
|
201
|
+
this.emit("evaluation:start", scenarios);
|
|
186
202
|
for (let i = 0; i < scenarios.length; i++) {
|
|
187
203
|
const scenario = scenarios[i];
|
|
188
|
-
|
|
204
|
+
// Emit scenario start event
|
|
205
|
+
this.emit("scenario:start", scenario.id, scenario);
|
|
189
206
|
const result = await this.evaluateScenario(scenario);
|
|
190
207
|
results.push(result);
|
|
191
|
-
//
|
|
192
|
-
|
|
193
|
-
console.log(` ✓ PASSED (score: ${result.score.toFixed(2)})`);
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
console.log(` ✗ FAILED (score: ${result.score.toFixed(2)})`);
|
|
197
|
-
if (result.violations.length > 0) {
|
|
198
|
-
console.log(` ${result.violations.length} violation(s):\n`);
|
|
199
|
-
result.violations.forEach((v, idx) => {
|
|
200
|
-
console.log(` ${idx + 1}. [${v.type}] ${v.message}`);
|
|
201
|
-
if (v.file) {
|
|
202
|
-
console.log(` File: ${v.file}${v.line ? `:${v.line}` : ''}`);
|
|
203
|
-
}
|
|
204
|
-
if (v.details) {
|
|
205
|
-
console.log(` Details: ${v.details}`);
|
|
206
|
-
}
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
if (result.error) {
|
|
210
|
-
console.log(` Error: ${result.error}`);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
208
|
+
// Emit scenario complete event with model
|
|
209
|
+
this.emit("scenario:complete", scenario.id, result, this.adapter.getModel());
|
|
213
210
|
}
|
|
214
211
|
// Calculate summary statistics
|
|
215
|
-
const passed = results.filter(r => r.passed).length;
|
|
216
|
-
const failed = results.filter(r => !r.passed && !r.error).length;
|
|
217
|
-
const skipped = results.filter(r => r.error).length;
|
|
212
|
+
const passed = results.filter((r) => r.passed).length;
|
|
213
|
+
const failed = results.filter((r) => !r.passed && !r.error).length;
|
|
214
|
+
const skipped = results.filter((r) => r.error).length;
|
|
218
215
|
const totalViolations = results.reduce((sum, r) => sum + r.violations.length, 0);
|
|
219
216
|
const averageScore = results.length > 0
|
|
220
217
|
? results.reduce((sum, r) => sum + r.score, 0) / results.length
|
|
@@ -234,6 +231,8 @@ class Evaluator {
|
|
|
234
231
|
},
|
|
235
232
|
totalDuration: Date.now() - startTime,
|
|
236
233
|
};
|
|
234
|
+
// Emit evaluation complete event
|
|
235
|
+
this.emit("evaluation:complete", report);
|
|
237
236
|
return report;
|
|
238
237
|
}
|
|
239
238
|
}
|
package/dist/evaluator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { TestScenario, EvaluationResult, EvaluationReport } from "./types";
|
|
2
|
+
export type ExecutionPhase = "pending" | "generating" | "validating" | "complete";
|
|
3
|
+
export type ScenarioStatus = "runs" | "pass" | "fail" | "skip";
|
|
4
|
+
export declare class ProgressReporter {
|
|
5
|
+
private isInteractive;
|
|
6
|
+
private verbose;
|
|
7
|
+
private scenarios;
|
|
8
|
+
private scenarioOrder;
|
|
9
|
+
private currentIndex;
|
|
10
|
+
private totalScenarios;
|
|
11
|
+
private spinnerFrame;
|
|
12
|
+
private spinnerInterval?;
|
|
13
|
+
private startTime;
|
|
14
|
+
private verboseBuffer;
|
|
15
|
+
private saveBaseline;
|
|
16
|
+
private compareBaseline;
|
|
17
|
+
private adapter;
|
|
18
|
+
constructor(options?: {
|
|
19
|
+
verbose?: boolean;
|
|
20
|
+
saveBaseline?: boolean;
|
|
21
|
+
compareBaseline?: boolean;
|
|
22
|
+
adapter?: string;
|
|
23
|
+
});
|
|
24
|
+
start(scenarios: TestScenario[]): void;
|
|
25
|
+
onScenarioStart(scenarioId: string): void;
|
|
26
|
+
onScenarioValidating(scenarioId: string): void;
|
|
27
|
+
onScenarioComplete(scenarioId: string, result: EvaluationResult, model: string): void;
|
|
28
|
+
log(message: string): void;
|
|
29
|
+
finish(report: EvaluationReport): void;
|
|
30
|
+
private getScenarioIndex;
|
|
31
|
+
private startSpinner;
|
|
32
|
+
private stopSpinner;
|
|
33
|
+
private render;
|
|
34
|
+
private formatScenarioLine;
|
|
35
|
+
private printScenarioResult;
|
|
36
|
+
private printViolations;
|
|
37
|
+
private flushVerboseBuffer;
|
|
38
|
+
private printSummary;
|
|
39
|
+
private formatDuration;
|
|
40
|
+
private formatBaselineComparison;
|
|
41
|
+
private formatBaselineSave;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=reporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,YAAY,GACZ,YAAY,GACZ,UAAU,CAAC;AAEf,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAY/D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,eAAe,CAAC,CAAiC;IACzD,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,GAAE;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;KACb;IAQN,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI;IAsBtC,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAoBzC,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAa9C,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAwBrF,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ1B,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAUtC,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,MAAM;IAgBd,OAAO,CAAC,kBAAkB;IAkC1B,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,YAAY;IAkCpB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,wBAAwB;IAoChC,OAAO,CAAC,kBAAkB;CAI3B"}
|