coding-agent-benchmarks 0.2.0 → 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.
- package/README.md +225 -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/config/environment.d.ts +51 -0
- package/dist/config/environment.d.ts.map +1 -0
- package/dist/config/environment.js +57 -0
- package/dist/config/environment.js.map +1 -0
- package/dist/config/parser.d.ts +6 -0
- package/dist/config/parser.d.ts.map +1 -0
- package/dist/config/parser.js +87 -0
- package/dist/config/parser.js.map +1 -0
- 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/examples/file-upload-example.d.ts +2 -0
- package/dist/examples/file-upload-example.d.ts.map +1 -0
- package/dist/examples/file-upload-example.js +37 -0
- package/dist/examples/file-upload-example.js.map +1 -0
- package/dist/examples/typedEventEmitterExample.d.ts +5 -0
- package/dist/examples/typedEventEmitterExample.d.ts.map +1 -0
- package/dist/examples/typedEventEmitterExample.js +44 -0
- package/dist/examples/typedEventEmitterExample.js.map +1 -0
- package/dist/index.d.ts +13 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/registration/database.d.ts +13 -0
- package/dist/registration/database.d.ts.map +1 -0
- package/dist/registration/database.js +35 -0
- package/dist/registration/database.js.map +1 -0
- package/dist/registration/email.d.ts +17 -0
- package/dist/registration/email.d.ts.map +1 -0
- package/dist/registration/email.js +40 -0
- package/dist/registration/email.js.map +1 -0
- package/dist/registration/emailService.d.ts +13 -0
- package/dist/registration/emailService.d.ts.map +1 -0
- package/dist/registration/emailService.js +26 -0
- package/dist/registration/emailService.js.map +1 -0
- package/dist/registration/example.d.ts +2 -0
- package/dist/registration/example.d.ts.map +1 -0
- package/dist/registration/example.js +37 -0
- package/dist/registration/example.js.map +1 -0
- package/dist/registration/index.d.ts +7 -0
- package/dist/registration/index.d.ts.map +1 -0
- package/dist/registration/index.js +15 -0
- package/dist/registration/index.js.map +1 -0
- package/dist/registration/password.d.ts +3 -0
- package/dist/registration/password.d.ts.map +1 -0
- package/dist/registration/password.js +27 -0
- package/dist/registration/password.js.map +1 -0
- package/dist/registration/passwordHasher.d.ts +8 -0
- package/dist/registration/passwordHasher.d.ts.map +1 -0
- package/dist/registration/passwordHasher.js +39 -0
- package/dist/registration/passwordHasher.js.map +1 -0
- package/dist/registration/registrationService.d.ts +14 -0
- package/dist/registration/registrationService.d.ts.map +1 -0
- package/dist/registration/registrationService.js +49 -0
- package/dist/registration/registrationService.js.map +1 -0
- package/dist/registration/service.d.ts +14 -0
- package/dist/registration/service.d.ts.map +1 -0
- package/dist/registration/service.js +48 -0
- package/dist/registration/service.js.map +1 -0
- package/dist/registration/types.d.ts +22 -0
- package/dist/registration/types.d.ts.map +1 -0
- package/dist/registration/types.js +3 -0
- package/dist/registration/types.js.map +1 -0
- package/dist/registration/userRepository.d.ts +12 -0
- package/dist/registration/userRepository.d.ts.map +1 -0
- package/dist/registration/userRepository.js +28 -0
- package/dist/registration/userRepository.js.map +1 -0
- package/dist/registration/validator.d.ts +7 -0
- package/dist/registration/validator.d.ts.map +1 -0
- package/dist/registration/validator.js +44 -0
- package/dist/registration/validator.js.map +1 -0
- package/dist/registration/validators.d.ts +5 -0
- package/dist/registration/validators.d.ts.map +1 -0
- package/dist/registration/validators.js +60 -0
- package/dist/registration/validators.js.map +1 -0
- package/dist/reporter.d.ts.map +1 -1
- package/dist/reporter.js +59 -29
- package/dist/reporter.js.map +1 -1
- package/dist/runner.js +2 -1
- package/dist/runner.js.map +1 -1
- package/dist/sync/cache.d.ts +14 -0
- package/dist/sync/cache.d.ts.map +1 -0
- package/dist/sync/cache.js +73 -0
- package/dist/sync/cache.js.map +1 -0
- package/dist/sync/index.d.ts +7 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +20 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/resolver.d.ts +12 -0
- package/dist/sync/resolver.d.ts.map +1 -0
- package/dist/sync/resolver.js +43 -0
- package/dist/sync/resolver.js.map +1 -0
- package/dist/sync/service.d.ts +20 -0
- package/dist/sync/service.d.ts.map +1 -0
- package/dist/sync/service.js +162 -0
- package/dist/sync/service.js.map +1 -0
- package/dist/sync/source.d.ts +21 -0
- package/dist/sync/source.d.ts.map +1 -0
- package/dist/sync/source.js +58 -0
- package/dist/sync/source.js.map +1 -0
- package/dist/sync/types.d.ts +56 -0
- package/dist/sync/types.d.ts.map +1 -0
- package/dist/sync/types.js +21 -0
- package/dist/sync/types.js.map +1 -0
- package/dist/types.d.ts +6 -6
- package/dist/types.d.ts.map +1 -1
- 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/cache.d.ts +11 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +28 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/config-merger.d.ts +11 -0
- package/dist/utils/config-merger.d.ts.map +1 -0
- package/dist/utils/config-merger.js +36 -0
- package/dist/utils/config-merger.js.map +1 -0
- package/dist/utils/configParser.d.ts +9 -0
- package/dist/utils/configParser.d.ts.map +1 -0
- package/dist/utils/configParser.js +51 -0
- package/dist/utils/configParser.js.map +1 -0
- package/dist/utils/database-providers.d.ts +23 -0
- package/dist/utils/database-providers.d.ts.map +1 -0
- package/dist/utils/database-providers.js +48 -0
- package/dist/utils/database-providers.js.map +1 -0
- 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/fetchUserData.d.ts +11 -0
- package/dist/utils/fetchUserData.d.ts.map +1 -0
- package/dist/utils/fetchUserData.js +31 -0
- package/dist/utils/fetchUserData.js.map +1 -0
- package/dist/utils/file-upload-handler.d.ts +46 -0
- package/dist/utils/file-upload-handler.d.ts.map +1 -0
- package/dist/utils/file-upload-handler.js +110 -0
- package/dist/utils/file-upload-handler.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/utils/statistics.d.ts +9 -0
- package/dist/utils/statistics.d.ts.map +1 -0
- package/dist/utils/statistics.js +26 -0
- package/dist/utils/statistics.js.map +1 -0
- package/dist/utils/storage-providers.d.ts +24 -0
- package/dist/utils/storage-providers.d.ts.map +1 -0
- package/dist/utils/storage-providers.js +38 -0
- package/dist/utils/storage-providers.js.map +1 -0
- package/dist/utils/transformArray.d.ts +18 -0
- package/dist/utils/transformArray.d.ts.map +1 -0
- package/dist/utils/transformArray.js +21 -0
- package/dist/utils/transformArray.js.map +1 -0
- 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/userUtils.d.ts +9 -0
- package/dist/utils/userUtils.d.ts.map +1 -0
- package/dist/utils/userUtils.js +14 -0
- package/dist/utils/userUtils.js.map +1 -0
- 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 +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitUtils.js","sourceRoot":"","sources":["../../src/utils/gitUtils.ts"],"names":[],"mappings":";AAAA;;GAEG
|
|
1
|
+
{"version":3,"file":"gitUtils.js","sourceRoot":"","sources":["../../src/utils/gitUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statistics.d.ts","sourceRoot":"","sources":["../../src/utils/statistics.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,mBAAmB,GAAI,SAAS,SAAS,MAAM,EAAE,KAAG,UAwBhE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.calculateStatistics = void 0;
|
|
4
|
+
const calculateStatistics = (numbers) => {
|
|
5
|
+
if (numbers.length === 0) {
|
|
6
|
+
throw new Error('Cannot calculate statistics for an empty array');
|
|
7
|
+
}
|
|
8
|
+
const sum = numbers.reduce((acc, num) => acc + num, 0);
|
|
9
|
+
const average = sum / numbers.length;
|
|
10
|
+
const sorted = [...numbers].sort((a, b) => a - b);
|
|
11
|
+
const mid = Math.floor(sorted.length / 2);
|
|
12
|
+
const median = sorted.length % 2 === 0
|
|
13
|
+
? (sorted[mid - 1] + sorted[mid]) / 2
|
|
14
|
+
: sorted[mid];
|
|
15
|
+
const min = Math.min(...numbers);
|
|
16
|
+
const max = Math.max(...numbers);
|
|
17
|
+
return {
|
|
18
|
+
sum,
|
|
19
|
+
average,
|
|
20
|
+
median,
|
|
21
|
+
min,
|
|
22
|
+
max,
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
exports.calculateStatistics = calculateStatistics;
|
|
26
|
+
//# sourceMappingURL=statistics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statistics.js","sourceRoot":"","sources":["../../src/utils/statistics.ts"],"names":[],"mappings":";;;AAQO,MAAM,mBAAmB,GAAG,CAAC,OAA0B,EAAc,EAAE;IAC5E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAErC,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;QACpC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;QACrC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAEhB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAEjC,OAAO;QACL,GAAG;QACH,OAAO;QACP,MAAM;QACN,GAAG;QACH,GAAG;KACJ,CAAC;AACJ,CAAC,CAAC;AAxBW,QAAA,mBAAmB,uBAwB9B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { CloudStorageProvider } from './file-upload-handler';
|
|
2
|
+
export declare class S3StorageProvider implements CloudStorageProvider {
|
|
3
|
+
private readonly bucket;
|
|
4
|
+
private readonly region;
|
|
5
|
+
private readonly accessKeyId;
|
|
6
|
+
private readonly secretAccessKey;
|
|
7
|
+
constructor(bucket: string, region: string, accessKeyId: string, secretAccessKey: string);
|
|
8
|
+
upload(file: Buffer, filename: string): Promise<string>;
|
|
9
|
+
}
|
|
10
|
+
export declare class GCSStorageProvider implements CloudStorageProvider {
|
|
11
|
+
private readonly bucket;
|
|
12
|
+
private readonly projectId;
|
|
13
|
+
private readonly credentials;
|
|
14
|
+
constructor(bucket: string, projectId: string, credentials: Record<string, unknown>);
|
|
15
|
+
upload(file: Buffer, filename: string): Promise<string>;
|
|
16
|
+
}
|
|
17
|
+
export declare class AzureBlobStorageProvider implements CloudStorageProvider {
|
|
18
|
+
private readonly containerName;
|
|
19
|
+
private readonly accountName;
|
|
20
|
+
private readonly accountKey;
|
|
21
|
+
constructor(containerName: string, accountName: string, accountKey: string);
|
|
22
|
+
upload(file: Buffer, filename: string): Promise<string>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=storage-providers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-providers.d.ts","sourceRoot":"","sources":["../../src/utils/storage-providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,qBAAa,iBAAkB,YAAW,oBAAoB;IAE1D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAHf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM;IAGpC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG9D;AAED,qBAAa,kBAAmB,YAAW,oBAAoB;IAE3D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAFX,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAGjD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG9D;AAED,qBAAa,wBAAyB,YAAW,oBAAoB;IAEjE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAFV,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM;IAG/B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG9D"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AzureBlobStorageProvider = exports.GCSStorageProvider = exports.S3StorageProvider = void 0;
|
|
4
|
+
class S3StorageProvider {
|
|
5
|
+
constructor(bucket, region, accessKeyId, secretAccessKey) {
|
|
6
|
+
this.bucket = bucket;
|
|
7
|
+
this.region = region;
|
|
8
|
+
this.accessKeyId = accessKeyId;
|
|
9
|
+
this.secretAccessKey = secretAccessKey;
|
|
10
|
+
}
|
|
11
|
+
async upload(file, filename) {
|
|
12
|
+
return `s3://${this.bucket}/${filename}`;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.S3StorageProvider = S3StorageProvider;
|
|
16
|
+
class GCSStorageProvider {
|
|
17
|
+
constructor(bucket, projectId, credentials) {
|
|
18
|
+
this.bucket = bucket;
|
|
19
|
+
this.projectId = projectId;
|
|
20
|
+
this.credentials = credentials;
|
|
21
|
+
}
|
|
22
|
+
async upload(file, filename) {
|
|
23
|
+
return `gs://${this.bucket}/${filename}`;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.GCSStorageProvider = GCSStorageProvider;
|
|
27
|
+
class AzureBlobStorageProvider {
|
|
28
|
+
constructor(containerName, accountName, accountKey) {
|
|
29
|
+
this.containerName = containerName;
|
|
30
|
+
this.accountName = accountName;
|
|
31
|
+
this.accountKey = accountKey;
|
|
32
|
+
}
|
|
33
|
+
async upload(file, filename) {
|
|
34
|
+
return `https://${this.accountName}.blob.core.windows.net/${this.containerName}/${filename}`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.AzureBlobStorageProvider = AzureBlobStorageProvider;
|
|
38
|
+
//# sourceMappingURL=storage-providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-providers.js","sourceRoot":"","sources":["../../src/utils/storage-providers.ts"],"names":[],"mappings":";;;AAEA,MAAa,iBAAiB;IAC5B,YACmB,MAAc,EACd,MAAc,EACd,WAAmB,EACnB,eAAuB;QAHvB,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAQ;QACnB,oBAAe,GAAf,eAAe,CAAQ;IACvC,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,QAAgB;QACzC,OAAO,QAAQ,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;IAC3C,CAAC;CACF;AAXD,8CAWC;AAED,MAAa,kBAAkB;IAC7B,YACmB,MAAc,EACd,SAAiB,EACjB,WAAoC;QAFpC,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAQ;QACjB,gBAAW,GAAX,WAAW,CAAyB;IACpD,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,QAAgB;QACzC,OAAO,QAAQ,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;IAC3C,CAAC;CACF;AAVD,gDAUC;AAED,MAAa,wBAAwB;IACnC,YACmB,aAAqB,EACrB,WAAmB,EACnB,UAAkB;QAFlB,kBAAa,GAAb,aAAa,CAAQ;QACrB,gBAAW,GAAX,WAAW,CAAQ;QACnB,eAAU,GAAV,UAAU,CAAQ;IAClC,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,QAAgB;QACzC,OAAO,WAAW,IAAI,CAAC,WAAW,0BAA0B,IAAI,CAAC,aAAa,IAAI,QAAQ,EAAE,CAAC;IAC/F,CAAC;CACF;AAVD,4DAUC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface FilterCriteria<T> {
|
|
2
|
+
readonly predicate: (item: T) => boolean;
|
|
3
|
+
}
|
|
4
|
+
export interface TransformArrayOptions<T, R> {
|
|
5
|
+
readonly mapper: (item: T, index: number, array: readonly T[]) => R;
|
|
6
|
+
readonly filter?: FilterCriteria<T>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Transforms an array of objects using a mapper function and optional filter criteria.
|
|
10
|
+
*
|
|
11
|
+
* @template T - The type of input array elements
|
|
12
|
+
* @template R - The type of output array elements
|
|
13
|
+
* @param array - The input array to transform
|
|
14
|
+
* @param options - Transformation options including mapper and optional filter
|
|
15
|
+
* @returns A new transformed array
|
|
16
|
+
*/
|
|
17
|
+
export declare const transformArray: <T, R>(array: readonly T[], options: TransformArrayOptions<T, R>) => readonly R[];
|
|
18
|
+
//# sourceMappingURL=transformArray.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformArray.d.ts","sourceRoot":"","sources":["../../src/utils/transformArray.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;CAC1C;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,EAAE,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;IACpE,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,EACjC,OAAO,SAAS,CAAC,EAAE,EACnB,SAAS,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,KACnC,SAAS,CAAC,EAQZ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.transformArray = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Transforms an array of objects using a mapper function and optional filter criteria.
|
|
6
|
+
*
|
|
7
|
+
* @template T - The type of input array elements
|
|
8
|
+
* @template R - The type of output array elements
|
|
9
|
+
* @param array - The input array to transform
|
|
10
|
+
* @param options - Transformation options including mapper and optional filter
|
|
11
|
+
* @returns A new transformed array
|
|
12
|
+
*/
|
|
13
|
+
const transformArray = (array, options) => {
|
|
14
|
+
const { mapper, filter } = options;
|
|
15
|
+
const filteredArray = filter
|
|
16
|
+
? array.filter(filter.predicate)
|
|
17
|
+
: array;
|
|
18
|
+
return filteredArray.map(mapper);
|
|
19
|
+
};
|
|
20
|
+
exports.transformArray = transformArray;
|
|
21
|
+
//# sourceMappingURL=transformArray.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformArray.js","sourceRoot":"","sources":["../../src/utils/transformArray.ts"],"names":[],"mappings":";;;AASA;;;;;;;;GAQG;AACI,MAAM,cAAc,GAAG,CAC5B,KAAmB,EACnB,OAAoC,EACtB,EAAE;IAChB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEnC,MAAM,aAAa,GAAG,MAAM;QAC1B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;QAChC,CAAC,CAAC,KAAK,CAAC;IAEV,OAAO,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC,CAAC;AAXW,QAAA,cAAc,kBAWzB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type-safe event emitter with strongly-typed event payloads
|
|
3
|
+
*/
|
|
4
|
+
type EventMap = Record<string, (...args: any[]) => void>;
|
|
5
|
+
type EventKey<T extends EventMap> = string & keyof T;
|
|
6
|
+
type EventListener<T extends EventMap, K extends EventKey<T>> = T[K];
|
|
7
|
+
export declare class TypedEventEmitter<T extends EventMap> {
|
|
8
|
+
private listeners;
|
|
9
|
+
on<K extends EventKey<T>>(eventName: K, listener: EventListener<T, K>): this;
|
|
10
|
+
once<K extends EventKey<T>>(eventName: K, listener: EventListener<T, K>): this;
|
|
11
|
+
off<K extends EventKey<T>>(eventName: K, listener: EventListener<T, K>): this;
|
|
12
|
+
emit<K extends EventKey<T>>(eventName: K, ...args: Parameters<EventListener<T, K>>): boolean;
|
|
13
|
+
removeAllListeners<K extends EventKey<T>>(eventName?: K): this;
|
|
14
|
+
listenerCount<K extends EventKey<T>>(eventName: K): number;
|
|
15
|
+
eventNames(): Array<EventKey<T>>;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=TypedEventEmitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypedEventEmitter.d.ts","sourceRoot":"","sources":["../../src/utils/TypedEventEmitter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;AAEzD,KAAK,QAAQ,CAAC,CAAC,SAAS,QAAQ,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC;AACrD,KAAK,aAAa,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAErE,qBAAa,iBAAiB,CAAC,CAAC,SAAS,QAAQ;IAC/C,OAAO,CAAC,SAAS,CACL;IAEZ,EAAE,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IAQ5E,IAAI,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IAS9E,GAAG,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IAW7E,IAAI,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EACxB,SAAS,EAAE,CAAC,EACZ,GAAG,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GACvC,OAAO;IAaV,kBAAkB,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI;IAS9D,aAAa,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM;IAI1D,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;CAGjC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Type-safe event emitter with strongly-typed event payloads
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TypedEventEmitter = void 0;
|
|
7
|
+
class TypedEventEmitter {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.listeners = new Map();
|
|
10
|
+
}
|
|
11
|
+
on(eventName, listener) {
|
|
12
|
+
if (!this.listeners.has(eventName)) {
|
|
13
|
+
this.listeners.set(eventName, new Set());
|
|
14
|
+
}
|
|
15
|
+
this.listeners.get(eventName).add(listener);
|
|
16
|
+
return this;
|
|
17
|
+
}
|
|
18
|
+
once(eventName, listener) {
|
|
19
|
+
const onceWrapper = ((...args) => {
|
|
20
|
+
this.off(eventName, onceWrapper);
|
|
21
|
+
listener(...args);
|
|
22
|
+
});
|
|
23
|
+
return this.on(eventName, onceWrapper);
|
|
24
|
+
}
|
|
25
|
+
off(eventName, listener) {
|
|
26
|
+
const eventListeners = this.listeners.get(eventName);
|
|
27
|
+
if (eventListeners) {
|
|
28
|
+
eventListeners.delete(listener);
|
|
29
|
+
if (eventListeners.size === 0) {
|
|
30
|
+
this.listeners.delete(eventName);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
emit(eventName, ...args) {
|
|
36
|
+
const eventListeners = this.listeners.get(eventName);
|
|
37
|
+
if (!eventListeners || eventListeners.size === 0) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
eventListeners.forEach((listener) => {
|
|
41
|
+
listener(...args);
|
|
42
|
+
});
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
removeAllListeners(eventName) {
|
|
46
|
+
if (eventName) {
|
|
47
|
+
this.listeners.delete(eventName);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this.listeners.clear();
|
|
51
|
+
}
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
listenerCount(eventName) {
|
|
55
|
+
return this.listeners.get(eventName)?.size ?? 0;
|
|
56
|
+
}
|
|
57
|
+
eventNames() {
|
|
58
|
+
return Array.from(this.listeners.keys());
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.TypedEventEmitter = TypedEventEmitter;
|
|
62
|
+
//# sourceMappingURL=TypedEventEmitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypedEventEmitter.js","sourceRoot":"","sources":["../../src/utils/TypedEventEmitter.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAQH,MAAa,iBAAiB;IAA9B;QACU,cAAS,GACf,IAAI,GAAG,EAAE,CAAC;IA8Dd,CAAC;IA5DC,EAAE,CAAwB,SAAY,EAAE,QAA6B;QACnE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,GAAG,CAAC,QAAyC,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAwB,SAAY,EAAE,QAA6B;QACrE,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,IAAqC,EAAE,EAAE;YAChE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,WAAkC,CAAC,CAAC;YACxD,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QACpB,CAAC,CAAwB,CAAC;QAE1B,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,GAAG,CAAwB,SAAY,EAAE,QAA6B;QACpE,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,MAAM,CAAC,QAAyC,CAAC,CAAC;YACjE,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CACF,SAAY,EACZ,GAAG,IAAqC;QAExC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjC,QAAgC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB,CAAwB,SAAa;QACrD,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAwB,SAAY;QAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,UAAU;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;CACF;AAhED,8CAgEC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { User } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Retrieves a user by ID from a Map
|
|
4
|
+
* @param userMap Map containing users indexed by ID
|
|
5
|
+
* @param userId User ID to look up
|
|
6
|
+
* @returns The user object if found, undefined otherwise
|
|
7
|
+
*/
|
|
8
|
+
export declare const getUserById: (userMap: ReadonlyMap<string, User>, userId: string) => User | undefined;
|
|
9
|
+
//# sourceMappingURL=userUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userUtils.d.ts","sourceRoot":"","sources":["../../src/utils/userUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GACtB,SAAS,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAClC,QAAQ,MAAM,KACb,IAAI,GAAG,SAET,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getUserById = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Retrieves a user by ID from a Map
|
|
6
|
+
* @param userMap Map containing users indexed by ID
|
|
7
|
+
* @param userId User ID to look up
|
|
8
|
+
* @returns The user object if found, undefined otherwise
|
|
9
|
+
*/
|
|
10
|
+
const getUserById = (userMap, userId) => {
|
|
11
|
+
return userMap.get(userId);
|
|
12
|
+
};
|
|
13
|
+
exports.getUserById = getUserById;
|
|
14
|
+
//# sourceMappingURL=userUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userUtils.js","sourceRoot":"","sources":["../../src/utils/userUtils.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACI,MAAM,WAAW,GAAG,CACzB,OAAkC,EAClC,MAAc,EACI,EAAE;IACpB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC,CAAC;AALW,QAAA,WAAW,eAKtB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* LLM-as-Judge validator using GitHub Models API
|
|
3
3
|
*/
|
|
4
|
-
import { CodeValidator, TestScenario, ValidationResult } from
|
|
4
|
+
import { CodeValidator, TestScenario, ValidationResult } from "../types";
|
|
5
5
|
export declare class LLMJudgeValidator implements CodeValidator {
|
|
6
6
|
readonly type: "llm-judge";
|
|
7
7
|
private workspaceRoot;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llmJudge.d.ts","sourceRoot":"","sources":["../../src/validators/llmJudge.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,
|
|
1
|
+
{"version":3,"file":"llmJudge.d.ts","sourceRoot":"","sources":["../../src/validators/llmJudge.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EACL,aAAa,EACb,YAAY,EACZ,gBAAgB,EAEjB,MAAM,UAAU,CAAC;AA6DlB,qBAAa,iBAAkB,YAAW,aAAa;IACrD,SAAgB,IAAI,EAAG,WAAW,CAAU;IAC5C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,YAAY,CAAS;gBAEjB,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAyB;IAMpE;;OAEG;IACG,QAAQ,CACZ,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,gBAAgB,CAAC;IA8E5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA+B3B;;OAEG;YACW,UAAU;IA4ExB;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAYjE"}
|
|
@@ -60,8 +60,8 @@ Respond ONLY with valid JSON in this exact format:
|
|
|
60
60
|
"summary": "one sentence summary"
|
|
61
61
|
}`;
|
|
62
62
|
class LLMJudgeValidator {
|
|
63
|
-
constructor(workspaceRoot, model =
|
|
64
|
-
this.type =
|
|
63
|
+
constructor(workspaceRoot, model = "openai/gpt-4.1") {
|
|
64
|
+
this.type = "llm-judge";
|
|
65
65
|
this.workspaceRoot = (0, workspaceUtils_1.resolveWorkspaceRoot)(workspaceRoot);
|
|
66
66
|
this.apiToken = (0, githubAuth_1.getGitHubToken)(); // Auto-detect from env or GitHub CLI
|
|
67
67
|
this.defaultModel = model;
|
|
@@ -75,20 +75,20 @@ class LLMJudgeValidator {
|
|
|
75
75
|
if (!llmConfig?.enabled) {
|
|
76
76
|
return {
|
|
77
77
|
passed: true,
|
|
78
|
-
score: -1,
|
|
78
|
+
score: -1, // Indicate skipped
|
|
79
79
|
violations: [],
|
|
80
|
-
validatorType:
|
|
80
|
+
validatorType: "llm-judge",
|
|
81
81
|
};
|
|
82
82
|
}
|
|
83
83
|
// If no API token, skip
|
|
84
84
|
if (!this.apiToken) {
|
|
85
|
-
console.warn(
|
|
85
|
+
console.warn("GITHUB_TOKEN not found, skipping LLM judge validation");
|
|
86
86
|
return {
|
|
87
87
|
passed: true,
|
|
88
|
-
score: -1,
|
|
88
|
+
score: -1, // Indicate skipped
|
|
89
89
|
violations: [],
|
|
90
|
-
validatorType:
|
|
91
|
-
error:
|
|
90
|
+
validatorType: "llm-judge",
|
|
91
|
+
error: "GITHUB_TOKEN not found",
|
|
92
92
|
};
|
|
93
93
|
}
|
|
94
94
|
try {
|
|
@@ -99,18 +99,18 @@ class LLMJudgeValidator {
|
|
|
99
99
|
if (!fs.existsSync(filePath)) {
|
|
100
100
|
continue;
|
|
101
101
|
}
|
|
102
|
-
const content = fs.readFileSync(filePath,
|
|
102
|
+
const content = fs.readFileSync(filePath, "utf-8");
|
|
103
103
|
const relativePath = path.relative(this.workspaceRoot, filePath);
|
|
104
104
|
fileContents.push({ path: relativePath, content });
|
|
105
105
|
}
|
|
106
106
|
// Build judgment prompt
|
|
107
107
|
const judgmentPrompt = this.buildJudgmentPrompt(scenario, fileContents, llmConfig.judgmentPrompt);
|
|
108
|
-
//
|
|
108
|
+
// Calling LLM API
|
|
109
109
|
const model = llmConfig.model || this.defaultModel;
|
|
110
110
|
const judgment = await this.callLLMAPI(judgmentPrompt, model);
|
|
111
111
|
// Convert judgment to violations
|
|
112
|
-
const violations = (judgment.violations ?? []).map(v => ({
|
|
113
|
-
type:
|
|
112
|
+
const violations = (judgment.violations ?? []).map((v) => ({
|
|
113
|
+
type: "llm-judge",
|
|
114
114
|
message: v.message,
|
|
115
115
|
file: v.file,
|
|
116
116
|
line: v.line,
|
|
@@ -121,7 +121,7 @@ class LLMJudgeValidator {
|
|
|
121
121
|
passed: judgment.passed,
|
|
122
122
|
score: judgment.score,
|
|
123
123
|
violations,
|
|
124
|
-
validatorType:
|
|
124
|
+
validatorType: "llm-judge",
|
|
125
125
|
};
|
|
126
126
|
}
|
|
127
127
|
catch (error) {
|
|
@@ -129,7 +129,7 @@ class LLMJudgeValidator {
|
|
|
129
129
|
passed: false,
|
|
130
130
|
score: 0,
|
|
131
131
|
violations: [],
|
|
132
|
-
validatorType:
|
|
132
|
+
validatorType: "llm-judge",
|
|
133
133
|
error: `LLM judge failed: ${error}`,
|
|
134
134
|
};
|
|
135
135
|
}
|
|
@@ -138,48 +138,47 @@ class LLMJudgeValidator {
|
|
|
138
138
|
* Build the judgment prompt for the LLM
|
|
139
139
|
*/
|
|
140
140
|
buildJudgmentPrompt(scenario, fileContents, customPrompt) {
|
|
141
|
-
if (customPrompt) {
|
|
142
|
-
return customPrompt;
|
|
143
|
-
}
|
|
144
141
|
const filesSection = fileContents
|
|
145
|
-
.map(f => `### ${f.path}\n\`\`\`\n${f.content}\n\`\`\``)
|
|
146
|
-
.join(
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
# Original Prompt Given to AI
|
|
151
|
-
${scenario.prompt}
|
|
152
|
-
|
|
153
|
-
# Generated Code
|
|
154
|
-
${filesSection}
|
|
155
|
-
|
|
156
|
-
# Evaluation Criteria
|
|
157
|
-
Evaluate whether the generated code:
|
|
142
|
+
.map((f) => `### ${f.path}\n\`\`\`\n${f.content}\n\`\`\``)
|
|
143
|
+
.join("\n\n");
|
|
144
|
+
const evaluationCriteria = customPrompt ||
|
|
145
|
+
`Evaluate whether the generated code:
|
|
158
146
|
1. Correctly implements the requirements from the prompt
|
|
159
147
|
2. Follows best practices for ${scenario.category}
|
|
160
148
|
3. Meets the quality standards for a ${scenario.severity} severity scenario
|
|
161
149
|
|
|
162
150
|
Be strict but fair in your evaluation.`;
|
|
151
|
+
return `# Task Description
|
|
152
|
+
${scenario.description}
|
|
153
|
+
|
|
154
|
+
# Original Prompt Given to AI
|
|
155
|
+
${scenario.prompt}
|
|
156
|
+
|
|
157
|
+
# Generated Code
|
|
158
|
+
${filesSection}
|
|
159
|
+
|
|
160
|
+
# Evaluation Criteria
|
|
161
|
+
${evaluationCriteria}`;
|
|
163
162
|
}
|
|
164
163
|
/**
|
|
165
164
|
* Call the GitHub Models API (or other LLM API)
|
|
166
165
|
*/
|
|
167
166
|
async callLLMAPI(prompt, model) {
|
|
168
|
-
const apiUrl =
|
|
167
|
+
const apiUrl = "https://models.github.ai/inference/chat/completions";
|
|
169
168
|
const response = await fetch(apiUrl, {
|
|
170
|
-
method:
|
|
169
|
+
method: "POST",
|
|
171
170
|
headers: {
|
|
172
|
-
|
|
171
|
+
"Content-Type": "application/json",
|
|
173
172
|
Authorization: `Bearer ${this.apiToken}`,
|
|
174
173
|
},
|
|
175
174
|
body: JSON.stringify({
|
|
176
175
|
model,
|
|
177
176
|
messages: [
|
|
178
|
-
{ role:
|
|
179
|
-
{ role:
|
|
177
|
+
{ role: "system", content: judgeSystemPrompt },
|
|
178
|
+
{ role: "user", content: prompt },
|
|
180
179
|
],
|
|
181
180
|
temperature: 0,
|
|
182
|
-
response_format: { type:
|
|
181
|
+
response_format: { type: "json_object" },
|
|
183
182
|
}),
|
|
184
183
|
});
|
|
185
184
|
if (!response.ok) {
|
|
@@ -189,7 +188,7 @@ Be strict but fair in your evaluation.`;
|
|
|
189
188
|
const data = (await response.json());
|
|
190
189
|
const content = data.choices[0]?.message?.content;
|
|
191
190
|
if (!content) {
|
|
192
|
-
throw new Error(
|
|
191
|
+
throw new Error("No content in LLM response");
|
|
193
192
|
}
|
|
194
193
|
// Parse JSON response
|
|
195
194
|
try {
|
|
@@ -198,13 +197,13 @@ Be strict but fair in your evaluation.`;
|
|
|
198
197
|
if (!Array.isArray(apiResponse.evaluations) ||
|
|
199
198
|
apiResponse.overallScore == null ||
|
|
200
199
|
apiResponse.summary == null) {
|
|
201
|
-
throw new Error(
|
|
200
|
+
throw new Error("Invalid judgment structure");
|
|
202
201
|
}
|
|
203
202
|
// Transform API response to internal judgment format
|
|
204
203
|
// Extract violations from FAIL evaluations
|
|
205
204
|
const violations = apiResponse.evaluations
|
|
206
|
-
.filter(e => e.result ===
|
|
207
|
-
.map(e => ({
|
|
205
|
+
.filter((e) => e.result === "FAIL")
|
|
206
|
+
.map((e) => ({
|
|
208
207
|
message: `${e.criterion}: ${e.explanation}`,
|
|
209
208
|
}));
|
|
210
209
|
// Determine if passed based on violations and score threshold
|
|
@@ -226,7 +225,7 @@ Be strict but fair in your evaluation.`;
|
|
|
226
225
|
*/
|
|
227
226
|
async testJudge(prompt, model) {
|
|
228
227
|
if (!this.apiToken) {
|
|
229
|
-
return
|
|
228
|
+
return "Error: GITHUB_TOKEN not found";
|
|
230
229
|
}
|
|
231
230
|
try {
|
|
232
231
|
const result = await this.callLLMAPI(prompt, model || this.defaultModel);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llmJudge.js","sourceRoot":"","sources":["../../src/validators/llmJudge.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;
|
|
1
|
+
{"version":3,"file":"llmJudge.js","sourceRoot":"","sources":["../../src/validators/llmJudge.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "coding-agent-benchmarks",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Testing coding agents (GitHub Copilot CLI, Claude Code, etc.) with your repo's context to evaluate their code generation quality.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"license": "MIT",
|
|
42
42
|
"repository": {
|
|
43
43
|
"type": "git",
|
|
44
|
-
"url": "https://github.com/chiItepin/coding-agent-benchmarks"
|
|
44
|
+
"url": "https://github.com/chiItepin/coding-agent-benchmarks.git"
|
|
45
45
|
},
|
|
46
46
|
"engines": {
|
|
47
47
|
"node": ">=18.0.0"
|