ppef 1.1.0 → 1.2.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.
Files changed (171) hide show
  1. package/README.md +76 -125
  2. package/dist/__tests__/cli/evaluate-command.integration.test.d.ts +8 -0
  3. package/dist/__tests__/cli/evaluate-command.integration.test.d.ts.map +1 -0
  4. package/dist/__tests__/cli/evaluate-command.integration.test.js +308 -0
  5. package/dist/__tests__/cli/evaluate-command.integration.test.js.map +1 -0
  6. package/dist/__tests__/evaluators/claims-evaluator.unit.test.d.ts +8 -0
  7. package/dist/__tests__/evaluators/claims-evaluator.unit.test.d.ts.map +1 -0
  8. package/dist/__tests__/evaluators/claims-evaluator.unit.test.js +405 -0
  9. package/dist/__tests__/evaluators/claims-evaluator.unit.test.js.map +1 -0
  10. package/dist/__tests__/evaluators/metrics-evaluator.unit.test.d.ts +8 -0
  11. package/dist/__tests__/evaluators/metrics-evaluator.unit.test.d.ts.map +1 -0
  12. package/dist/__tests__/evaluators/metrics-evaluator.unit.test.js +424 -0
  13. package/dist/__tests__/evaluators/metrics-evaluator.unit.test.js.map +1 -0
  14. package/dist/__tests__/evaluators/registry.unit.test.d.ts +7 -0
  15. package/dist/__tests__/evaluators/registry.unit.test.d.ts.map +1 -0
  16. package/dist/__tests__/evaluators/registry.unit.test.js +173 -0
  17. package/dist/__tests__/evaluators/registry.unit.test.js.map +1 -0
  18. package/dist/__tests__/evaluators/robustness-evaluator.unit.test.d.ts +8 -0
  19. package/dist/__tests__/evaluators/robustness-evaluator.unit.test.d.ts.map +1 -0
  20. package/dist/__tests__/evaluators/robustness-evaluator.unit.test.js +260 -0
  21. package/dist/__tests__/evaluators/robustness-evaluator.unit.test.js.map +1 -0
  22. package/dist/__tests__/framework-pipeline.integration.test.js +36 -9
  23. package/dist/__tests__/framework-pipeline.integration.test.js.map +1 -1
  24. package/dist/__tests__/index-exports.unit.test.js +9 -12
  25. package/dist/__tests__/index-exports.unit.test.js.map +1 -1
  26. package/dist/aggregation/pipeline.d.ts.map +1 -1
  27. package/dist/aggregation/pipeline.js +40 -3
  28. package/dist/aggregation/pipeline.js.map +1 -1
  29. package/dist/claims/index.d.ts +6 -3
  30. package/dist/claims/index.d.ts.map +1 -1
  31. package/dist/claims/index.js +6 -3
  32. package/dist/claims/index.js.map +1 -1
  33. package/dist/cli/__tests__/aggregate.command.unit.test.js +3 -0
  34. package/dist/cli/__tests__/aggregate.command.unit.test.js.map +1 -1
  35. package/dist/cli/__tests__/binary-sut.integration.test.d.ts +8 -0
  36. package/dist/cli/__tests__/binary-sut.integration.test.d.ts.map +1 -0
  37. package/dist/cli/__tests__/binary-sut.integration.test.js +165 -0
  38. package/dist/cli/__tests__/binary-sut.integration.test.js.map +1 -0
  39. package/dist/cli/__tests__/config-loader.unit.test.d.ts +7 -0
  40. package/dist/cli/__tests__/config-loader.unit.test.d.ts.map +1 -0
  41. package/dist/cli/__tests__/config-loader.unit.test.js +611 -0
  42. package/dist/cli/__tests__/config-loader.unit.test.js.map +1 -0
  43. package/dist/cli/command-deps.d.ts +13 -1
  44. package/dist/cli/command-deps.d.ts.map +1 -1
  45. package/dist/cli/commands/aggregate.d.ts.map +1 -1
  46. package/dist/cli/commands/aggregate.js +3 -0
  47. package/dist/cli/commands/aggregate.js.map +1 -1
  48. package/dist/cli/commands/evaluate.d.ts +41 -0
  49. package/dist/cli/commands/evaluate.d.ts.map +1 -0
  50. package/dist/cli/commands/evaluate.js +287 -0
  51. package/dist/cli/commands/evaluate.js.map +1 -0
  52. package/dist/cli/commands/run.d.ts.map +1 -1
  53. package/dist/cli/commands/run.js +93 -1
  54. package/dist/cli/commands/run.js.map +1 -1
  55. package/dist/cli/index.d.ts +2 -1
  56. package/dist/cli/index.d.ts.map +1 -1
  57. package/dist/cli/index.js +3 -1
  58. package/dist/cli/index.js.map +1 -1
  59. package/dist/cli/module-loader.d.ts +23 -1
  60. package/dist/cli/module-loader.d.ts.map +1 -1
  61. package/dist/cli/module-loader.js +19 -1
  62. package/dist/cli/module-loader.js.map +1 -1
  63. package/dist/cli/types.d.ts +19 -0
  64. package/dist/cli/types.d.ts.map +1 -1
  65. package/dist/evaluators/claims-evaluator.d.ts +87 -0
  66. package/dist/evaluators/claims-evaluator.d.ts.map +1 -0
  67. package/dist/evaluators/claims-evaluator.js +289 -0
  68. package/dist/evaluators/claims-evaluator.js.map +1 -0
  69. package/dist/evaluators/exploratory-evaluator.d.ts +136 -0
  70. package/dist/evaluators/exploratory-evaluator.d.ts.map +1 -0
  71. package/dist/evaluators/exploratory-evaluator.js +545 -0
  72. package/dist/evaluators/exploratory-evaluator.js.map +1 -0
  73. package/dist/evaluators/index.d.ts +13 -0
  74. package/dist/evaluators/index.d.ts.map +1 -0
  75. package/dist/evaluators/index.js +14 -0
  76. package/dist/evaluators/index.js.map +1 -0
  77. package/dist/evaluators/metrics-evaluator.d.ts +114 -0
  78. package/dist/evaluators/metrics-evaluator.d.ts.map +1 -0
  79. package/dist/evaluators/metrics-evaluator.js +433 -0
  80. package/dist/evaluators/metrics-evaluator.js.map +1 -0
  81. package/dist/evaluators/registry.d.ts +106 -0
  82. package/dist/evaluators/registry.d.ts.map +1 -0
  83. package/dist/evaluators/registry.js +148 -0
  84. package/dist/evaluators/registry.js.map +1 -0
  85. package/dist/evaluators/robustness-evaluator.d.ts +57 -0
  86. package/dist/evaluators/robustness-evaluator.d.ts.map +1 -0
  87. package/dist/evaluators/robustness-evaluator.js +186 -0
  88. package/dist/evaluators/robustness-evaluator.js.map +1 -0
  89. package/dist/executor/__tests__/binary-sut.unit.test.d.ts +8 -0
  90. package/dist/executor/__tests__/binary-sut.unit.test.d.ts.map +1 -0
  91. package/dist/executor/__tests__/binary-sut.unit.test.js +313 -0
  92. package/dist/executor/__tests__/binary-sut.unit.test.js.map +1 -0
  93. package/dist/executor/__tests__/checkpoint-storage.unit.test.js +43 -0
  94. package/dist/executor/__tests__/checkpoint-storage.unit.test.js.map +1 -1
  95. package/dist/executor/__tests__/executor.unit.test.js +56 -9
  96. package/dist/executor/__tests__/executor.unit.test.js.map +1 -1
  97. package/dist/executor/__tests__/resource-calculator.unit.test.d.ts +10 -0
  98. package/dist/executor/__tests__/resource-calculator.unit.test.d.ts.map +1 -0
  99. package/dist/executor/__tests__/resource-calculator.unit.test.js +104 -0
  100. package/dist/executor/__tests__/resource-calculator.unit.test.js.map +1 -0
  101. package/dist/executor/__tests__/worker-threads-executor.unit.test.d.ts +8 -0
  102. package/dist/executor/__tests__/worker-threads-executor.unit.test.d.ts.map +1 -0
  103. package/dist/executor/__tests__/worker-threads-executor.unit.test.js +276 -0
  104. package/dist/executor/__tests__/worker-threads-executor.unit.test.js.map +1 -0
  105. package/dist/executor/binary-sut.d.ts +105 -0
  106. package/dist/executor/binary-sut.d.ts.map +1 -0
  107. package/dist/executor/binary-sut.js +174 -0
  108. package/dist/executor/binary-sut.js.map +1 -0
  109. package/dist/executor/checkpoint-storage.d.ts.map +1 -1
  110. package/dist/executor/checkpoint-storage.js +6 -4
  111. package/dist/executor/checkpoint-storage.js.map +1 -1
  112. package/dist/executor/executor.d.ts +28 -0
  113. package/dist/executor/executor.d.ts.map +1 -1
  114. package/dist/executor/executor.js +85 -24
  115. package/dist/executor/executor.js.map +1 -1
  116. package/dist/executor/index.d.ts +4 -0
  117. package/dist/executor/index.d.ts.map +1 -1
  118. package/dist/executor/index.js +4 -0
  119. package/dist/executor/index.js.map +1 -1
  120. package/dist/executor/resource-calculator.d.ts +49 -0
  121. package/dist/executor/resource-calculator.d.ts.map +1 -0
  122. package/dist/executor/resource-calculator.js +129 -0
  123. package/dist/executor/resource-calculator.js.map +1 -0
  124. package/dist/executor/worker-entry.js +26 -10
  125. package/dist/executor/worker-entry.js.map +1 -1
  126. package/dist/executor/worker-executor.d.ts +104 -3
  127. package/dist/executor/worker-executor.d.ts.map +1 -1
  128. package/dist/executor/worker-executor.js +224 -4
  129. package/dist/executor/worker-executor.js.map +1 -1
  130. package/dist/executor/worker-threads-executor.d.ts +245 -0
  131. package/dist/executor/worker-threads-executor.d.ts.map +1 -0
  132. package/dist/executor/worker-threads-executor.js +332 -0
  133. package/dist/executor/worker-threads-executor.js.map +1 -0
  134. package/dist/index.d.ts +1 -0
  135. package/dist/index.d.ts.map +1 -1
  136. package/dist/index.js +4 -2
  137. package/dist/index.js.map +1 -1
  138. package/dist/renderers/latex-renderer.d.ts +60 -0
  139. package/dist/renderers/latex-renderer.d.ts.map +1 -1
  140. package/dist/renderers/latex-renderer.js +299 -0
  141. package/dist/renderers/latex-renderer.js.map +1 -1
  142. package/dist/renderers/types.d.ts +9 -0
  143. package/dist/renderers/types.d.ts.map +1 -1
  144. package/dist/renderers/types.js.map +1 -1
  145. package/dist/robustness/index.d.ts +5 -2
  146. package/dist/robustness/index.d.ts.map +1 -1
  147. package/dist/robustness/index.js +4 -2
  148. package/dist/robustness/index.js.map +1 -1
  149. package/dist/types/evaluator.d.ts +449 -0
  150. package/dist/types/evaluator.d.ts.map +1 -0
  151. package/dist/types/evaluator.js +9 -0
  152. package/dist/types/evaluator.js.map +1 -0
  153. package/dist/types/result.d.ts +2 -0
  154. package/dist/types/result.d.ts.map +1 -1
  155. package/package.json +2 -2
  156. package/dist/claims/__tests__/evaluator.unit.test.d.ts +0 -12
  157. package/dist/claims/__tests__/evaluator.unit.test.d.ts.map +0 -1
  158. package/dist/claims/__tests__/evaluator.unit.test.js +0 -801
  159. package/dist/claims/__tests__/evaluator.unit.test.js.map +0 -1
  160. package/dist/claims/evaluator.d.ts +0 -33
  161. package/dist/claims/evaluator.d.ts.map +0 -1
  162. package/dist/claims/evaluator.js +0 -174
  163. package/dist/claims/evaluator.js.map +0 -1
  164. package/dist/robustness/__tests__/analyzer.unit.test.d.ts +0 -11
  165. package/dist/robustness/__tests__/analyzer.unit.test.d.ts.map +0 -1
  166. package/dist/robustness/__tests__/analyzer.unit.test.js +0 -455
  167. package/dist/robustness/__tests__/analyzer.unit.test.js.map +0 -1
  168. package/dist/robustness/analyzer.d.ts +0 -61
  169. package/dist/robustness/analyzer.d.ts.map +0 -1
  170. package/dist/robustness/analyzer.js +0 -191
  171. package/dist/robustness/analyzer.js.map +0 -1
@@ -48,6 +48,17 @@ export interface ICaseDefinition {
48
48
  export interface IMetricsExtractor {
49
49
  extract: (result: unknown, input: unknown) => Record<string, number>;
50
50
  }
51
+ /**
52
+ * Binary SUT configuration interface.
53
+ */
54
+ export interface IBinaryConfig {
55
+ type: "binary";
56
+ command: string;
57
+ args?: string[];
58
+ inputFormat?: "json" | "raw" | "lines";
59
+ outputFormat?: "json" | "raw" | "lines";
60
+ timeout?: number;
61
+ }
51
62
  /**
52
63
  * Module loader interface for dynamic imports.
53
64
  */
@@ -60,7 +71,7 @@ export interface IModuleLoader {
60
71
  config: unknown;
61
72
  tags: string[];
62
73
  description?: string;
63
- }, sutConfig: unknown): Promise<ISutFactory>;
74
+ }, sutConfig: unknown, binaryConfig?: IBinaryConfig): Promise<ISutFactory>;
64
75
  loadCaseDefinition(module: string, exportName: string, baseDir: string): Promise<ICaseDefinition>;
65
76
  loadMetricsExtractor(module: string, exportName: string, baseDir: string): Promise<IMetricsExtractor>;
66
77
  }
@@ -99,6 +110,7 @@ export interface IExecutor {
99
110
  */
100
111
  export interface IFileSystem {
101
112
  readFile(path: string, encoding: string): Promise<string>;
113
+ writeFile(path: string, data: string, encoding: string): Promise<void>;
102
114
  }
103
115
  /**
104
116
  * Aggregator interface.
@@ -1 +1 @@
1
- {"version":3,"file":"command-deps.d.ts","sourceRoot":"","sources":["../../src/cli/command-deps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-deps.d.ts","sourceRoot":"","sources":["../../src/cli/command-deps.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/aggregate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIlG;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACrC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE;IACR,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B,EACD,YAAY,EAAE;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,WAAW,CAAC;IACxB,UAAU,EAAE,WAAW,CAAC;IACxB,YAAY,EAAE,aAAa,CAAC;IAC5B,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;CACrC,GACC,OAAO,CAAC,IAAI,CAAC,CAgFf;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwC/D"}
1
+ {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/aggregate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIlG;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACrC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE;IACR,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B,EACD,YAAY,EAAE;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,WAAW,CAAC;IACxB,UAAU,EAAE,WAAW,CAAC;IACxB,YAAY,EAAE,aAAa,CAAC;IAC5B,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;CACrC,GACC,OAAO,CAAC,IAAI,CAAC,CAgFf;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2C/D"}
@@ -111,6 +111,9 @@ export function registerAggregateCommand(program) {
111
111
  logger,
112
112
  fileSystem: {
113
113
  readFile: (path, encoding) => readFile(path, encoding),
114
+ writeFile: async () => {
115
+ // Do nothing for CLI aggregate command
116
+ },
114
117
  },
115
118
  aggregator: { aggregateResults, createAggregationOutput },
116
119
  outputWriter: { writeAggregates },
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../src/cli/commands/aggregate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../src/cli/commands/aggregate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Evaluate Command
3
+ *
4
+ * Evaluates results using the extensible evaluator system.
5
+ * Supports claims, robustness, metrics, and custom evaluators.
6
+ */
7
+ import type { Command } from "commander";
8
+ import type { ICommandLogger, IFileSystem } from "../command-deps.js";
9
+ import type { EvaluationType } from "../../types/evaluator.js";
10
+ /**
11
+ * Supported output formats.
12
+ */
13
+ type OutputFormat = "json" | "json-pretty" | "latex" | "markdown";
14
+ /**
15
+ * Execute evaluate command with injected dependencies.
16
+ *
17
+ * This function is exported for testing.
18
+ *
19
+ * @param aggregatesFile - Path to aggregates JSON file
20
+ * @param options - Command options
21
+ * @param dependencies - Injected dependencies
22
+ */
23
+ export declare function executeEvaluate(aggregatesFile: string, options: {
24
+ type: EvaluationType;
25
+ config?: string;
26
+ output?: string;
27
+ format?: OutputFormat;
28
+ verbose?: boolean;
29
+ }, dependencies: {
30
+ logger: ICommandLogger;
31
+ fileSystem: IFileSystem;
32
+ processExit: (code: number) => never;
33
+ }): Promise<void>;
34
+ /**
35
+ * Register the evaluate command.
36
+ *
37
+ * @param program - Commander program instance
38
+ */
39
+ export declare function registerEvaluateCommand(program: Command): void;
40
+ export {};
41
+ //# sourceMappingURL=evaluate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/evaluate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAGX,cAAc,EAKd,MAAM,0BAA0B,CAAC;AAKlC;;GAEG;AACH,KAAK,YAAY,GAAG,MAAM,GAAG,aAAa,GAAG,OAAO,GAAG,UAAU,CAAC;AAElE;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACpC,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE;IACR,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,EACD,YAAY,EAAE;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,WAAW,CAAC;IACxB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;CACrC,GACC,OAAO,CAAC,IAAI,CAAC,CAuQf;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwC9D"}
@@ -0,0 +1,287 @@
1
+ /**
2
+ * Evaluate Command
3
+ *
4
+ * Evaluates results using the extensible evaluator system.
5
+ * Supports claims, robustness, metrics, and custom evaluators.
6
+ */
7
+ import { readFile, writeFile } from "node:fs/promises";
8
+ import { EvaluatorRegistry, ClaimsEvaluator, RobustnessEvaluator, MetricsEvaluator, } from "../../evaluators/index.js";
9
+ import { LaTeXRenderer } from "../../renderers/latex-renderer.js";
10
+ /**
11
+ * Execute evaluate command with injected dependencies.
12
+ *
13
+ * This function is exported for testing.
14
+ *
15
+ * @param aggregatesFile - Path to aggregates JSON file
16
+ * @param options - Command options
17
+ * @param dependencies - Injected dependencies
18
+ */
19
+ export async function executeEvaluate(aggregatesFile, options, dependencies) {
20
+ const { logger, fileSystem, processExit } = dependencies;
21
+ try {
22
+ logger.header("Evaluating Results");
23
+ // Load aggregates
24
+ logger.info(`Reading aggregates from: ${aggregatesFile}`);
25
+ const content = await fileSystem.readFile(aggregatesFile, "utf-8");
26
+ const data = JSON.parse(content);
27
+ // Determine if file has aggregates or raw results
28
+ const hasAggregates = data.aggregates && Array.isArray(data.aggregates);
29
+ const hasResults = data.results && Array.isArray(data.results);
30
+ let aggregates;
31
+ let rawResults;
32
+ if (hasAggregates) {
33
+ aggregates = data.aggregates;
34
+ logger.info(`Found ${aggregates.length} aggregated results`);
35
+ }
36
+ else if (hasResults) {
37
+ // Need to aggregate first
38
+ logger.info(`Found ${data.results?.length ?? 0} raw results - need to aggregate first`);
39
+ logger.error("Please run 'ppef aggregate' on the results file first, or use an aggregates file");
40
+ processExit(1);
41
+ return; // Type narrowing
42
+ }
43
+ else {
44
+ throw new Error("Invalid file: must contain 'aggregates' or 'results' array");
45
+ }
46
+ // Load evaluator config
47
+ let evaluatorConfig;
48
+ if (options.config) {
49
+ logger.info(`Loading evaluator config from: ${options.config}`);
50
+ const configContent = await fileSystem.readFile(options.config, "utf-8");
51
+ evaluatorConfig = JSON.parse(configContent);
52
+ }
53
+ else {
54
+ logger.warn("No evaluator config provided - using default empty config");
55
+ evaluatorConfig = {};
56
+ }
57
+ // Get evaluator from registry using type-safe retrieval
58
+ logger.info(`Evaluator type: ${options.type}`);
59
+ // Type-safe evaluator retrieval and execution
60
+ let output;
61
+ let summary;
62
+ switch (options.type) {
63
+ case "claims": {
64
+ const evaluator = EvaluatorRegistry.getAs("claims", ClaimsEvaluator);
65
+ if (!evaluator) {
66
+ logger.error(`Evaluator not found for type: claims`);
67
+ processExit(1);
68
+ return; // Type narrowing
69
+ }
70
+ // Validate config
71
+ logger.subheader("Validating evaluator configuration...");
72
+ const validation = evaluator.validateConfig(evaluatorConfig);
73
+ if (!validation.valid) {
74
+ logger.error("Evaluator configuration validation failed:");
75
+ for (const error of validation.errors ?? []) {
76
+ logger.error(` - ${error}`);
77
+ }
78
+ processExit(1);
79
+ return; // Type narrowing
80
+ }
81
+ if (validation.warnings && validation.warnings.length > 0) {
82
+ logger.warn("Configuration warnings:");
83
+ for (const warning of validation.warnings) {
84
+ logger.warn(` - ${warning}`);
85
+ }
86
+ }
87
+ logger.info("Configuration valid");
88
+ // Prepare evaluation context
89
+ const context = {
90
+ aggregates,
91
+ rawResults,
92
+ metadata: {
93
+ source: aggregatesFile,
94
+ },
95
+ };
96
+ // Run evaluation
97
+ logger.subheader("Running evaluation...");
98
+ const evalOutput = evaluator.evaluate(evaluatorConfig, context);
99
+ output = evalOutput;
100
+ summary = evaluator.summarize(evalOutput);
101
+ break;
102
+ }
103
+ case "robustness": {
104
+ const evaluator = EvaluatorRegistry.getAs("robustness", RobustnessEvaluator);
105
+ if (!evaluator) {
106
+ logger.error(`Evaluator not found for type: robustness`);
107
+ processExit(1);
108
+ return; // Type narrowing
109
+ }
110
+ // Validate config
111
+ logger.subheader("Validating evaluator configuration...");
112
+ const validation = evaluator.validateConfig(evaluatorConfig);
113
+ if (!validation.valid) {
114
+ logger.error("Evaluator configuration validation failed:");
115
+ for (const error of validation.errors ?? []) {
116
+ logger.error(` - ${error}`);
117
+ }
118
+ processExit(1);
119
+ return; // Type narrowing
120
+ }
121
+ if (validation.warnings && validation.warnings.length > 0) {
122
+ logger.warn("Configuration warnings:");
123
+ for (const warning of validation.warnings) {
124
+ logger.warn(` - ${warning}`);
125
+ }
126
+ }
127
+ logger.info("Configuration valid");
128
+ // Robustness evaluator requires raw results, not aggregates
129
+ if (!rawResults || rawResults.length === 0) {
130
+ logger.error("Robustness evaluation requires raw results, but none found");
131
+ processExit(1);
132
+ return; // Type narrowing
133
+ }
134
+ // Run evaluation
135
+ logger.subheader("Running evaluation...");
136
+ const evalOutput = evaluator.evaluate(evaluatorConfig, rawResults);
137
+ output = evalOutput;
138
+ summary = evaluator.summarize(evalOutput);
139
+ break;
140
+ }
141
+ case "metrics": {
142
+ const evaluator = EvaluatorRegistry.getAs("metrics", MetricsEvaluator);
143
+ if (!evaluator) {
144
+ logger.error(`Evaluator not found for type: metrics`);
145
+ processExit(1);
146
+ return; // Type narrowing
147
+ }
148
+ // Validate config
149
+ logger.subheader("Validating evaluator configuration...");
150
+ const validation = evaluator.validateConfig(evaluatorConfig);
151
+ if (!validation.valid) {
152
+ logger.error("Evaluator configuration validation failed:");
153
+ for (const error of validation.errors ?? []) {
154
+ logger.error(` - ${error}`);
155
+ }
156
+ processExit(1);
157
+ return; // Type narrowing
158
+ }
159
+ if (validation.warnings && validation.warnings.length > 0) {
160
+ logger.warn("Configuration warnings:");
161
+ for (const warning of validation.warnings) {
162
+ logger.warn(` - ${warning}`);
163
+ }
164
+ }
165
+ logger.info("Configuration valid");
166
+ // Prepare evaluation context
167
+ const context = {
168
+ aggregates,
169
+ rawResults,
170
+ metadata: {
171
+ source: aggregatesFile,
172
+ },
173
+ };
174
+ // Run evaluation
175
+ logger.subheader("Running evaluation...");
176
+ const evalOutput = evaluator.evaluate(evaluatorConfig, context);
177
+ output = evalOutput;
178
+ summary = evaluator.summarize(evalOutput);
179
+ break;
180
+ }
181
+ default:
182
+ logger.error(`Unsupported evaluator type: ${options.type}`);
183
+ processExit(1);
184
+ return; // Type narrowing
185
+ }
186
+ logger.info(`Evaluation complete: ${output.type}`);
187
+ // Display summary
188
+ if (options.verbose) {
189
+ logger.subheader("Evaluation Summary");
190
+ logger.info(`Total items: ${summary.total}`);
191
+ if (summary.passed !== undefined) {
192
+ logger.info(`Passed: ${summary.passed}`);
193
+ }
194
+ if (summary.failed !== undefined) {
195
+ logger.info(`Failed: ${summary.failed}`);
196
+ }
197
+ if (summary.inconclusive !== undefined) {
198
+ logger.info(`Inconclusive: ${summary.inconclusive}`);
199
+ }
200
+ if (summary.passRate !== undefined) {
201
+ logger.info(`Pass rate: ${(summary.passRate * 100).toFixed(1)}%`);
202
+ }
203
+ if (summary.additional) {
204
+ logger.info(`Additional:`);
205
+ for (const [key, value] of Object.entries(summary.additional)) {
206
+ logger.info(` ${key}: ${value}`);
207
+ }
208
+ }
209
+ }
210
+ // Determine output path
211
+ const format = options.format ?? "json-pretty";
212
+ const defaultOutputName = aggregatesFile.replace(/-aggregates/, `-evaluation-${options.type}`);
213
+ const outputPath = options.output ?? defaultOutputName;
214
+ // Format and write output
215
+ logger.subheader("Writing output...");
216
+ let outputContent;
217
+ let outputFilename;
218
+ if (format === "latex") {
219
+ // Use LaTeX renderer
220
+ const renderer = new LaTeXRenderer();
221
+ const rendered = renderer.renderEvaluation(output);
222
+ outputContent = rendered.content;
223
+ outputFilename = rendered.filename;
224
+ if (options.output) {
225
+ outputFilename = options.output;
226
+ }
227
+ await fileSystem.writeFile(outputFilename, outputContent, "utf-8");
228
+ }
229
+ else {
230
+ // JSON output
231
+ outputContent =
232
+ format === "json-pretty" ? JSON.stringify(output, null, 2) : JSON.stringify(output);
233
+ outputFilename = outputPath.endsWith(".json") ? outputPath : `${outputPath}.json`;
234
+ await fileSystem.writeFile(outputFilename, outputContent, "utf-8");
235
+ }
236
+ logger.info(`Output written to: ${outputFilename}`);
237
+ logger.info("");
238
+ logger.info("Evaluation completed successfully!");
239
+ }
240
+ catch (error) {
241
+ if (error instanceof Error) {
242
+ logger.error(error.message);
243
+ if (options.verbose && error.stack) {
244
+ logger.debug(error.stack);
245
+ }
246
+ }
247
+ else {
248
+ logger.error(String(error));
249
+ }
250
+ processExit(1);
251
+ }
252
+ }
253
+ /**
254
+ * Register the evaluate command.
255
+ *
256
+ * @param program - Commander program instance
257
+ */
258
+ export function registerEvaluateCommand(program) {
259
+ program
260
+ .command("evaluate")
261
+ .description("Evaluate results using the extensible evaluator system")
262
+ .argument("<aggregates-file>", "Path to aggregates JSON file")
263
+ .requiredOption("-t, --type <type>", "Evaluation type (claims|robustness|metrics|custom)")
264
+ .option("-c, --config <path>", "Evaluator configuration JSON file")
265
+ .option("-o, --output <path>", "Output file path")
266
+ .option("-f, --format <format>", "Output format (json|json-pretty|latex|markdown)", "json-pretty")
267
+ .option("-v, --verbose", "Verbose output with summary statistics")
268
+ .action(async (aggregatesFile, options) => {
269
+ const { createLogger } = await import("../logger.js");
270
+ const logger = createLogger();
271
+ await executeEvaluate(aggregatesFile, {
272
+ type: options.type,
273
+ config: options.config,
274
+ output: options.output,
275
+ format: options.format,
276
+ verbose: options.verbose,
277
+ }, {
278
+ logger,
279
+ fileSystem: {
280
+ readFile: (path, encoding) => readFile(path, encoding),
281
+ writeFile: (path, data, encoding) => writeFile(path, data, encoding),
282
+ },
283
+ processExit: (code) => process.exit(code),
284
+ });
285
+ });
286
+ }
287
+ //# sourceMappingURL=evaluate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../../src/cli/commands/evaluate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,EACN,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,GAChB,MAAM,2BAA2B,CAAC;AAanC,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAOlE;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,cAAsB,EACtB,OAMC,EACD,YAIC;IAED,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC;IAEzD,IAAI,CAAC;QACJ,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAEpC,kBAAkB;QAClB,MAAM,CAAC,IAAI,CAAC,4BAA4B,cAAc,EAAE,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoD,CAAC;QAEpF,kDAAkD;QAClD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE/D,IAAI,UAA8B,CAAC;QACnC,IAAI,UAA0C,CAAC;QAE/C,IAAI,aAAa,EAAE,CAAC;YACnB,UAAU,GAAG,IAAI,CAAC,UAAgC,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,MAAM,qBAAqB,CAAC,CAAC;QAC9D,CAAC;aAAM,IAAI,UAAU,EAAE,CAAC;YACvB,0BAA0B;YAC1B,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACxF,MAAM,CAAC,KAAK,CACX,kFAAkF,CAClF,CAAC;YACF,WAAW,CAAC,CAAC,CAAC,CAAC;YACf,OAAO,CAAC,iBAAiB;QAC1B,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC/E,CAAC;QAED,wBAAwB;QACxB,IAAI,eAAgC,CAAC;QACrC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,kCAAkC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAChE,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACzE,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAoB,CAAC;QAChE,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;YACzE,eAAe,GAAG,EAAE,CAAC;QACtB,CAAC;QAED,wDAAwD;QACxD,MAAM,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAE/C,8CAA8C;QAC9C,IAAI,MAAiC,CAAC;QACtC,IAAI,OAOH,CAAC;QAEF,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACtB,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACf,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;gBACrE,IAAI,CAAC,SAAS,EAAE,CAAC;oBAChB,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;oBACrD,WAAW,CAAC,CAAC,CAAC,CAAC;oBACf,OAAO,CAAC,iBAAiB;gBAC1B,CAAC;gBAED,kBAAkB;gBAClB,MAAM,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC;gBAC1D,MAAM,UAAU,GAAG,SAAS,CAAC,cAAc,CAAC,eAAwC,CAAC,CAAC;gBACtF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;oBACvB,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;oBAC3D,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;wBAC7C,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;oBAC9B,CAAC;oBACD,WAAW,CAAC,CAAC,CAAC,CAAC;oBACf,OAAO,CAAC,iBAAiB;gBAC1B,CAAC;gBACD,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3D,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;oBACvC,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;wBAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;oBAC/B,CAAC;gBACF,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBAEnC,6BAA6B;gBAC7B,MAAM,OAAO,GAAsB;oBAClC,UAAU;oBACV,UAAU;oBACV,QAAQ,EAAE;wBACT,MAAM,EAAE,cAAc;qBACtB;iBACD,CAAC;gBAEF,iBAAiB;gBACjB,MAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;gBAC1C,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,eAAwC,EAAE,OAAO,CAAC,CAAC;gBACzF,MAAM,GAAG,UAAU,CAAC;gBACpB,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBAC1C,MAAM;YACP,CAAC;YACD,KAAK,YAAY,CAAC,CAAC,CAAC;gBACnB,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;gBAC7E,IAAI,CAAC,SAAS,EAAE,CAAC;oBAChB,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;oBACzD,WAAW,CAAC,CAAC,CAAC,CAAC;oBACf,OAAO,CAAC,iBAAiB;gBAC1B,CAAC;gBAED,kBAAkB;gBAClB,MAAM,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC;gBAC1D,MAAM,UAAU,GAAG,SAAS,CAAC,cAAc,CAAC,eAA4C,CAAC,CAAC;gBAC1F,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;oBACvB,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;oBAC3D,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;wBAC7C,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;oBAC9B,CAAC;oBACD,WAAW,CAAC,CAAC,CAAC,CAAC;oBACf,OAAO,CAAC,iBAAiB;gBAC1B,CAAC;gBACD,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3D,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;oBACvC,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;wBAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;oBAC/B,CAAC;gBACF,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBAEnC,4DAA4D;gBAC5D,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5C,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;oBAC3E,WAAW,CAAC,CAAC,CAAC,CAAC;oBACf,OAAO,CAAC,iBAAiB;gBAC1B,CAAC;gBAED,iBAAiB;gBACjB,MAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;gBAC1C,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CACpC,eAA4C,EAC5C,UAAU,CACV,CAAC;gBACF,MAAM,GAAG,UAAU,CAAC;gBACpB,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBAC1C,MAAM;YACP,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBAChB,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBACvE,IAAI,CAAC,SAAS,EAAE,CAAC;oBAChB,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;oBACtD,WAAW,CAAC,CAAC,CAAC,CAAC;oBACf,OAAO,CAAC,iBAAiB;gBAC1B,CAAC;gBAED,kBAAkB;gBAClB,MAAM,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC;gBAC1D,MAAM,UAAU,GAAG,SAAS,CAAC,cAAc,CAAC,eAAyC,CAAC,CAAC;gBACvF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;oBACvB,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;oBAC3D,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;wBAC7C,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;oBAC9B,CAAC;oBACD,WAAW,CAAC,CAAC,CAAC,CAAC;oBACf,OAAO,CAAC,iBAAiB;gBAC1B,CAAC;gBACD,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3D,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;oBACvC,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;wBAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;oBAC/B,CAAC;gBACF,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBAEnC,6BAA6B;gBAC7B,MAAM,OAAO,GAAsB;oBAClC,UAAU;oBACV,UAAU;oBACV,QAAQ,EAAE;wBACT,MAAM,EAAE,cAAc;qBACtB;iBACD,CAAC;gBAEF,iBAAiB;gBACjB,MAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;gBAC1C,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,eAAyC,EAAE,OAAO,CAAC,CAAC;gBAC1F,MAAM,GAAG,UAAU,CAAC;gBACpB,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBAC1C,MAAM;YACP,CAAC;YACD;gBACC,MAAM,CAAC,KAAK,CAAC,+BAA+B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5D,WAAW,CAAC,CAAC,CAAC,CAAC;gBACf,OAAO,CAAC,iBAAiB;QAC3B,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAEnD,kBAAkB;QAClB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC/D,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;gBACnC,CAAC;YACF,CAAC;QACF,CAAC;QAED,wBAAwB;QACxB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC;QAC/C,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,CAAC,aAAa,EAAE,eAAe,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/F,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,iBAAiB,CAAC;QAEvD,0BAA0B;QAC1B,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACtC,IAAI,aAAqB,CAAC;QAC1B,IAAI,cAAsB,CAAC;QAE3B,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACxB,qBAAqB;YACrB,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACnD,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC;YACjC,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACnC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpB,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;YACjC,CAAC;YACD,MAAM,UAAU,CAAC,SAAS,CAAC,cAAc,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACP,cAAc;YACd,aAAa;gBACZ,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACrF,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,OAAO,CAAC;YAClF,MAAM,UAAU,CAAC,SAAS,CAAC,cAAc,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,sBAAsB,cAAc,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;QACF,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,WAAW,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACvD,OAAO;SACL,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,wDAAwD,CAAC;SACrE,QAAQ,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;SAC7D,cAAc,CAAC,mBAAmB,EAAE,oDAAoD,CAAC;SACzF,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,CAAC;SAClE,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;SACjD,MAAM,CACN,uBAAuB,EACvB,iDAAiD,EACjD,aAAa,CACb;SACA,MAAM,CAAC,eAAe,EAAE,wCAAwC,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,cAAsB,EAAE,OAAgC,EAAE,EAAE;QAC1E,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAE9B,MAAM,eAAe,CACpB,cAAc,EACd;YACC,IAAI,EAAE,OAAO,CAAC,IAAsB;YACpC,MAAM,EAAE,OAAO,CAAC,MAA4B;YAC5C,MAAM,EAAE,OAAO,CAAC,MAA4B;YAC5C,MAAM,EAAE,OAAO,CAAC,MAAkC;YAClD,OAAO,EAAE,OAAO,CAAC,OAA8B;SAC/C,EACD;YACC,MAAM;YACN,UAAU,EAAE;gBACX,QAAQ,EAAE,CAAC,IAAY,EAAE,QAAgB,EAAE,EAAE,CAC5C,QAAQ,CAAC,IAAI,EAAE,QAA0B,CAAC;gBAC3C,SAAS,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,QAAgB,EAAE,EAAE,CAC3D,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAA0B,CAAC;aAClD;YACD,WAAW,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;SACjD,CACD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,KAAK,EACX,WAAW,EACX,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,aAAa,EACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAK9C;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,aAAa,CAAC;IAC5B,YAAY,EAAE,aAAa,CAAC;IAC5B,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,SAAS,CAAC;IAC/C,UAAU,EAAE,WAAW,CAAC;IACxB,YAAY,EAAE,aAAa,CAAC;IAC5B,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;CACrC,GACC,OAAO,CAAC,IAAI,CAAC,CAuLf;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8BzD"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,OAAO,KAAK,EACX,WAAW,EACX,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,aAAa,EACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAyF9C;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,aAAa,CAAC;IAC5B,YAAY,EAAE,aAAa,CAAC;IAC5B,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,SAAS,CAAC;IAC/C,UAAU,EAAE,WAAW,CAAC;IACxB,YAAY,EAAE,aAAa,CAAC;IAC5B,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;CACrC,GACC,OAAO,CAAC,IAAI,CAAC,CAkNf;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkCzD"}
@@ -3,11 +3,81 @@
3
3
  *
4
4
  * Executes experiments based on JSON configuration.
5
5
  */
6
+ import { resolve } from "node:path";
6
7
  import { aggregateResults, createAggregationOutput } from "../../aggregation/index.js";
7
8
  import { Executor } from "../../executor/index.js";
8
9
  import { loadAndValidateConfig } from "../config-loader.js";
9
10
  import { loadCaseDefinition, loadMetricsExtractor, loadSutFactory } from "../module-loader.js";
10
11
  import { generateOutputFilename, writeAggregates, writeResults } from "../output-writer.js";
12
+ /**
13
+ * Merge checkpoint shards from worker threads.
14
+ *
15
+ * After worker threads complete execution, each worker has its own checkpoint shard.
16
+ * This function merges all shards into a single checkpoint file.
17
+ *
18
+ * @param baseDir - Base directory for checkpoints
19
+ * @param logger - Command logger
20
+ */
21
+ async function mergeCheckpointShards(baseDir, logger) {
22
+ const { readdir, unlink } = await import("node:fs/promises");
23
+ const { FileStorage } = await import("../../executor/checkpoint-storage.js");
24
+ const checkpointDir = resolve(baseDir, "results/execute");
25
+ try {
26
+ const files = await readdir(checkpointDir);
27
+ const shards = files.filter((f) => f.startsWith("checkpoint-worker-") && f.endsWith(".json"));
28
+ if (shards.length === 0) {
29
+ // No shards found - nothing to merge
30
+ return;
31
+ }
32
+ logger.info(`Merging ${shards.length} checkpoint shards...`);
33
+ // Load and merge all shards
34
+ const mergedData = {
35
+ configHash: "merged",
36
+ createdAt: new Date().toISOString(),
37
+ updatedAt: new Date().toISOString(),
38
+ completedRunIds: [],
39
+ results: {},
40
+ totalPlanned: 0,
41
+ };
42
+ for (const shard of shards) {
43
+ const shardPath = resolve(checkpointDir, shard);
44
+ const storage = new FileStorage(shardPath);
45
+ const data = await storage.load();
46
+ if (data?.completedRunIds) {
47
+ // Merge run IDs into the array
48
+ for (const runId of data.completedRunIds) {
49
+ if (!mergedData.completedRunIds.includes(runId)) {
50
+ mergedData.completedRunIds.push(runId);
51
+ }
52
+ }
53
+ }
54
+ // Merge results if present
55
+ if (data?.results) {
56
+ Object.assign(mergedData.results, data.results);
57
+ }
58
+ // Update total planned from first shard
59
+ if (data?.totalPlanned && mergedData.totalPlanned === 0) {
60
+ mergedData.totalPlanned = data.totalPlanned;
61
+ }
62
+ }
63
+ // Write merged checkpoint
64
+ const mainStorage = new FileStorage(resolve(checkpointDir, "checkpoint.json"));
65
+ await mainStorage.save(mergedData);
66
+ logger.info("Checkpoint shards merged successfully");
67
+ // Clean up shard files
68
+ for (const shard of shards) {
69
+ const shardPath = resolve(checkpointDir, shard);
70
+ await unlink(shardPath).catch(() => {
71
+ // Ignore errors during cleanup
72
+ });
73
+ }
74
+ logger.debug(`Cleaned up ${shards.length} shard files`);
75
+ }
76
+ catch (error) {
77
+ // Checkpoint directory doesn't exist or other error - log and continue
78
+ logger.debug(`Checkpoint merge skipped: ${error instanceof Error ? error.message : String(error)}`);
79
+ }
80
+ }
11
81
  /**
12
82
  * Execute run command with injected dependencies.
13
83
  *
@@ -35,10 +105,27 @@ export async function executeRun(configFile, options, dependencies) {
35
105
  executorConfig.concurrency = options.jobs;
36
106
  logger.debug(`Concurrency overridden to ${options.jobs}`);
37
107
  }
108
+ // Handle unsafe in-process flag
109
+ if (options.unsafeInProcess) {
110
+ executorConfig.forceInProcess = true;
111
+ logger.warn("Running in-process without worker thread isolation (SUT crashes can crash CLI)");
112
+ }
38
113
  // Load SUTs
39
114
  logger.subheader("Loading SUTs...");
40
115
  const sutDefinitions = await Promise.all(config.suts.map(async (sutConfig) => {
41
116
  logger.debug(`Loading SUT: ${sutConfig.id} from ${sutConfig.module}`);
117
+ // Build binary config if this is a binary SUT
118
+ const binaryConfig = sutConfig.type === "binary" && sutConfig.binaryCommand
119
+ ? {
120
+ type: "binary",
121
+ command: sutConfig.binaryCommand,
122
+ args: sutConfig.binaryArgs,
123
+ inputFormat: sutConfig.binaryInputFormat,
124
+ outputFormat: sutConfig.binaryOutputFormat,
125
+ timeout: sutConfig.binaryTimeout,
126
+ successExitCode: undefined, // Could add to SutConfig if needed
127
+ }
128
+ : undefined;
42
129
  return moduleLoader.loadSutFactory(sutConfig.module, sutConfig.exportName, baseDir, {
43
130
  id: sutConfig.id,
44
131
  name: sutConfig.registration.name,
@@ -47,7 +134,7 @@ export async function executeRun(configFile, options, dependencies) {
47
134
  config: sutConfig.config ?? {},
48
135
  tags: sutConfig.registration.tags ?? [],
49
136
  description: sutConfig.registration.description,
50
- }, sutConfig.config);
137
+ }, sutConfig.config, binaryConfig);
51
138
  }));
52
139
  logger.info(`Loaded ${sutDefinitions.length} SUTs`);
53
140
  // Load cases
@@ -84,6 +171,10 @@ export async function executeRun(configFile, options, dependencies) {
84
171
  const elapsed = Date.now() - startTime;
85
172
  logger.setProgress(false);
86
173
  logger.info("");
174
+ // Merge checkpoint shards from workers if not in unsafe in-process mode
175
+ if (!options.unsafeInProcess) {
176
+ await mergeCheckpointShards(baseDir, logger);
177
+ }
87
178
  // Report results
88
179
  logger.subheader("Execution Summary");
89
180
  logger.info(`Total runs: ${summary.totalRuns}`);
@@ -168,6 +259,7 @@ export function registerRunCommand(program) {
168
259
  .option("-v, --verbose", "Verbose logging")
169
260
  .option("-q, --quiet", "Suppress output")
170
261
  .option("--dry-run", "Plan without running")
262
+ .option("--unsafe-in-process", "Run in-process without worker thread isolation (SUT crashes can crash CLI)")
171
263
  .action(async (configFile, options) => {
172
264
  const { createLogger } = await import("../logger.js");
173
265
  const logger = createLogger(options);
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}