coding-agent-benchmarks 0.2.1 → 0.3.1
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 +171 -10
- package/dist/adapters/claudeCodeCLI.d.ts +1 -1
- package/dist/adapters/claudeCodeCLI.d.ts.map +1 -1
- package/dist/adapters/claudeCodeCLI.js +44 -32
- package/dist/adapters/claudeCodeCLI.js.map +1 -1
- package/dist/adapters/copilotCLI.d.ts.map +1 -1
- package/dist/adapters/copilotCLI.js +28 -16
- package/dist/adapters/copilotCLI.js.map +1 -1
- package/dist/evaluator.d.ts +4 -9
- package/dist/evaluator.d.ts.map +1 -1
- package/dist/evaluator.js +4 -12
- package/dist/evaluator.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/reporter.d.ts.map +1 -1
- package/dist/reporter.js +59 -34
- package/dist/reporter.js.map +1 -1
- package/dist/runner.js +2 -1
- package/dist/runner.js.map +1 -1
- package/dist/types.d.ts +6 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/TypedEventEmitter.d.ts +18 -0
- package/dist/utils/TypedEventEmitter.d.ts.map +1 -0
- package/dist/utils/TypedEventEmitter.js +62 -0
- package/dist/utils/TypedEventEmitter.js.map +1 -0
- package/dist/utils/baselineManager.d.ts +2 -1
- package/dist/utils/baselineManager.d.ts.map +1 -1
- package/dist/utils/baselineManager.js +1 -0
- package/dist/utils/baselineManager.js.map +1 -1
- package/dist/utils/errorHandler.d.ts +10 -0
- package/dist/utils/errorHandler.d.ts.map +1 -0
- package/dist/utils/errorHandler.js +58 -0
- package/dist/utils/errorHandler.js.map +1 -0
- package/dist/utils/gitUtils.d.ts +2 -1
- package/dist/utils/gitUtils.d.ts.map +1 -1
- package/dist/utils/gitUtils.js +85 -18
- package/dist/utils/gitUtils.js.map +1 -1
- package/dist/validators/llmJudge.d.ts +1 -1
- package/dist/validators/llmJudge.d.ts.map +1 -1
- package/dist/validators/llmJudge.js +40 -41
- package/dist/validators/llmJudge.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -282,19 +282,124 @@ validationStrategy: {
|
|
|
282
282
|
}
|
|
283
283
|
```
|
|
284
284
|
|
|
285
|
-
## Scoring
|
|
285
|
+
## Scoring System
|
|
286
286
|
|
|
287
|
-
|
|
287
|
+
The scoring system operates at three levels: per-validator scoring, per-scenario scoring, and summary scoring.
|
|
288
288
|
|
|
289
|
-
-
|
|
290
|
-
- **0.8-0.99**: Minor issues
|
|
291
|
-
- **0.5-0.79**: Moderate issues
|
|
292
|
-
- **0.0-0.49**: Major issues or failed
|
|
289
|
+
### Per-Validator Scoring
|
|
293
290
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
291
|
+
Each validator (Pattern, LLM Judge, ESLint) independently evaluates the generated code and produces a score from 0.0 to 1.0:
|
|
292
|
+
|
|
293
|
+
#### Pattern Validator
|
|
294
|
+
|
|
295
|
+
Uses exponential decay based on weighted violations:
|
|
296
|
+
|
|
297
|
+
```
|
|
298
|
+
score = e^(-totalWeight)
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
Where `totalWeight` is the sum of violation weights:
|
|
302
|
+
- **Critical violations**: 1.0 weight each
|
|
303
|
+
- **Major violations**: 0.7 weight each
|
|
304
|
+
- **Minor violations**: 0.3 weight each
|
|
305
|
+
|
|
306
|
+
**Examples**:
|
|
307
|
+
- 0 violations → score = 1.0 (perfect)
|
|
308
|
+
- 1 critical violation → score ≈ 0.37
|
|
309
|
+
- 1 major violation → score ≈ 0.50
|
|
310
|
+
- 2 minor violations → score ≈ 0.55
|
|
311
|
+
|
|
312
|
+
#### LLM Judge Validator
|
|
313
|
+
|
|
314
|
+
The LLM (GPT-4 or other model) evaluates the code semantically and returns:
|
|
315
|
+
- An `overallScore` from 0.0 to 1.0
|
|
316
|
+
- A list of violations with explanations
|
|
317
|
+
- Passed if: score ≥ 0.7 AND no violations
|
|
318
|
+
|
|
319
|
+
The LLM judge provides semantic understanding beyond pattern matching, evaluating whether the code actually solves the problem correctly and follows best practices.
|
|
320
|
+
|
|
321
|
+
#### ESLint Validator
|
|
322
|
+
|
|
323
|
+
Uses exponential decay with a dampening factor:
|
|
324
|
+
|
|
325
|
+
```
|
|
326
|
+
score = e^(-totalWeight / 2)
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
ESLint violations are mapped to severity:
|
|
330
|
+
- ESLint error (severity 2) → **Major** violation (0.7 weight)
|
|
331
|
+
- ESLint warning (severity 1) → **Minor** violation (0.3 weight)
|
|
332
|
+
|
|
333
|
+
The `/2` dampening factor makes ESLint less punitive since projects often have many minor linting issues.
|
|
334
|
+
|
|
335
|
+
### Per-Scenario Scoring
|
|
336
|
+
|
|
337
|
+
Each scenario receives an **overall score** calculated as:
|
|
338
|
+
|
|
339
|
+
```
|
|
340
|
+
overallScore = average of all active validator scores
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
**Active validators** are those that:
|
|
344
|
+
- Are configured in the scenario's `validationStrategy`
|
|
345
|
+
- Successfully ran (did not return score = -1)
|
|
346
|
+
|
|
347
|
+
**Pass/Fail Criteria**:
|
|
348
|
+
- ✅ **PASS**: `overallScore ≥ 0.8` AND `violations.length === 0`
|
|
349
|
+
- ❌ **FAIL**: `overallScore < 0.8` OR `violations.length > 0`
|
|
350
|
+
- ⚠️ **SKIP**: An error occurred during evaluation (timeout, adapter failure, etc.)
|
|
351
|
+
|
|
352
|
+
**Example**: If Pattern validator returns 0.9, LLM Judge returns 0.8, and ESLint is skipped:
|
|
353
|
+
```
|
|
354
|
+
overallScore = (0.9 + 0.8) / 2 = 0.85
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
### Summary Scoring
|
|
358
|
+
|
|
359
|
+
After evaluating all scenarios, the framework calculates summary statistics:
|
|
360
|
+
|
|
361
|
+
```javascript
|
|
362
|
+
{
|
|
363
|
+
total: 10, // Total number of scenarios
|
|
364
|
+
passed: 7, // Scenarios with overallScore ≥ 0.8 and no violations
|
|
365
|
+
failed: 2, // Scenarios evaluated but didn't pass
|
|
366
|
+
skipped: 1, // Scenarios that encountered errors
|
|
367
|
+
averageScore: 0.78, // Average of all scenario overallScores
|
|
368
|
+
totalViolations: 8 // Sum of violations across all scenarios
|
|
369
|
+
}
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
**Average Score Calculation**:
|
|
373
|
+
```
|
|
374
|
+
averageScore = (sum of all scenario scores) / total scenarios
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
This includes scores from failed scenarios, providing an overall quality metric across your entire test suite.
|
|
378
|
+
|
|
379
|
+
**Transparency**: When baselines are saved, the per-validator breakdown is included in the baseline file, allowing you to trace exactly which validator contributed what score. See [Baseline File Format](#baseline-file-format) for details.
|
|
380
|
+
|
|
381
|
+
### Score Interpretation
|
|
382
|
+
|
|
383
|
+
| Score Range | Interpretation | Typical Meaning |
|
|
384
|
+
|-------------|----------------|-----------------|
|
|
385
|
+
| **1.0** | Perfect | No violations detected by any validator |
|
|
386
|
+
| **0.8-0.99** | Minor issues | Small violations or stylistic concerns |
|
|
387
|
+
| **0.5-0.79** | Moderate issues | Several violations or some significant problems |
|
|
388
|
+
| **0.0-0.49** | Major issues | Many violations or critical problems |
|
|
389
|
+
|
|
390
|
+
### Baseline Comparison
|
|
391
|
+
|
|
392
|
+
When baseline tracking is enabled, you'll see delta metrics:
|
|
393
|
+
|
|
394
|
+
```bash
|
|
395
|
+
✓ [1/3] typescript-no-any PASS (score: 0.95)
|
|
396
|
+
↑ +18.5% improvement from baseline
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
The percentage is calculated as:
|
|
400
|
+
```
|
|
401
|
+
percentage = (currentScore - baselineScore) / baselineScore * 100
|
|
402
|
+
```
|
|
298
403
|
|
|
299
404
|
## Baseline Tracking
|
|
300
405
|
|
|
@@ -321,6 +426,62 @@ When `compareBaseline` is enabled, the report will show score deltas and whether
|
|
|
321
426
|
|
|
322
427
|
**Tip**: Add `.benchmarks/` to your `.gitignore` to keep baseline data local to each developer.
|
|
323
428
|
|
|
429
|
+
### Baseline File Format
|
|
430
|
+
|
|
431
|
+
Each baseline file contains complete transparency into how the score was calculated:
|
|
432
|
+
|
|
433
|
+
```json
|
|
434
|
+
{
|
|
435
|
+
"scenarioId": "typescript-no-any",
|
|
436
|
+
"score": 0.85,
|
|
437
|
+
"violations": [
|
|
438
|
+
{
|
|
439
|
+
"type": "pattern",
|
|
440
|
+
"message": "Forbidden pattern found: :\\s*any\\b",
|
|
441
|
+
"file": "src/types.ts",
|
|
442
|
+
"line": 12,
|
|
443
|
+
"severity": "critical",
|
|
444
|
+
"details": "Matched: \"metadata: any\""
|
|
445
|
+
}
|
|
446
|
+
],
|
|
447
|
+
"validationResults": [
|
|
448
|
+
{
|
|
449
|
+
"passed": false,
|
|
450
|
+
"score": 0.37,
|
|
451
|
+
"violations": [...],
|
|
452
|
+
"validatorType": "pattern"
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
"passed": true,
|
|
456
|
+
"score": 1.0,
|
|
457
|
+
"violations": [],
|
|
458
|
+
"validatorType": "llm-judge"
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"passed": true,
|
|
462
|
+
"score": -1,
|
|
463
|
+
"violations": [],
|
|
464
|
+
"validatorType": "eslint",
|
|
465
|
+
"error": "ESLint not found"
|
|
466
|
+
}
|
|
467
|
+
],
|
|
468
|
+
"timestamp": "2026-01-23T22:28:32.216Z",
|
|
469
|
+
"adapter": "copilot",
|
|
470
|
+
"model": "claude-sonnet-4.5"
|
|
471
|
+
}
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
**Key fields**:
|
|
475
|
+
- `score`: Overall scenario score (average of active validators)
|
|
476
|
+
- `violations`: All violations from all validators combined
|
|
477
|
+
- `validationResults`: Per-validator breakdown showing:
|
|
478
|
+
- Individual validator score
|
|
479
|
+
- Whether that validator passed
|
|
480
|
+
- Violations specific to that validator
|
|
481
|
+
- Any errors that occurred (`score: -1` means skipped)
|
|
482
|
+
|
|
483
|
+
**Score Traceability**: With this format, you can always trace the overall score back to individual validator scores. For example, if you see `score: 0.067`, you can look at `validationResults` to see which validators contributed what scores (e.g., Pattern: 0.135, LLM Judge: 0.00).
|
|
484
|
+
|
|
324
485
|
## CLI Commands
|
|
325
486
|
|
|
326
487
|
### `evaluate`
|
|
@@ -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;
|
|
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;AAOjD,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;CAqGrB"}
|
|
@@ -42,10 +42,10 @@ const fs = __importStar(require("fs"));
|
|
|
42
42
|
const path = __importStar(require("path"));
|
|
43
43
|
const gitUtils_1 = require("../utils/gitUtils");
|
|
44
44
|
const workspaceUtils_1 = require("../utils/workspaceUtils");
|
|
45
|
-
const DEFAULT_MODEL =
|
|
45
|
+
const DEFAULT_MODEL = "sonnet";
|
|
46
46
|
class ClaudeCodeCLIAdapter {
|
|
47
47
|
constructor(options) {
|
|
48
|
-
this.type =
|
|
48
|
+
this.type = "claude-code";
|
|
49
49
|
this.workspaceRoot = (0, workspaceUtils_1.resolveWorkspaceRoot)(options?.workspaceRoot);
|
|
50
50
|
this.model = options?.model || DEFAULT_MODEL;
|
|
51
51
|
}
|
|
@@ -54,13 +54,13 @@ class ClaudeCodeCLIAdapter {
|
|
|
54
54
|
*/
|
|
55
55
|
async checkAvailability() {
|
|
56
56
|
return new Promise((resolve) => {
|
|
57
|
-
const proc = (0, child_process_1.spawn)(
|
|
58
|
-
stdio:
|
|
57
|
+
const proc = (0, child_process_1.spawn)("which", ["claude"], {
|
|
58
|
+
stdio: "pipe",
|
|
59
59
|
});
|
|
60
|
-
proc.on(
|
|
60
|
+
proc.on("close", (code) => {
|
|
61
61
|
resolve(code === 0);
|
|
62
62
|
});
|
|
63
|
-
proc.on(
|
|
63
|
+
proc.on("error", () => {
|
|
64
64
|
resolve(false);
|
|
65
65
|
});
|
|
66
66
|
});
|
|
@@ -105,40 +105,56 @@ class ClaudeCodeCLIAdapter {
|
|
|
105
105
|
const statusBefore = (0, gitUtils_1.getGitStatusPorcelain)(this.workspaceRoot);
|
|
106
106
|
// Write prompt to temp file and pipe via stdin (matches @copilot-evals pattern)
|
|
107
107
|
return new Promise((resolve, reject) => {
|
|
108
|
-
const tempFile = path.join(this.workspaceRoot,
|
|
109
|
-
fs.writeFileSync(tempFile, fullPrompt,
|
|
108
|
+
const tempFile = path.join(this.workspaceRoot, ".claude-eval-prompt.txt");
|
|
109
|
+
fs.writeFileSync(tempFile, fullPrompt, "utf8");
|
|
110
|
+
// Cleanup function
|
|
111
|
+
const cleanup = () => {
|
|
112
|
+
try {
|
|
113
|
+
if (fs.existsSync(tempFile)) {
|
|
114
|
+
fs.unlinkSync(tempFile);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
// Ignore cleanup errors
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
// Register cleanup on process termination
|
|
122
|
+
const cleanupOnExit = () => {
|
|
123
|
+
cleanup();
|
|
124
|
+
};
|
|
125
|
+
process.once("SIGINT", cleanupOnExit);
|
|
126
|
+
process.once("SIGTERM", cleanupOnExit);
|
|
110
127
|
const command = `cat "${tempFile}" | claude --model ${this.model} --dangerously-skip-permissions --disallowed-tools 'Bash(rm)' --disallowed-tools 'Bash(git push)' --disallowed-tools 'Bash(git commit)'`;
|
|
111
|
-
const proc = (0, child_process_1.spawn)(
|
|
128
|
+
const proc = (0, child_process_1.spawn)("sh", ["-c", command], {
|
|
112
129
|
cwd: this.workspaceRoot,
|
|
113
|
-
stdio: [
|
|
130
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
114
131
|
});
|
|
115
|
-
let stdout =
|
|
116
|
-
let stderr =
|
|
117
|
-
proc.stdout?.on(
|
|
132
|
+
let stdout = "";
|
|
133
|
+
let stderr = "";
|
|
134
|
+
proc.stdout?.on("data", (data) => {
|
|
118
135
|
stdout += data.toString();
|
|
119
136
|
});
|
|
120
|
-
proc.stderr?.on(
|
|
137
|
+
proc.stderr?.on("data", (data) => {
|
|
121
138
|
stderr += data.toString();
|
|
122
139
|
});
|
|
123
140
|
// Set timeout only if specified (null/undefined = no timeout)
|
|
124
141
|
let timeoutHandle = null;
|
|
125
142
|
if (timeout !== null && timeout !== undefined) {
|
|
126
143
|
timeoutHandle = setTimeout(() => {
|
|
127
|
-
proc.kill(
|
|
144
|
+
proc.kill("SIGTERM");
|
|
145
|
+
cleanup();
|
|
146
|
+
process.removeListener("SIGINT", cleanupOnExit);
|
|
147
|
+
process.removeListener("SIGTERM", cleanupOnExit);
|
|
128
148
|
reject(new Error(`Claude Code CLI timed out after ${timeout}ms`));
|
|
129
149
|
}, timeout);
|
|
130
150
|
}
|
|
131
|
-
proc.on(
|
|
151
|
+
proc.on("close", (code) => {
|
|
132
152
|
if (timeoutHandle) {
|
|
133
153
|
clearTimeout(timeoutHandle);
|
|
134
154
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
catch {
|
|
140
|
-
// Ignore cleanup errors
|
|
141
|
-
}
|
|
155
|
+
cleanup();
|
|
156
|
+
process.removeListener("SIGINT", cleanupOnExit);
|
|
157
|
+
process.removeListener("SIGTERM", cleanupOnExit);
|
|
142
158
|
if (code !== 0) {
|
|
143
159
|
reject(new Error(`Claude Code CLI exited with code ${code}\nStderr: ${stderr}`));
|
|
144
160
|
return;
|
|
@@ -146,24 +162,20 @@ class ClaudeCodeCLIAdapter {
|
|
|
146
162
|
// Get files changed during generation (diff before/after)
|
|
147
163
|
try {
|
|
148
164
|
const statusAfter = (0, gitUtils_1.getGitStatusPorcelain)(this.workspaceRoot);
|
|
149
|
-
const changedFiles = (0, gitUtils_1.getChangedFilesDiff)(statusBefore, statusAfter);
|
|
165
|
+
const changedFiles = (0, gitUtils_1.getChangedFilesDiff)(statusBefore, statusAfter, this.workspaceRoot);
|
|
150
166
|
resolve(changedFiles);
|
|
151
167
|
}
|
|
152
168
|
catch (error) {
|
|
153
169
|
reject(new Error(`Failed to get changed files: ${error}`));
|
|
154
170
|
}
|
|
155
171
|
});
|
|
156
|
-
proc.on(
|
|
172
|
+
proc.on("error", (error) => {
|
|
157
173
|
if (timeoutHandle) {
|
|
158
174
|
clearTimeout(timeoutHandle);
|
|
159
175
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
}
|
|
164
|
-
catch {
|
|
165
|
-
// Ignore cleanup errors
|
|
166
|
-
}
|
|
176
|
+
cleanup();
|
|
177
|
+
process.removeListener("SIGINT", cleanupOnExit);
|
|
178
|
+
process.removeListener("SIGTERM", cleanupOnExit);
|
|
167
179
|
reject(new Error(`Failed to spawn Claude Code CLI: ${error}`));
|
|
168
180
|
});
|
|
169
181
|
});
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"claudeCodeCLI.js","sourceRoot":"","sources":["../../src/adapters/claudeCodeCLI.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,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;
|
|
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;CAwGrB"}
|
|
@@ -105,8 +105,25 @@ class CopilotCLIAdapter {
|
|
|
105
105
|
const statusBefore = (0, gitUtils_1.getGitStatusPorcelain)(this.workspaceRoot);
|
|
106
106
|
// Write prompt to temp file and pipe via stdin (matches @copilot-evals pattern)
|
|
107
107
|
return new Promise((resolve, reject) => {
|
|
108
|
-
const tempFile = path.join(this.workspaceRoot,
|
|
108
|
+
const tempFile = path.join(this.workspaceRoot, ".copilot-eval-prompt.txt");
|
|
109
109
|
fs.writeFileSync(tempFile, fullPrompt, "utf8");
|
|
110
|
+
// Cleanup function
|
|
111
|
+
const cleanup = () => {
|
|
112
|
+
try {
|
|
113
|
+
if (fs.existsSync(tempFile)) {
|
|
114
|
+
fs.unlinkSync(tempFile);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
// Ignore cleanup errors
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
// Register cleanup on process termination
|
|
122
|
+
const cleanupOnExit = () => {
|
|
123
|
+
cleanup();
|
|
124
|
+
};
|
|
125
|
+
process.once("SIGINT", cleanupOnExit);
|
|
126
|
+
process.once("SIGTERM", cleanupOnExit);
|
|
110
127
|
const command = `cat "${tempFile}" | copilot --model ${this.model} --allow-all-tools --deny-tool 'shell(rm)' --deny-tool 'shell(git push)' --deny-tool 'shell(git commit)'`;
|
|
111
128
|
const proc = (0, child_process_1.spawn)("sh", ["-c", command], {
|
|
112
129
|
cwd: this.workspaceRoot,
|
|
@@ -125,6 +142,9 @@ class CopilotCLIAdapter {
|
|
|
125
142
|
if (timeout !== null && timeout !== undefined) {
|
|
126
143
|
timeoutHandle = setTimeout(() => {
|
|
127
144
|
proc.kill("SIGTERM");
|
|
145
|
+
cleanup();
|
|
146
|
+
process.removeListener("SIGINT", cleanupOnExit);
|
|
147
|
+
process.removeListener("SIGTERM", cleanupOnExit);
|
|
128
148
|
reject(new Error(`Copilot CLI timed out after ${timeout}ms`));
|
|
129
149
|
}, timeout);
|
|
130
150
|
}
|
|
@@ -132,13 +152,9 @@ class CopilotCLIAdapter {
|
|
|
132
152
|
if (timeoutHandle) {
|
|
133
153
|
clearTimeout(timeoutHandle);
|
|
134
154
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
catch {
|
|
140
|
-
// Ignore cleanup errors
|
|
141
|
-
}
|
|
155
|
+
cleanup();
|
|
156
|
+
process.removeListener("SIGINT", cleanupOnExit);
|
|
157
|
+
process.removeListener("SIGTERM", cleanupOnExit);
|
|
142
158
|
if (code !== 0) {
|
|
143
159
|
reject(new Error(`Copilot CLI exited with code ${code}\nStderr: ${stderr}`));
|
|
144
160
|
return;
|
|
@@ -146,7 +162,7 @@ class CopilotCLIAdapter {
|
|
|
146
162
|
// Get files changed during generation (diff before/after)
|
|
147
163
|
try {
|
|
148
164
|
const statusAfter = (0, gitUtils_1.getGitStatusPorcelain)(this.workspaceRoot);
|
|
149
|
-
const changedFiles = (0, gitUtils_1.getChangedFilesDiff)(statusBefore, statusAfter);
|
|
165
|
+
const changedFiles = (0, gitUtils_1.getChangedFilesDiff)(statusBefore, statusAfter, this.workspaceRoot);
|
|
150
166
|
resolve(changedFiles);
|
|
151
167
|
}
|
|
152
168
|
catch (error) {
|
|
@@ -157,13 +173,9 @@ class CopilotCLIAdapter {
|
|
|
157
173
|
if (timeoutHandle) {
|
|
158
174
|
clearTimeout(timeoutHandle);
|
|
159
175
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
}
|
|
164
|
-
catch {
|
|
165
|
-
// Ignore cleanup errors
|
|
166
|
-
}
|
|
176
|
+
cleanup();
|
|
177
|
+
process.removeListener("SIGINT", cleanupOnExit);
|
|
178
|
+
process.removeListener("SIGTERM", cleanupOnExit);
|
|
167
179
|
reject(new Error(`Failed to spawn Copilot CLI: ${error}`));
|
|
168
180
|
});
|
|
169
181
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilotCLI.js","sourceRoot":"","sources":["../../src/adapters/copilotCLI.ts"],"names":[],"mappings":"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
|
|
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,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Main evaluation engine
|
|
3
3
|
*/
|
|
4
|
-
import { EventEmitter } from "events";
|
|
5
4
|
import { AdapterType, TestScenario, EvaluationResult, EvaluationReport } from "./types";
|
|
5
|
+
import { TypedEventEmitter } from "./utils/TypedEventEmitter";
|
|
6
6
|
/**
|
|
7
7
|
* Events emitted by the Evaluator during execution
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export type EvaluatorEvents = {
|
|
10
10
|
"evaluation:start": (scenarios: TestScenario[]) => void;
|
|
11
11
|
"scenario:start": (scenarioId: string, scenario: TestScenario) => void;
|
|
12
12
|
"scenario:generating": (scenarioId: string) => void;
|
|
@@ -14,7 +14,7 @@ export interface EvaluatorEvents {
|
|
|
14
14
|
"scenario:complete": (scenarioId: string, result: EvaluationResult, model: string) => void;
|
|
15
15
|
"evaluation:complete": (report: EvaluationReport) => void;
|
|
16
16
|
log: (message: string) => void;
|
|
17
|
-
}
|
|
17
|
+
};
|
|
18
18
|
export interface EvaluatorOptions {
|
|
19
19
|
adapter: AdapterType;
|
|
20
20
|
model?: string;
|
|
@@ -24,17 +24,12 @@ export interface EvaluatorOptions {
|
|
|
24
24
|
saveBaseline?: boolean;
|
|
25
25
|
compareBaseline?: boolean;
|
|
26
26
|
}
|
|
27
|
-
export declare class Evaluator extends
|
|
27
|
+
export declare class Evaluator extends TypedEventEmitter<EvaluatorEvents> {
|
|
28
28
|
private adapter;
|
|
29
29
|
private workspaceRoot;
|
|
30
30
|
private baselineManager;
|
|
31
31
|
private options;
|
|
32
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;
|
|
38
33
|
/**
|
|
39
34
|
* Create adapter instance based on type
|
|
40
35
|
*/
|
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,
|
|
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;AAQjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,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,CACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;IACV,qBAAqB,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC1D,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC,CAAC;AAEF,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,iBAAiB,CAAC,eAAe,CAAC;IAC/D,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;IACH,OAAO,CAAC,aAAa;IAoBrB;;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;CA2DrE"}
|
package/dist/evaluator.js
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.Evaluator = void 0;
|
|
7
|
-
const events_1 = require("events");
|
|
8
7
|
const copilotCLI_1 = require("./adapters/copilotCLI");
|
|
9
8
|
const claudeCodeCLI_1 = require("./adapters/claudeCodeCLI");
|
|
10
9
|
const patternValidator_1 = require("./validators/patternValidator");
|
|
@@ -12,7 +11,8 @@ const llmJudge_1 = require("./validators/llmJudge");
|
|
|
12
11
|
const eslintValidator_1 = require("./validators/eslintValidator");
|
|
13
12
|
const workspaceUtils_1 = require("./utils/workspaceUtils");
|
|
14
13
|
const baselineManager_1 = require("./utils/baselineManager");
|
|
15
|
-
|
|
14
|
+
const TypedEventEmitter_1 = require("./utils/TypedEventEmitter");
|
|
15
|
+
class Evaluator extends TypedEventEmitter_1.TypedEventEmitter {
|
|
16
16
|
constructor(options) {
|
|
17
17
|
super();
|
|
18
18
|
this.options = options;
|
|
@@ -21,15 +21,6 @@ class Evaluator extends events_1.EventEmitter {
|
|
|
21
21
|
// Create adapter based on type
|
|
22
22
|
this.adapter = this.createAdapter(options.adapter);
|
|
23
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
|
-
}
|
|
33
24
|
/**
|
|
34
25
|
* Create adapter instance based on type
|
|
35
26
|
*/
|
|
@@ -46,7 +37,8 @@ class Evaluator extends events_1.EventEmitter {
|
|
|
46
37
|
model: this.options.model,
|
|
47
38
|
});
|
|
48
39
|
default:
|
|
49
|
-
|
|
40
|
+
const validAdapters = ["copilot", "claude-code"];
|
|
41
|
+
throw new Error(`Unknown adapter type: ${type}. Valid options: ${validAdapters.join(", ")}`);
|
|
50
42
|
}
|
|
51
43
|
}
|
|
52
44
|
/**
|
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":";AAAA;;GAEG;;;AAUH,sDAA0D;AAC1D,4DAAgE;AAChE,oEAAiE;AACjE,oDAA0D;AAC1D,kEAA+D;AAC/D,2DAA8D;AAC9D,6DAA0D;AAC1D,iEAA8D;AA6B9D,MAAa,SAAU,SAAQ,qCAAkC;IAM/D,YAAY,OAAyB;QACnC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,IAAA,qCAAoB,EAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACjE,IAAI,CAAC,eAAe,GAAG,IAAI,iCAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE/D,+BAA+B;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,IAAiB;QACrC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,SAAS;gBACZ,OAAO,IAAI,8BAAiB,CAAC;oBAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;oBACjC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;iBAC1B,CAAC,CAAC;YACL,KAAK,aAAa;gBAChB,OAAO,IAAI,oCAAoB,CAAC;oBAC9B,aAAa,EAAE,IAAI,CAAC,aAAa;oBACjC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;iBAC1B,CAAC,CAAC;YACL;gBACE,MAAM,aAAa,GAAkB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;gBAChE,MAAM,IAAI,KAAK,CACb,yBAAyB,IAAI,oBAAoB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5E,CAAC;QACN,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,wBAAwB;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,eAAe,CACb,SAAyB,EACzB,OAIC;QAED,IAAI,QAAQ,GAAG,SAAS,CAAC;QAEzB,gCAAgC;QAChC,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;YAClC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,qBAAqB;QACrB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACpE,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,CAAC;QAED,iBAAiB;QACjB,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/B,OAAO,CAAC,IAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAClD,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,QAAsB;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,0BAA0B,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC1D,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;YAC7D,CAAC;YAED,wBAAwB;YACxB,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAE9C,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;YAC3C,CAAC;YAED,gEAAgE;YAChE,IAAI,OAAsB,CAAC;YAC3B,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACnC,6DAA6D;gBAC7D,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC7B,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBACrD,wDAAwD;gBACxD,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,8BAA8B;gBAC9B,OAAO,GAAG,MAAM,CAAC;YACnB,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAChD,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,YAAY,EACrB,OAAO,CACR,CAAC;YAEF,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,cAAc,CAAC,MAAM,UAAU,CAAC,CAAC;YACnE,CAAC;YAED,wBAAwB;YACxB,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAE9C,iBAAiB;YACjB,MAAM,iBAAiB,GAAuB,EAAE,CAAC;YAEjD,oBAAoB;YACpB,MAAM,gBAAgB,GAAG,IAAI,mCAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClE,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CACnD,cAAc,EACd,QAAQ,CACT,CAAC;YACF,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEtC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,aAAa,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC,IAAI,CACP,KAAK,EACL,yBAAyB,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAC1D,CAAC;YACJ,CAAC;YAED,sBAAsB;YACtB,MAAM,YAAY,GAAG,IAAI,4BAAiB,CACxC,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,OAAO,CAAC,KAAK,CACnB,CAAC;YACF,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YACxE,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAElC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjE,CAAC;YAED,mBAAmB;YACnB,MAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAChE,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,QAAQ,CACjD,cAAc,EACd,QAAQ,CACT,CAAC;YACF,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAErC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;gBACpD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjE,CAAC;YAED,8DAA8D;YAC9D,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;YACpE,MAAM,YAAY,GAChB,aAAa,CAAC,MAAM,GAAG,CAAC;gBACtB,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;oBAClD,aAAa,CAAC,MAAM;gBACtB,CAAC,CAAC,CAAC,CAAC;YAER,yBAAyB;YACzB,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAErE,4DAA4D;YAC5D,MAAM,MAAM,GAAG,YAAY,IAAI,GAAG,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC;YAEjE,MAAM,MAAM,GAAqB;gBAC/B,QAAQ;gBACR,MAAM;gBACN,KAAK,EAAE,YAAY;gBACnB,iBAAiB;gBACjB,UAAU,EAAE,aAAa;gBACzB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACjC,CAAC;YAEF,qCAAqC;YACrC,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;gBACjC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,mBAAmB,CACzD,MAAM,EACN,IAAI,CAAC,OAAO,CAAC,OAAO,EACpB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CACxB,CAAC;gBACF,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,CAAC,kBAAkB,GAAG,UAAU,CAAC;gBACzC,CAAC;YACH,CAAC;YAED,6BAA6B;YAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBAC9B,IAAI,CAAC,eAAe,CAAC,YAAY,CAC/B,MAAM,EACN,IAAI,CAAC,OAAO,CAAC,OAAO,EACpB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CACxB,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAErD,wCAAwC;YACxC,MAAM,UAAU,GAAG,SAAS;gBAC1B,CAAC,CAAC;oBACE;wBACE,IAAI,EAAE,SAAkB;wBACxB,OAAO,EAAE,2BAA2B;wBACpC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;wBAC3B,OAAO,EAAE,YAAY;qBACtB;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YAEP,OAAO;gBACL,QAAQ;gBACR,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,CAAC;gBACR,iBAAiB,EAAE,EAAE;gBACrB,UAAU;gBACV,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAChC,KAAK,EAAE,sBAAsB,KAAK,EAAE;aACrC,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,SAAyB;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAuB,EAAE,CAAC;QAEvC,8BAA8B;QAC9B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;QAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAE9B,4BAA4B;YAC5B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAEnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAErB,0CAA0C;YAC1C,IAAI,CAAC,IAAI,CACP,mBAAmB,EACnB,QAAQ,CAAC,EAAE,EACX,MAAM,EACN,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CACxB,CAAC;QACJ,CAAC;QAED,+BAA+B;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QACnE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QACtD,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CACpC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EACrC,CAAC,CACF,CAAC;QACF,MAAM,YAAY,GAChB,OAAO,CAAC,MAAM,GAAG,CAAC;YAChB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM;YAC/D,CAAC,CAAC,CAAC,CAAC;QAER,MAAM,MAAM,GAAqB;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC7B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,OAAO;YACP,OAAO,EAAE;gBACP,KAAK,EAAE,SAAS,CAAC,MAAM;gBACvB,MAAM;gBACN,MAAM;gBACN,OAAO;gBACP,YAAY;gBACZ,eAAe;aAChB;YACD,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACtC,CAAC;QAEF,iCAAiC;QACjC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAEzC,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAhTD,8BAgTC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from "./types";
|
|
2
|
-
export { Evaluator, EvaluatorOptions } from "./evaluator";
|
|
2
|
+
export { Evaluator, EvaluatorOptions, EvaluatorEvents } from "./evaluator";
|
|
3
3
|
export { CopilotCLIAdapter } from "./adapters/copilotCLI";
|
|
4
4
|
export { ClaudeCodeCLIAdapter } from "./adapters/claudeCodeCLI";
|
|
5
5
|
export { PatternValidator } from "./validators/patternValidator";
|
|
@@ -7,6 +7,7 @@ export { LLMJudgeValidator } from "./validators/llmJudge";
|
|
|
7
7
|
export { ESLintValidator } from "./validators/eslintValidator";
|
|
8
8
|
export { loadConfig } from "./config/loader";
|
|
9
9
|
export { BaselineManager } from "./utils/baselineManager";
|
|
10
|
+
export { TypedEventEmitter } from "./utils/TypedEventEmitter";
|
|
10
11
|
export * from "./utils/gitUtils";
|
|
11
12
|
export * from "./utils/workspaceUtils";
|
|
12
13
|
export * from "./utils/githubAuth";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC"}
|