ppef 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +1 -1
  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
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Evaluator Registry
3
+ *
4
+ * Central registry for all evaluator types. Enables the plugin
5
+ * architecture by allowing custom evaluators to be registered
6
+ * alongside built-in evaluators.
7
+ */
8
+ import type { IEvaluator, Evaluator, EvaluationType, EvaluatorConfig } from "../types/evaluator.js";
9
+ /**
10
+ * Registry of all available evaluators.
11
+ *
12
+ * Evaluators are stored by their type identifier. The registry
13
+ * provides methods to register new evaluators, retrieve evaluators
14
+ * by type, and list all registered types.
15
+ */
16
+ export declare const EvaluatorRegistry: {
17
+ /**
18
+ * Register an evaluator.
19
+ *
20
+ * If an evaluator with the same type already exists, it will
21
+ * be replaced with the new evaluator.
22
+ *
23
+ * @param evaluator - Evaluator to register
24
+ */
25
+ readonly register: <TConfig extends EvaluatorConfig, TInput, TOutput>(evaluator: Evaluator<TConfig, TInput, TOutput>) => void;
26
+ /**
27
+ * Get an evaluator by type (returns base IEvaluator).
28
+ *
29
+ * For type-safe retrieval, use the getAs() method instead.
30
+ *
31
+ * @param type - Evaluation type identifier
32
+ * @returns Evaluator instance or undefined if not found
33
+ */
34
+ readonly get: (type: EvaluationType) => IEvaluator | undefined;
35
+ /**
36
+ * Get an evaluator by type with runtime type checking.
37
+ *
38
+ * Uses instanceof to verify the evaluator is of the expected class.
39
+ * Returns undefined if the evaluator doesn't exist or isn't of the expected type.
40
+ *
41
+ * @param type - Evaluation type identifier
42
+ * @param clazz - Constructor of the expected evaluator class
43
+ * @returns Typed evaluator instance or undefined
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * const claimsEvaluator = EvaluatorRegistry.getAs("claims", ClaimsEvaluator);
48
+ * if (claimsEvaluator) {
49
+ * // Full type safety - claimsEvaluator is ClaimsEvaluator
50
+ * const validation = claimsEvaluator.validateConfig(config);
51
+ * }
52
+ * ```
53
+ */
54
+ readonly getAs: <T extends IEvaluator>(type: EvaluationType, clazz: new () => T) => T | undefined;
55
+ /**
56
+ * Get an evaluator by type, throwing if not found.
57
+ *
58
+ * @param type - Evaluation type identifier
59
+ * @param clazz - Constructor of the expected evaluator class
60
+ * @returns Evaluator instance
61
+ * @throws Error if evaluator type not found or wrong type
62
+ */
63
+ readonly getOrThrow: <T extends IEvaluator>(type: EvaluationType, clazz: new () => T) => T;
64
+ /**
65
+ * List all registered evaluator types.
66
+ *
67
+ * @returns Array of registered evaluation type identifiers
68
+ */
69
+ readonly types: () => EvaluationType[];
70
+ /**
71
+ * Check if an evaluator type is registered.
72
+ *
73
+ * @param type - Evaluation type identifier
74
+ * @returns True if evaluator is registered
75
+ */
76
+ readonly has: (type: EvaluationType) => boolean;
77
+ /**
78
+ * Unregister an evaluator by type.
79
+ *
80
+ * This is primarily useful for testing.
81
+ *
82
+ * @param type - Evaluation type identifier
83
+ * @returns True if evaluator was unregistered
84
+ */
85
+ readonly unregister: (type: EvaluationType) => boolean;
86
+ /**
87
+ * Clear all registered evaluators.
88
+ *
89
+ * This is primarily useful for testing.
90
+ */
91
+ readonly clear: () => void;
92
+ /**
93
+ * Get the number of registered evaluators.
94
+ *
95
+ * @returns Count of registered evaluators
96
+ */
97
+ readonly size: number;
98
+ };
99
+ /**
100
+ * Auto-register built-in evaluators on module load.
101
+ *
102
+ * This ensures that the standard evaluators (claims, robustness, metrics, exploratory)
103
+ * are always available without requiring explicit registration.
104
+ */
105
+ export declare function registerBuiltInEvaluators(): void;
106
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/evaluators/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKpG;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB;IAC7B;;;;;;;OAOG;wBACM,OAAO,SAAS,eAAe,EAAE,MAAM,EAAE,OAAO,aAC7C,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,KAC5C,IAAI;IAQP;;;;;;;OAOG;yBACO,cAAc,KAAG,UAAU,GAAG,SAAS;IAIjD;;;;;;;;;;;;;;;;;;OAkBG;qBACG,CAAC,SAAS,UAAU,QAAQ,cAAc,SAAS,UAAU,CAAC,KAAG,CAAC,GAAG,SAAS;IAKpF;;;;;;;OAOG;0BACQ,CAAC,SAAS,UAAU,QAAQ,cAAc,SAAS,UAAU,CAAC,KAAG,CAAC;IAQ7E;;;;OAIG;0BACM,cAAc,EAAE;IAIzB;;;;;OAKG;yBACO,cAAc,KAAG,OAAO;IAIlC;;;;;;;OAOG;gCACc,cAAc,KAAG,OAAO;IAIzC;;;;OAIG;0BACM,IAAI;IAIb;;;;OAIG;mBACS,MAAM;CAGT,CAAC;AAWX;;;;;GAKG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAKhD"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Evaluator Registry
3
+ *
4
+ * Central registry for all evaluator types. Enables the plugin
5
+ * architecture by allowing custom evaluators to be registered
6
+ * alongside built-in evaluators.
7
+ */
8
+ /** Private storage for evaluators */
9
+ const evaluators = new Map();
10
+ /**
11
+ * Registry of all available evaluators.
12
+ *
13
+ * Evaluators are stored by their type identifier. The registry
14
+ * provides methods to register new evaluators, retrieve evaluators
15
+ * by type, and list all registered types.
16
+ */
17
+ export const EvaluatorRegistry = {
18
+ /**
19
+ * Register an evaluator.
20
+ *
21
+ * If an evaluator with the same type already exists, it will
22
+ * be replaced with the new evaluator.
23
+ *
24
+ * @param evaluator - Evaluator to register
25
+ */
26
+ register(evaluator) {
27
+ const existing = evaluators.get(evaluator.type);
28
+ if (existing) {
29
+ console.warn(`Replacing existing evaluator for type: ${evaluator.type}`);
30
+ }
31
+ evaluators.set(evaluator.type, evaluator);
32
+ },
33
+ /**
34
+ * Get an evaluator by type (returns base IEvaluator).
35
+ *
36
+ * For type-safe retrieval, use the getAs() method instead.
37
+ *
38
+ * @param type - Evaluation type identifier
39
+ * @returns Evaluator instance or undefined if not found
40
+ */
41
+ get(type) {
42
+ return evaluators.get(type);
43
+ },
44
+ /**
45
+ * Get an evaluator by type with runtime type checking.
46
+ *
47
+ * Uses instanceof to verify the evaluator is of the expected class.
48
+ * Returns undefined if the evaluator doesn't exist or isn't of the expected type.
49
+ *
50
+ * @param type - Evaluation type identifier
51
+ * @param clazz - Constructor of the expected evaluator class
52
+ * @returns Typed evaluator instance or undefined
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * const claimsEvaluator = EvaluatorRegistry.getAs("claims", ClaimsEvaluator);
57
+ * if (claimsEvaluator) {
58
+ * // Full type safety - claimsEvaluator is ClaimsEvaluator
59
+ * const validation = claimsEvaluator.validateConfig(config);
60
+ * }
61
+ * ```
62
+ */
63
+ getAs(type, clazz) {
64
+ const evaluator = evaluators.get(type);
65
+ return evaluator instanceof clazz ? evaluator : undefined;
66
+ },
67
+ /**
68
+ * Get an evaluator by type, throwing if not found.
69
+ *
70
+ * @param type - Evaluation type identifier
71
+ * @param clazz - Constructor of the expected evaluator class
72
+ * @returns Evaluator instance
73
+ * @throws Error if evaluator type not found or wrong type
74
+ */
75
+ getOrThrow(type, clazz) {
76
+ const evaluator = EvaluatorRegistry.getAs(type, clazz);
77
+ if (!evaluator) {
78
+ throw new Error(`Evaluator not found for type: ${type}`);
79
+ }
80
+ return evaluator;
81
+ },
82
+ /**
83
+ * List all registered evaluator types.
84
+ *
85
+ * @returns Array of registered evaluation type identifiers
86
+ */
87
+ types() {
88
+ return Array.from(evaluators.keys());
89
+ },
90
+ /**
91
+ * Check if an evaluator type is registered.
92
+ *
93
+ * @param type - Evaluation type identifier
94
+ * @returns True if evaluator is registered
95
+ */
96
+ has(type) {
97
+ return evaluators.has(type);
98
+ },
99
+ /**
100
+ * Unregister an evaluator by type.
101
+ *
102
+ * This is primarily useful for testing.
103
+ *
104
+ * @param type - Evaluation type identifier
105
+ * @returns True if evaluator was unregistered
106
+ */
107
+ unregister(type) {
108
+ return evaluators.delete(type);
109
+ },
110
+ /**
111
+ * Clear all registered evaluators.
112
+ *
113
+ * This is primarily useful for testing.
114
+ */
115
+ clear() {
116
+ evaluators.clear();
117
+ },
118
+ /**
119
+ * Get the number of registered evaluators.
120
+ *
121
+ * @returns Count of registered evaluators
122
+ */
123
+ get size() {
124
+ return evaluators.size;
125
+ },
126
+ };
127
+ // ============================================================================
128
+ // Built-in Evaluator Imports and Auto-Registration
129
+ // ============================================================================
130
+ import { ClaimsEvaluator } from "./claims-evaluator.js";
131
+ import { RobustnessEvaluator } from "./robustness-evaluator.js";
132
+ import { MetricsEvaluator } from "./metrics-evaluator.js";
133
+ import { ExploratoryEvaluator } from "./exploratory-evaluator.js";
134
+ /**
135
+ * Auto-register built-in evaluators on module load.
136
+ *
137
+ * This ensures that the standard evaluators (claims, robustness, metrics, exploratory)
138
+ * are always available without requiring explicit registration.
139
+ */
140
+ export function registerBuiltInEvaluators() {
141
+ EvaluatorRegistry.register(new ClaimsEvaluator());
142
+ EvaluatorRegistry.register(new RobustnessEvaluator());
143
+ EvaluatorRegistry.register(new MetricsEvaluator());
144
+ EvaluatorRegistry.register(new ExploratoryEvaluator());
145
+ }
146
+ // Register built-in evaluators when this module is loaded
147
+ registerBuiltInEvaluators();
148
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/evaluators/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,qCAAqC;AACrC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA8B,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC;;;;;;;OAOG;IACH,QAAQ,CACP,SAA8C;QAE9C,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,0CAA0C,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;OAOG;IACH,GAAG,CAAC,IAAoB;QACvB,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAuB,IAAoB,EAAE,KAAkB;QACnE,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CAAuB,IAAoB,EAAE,KAAkB;QACxE,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACH,KAAK;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,IAAoB;QACvB,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CAAC,IAAoB;QAC9B,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,KAAK;QACJ,UAAU,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,IAAI,IAAI;QACP,OAAO,UAAU,CAAC,IAAI,CAAC;IACxB,CAAC;CACQ,CAAC;AAEX,+EAA+E;AAC/E,mDAAmD;AACnD,+EAA+E;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB;IACxC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;IAClD,iBAAiB,CAAC,QAAQ,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;IACtD,iBAAiB,CAAC,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;IACnD,iBAAiB,CAAC,QAAQ,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,0DAA0D;AAC1D,yBAAyB,EAAE,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Robustness Evaluator
3
+ *
4
+ * Analyzes algorithm robustness under perturbations.
5
+ * Refactored from src/robustness/analyzer.ts into a class-based design
6
+ * that implements the Evaluator interface.
7
+ */
8
+ import type { EvaluationResult } from "../types/result.js";
9
+ import type { IEvaluator, RobustnessEvaluatorConfig, RobustnessEvaluatorData, Evaluator, EvaluationOutput, EvaluationSummary, ValidationResult } from "../types/evaluator.js";
10
+ /**
11
+ * Robustness evaluator - analyzes variance under perturbations.
12
+ */
13
+ export declare class RobustnessEvaluator implements Evaluator<RobustnessEvaluatorConfig, EvaluationResult[], RobustnessEvaluatorData>, IEvaluator {
14
+ /** Type identifier */
15
+ readonly type: "robustness";
16
+ /** Schema version */
17
+ private static readonly VERSION;
18
+ /**
19
+ * Validate robustness evaluator configuration.
20
+ *
21
+ * @param config - Configuration to validate
22
+ * @returns Validation result
23
+ */
24
+ validateConfig(config: RobustnessEvaluatorConfig): ValidationResult;
25
+ /**
26
+ * Evaluate robustness from raw results.
27
+ *
28
+ * @param config - Robustness evaluator configuration
29
+ * @param input - Raw evaluation results
30
+ * @returns Evaluation output
31
+ */
32
+ evaluate(config: RobustnessEvaluatorConfig, input: EvaluationResult[]): EvaluationOutput<RobustnessEvaluatorData>;
33
+ /**
34
+ * Create a full robustness analysis output.
35
+ *
36
+ * @param results - All evaluation results (base and perturbed)
37
+ * @param options - Analysis options
38
+ * @returns Complete robustness analysis output
39
+ */
40
+ private createRobustnessAnalysis;
41
+ /**
42
+ * Analyze robustness of a SUT under perturbation.
43
+ *
44
+ * @param perturbedResults - Results with perturbation
45
+ * @param metric - Metric to analyze
46
+ * @returns Robustness metrics
47
+ */
48
+ private analyzeRobustnessForMetric;
49
+ /**
50
+ * Summarize evaluation output.
51
+ *
52
+ * @param output - Evaluation output to summarize
53
+ * @returns Summary statistics
54
+ */
55
+ summarize(output: EvaluationOutput<RobustnessEvaluatorData>): EvaluationSummary;
56
+ }
57
+ //# sourceMappingURL=robustness-evaluator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"robustness-evaluator.d.ts","sourceRoot":"","sources":["../../src/evaluators/robustness-evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EACX,UAAU,EACV,yBAAyB,EACzB,uBAAuB,EACvB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,MAAM,uBAAuB,CAAC;AAY/B;;GAEG;AACH,qBAAa,mBACZ,YACC,SAAS,CAAC,yBAAyB,EAAE,gBAAgB,EAAE,EAAE,uBAAuB,CAAC,EACjF,UAAU;IAEX,sBAAsB;IACtB,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAU;IAEtC,qBAAqB;IACrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAW;IAE1C;;;;;OAKG;IACH,cAAc,CAAC,MAAM,EAAE,yBAAyB,GAAG,gBAAgB;IAuCnE;;;;;;OAMG;IACH,QAAQ,CACP,MAAM,EAAE,yBAAyB,EACjC,KAAK,EAAE,gBAAgB,EAAE,GACvB,gBAAgB,CAAC,uBAAuB,CAAC;IAuB5C;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IA2DhC;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;IAiClC;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC,uBAAuB,CAAC,GAAG,iBAAiB;CAY/E"}
@@ -0,0 +1,186 @@
1
+ /**
2
+ * Robustness Evaluator
3
+ *
4
+ * Analyzes algorithm robustness under perturbations.
5
+ * Refactored from src/robustness/analyzer.ts into a class-based design
6
+ * that implements the Evaluator interface.
7
+ */
8
+ /**
9
+ * Robustness evaluator - analyzes variance under perturbations.
10
+ */
11
+ export class RobustnessEvaluator {
12
+ /** Type identifier */
13
+ type = "robustness";
14
+ /** Schema version */
15
+ static VERSION = "1.0.0";
16
+ /**
17
+ * Validate robustness evaluator configuration.
18
+ *
19
+ * @param config - Configuration to validate
20
+ * @returns Validation result
21
+ */
22
+ validateConfig(config) {
23
+ const errors = [];
24
+ const warnings = [];
25
+ // Check metrics array
26
+ if (!Array.isArray(config.metrics)) {
27
+ errors.push("metrics must be an array");
28
+ }
29
+ else if (config.metrics.length === 0) {
30
+ errors.push("metrics cannot be empty");
31
+ }
32
+ // Check perturbations array
33
+ if (!Array.isArray(config.perturbations)) {
34
+ errors.push("perturbations must be an array");
35
+ }
36
+ else if (config.perturbations.length === 0) {
37
+ errors.push("perturbations cannot be empty");
38
+ }
39
+ // Validate intensity levels if provided
40
+ if (config.intensityLevels !== undefined) {
41
+ if (!Array.isArray(config.intensityLevels)) {
42
+ errors.push("intensityLevels must be an array");
43
+ }
44
+ else if (!config.intensityLevels.every((level) => typeof level === "number")) {
45
+ errors.push("intensityLevels must contain only numbers");
46
+ }
47
+ }
48
+ // Validate runsPerLevel if provided
49
+ if (config.runsPerLevel !== undefined && typeof config.runsPerLevel !== "number") {
50
+ errors.push("runsPerLevel must be a number");
51
+ }
52
+ return {
53
+ valid: errors.length === 0,
54
+ errors: errors.length > 0 ? errors : undefined,
55
+ warnings: warnings.length > 0 ? warnings : undefined,
56
+ };
57
+ }
58
+ /**
59
+ * Evaluate robustness from raw results.
60
+ *
61
+ * @param config - Robustness evaluator configuration
62
+ * @param input - Raw evaluation results
63
+ * @returns Evaluation output
64
+ */
65
+ evaluate(config, input) {
66
+ // Convert config to options format
67
+ const options = {
68
+ metrics: config.metrics,
69
+ perturbations: config.perturbations,
70
+ intensityLevels: config.intensityLevels,
71
+ runsPerLevel: config.runsPerLevel,
72
+ };
73
+ // Create robustness analysis
74
+ const analysis = this.createRobustnessAnalysis(input, options);
75
+ return {
76
+ type: "robustness",
77
+ version: RobustnessEvaluator.VERSION,
78
+ timestamp: new Date().toISOString(),
79
+ data: analysis,
80
+ metadata: {
81
+ config,
82
+ },
83
+ };
84
+ }
85
+ /**
86
+ * Create a full robustness analysis output.
87
+ *
88
+ * @param results - All evaluation results (base and perturbed)
89
+ * @param options - Analysis options
90
+ * @returns Complete robustness analysis output
91
+ */
92
+ createRobustnessAnalysis(results, options) {
93
+ const analysisResults = [];
94
+ // Group results by SUT
95
+ const bySut = new Map();
96
+ for (const result of results) {
97
+ const existing = bySut.get(result.run.sut) ?? [];
98
+ existing.push(result);
99
+ bySut.set(result.run.sut, existing);
100
+ }
101
+ // Analyze each SUT for each metric and perturbation
102
+ for (const [sut, sutResults] of bySut) {
103
+ for (const metric of options.metrics) {
104
+ for (const perturbation of options.perturbations) {
105
+ // Filter to this perturbation
106
+ const perturbedResults = sutResults.filter((r) => r.run.config?.perturbation === perturbation);
107
+ const robustness = this.analyzeRobustnessForMetric(perturbedResults, metric);
108
+ // Get baseline value
109
+ const baseValues = sutResults
110
+ .filter((r) => !r.run.config?.perturbation)
111
+ .map((r) => r.metrics.numeric[metric]);
112
+ const baselineValue = baseValues.length > 0
113
+ ? baseValues.reduce((a, b) => a + b, 0) / baseValues.length
114
+ : Number.NaN;
115
+ analysisResults.push({
116
+ sut,
117
+ perturbation,
118
+ metric,
119
+ robustness,
120
+ baselineValue,
121
+ runCount: perturbedResults.length,
122
+ });
123
+ }
124
+ }
125
+ }
126
+ return {
127
+ version: "1.0.0",
128
+ timestamp: new Date().toISOString(),
129
+ results: analysisResults,
130
+ config: {
131
+ perturbations: options.perturbations,
132
+ metrics: options.metrics,
133
+ intensityLevels: options.intensityLevels,
134
+ runsPerLevel: options.runsPerLevel ?? 1,
135
+ },
136
+ };
137
+ }
138
+ /**
139
+ * Analyze robustness of a SUT under perturbation.
140
+ *
141
+ * @param perturbedResults - Results with perturbation
142
+ * @param metric - Metric to analyze
143
+ * @returns Robustness metrics
144
+ */
145
+ analyzeRobustnessForMetric(perturbedResults, metric) {
146
+ const extractValues = (results, metricName) => results.map((r) => r.metrics.numeric[metricName]).filter((v) => !Number.isNaN(v));
147
+ const perturbedValues = extractValues(perturbedResults, metric);
148
+ if (perturbedValues.length === 0) {
149
+ return {
150
+ varianceUnderPerturbation: Number.NaN,
151
+ stdUnderPerturbation: Number.NaN,
152
+ coefficientOfVariation: Number.NaN,
153
+ };
154
+ }
155
+ // Compute statistics for perturbed results
156
+ const n = perturbedValues.length;
157
+ const mean = perturbedValues.reduce((a, b) => a + b, 0) / n;
158
+ const variance = perturbedValues.reduce((sum, v) => sum + (v - mean) ** 2, 0) / (n - 1);
159
+ const std = Math.sqrt(variance);
160
+ // Coefficient of variation (relative variance)
161
+ const coefficientOfVariation = mean !== 0 ? std / Math.abs(mean) : Number.NaN;
162
+ return {
163
+ varianceUnderPerturbation: variance,
164
+ stdUnderPerturbation: std,
165
+ coefficientOfVariation,
166
+ };
167
+ }
168
+ /**
169
+ * Summarize evaluation output.
170
+ *
171
+ * @param output - Evaluation output to summarize
172
+ * @returns Summary statistics
173
+ */
174
+ summarize(output) {
175
+ const { results } = output.data;
176
+ return {
177
+ total: results.length,
178
+ additional: {
179
+ sutsAnalyzed: new Set(results.map((r) => r.sut)).size,
180
+ metricsAnalyzed: output.data.config.metrics.length,
181
+ perturbationsTested: output.data.config.perturbations.length,
182
+ },
183
+ };
184
+ }
185
+ }
186
+ //# sourceMappingURL=robustness-evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"robustness-evaluator.js","sourceRoot":"","sources":["../../src/evaluators/robustness-evaluator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Binary SUT Unit Tests
3
+ *
4
+ * Tests for the BinarySut class that enables arbitrary binaries
5
+ * to be used as System Under Test in ppef experiments.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=binary-sut.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary-sut.unit.test.d.ts","sourceRoot":"","sources":["../../../src/executor/__tests__/binary-sut.unit.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}