coding-agent-benchmarks 0.2.1 → 0.3.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 (184) hide show
  1. package/README.md +171 -10
  2. package/dist/User.d.ts +10 -0
  3. package/dist/User.d.ts.map +1 -0
  4. package/dist/User.js +3 -0
  5. package/dist/User.js.map +1 -0
  6. package/dist/adapters/claudeCodeCLI.d.ts +1 -1
  7. package/dist/adapters/claudeCodeCLI.d.ts.map +1 -1
  8. package/dist/adapters/claudeCodeCLI.js +44 -32
  9. package/dist/adapters/claudeCodeCLI.js.map +1 -1
  10. package/dist/adapters/copilotCLI.d.ts.map +1 -1
  11. package/dist/adapters/copilotCLI.js +28 -16
  12. package/dist/adapters/copilotCLI.js.map +1 -1
  13. package/dist/config/defaultScenarios.d.ts +6 -0
  14. package/dist/config/defaultScenarios.d.ts.map +1 -0
  15. package/dist/config/defaultScenarios.js +209 -0
  16. package/dist/config/defaultScenarios.js.map +1 -0
  17. package/dist/config/environment.d.ts +51 -0
  18. package/dist/config/environment.d.ts.map +1 -0
  19. package/dist/config/environment.js +57 -0
  20. package/dist/config/environment.js.map +1 -0
  21. package/dist/config/parser.d.ts +6 -0
  22. package/dist/config/parser.d.ts.map +1 -0
  23. package/dist/config/parser.js +87 -0
  24. package/dist/config/parser.js.map +1 -0
  25. package/dist/evaluator.d.ts +4 -9
  26. package/dist/evaluator.d.ts.map +1 -1
  27. package/dist/evaluator.js +4 -12
  28. package/dist/evaluator.js.map +1 -1
  29. package/dist/examples/file-upload-example.d.ts +2 -0
  30. package/dist/examples/file-upload-example.d.ts.map +1 -0
  31. package/dist/examples/file-upload-example.js +37 -0
  32. package/dist/examples/file-upload-example.js.map +1 -0
  33. package/dist/examples/typedEventEmitterExample.d.ts +5 -0
  34. package/dist/examples/typedEventEmitterExample.d.ts.map +1 -0
  35. package/dist/examples/typedEventEmitterExample.js +44 -0
  36. package/dist/examples/typedEventEmitterExample.js.map +1 -0
  37. package/dist/index.d.ts +2 -1
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +3 -1
  40. package/dist/index.js.map +1 -1
  41. package/dist/registration/database.d.ts +13 -0
  42. package/dist/registration/database.d.ts.map +1 -0
  43. package/dist/registration/database.js +35 -0
  44. package/dist/registration/database.js.map +1 -0
  45. package/dist/registration/email.d.ts +17 -0
  46. package/dist/registration/email.d.ts.map +1 -0
  47. package/dist/registration/email.js +40 -0
  48. package/dist/registration/email.js.map +1 -0
  49. package/dist/registration/emailService.d.ts +13 -0
  50. package/dist/registration/emailService.d.ts.map +1 -0
  51. package/dist/registration/emailService.js +26 -0
  52. package/dist/registration/emailService.js.map +1 -0
  53. package/dist/registration/example.d.ts +2 -0
  54. package/dist/registration/example.d.ts.map +1 -0
  55. package/dist/registration/example.js +37 -0
  56. package/dist/registration/example.js.map +1 -0
  57. package/dist/registration/index.d.ts +7 -0
  58. package/dist/registration/index.d.ts.map +1 -0
  59. package/dist/registration/index.js +15 -0
  60. package/dist/registration/index.js.map +1 -0
  61. package/dist/registration/password.d.ts +3 -0
  62. package/dist/registration/password.d.ts.map +1 -0
  63. package/dist/registration/password.js +27 -0
  64. package/dist/registration/password.js.map +1 -0
  65. package/dist/registration/passwordHasher.d.ts +8 -0
  66. package/dist/registration/passwordHasher.d.ts.map +1 -0
  67. package/dist/registration/passwordHasher.js +39 -0
  68. package/dist/registration/passwordHasher.js.map +1 -0
  69. package/dist/registration/registrationService.d.ts +14 -0
  70. package/dist/registration/registrationService.d.ts.map +1 -0
  71. package/dist/registration/registrationService.js +49 -0
  72. package/dist/registration/registrationService.js.map +1 -0
  73. package/dist/registration/service.d.ts +14 -0
  74. package/dist/registration/service.d.ts.map +1 -0
  75. package/dist/registration/service.js +48 -0
  76. package/dist/registration/service.js.map +1 -0
  77. package/dist/registration/types.d.ts +22 -0
  78. package/dist/registration/types.d.ts.map +1 -0
  79. package/dist/registration/types.js +3 -0
  80. package/dist/registration/types.js.map +1 -0
  81. package/dist/registration/userRepository.d.ts +12 -0
  82. package/dist/registration/userRepository.d.ts.map +1 -0
  83. package/dist/registration/userRepository.js +28 -0
  84. package/dist/registration/userRepository.js.map +1 -0
  85. package/dist/registration/validator.d.ts +7 -0
  86. package/dist/registration/validator.d.ts.map +1 -0
  87. package/dist/registration/validator.js +44 -0
  88. package/dist/registration/validator.js.map +1 -0
  89. package/dist/registration/validators.d.ts +5 -0
  90. package/dist/registration/validators.d.ts.map +1 -0
  91. package/dist/registration/validators.js +60 -0
  92. package/dist/registration/validators.js.map +1 -0
  93. package/dist/reporter.d.ts.map +1 -1
  94. package/dist/reporter.js +59 -34
  95. package/dist/reporter.js.map +1 -1
  96. package/dist/runner.js +2 -1
  97. package/dist/runner.js.map +1 -1
  98. package/dist/sync/cache.d.ts +14 -0
  99. package/dist/sync/cache.d.ts.map +1 -0
  100. package/dist/sync/cache.js +73 -0
  101. package/dist/sync/cache.js.map +1 -0
  102. package/dist/sync/index.d.ts +7 -0
  103. package/dist/sync/index.d.ts.map +1 -0
  104. package/dist/sync/index.js +20 -0
  105. package/dist/sync/index.js.map +1 -0
  106. package/dist/sync/resolver.d.ts +12 -0
  107. package/dist/sync/resolver.d.ts.map +1 -0
  108. package/dist/sync/resolver.js +43 -0
  109. package/dist/sync/resolver.js.map +1 -0
  110. package/dist/sync/service.d.ts +20 -0
  111. package/dist/sync/service.d.ts.map +1 -0
  112. package/dist/sync/service.js +162 -0
  113. package/dist/sync/service.js.map +1 -0
  114. package/dist/sync/source.d.ts +21 -0
  115. package/dist/sync/source.d.ts.map +1 -0
  116. package/dist/sync/source.js +58 -0
  117. package/dist/sync/source.js.map +1 -0
  118. package/dist/sync/types.d.ts +56 -0
  119. package/dist/sync/types.d.ts.map +1 -0
  120. package/dist/sync/types.js +21 -0
  121. package/dist/sync/types.js.map +1 -0
  122. package/dist/types.d.ts +6 -6
  123. package/dist/types.d.ts.map +1 -1
  124. package/dist/utils/baselineManager.d.ts +2 -1
  125. package/dist/utils/baselineManager.d.ts.map +1 -1
  126. package/dist/utils/baselineManager.js +1 -0
  127. package/dist/utils/baselineManager.js.map +1 -1
  128. package/dist/utils/cache.d.ts +11 -0
  129. package/dist/utils/cache.d.ts.map +1 -0
  130. package/dist/utils/cache.js +28 -0
  131. package/dist/utils/cache.js.map +1 -0
  132. package/dist/utils/config-merger.d.ts +11 -0
  133. package/dist/utils/config-merger.d.ts.map +1 -0
  134. package/dist/utils/config-merger.js +36 -0
  135. package/dist/utils/config-merger.js.map +1 -0
  136. package/dist/utils/configParser.d.ts +9 -0
  137. package/dist/utils/configParser.d.ts.map +1 -0
  138. package/dist/utils/configParser.js +51 -0
  139. package/dist/utils/configParser.js.map +1 -0
  140. package/dist/utils/database-providers.d.ts +23 -0
  141. package/dist/utils/database-providers.d.ts.map +1 -0
  142. package/dist/utils/database-providers.js +48 -0
  143. package/dist/utils/database-providers.js.map +1 -0
  144. package/dist/utils/errorHandler.d.ts +10 -0
  145. package/dist/utils/errorHandler.d.ts.map +1 -0
  146. package/dist/utils/errorHandler.js +58 -0
  147. package/dist/utils/errorHandler.js.map +1 -0
  148. package/dist/utils/fetchUserData.d.ts +11 -0
  149. package/dist/utils/fetchUserData.d.ts.map +1 -0
  150. package/dist/utils/fetchUserData.js +31 -0
  151. package/dist/utils/fetchUserData.js.map +1 -0
  152. package/dist/utils/file-upload-handler.d.ts +46 -0
  153. package/dist/utils/file-upload-handler.d.ts.map +1 -0
  154. package/dist/utils/file-upload-handler.js +110 -0
  155. package/dist/utils/file-upload-handler.js.map +1 -0
  156. package/dist/utils/gitUtils.d.ts +2 -1
  157. package/dist/utils/gitUtils.d.ts.map +1 -1
  158. package/dist/utils/gitUtils.js +85 -18
  159. package/dist/utils/gitUtils.js.map +1 -1
  160. package/dist/utils/statistics.d.ts +9 -0
  161. package/dist/utils/statistics.d.ts.map +1 -0
  162. package/dist/utils/statistics.js +26 -0
  163. package/dist/utils/statistics.js.map +1 -0
  164. package/dist/utils/storage-providers.d.ts +24 -0
  165. package/dist/utils/storage-providers.d.ts.map +1 -0
  166. package/dist/utils/storage-providers.js +38 -0
  167. package/dist/utils/storage-providers.js.map +1 -0
  168. package/dist/utils/transformArray.d.ts +18 -0
  169. package/dist/utils/transformArray.d.ts.map +1 -0
  170. package/dist/utils/transformArray.js +21 -0
  171. package/dist/utils/transformArray.js.map +1 -0
  172. package/dist/utils/typedEventEmitter.d.ts +18 -0
  173. package/dist/utils/typedEventEmitter.d.ts.map +1 -0
  174. package/dist/utils/typedEventEmitter.js +62 -0
  175. package/dist/utils/typedEventEmitter.js.map +1 -0
  176. package/dist/utils/userUtils.d.ts +9 -0
  177. package/dist/utils/userUtils.d.ts.map +1 -0
  178. package/dist/utils/userUtils.js +14 -0
  179. package/dist/utils/userUtils.js.map +1 -0
  180. package/dist/validators/llmJudge.d.ts +1 -1
  181. package/dist/validators/llmJudge.d.ts.map +1 -1
  182. package/dist/validators/llmJudge.js +40 -41
  183. package/dist/validators/llmJudge.js.map +1 -1
  184. 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
- Each scenario receives a score from 0.0 to 1.0:
287
+ The scoring system operates at three levels: per-validator scoring, per-scenario scoring, and summary scoring.
288
288
 
289
- - **1.0**: Perfect, no violations
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
- Violations are weighted by severity:
295
- - **Critical**: 1.0 weight
296
- - **Major**: 0.7 weight
297
- - **Minor**: 0.3 weight
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`
package/dist/User.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * User interface representing a user entity
3
+ */
4
+ export interface User {
5
+ id: number;
6
+ name: string;
7
+ email: string;
8
+ metadata: Record<string, unknown>;
9
+ }
10
+ //# sourceMappingURL=User.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../src/User.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC"}
package/dist/User.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=User.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"User.js","sourceRoot":"","sources":["../src/User.ts"],"names":[],"mappings":""}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Claude Code CLI Adapter
3
3
  */
4
- import { CodeGenerationAdapter } from '../types';
4
+ import { CodeGenerationAdapter } from "../types";
5
5
  export interface ClaudeCodeCLIAdapterOptions {
6
6
  workspaceRoot?: string;
7
7
  model?: string;
@@ -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,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
+ {"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 = 'sonnet';
45
+ const DEFAULT_MODEL = "sonnet";
46
46
  class ClaudeCodeCLIAdapter {
47
47
  constructor(options) {
48
- this.type = 'claude-code';
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)('which', ['claude'], {
58
- stdio: 'pipe',
57
+ const proc = (0, child_process_1.spawn)("which", ["claude"], {
58
+ stdio: "pipe",
59
59
  });
60
- proc.on('close', (code) => {
60
+ proc.on("close", (code) => {
61
61
  resolve(code === 0);
62
62
  });
63
- proc.on('error', () => {
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, '.claude-eval-prompt.txt');
109
- fs.writeFileSync(tempFile, fullPrompt, 'utf8');
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)('sh', ['-c', command], {
128
+ const proc = (0, child_process_1.spawn)("sh", ["-c", command], {
112
129
  cwd: this.workspaceRoot,
113
- stdio: ['pipe', 'pipe', 'pipe'],
130
+ stdio: ["pipe", "pipe", "pipe"],
114
131
  });
115
- let stdout = '';
116
- let stderr = '';
117
- proc.stdout?.on('data', (data) => {
132
+ let stdout = "";
133
+ let stderr = "";
134
+ proc.stdout?.on("data", (data) => {
118
135
  stdout += data.toString();
119
136
  });
120
- proc.stderr?.on('data', (data) => {
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('SIGTERM');
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('close', (code) => {
151
+ proc.on("close", (code) => {
132
152
  if (timeoutHandle) {
133
153
  clearTimeout(timeoutHandle);
134
154
  }
135
- // Clean up temp file
136
- try {
137
- fs.unlinkSync(tempFile);
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('error', (error) => {
172
+ proc.on("error", (error) => {
157
173
  if (timeoutHandle) {
158
174
  clearTimeout(timeoutHandle);
159
175
  }
160
- // Clean up temp file
161
- try {
162
- fs.unlinkSync(tempFile);
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":"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"}
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;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;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, '.copilot-eval-prompt.txt');
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
- // Clean up temp file
136
- try {
137
- fs.unlinkSync(tempFile);
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
- // Clean up temp file
161
- try {
162
- fs.unlinkSync(tempFile);
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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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Default test scenarios
3
+ */
4
+ import { TestScenario } from '../types';
5
+ export declare const getDefaultScenarios: () => TestScenario[];
6
+ //# sourceMappingURL=defaultScenarios.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultScenarios.d.ts","sourceRoot":"","sources":["../../src/config/defaultScenarios.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,eAAO,MAAM,mBAAmB,QAAO,YAAY,EAyNhD,CAAC"}