ppef 1.0.0 → 1.1.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 (336) hide show
  1. package/README.md +172 -0
  2. package/bin/ppef.mjs +20 -0
  3. package/dist/__tests__/framework-pipeline.integration.test.d.ts +7 -0
  4. package/dist/__tests__/framework-pipeline.integration.test.d.ts.map +1 -0
  5. package/dist/__tests__/framework-pipeline.integration.test.js +415 -0
  6. package/dist/__tests__/framework-pipeline.integration.test.js.map +1 -0
  7. package/dist/__tests__/index-exports.unit.test.d.ts +8 -0
  8. package/dist/__tests__/index-exports.unit.test.d.ts.map +1 -0
  9. package/dist/__tests__/index-exports.unit.test.js +127 -0
  10. package/dist/__tests__/index-exports.unit.test.js.map +1 -0
  11. package/dist/__tests__/registry-executor.integration.test.d.ts +5 -0
  12. package/dist/__tests__/registry-executor.integration.test.d.ts.map +1 -0
  13. package/dist/__tests__/registry-executor.integration.test.js +352 -0
  14. package/dist/__tests__/registry-executor.integration.test.js.map +1 -0
  15. package/dist/__tests__/test-helpers.d.ts +94 -0
  16. package/dist/__tests__/test-helpers.d.ts.map +1 -0
  17. package/dist/__tests__/test-helpers.js +271 -0
  18. package/dist/__tests__/test-helpers.js.map +1 -0
  19. package/dist/aggregation/__tests__/aggregators.unit.test.d.ts +7 -0
  20. package/dist/aggregation/__tests__/aggregators.unit.test.d.ts.map +1 -0
  21. package/dist/aggregation/__tests__/aggregators.unit.test.js +350 -0
  22. package/dist/aggregation/__tests__/aggregators.unit.test.js.map +1 -0
  23. package/dist/aggregation/__tests__/pipeline.unit.test.d.ts +7 -0
  24. package/dist/aggregation/__tests__/pipeline.unit.test.d.ts.map +1 -0
  25. package/dist/aggregation/__tests__/pipeline.unit.test.js +213 -0
  26. package/dist/aggregation/__tests__/pipeline.unit.test.js.map +1 -0
  27. package/dist/aggregation/aggregators.d.ts +63 -0
  28. package/dist/aggregation/aggregators.d.ts.map +1 -0
  29. package/dist/aggregation/aggregators.js +228 -0
  30. package/dist/aggregation/aggregators.js.map +1 -0
  31. package/dist/aggregation/index.d.ts +8 -0
  32. package/dist/aggregation/index.d.ts.map +1 -0
  33. package/dist/aggregation/index.js +8 -0
  34. package/dist/aggregation/index.js.map +1 -0
  35. package/dist/aggregation/pipeline.d.ts +38 -0
  36. package/dist/aggregation/pipeline.d.ts.map +1 -0
  37. package/dist/aggregation/pipeline.js +198 -0
  38. package/dist/aggregation/pipeline.js.map +1 -0
  39. package/dist/claims/__tests__/evaluator.unit.test.d.ts +12 -0
  40. package/dist/claims/__tests__/evaluator.unit.test.d.ts.map +1 -0
  41. package/dist/claims/__tests__/evaluator.unit.test.js +801 -0
  42. package/dist/claims/__tests__/evaluator.unit.test.js.map +1 -0
  43. package/dist/claims/evaluator.d.ts +33 -0
  44. package/dist/claims/evaluator.d.ts.map +1 -0
  45. package/dist/claims/evaluator.js +174 -0
  46. package/dist/claims/evaluator.js.map +1 -0
  47. package/dist/claims/index.d.ts +7 -0
  48. package/dist/claims/index.d.ts.map +1 -0
  49. package/dist/claims/index.js +7 -0
  50. package/dist/claims/index.js.map +1 -0
  51. package/dist/cli/__tests__/aggregate.command.unit.test.d.ts +7 -0
  52. package/dist/cli/__tests__/aggregate.command.unit.test.d.ts.map +1 -0
  53. package/dist/cli/__tests__/aggregate.command.unit.test.js +396 -0
  54. package/dist/cli/__tests__/aggregate.command.unit.test.js.map +1 -0
  55. package/dist/cli/__tests__/commands.unit.test.d.ts +10 -0
  56. package/dist/cli/__tests__/commands.unit.test.d.ts.map +1 -0
  57. package/dist/cli/__tests__/commands.unit.test.js +217 -0
  58. package/dist/cli/__tests__/commands.unit.test.js.map +1 -0
  59. package/dist/cli/__tests__/index.unit.test.d.ts +10 -0
  60. package/dist/cli/__tests__/index.unit.test.d.ts.map +1 -0
  61. package/dist/cli/__tests__/index.unit.test.js +65 -0
  62. package/dist/cli/__tests__/index.unit.test.js.map +1 -0
  63. package/dist/cli/__tests__/logger.unit.test.d.ts +11 -0
  64. package/dist/cli/__tests__/logger.unit.test.d.ts.map +1 -0
  65. package/dist/cli/__tests__/logger.unit.test.js +180 -0
  66. package/dist/cli/__tests__/logger.unit.test.js.map +1 -0
  67. package/dist/cli/__tests__/module-loader.unit.test.d.ts +11 -0
  68. package/dist/cli/__tests__/module-loader.unit.test.d.ts.map +1 -0
  69. package/dist/cli/__tests__/module-loader.unit.test.js +262 -0
  70. package/dist/cli/__tests__/module-loader.unit.test.js.map +1 -0
  71. package/dist/cli/__tests__/output-writer.unit.test.d.ts +10 -0
  72. package/dist/cli/__tests__/output-writer.unit.test.d.ts.map +1 -0
  73. package/dist/cli/__tests__/output-writer.unit.test.js +216 -0
  74. package/dist/cli/__tests__/output-writer.unit.test.js.map +1 -0
  75. package/dist/cli/__tests__/plan.command.unit.test.d.ts +7 -0
  76. package/dist/cli/__tests__/plan.command.unit.test.d.ts.map +1 -0
  77. package/dist/cli/__tests__/plan.command.unit.test.js +289 -0
  78. package/dist/cli/__tests__/plan.command.unit.test.js.map +1 -0
  79. package/dist/cli/__tests__/run.command.unit.test.d.ts +7 -0
  80. package/dist/cli/__tests__/run.command.unit.test.d.ts.map +1 -0
  81. package/dist/cli/__tests__/run.command.unit.test.js +422 -0
  82. package/dist/cli/__tests__/run.command.unit.test.js.map +1 -0
  83. package/dist/cli/__tests__/validate.command.unit.test.d.ts +7 -0
  84. package/dist/cli/__tests__/validate.command.unit.test.d.ts.map +1 -0
  85. package/dist/cli/__tests__/validate.command.unit.test.js +226 -0
  86. package/dist/cli/__tests__/validate.command.unit.test.js.map +1 -0
  87. package/dist/cli/command-deps.d.ts +125 -0
  88. package/dist/cli/command-deps.d.ts.map +1 -0
  89. package/dist/cli/command-deps.js +7 -0
  90. package/dist/cli/command-deps.js.map +1 -0
  91. package/dist/cli/commands/aggregate.d.ts +35 -0
  92. package/dist/cli/commands/aggregate.d.ts.map +1 -0
  93. package/dist/cli/commands/aggregate.js +121 -0
  94. package/dist/cli/commands/aggregate.js.map +1 -0
  95. package/dist/cli/commands/plan.d.ts +36 -0
  96. package/dist/cli/commands/plan.d.ts.map +1 -0
  97. package/dist/cli/commands/plan.js +109 -0
  98. package/dist/cli/commands/plan.js.map +1 -0
  99. package/dist/cli/commands/run.d.ts +33 -0
  100. package/dist/cli/commands/run.d.ts.map +1 -0
  101. package/dist/cli/commands/run.js +185 -0
  102. package/dist/cli/commands/run.js.map +1 -0
  103. package/dist/cli/commands/validate.d.ts +27 -0
  104. package/dist/cli/commands/validate.d.ts.map +1 -0
  105. package/dist/cli/commands/validate.js +88 -0
  106. package/dist/cli/commands/validate.js.map +1 -0
  107. package/dist/cli/config-loader.d.ts +30 -0
  108. package/dist/cli/config-loader.d.ts.map +1 -0
  109. package/dist/cli/config-loader.js +181 -0
  110. package/dist/cli/config-loader.js.map +1 -0
  111. package/dist/cli/index.d.ts +26 -0
  112. package/dist/cli/index.d.ts.map +1 -0
  113. package/dist/cli/index.js +58 -0
  114. package/dist/cli/index.js.map +1 -0
  115. package/dist/cli/logger.d.ts +75 -0
  116. package/dist/cli/logger.d.ts.map +1 -0
  117. package/dist/cli/logger.js +131 -0
  118. package/dist/cli/logger.js.map +1 -0
  119. package/dist/cli/module-loader.d.ts +46 -0
  120. package/dist/cli/module-loader.d.ts.map +1 -0
  121. package/dist/cli/module-loader.js +116 -0
  122. package/dist/cli/module-loader.js.map +1 -0
  123. package/dist/cli/output-writer.d.ts +51 -0
  124. package/dist/cli/output-writer.d.ts.map +1 -0
  125. package/dist/cli/output-writer.js +65 -0
  126. package/dist/cli/output-writer.js.map +1 -0
  127. package/dist/cli/types.d.ts +174 -0
  128. package/dist/cli/types.d.ts.map +1 -0
  129. package/dist/cli/types.js +7 -0
  130. package/dist/cli/types.js.map +1 -0
  131. package/dist/collector/__tests__/result-collector.unit.test.d.ts +7 -0
  132. package/dist/collector/__tests__/result-collector.unit.test.d.ts.map +1 -0
  133. package/dist/collector/__tests__/result-collector.unit.test.js +1021 -0
  134. package/dist/collector/__tests__/result-collector.unit.test.js.map +1 -0
  135. package/dist/collector/__tests__/schema.unit.test.d.ts +7 -0
  136. package/dist/collector/__tests__/schema.unit.test.d.ts.map +1 -0
  137. package/dist/collector/__tests__/schema.unit.test.js +360 -0
  138. package/dist/collector/__tests__/schema.unit.test.js.map +1 -0
  139. package/dist/collector/index.d.ts +8 -0
  140. package/dist/collector/index.d.ts.map +1 -0
  141. package/dist/collector/index.js +8 -0
  142. package/dist/collector/index.js.map +1 -0
  143. package/dist/collector/result-collector.d.ts +159 -0
  144. package/dist/collector/result-collector.d.ts.map +1 -0
  145. package/dist/collector/result-collector.js +213 -0
  146. package/dist/collector/result-collector.js.map +1 -0
  147. package/dist/collector/schema.d.ts +34 -0
  148. package/dist/collector/schema.d.ts.map +1 -0
  149. package/dist/collector/schema.js +145 -0
  150. package/dist/collector/schema.js.map +1 -0
  151. package/dist/executor/__tests__/checkpoint-hash-bug.diagnostic.test.d.ts +10 -0
  152. package/dist/executor/__tests__/checkpoint-hash-bug.diagnostic.test.d.ts.map +1 -0
  153. package/dist/executor/__tests__/checkpoint-hash-bug.diagnostic.test.js +122 -0
  154. package/dist/executor/__tests__/checkpoint-hash-bug.diagnostic.test.js.map +1 -0
  155. package/dist/executor/__tests__/checkpoint-manager.integration.test.d.ts +7 -0
  156. package/dist/executor/__tests__/checkpoint-manager.integration.test.d.ts.map +1 -0
  157. package/dist/executor/__tests__/checkpoint-manager.integration.test.js +330 -0
  158. package/dist/executor/__tests__/checkpoint-manager.integration.test.js.map +1 -0
  159. package/dist/executor/__tests__/checkpoint-manager.unit.test.d.ts +7 -0
  160. package/dist/executor/__tests__/checkpoint-manager.unit.test.d.ts.map +1 -0
  161. package/dist/executor/__tests__/checkpoint-manager.unit.test.js +531 -0
  162. package/dist/executor/__tests__/checkpoint-manager.unit.test.js.map +1 -0
  163. package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.d.ts +8 -0
  164. package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.d.ts.map +1 -0
  165. package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.js +493 -0
  166. package/dist/executor/__tests__/checkpoint-merge-bug.diagnostic.test.js.map +1 -0
  167. package/dist/executor/__tests__/checkpoint-merge-bug.unit.test.d.ts +8 -0
  168. package/dist/executor/__tests__/checkpoint-merge-bug.unit.test.d.ts.map +1 -0
  169. package/dist/executor/__tests__/checkpoint-merge-bug.unit.test.js +164 -0
  170. package/dist/executor/__tests__/checkpoint-merge-bug.unit.test.js.map +1 -0
  171. package/dist/executor/__tests__/checkpoint-storage.unit.test.d.ts +7 -0
  172. package/dist/executor/__tests__/checkpoint-storage.unit.test.d.ts.map +1 -0
  173. package/dist/executor/__tests__/checkpoint-storage.unit.test.js +490 -0
  174. package/dist/executor/__tests__/checkpoint-storage.unit.test.js.map +1 -0
  175. package/dist/executor/__tests__/executor.unit.test.d.ts +7 -0
  176. package/dist/executor/__tests__/executor.unit.test.d.ts.map +1 -0
  177. package/dist/executor/__tests__/executor.unit.test.js +202 -0
  178. package/dist/executor/__tests__/executor.unit.test.js.map +1 -0
  179. package/dist/executor/__tests__/memory-monitor.unit.test.d.ts +7 -0
  180. package/dist/executor/__tests__/memory-monitor.unit.test.d.ts.map +1 -0
  181. package/dist/executor/__tests__/memory-monitor.unit.test.js +285 -0
  182. package/dist/executor/__tests__/memory-monitor.unit.test.js.map +1 -0
  183. package/dist/executor/__tests__/parallel-checkpoint-merge.integration.test.d.ts +12 -0
  184. package/dist/executor/__tests__/parallel-checkpoint-merge.integration.test.d.ts.map +1 -0
  185. package/dist/executor/__tests__/parallel-checkpoint-merge.integration.test.js +196 -0
  186. package/dist/executor/__tests__/parallel-checkpoint-merge.integration.test.js.map +1 -0
  187. package/dist/executor/__tests__/parallel-executor.integration.test.d.ts +7 -0
  188. package/dist/executor/__tests__/parallel-executor.integration.test.d.ts.map +1 -0
  189. package/dist/executor/__tests__/parallel-executor.integration.test.js +249 -0
  190. package/dist/executor/__tests__/parallel-executor.integration.test.js.map +1 -0
  191. package/dist/executor/__tests__/parallel-executor.unit.test.d.ts +8 -0
  192. package/dist/executor/__tests__/parallel-executor.unit.test.d.ts.map +1 -0
  193. package/dist/executor/__tests__/parallel-executor.unit.test.js +473 -0
  194. package/dist/executor/__tests__/parallel-executor.unit.test.js.map +1 -0
  195. package/dist/executor/__tests__/run-id.unit.test.d.ts +8 -0
  196. package/dist/executor/__tests__/run-id.unit.test.d.ts.map +1 -0
  197. package/dist/executor/__tests__/run-id.unit.test.js +156 -0
  198. package/dist/executor/__tests__/run-id.unit.test.js.map +1 -0
  199. package/dist/executor/__tests__/worker-entry.integration.test.d.ts +24 -0
  200. package/dist/executor/__tests__/worker-entry.integration.test.d.ts.map +1 -0
  201. package/dist/executor/__tests__/worker-entry.integration.test.js +82 -0
  202. package/dist/executor/__tests__/worker-entry.integration.test.js.map +1 -0
  203. package/dist/executor/__tests__/worker-entry.unit.test.d.ts +7 -0
  204. package/dist/executor/__tests__/worker-entry.unit.test.d.ts.map +1 -0
  205. package/dist/executor/__tests__/worker-entry.unit.test.js +364 -0
  206. package/dist/executor/__tests__/worker-entry.unit.test.js.map +1 -0
  207. package/dist/executor/checkpoint-manager.d.ts +231 -0
  208. package/dist/executor/checkpoint-manager.d.ts.map +1 -0
  209. package/dist/executor/checkpoint-manager.js +395 -0
  210. package/dist/executor/checkpoint-manager.js.map +1 -0
  211. package/dist/executor/checkpoint-storage.d.ts +230 -0
  212. package/dist/executor/checkpoint-storage.d.ts.map +1 -0
  213. package/dist/executor/checkpoint-storage.js +370 -0
  214. package/dist/executor/checkpoint-storage.js.map +1 -0
  215. package/dist/executor/checkpoint-types.d.ts +48 -0
  216. package/dist/executor/checkpoint-types.d.ts.map +1 -0
  217. package/dist/executor/checkpoint-types.js +8 -0
  218. package/dist/executor/checkpoint-types.js.map +1 -0
  219. package/dist/executor/executor.d.ts +164 -0
  220. package/dist/executor/executor.d.ts.map +1 -0
  221. package/dist/executor/executor.js +408 -0
  222. package/dist/executor/executor.js.map +1 -0
  223. package/dist/executor/index.d.ts +11 -0
  224. package/dist/executor/index.d.ts.map +1 -0
  225. package/dist/executor/index.js +11 -0
  226. package/dist/executor/index.js.map +1 -0
  227. package/dist/executor/memory-monitor.d.ts +115 -0
  228. package/dist/executor/memory-monitor.d.ts.map +1 -0
  229. package/dist/executor/memory-monitor.js +168 -0
  230. package/dist/executor/memory-monitor.js.map +1 -0
  231. package/dist/executor/parallel-executor.d.ts +239 -0
  232. package/dist/executor/parallel-executor.d.ts.map +1 -0
  233. package/dist/executor/parallel-executor.js +329 -0
  234. package/dist/executor/parallel-executor.js.map +1 -0
  235. package/dist/executor/run-id.d.ts +71 -0
  236. package/dist/executor/run-id.d.ts.map +1 -0
  237. package/dist/executor/run-id.js +74 -0
  238. package/dist/executor/run-id.js.map +1 -0
  239. package/dist/executor/worker-entry.d.ts +10 -0
  240. package/dist/executor/worker-entry.d.ts.map +1 -0
  241. package/dist/executor/worker-entry.js +42 -0
  242. package/dist/executor/worker-entry.js.map +1 -0
  243. package/dist/executor/worker-executor.d.ts +156 -0
  244. package/dist/executor/worker-executor.d.ts.map +1 -0
  245. package/dist/executor/worker-executor.js +88 -0
  246. package/dist/executor/worker-executor.js.map +1 -0
  247. package/dist/index.cjs +11 -0
  248. package/dist/index.d.ts +15 -0
  249. package/dist/index.d.ts.map +1 -0
  250. package/dist/index.js +24 -0
  251. package/dist/index.js.map +1 -0
  252. package/dist/registry/case-registry.d.ts +113 -0
  253. package/dist/registry/case-registry.d.ts.map +1 -0
  254. package/dist/registry/case-registry.js +160 -0
  255. package/dist/registry/case-registry.js.map +1 -0
  256. package/dist/registry/index.d.ts +8 -0
  257. package/dist/registry/index.d.ts.map +1 -0
  258. package/dist/registry/index.js +8 -0
  259. package/dist/registry/index.js.map +1 -0
  260. package/dist/registry/sut-registry.d.ts +96 -0
  261. package/dist/registry/sut-registry.d.ts.map +1 -0
  262. package/dist/registry/sut-registry.js +126 -0
  263. package/dist/registry/sut-registry.js.map +1 -0
  264. package/dist/renderers/index.d.ts +10 -0
  265. package/dist/renderers/index.d.ts.map +1 -0
  266. package/dist/renderers/index.js +9 -0
  267. package/dist/renderers/index.js.map +1 -0
  268. package/dist/renderers/latex-renderer.d.ts +84 -0
  269. package/dist/renderers/latex-renderer.d.ts.map +1 -0
  270. package/dist/renderers/latex-renderer.js +208 -0
  271. package/dist/renderers/latex-renderer.js.map +1 -0
  272. package/dist/renderers/types.d.ts +106 -0
  273. package/dist/renderers/types.d.ts.map +1 -0
  274. package/dist/renderers/types.js +23 -0
  275. package/dist/renderers/types.js.map +1 -0
  276. package/dist/robustness/__tests__/analyzer.unit.test.d.ts +11 -0
  277. package/dist/robustness/__tests__/analyzer.unit.test.d.ts.map +1 -0
  278. package/dist/robustness/__tests__/analyzer.unit.test.js +455 -0
  279. package/dist/robustness/__tests__/analyzer.unit.test.js.map +1 -0
  280. package/dist/robustness/__tests__/perturbations.unit.test.d.ts +11 -0
  281. package/dist/robustness/__tests__/perturbations.unit.test.d.ts.map +1 -0
  282. package/dist/robustness/__tests__/perturbations.unit.test.js +284 -0
  283. package/dist/robustness/__tests__/perturbations.unit.test.js.map +1 -0
  284. package/dist/robustness/analyzer.d.ts +61 -0
  285. package/dist/robustness/analyzer.d.ts.map +1 -0
  286. package/dist/robustness/analyzer.js +191 -0
  287. package/dist/robustness/analyzer.js.map +1 -0
  288. package/dist/robustness/index.d.ts +8 -0
  289. package/dist/robustness/index.d.ts.map +1 -0
  290. package/dist/robustness/index.js +8 -0
  291. package/dist/robustness/index.js.map +1 -0
  292. package/dist/robustness/perturbations.d.ts +46 -0
  293. package/dist/robustness/perturbations.d.ts.map +1 -0
  294. package/dist/robustness/perturbations.js +184 -0
  295. package/dist/robustness/perturbations.js.map +1 -0
  296. package/dist/statistical/__tests__/mann-whitney-u.unit.test.d.ts +7 -0
  297. package/dist/statistical/__tests__/mann-whitney-u.unit.test.d.ts.map +1 -0
  298. package/dist/statistical/__tests__/mann-whitney-u.unit.test.js +185 -0
  299. package/dist/statistical/__tests__/mann-whitney-u.unit.test.js.map +1 -0
  300. package/dist/statistical/index.d.ts +8 -0
  301. package/dist/statistical/index.d.ts.map +1 -0
  302. package/dist/statistical/index.js +8 -0
  303. package/dist/statistical/index.js.map +1 -0
  304. package/dist/statistical/mann-whitney-u.d.ts +62 -0
  305. package/dist/statistical/mann-whitney-u.d.ts.map +1 -0
  306. package/dist/statistical/mann-whitney-u.js +127 -0
  307. package/dist/statistical/mann-whitney-u.js.map +1 -0
  308. package/dist/types/aggregate.d.ts +124 -0
  309. package/dist/types/aggregate.d.ts.map +1 -0
  310. package/dist/types/aggregate.js +9 -0
  311. package/dist/types/aggregate.js.map +1 -0
  312. package/dist/types/case.d.ts +105 -0
  313. package/dist/types/case.d.ts.map +1 -0
  314. package/dist/types/case.js +10 -0
  315. package/dist/types/case.js.map +1 -0
  316. package/dist/types/claims.d.ts +122 -0
  317. package/dist/types/claims.d.ts.map +1 -0
  318. package/dist/types/claims.js +14 -0
  319. package/dist/types/claims.js.map +1 -0
  320. package/dist/types/index.d.ts +12 -0
  321. package/dist/types/index.d.ts.map +1 -0
  322. package/dist/types/index.js +7 -0
  323. package/dist/types/index.js.map +1 -0
  324. package/dist/types/perturbation.d.ts +105 -0
  325. package/dist/types/perturbation.d.ts.map +1 -0
  326. package/dist/types/perturbation.js +9 -0
  327. package/dist/types/perturbation.js.map +1 -0
  328. package/dist/types/result.d.ts +150 -0
  329. package/dist/types/result.d.ts.map +1 -0
  330. package/dist/types/result.js +12 -0
  331. package/dist/types/result.js.map +1 -0
  332. package/dist/types/sut.d.ts +128 -0
  333. package/dist/types/sut.d.ts.map +1 -0
  334. package/dist/types/sut.js +12 -0
  335. package/dist/types/sut.js.map +1 -0
  336. package/package.json +290 -7
@@ -0,0 +1,164 @@
1
+ /**
2
+ * Experiment Executor
3
+ *
4
+ * Orchestrates experiment execution across SUTs and cases.
5
+ * Handles error isolation, progress reporting, and result collection.
6
+ */
7
+ import type { CaseDefinition } from "../types/case.js";
8
+ import type { EvaluationResult } from "../types/result.js";
9
+ import type { SutDefinition } from "../types/sut.js";
10
+ /**
11
+ * Configuration for experiment execution.
12
+ */
13
+ export interface ExecutorConfig {
14
+ /** Continue execution if a single run fails */
15
+ continueOnError: boolean;
16
+ /** Number of repetitions per case (for statistical analysis) */
17
+ repetitions: number;
18
+ /** Random seed base (incremented per repetition) */
19
+ seedBase: number;
20
+ /** Timeout per run in milliseconds (0 = no timeout) */
21
+ timeoutMs: number;
22
+ /** Whether to collect provenance information */
23
+ collectProvenance: boolean;
24
+ /** Number of concurrent runs (1 = sequential) */
25
+ concurrency?: number;
26
+ /** Progress callback */
27
+ onProgress?: (progress: ExecutionProgress) => void;
28
+ /** Per-run callback (can be async) */
29
+ onResult?: (result: EvaluationResult) => void | Promise<void>;
30
+ /** Enable memory monitoring (default: true) */
31
+ monitorMemory?: boolean;
32
+ /** Memory warning threshold in MB (default: 1024) */
33
+ memoryWarningThresholdMb?: number;
34
+ /** Memory critical threshold in MB (default: 2048) */
35
+ memoryCriticalThresholdMb?: number;
36
+ /** Abort execution at critical memory level (default: false) */
37
+ abortOnMemoryCritical?: boolean;
38
+ }
39
+ /**
40
+ * Default executor configuration.
41
+ */
42
+ export declare const DEFAULT_EXECUTOR_CONFIG: ExecutorConfig;
43
+ /**
44
+ * Execution progress report.
45
+ */
46
+ export interface ExecutionProgress {
47
+ /** Total planned runs */
48
+ total: number;
49
+ /** Completed runs */
50
+ completed: number;
51
+ /** Failed runs */
52
+ failed: number;
53
+ /** Current SUT */
54
+ currentSut?: string;
55
+ /** Current case */
56
+ currentCase?: string;
57
+ /** Current repetition */
58
+ currentRepetition?: number;
59
+ /** Elapsed time in milliseconds */
60
+ elapsedMs: number;
61
+ }
62
+ /**
63
+ * Execution summary returned after completion.
64
+ */
65
+ export interface ExecutionSummary {
66
+ /** Total runs attempted */
67
+ totalRuns: number;
68
+ /** Successful runs */
69
+ successfulRuns: number;
70
+ /** Failed runs */
71
+ failedRuns: number;
72
+ /** Total elapsed time */
73
+ elapsedMs: number;
74
+ /** Results collected */
75
+ results: EvaluationResult[];
76
+ /** Errors encountered */
77
+ errors: {
78
+ runId: string;
79
+ error: string;
80
+ }[];
81
+ }
82
+ /**
83
+ * Execution plan for a single run.
84
+ */
85
+ export interface PlannedRun {
86
+ /** Deterministic run ID */
87
+ runId: string;
88
+ /** SUT to execute */
89
+ sutId: string;
90
+ /** Case to run against */
91
+ caseId: string;
92
+ /** Repetition number */
93
+ repetition: number;
94
+ /** Random seed */
95
+ seed: number;
96
+ /** Configuration overrides */
97
+ config?: Record<string, unknown>;
98
+ }
99
+ /**
100
+ * Experiment executor.
101
+ *
102
+ * @template TInput - The resource type (e.g., Graph, Dataset)
103
+ * @template TInputs - The algorithm inputs type
104
+ * @template TResult - The algorithm result type
105
+ */
106
+ export declare class Executor<TInput = unknown, TInputs = unknown, TResult = unknown> {
107
+ private readonly config;
108
+ private readonly inputCache;
109
+ private readonly memoryMonitor?;
110
+ constructor(config?: Partial<ExecutorConfig>);
111
+ /**
112
+ * Plan execution runs without executing.
113
+ *
114
+ * @param suts - SUTs to execute
115
+ * @param cases - Cases to run against
116
+ * @returns Array of planned runs
117
+ */
118
+ plan(suts: SutDefinition<TInputs, TResult>[], cases: CaseDefinition<TInput, TInputs>[]): PlannedRun[];
119
+ /**
120
+ * Execute all planned runs.
121
+ *
122
+ * @param suts - SUTs to execute
123
+ * @param cases - Cases to run against
124
+ * @param metricsExtractor - Function to extract metrics from result
125
+ * @param plannedRuns - Optional pre-filtered planned runs (for parallel workers)
126
+ * @returns Execution summary with all results
127
+ */
128
+ execute(suts: SutDefinition<TInputs, TResult>[], cases: CaseDefinition<TInput, TInputs>[], metricsExtractor: (result: TResult) => Record<string, number>, plannedRuns?: PlannedRun[]): Promise<ExecutionSummary>;
129
+ /**
130
+ * Execute runs sequentially (original behavior).
131
+ * @param plannedRuns
132
+ * @param sutMap
133
+ * @param caseMap
134
+ * @param metricsExtractor
135
+ * @param startTime
136
+ * @internal
137
+ */
138
+ private executeSequential;
139
+ /**
140
+ * Execute runs in parallel with a concurrency limit.
141
+ * @param plannedRuns
142
+ * @param sutMap
143
+ * @param caseMap
144
+ * @param metricsExtractor
145
+ * @param startTime
146
+ * @param concurrency
147
+ * @internal
148
+ */
149
+ private executeParallel;
150
+ /**
151
+ * Execute a single run.
152
+ * @param run
153
+ * @param sutDef
154
+ * @param caseDef
155
+ * @param metricsExtractor
156
+ */
157
+ private executeRun;
158
+ }
159
+ /**
160
+ * Create a default executor with standard configuration.
161
+ * @param config
162
+ */
163
+ export declare const createExecutor: <TInput = unknown, TInputs = unknown, TResult = unknown>(config?: Partial<ExecutorConfig>) => Executor<TInput, TInputs, TResult>;
164
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/executor/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,408 @@
1
+ /**
2
+ * Experiment Executor
3
+ *
4
+ * Orchestrates experiment execution across SUTs and cases.
5
+ * Handles error isolation, progress reporting, and result collection.
6
+ */
7
+ import { execSync } from "node:child_process";
8
+ import { arch, platform, version as nodeVersion } from "node:process";
9
+ import { MemoryMonitor, MemoryWarningLevel } from "./memory-monitor.js";
10
+ import { generateRunId } from "./run-id.js";
11
+ /**
12
+ * Default executor configuration.
13
+ */
14
+ export const DEFAULT_EXECUTOR_CONFIG = {
15
+ continueOnError: true,
16
+ repetitions: 1,
17
+ seedBase: 42,
18
+ timeoutMs: 0,
19
+ collectProvenance: true,
20
+ };
21
+ /**
22
+ * Get provenance information for reproducibility.
23
+ * @param collectProvenance
24
+ */
25
+ const getProvenance = (collectProvenance) => {
26
+ if (!collectProvenance) {
27
+ return {
28
+ runtime: {
29
+ platform: platform,
30
+ arch: arch,
31
+ nodeVersion: nodeVersion,
32
+ },
33
+ };
34
+ }
35
+ let gitCommit;
36
+ let dirty = false;
37
+ try {
38
+ gitCommit = execSync("git rev-parse HEAD", { encoding: "utf-8", env: undefined }).trim();
39
+ const status = execSync("git status --porcelain", { encoding: "utf-8", env: undefined });
40
+ dirty = status.length > 0;
41
+ }
42
+ catch {
43
+ // Git not available or not a git repo
44
+ }
45
+ return {
46
+ runtime: {
47
+ platform: platform,
48
+ arch: arch,
49
+ nodeVersion: nodeVersion,
50
+ },
51
+ gitCommit,
52
+ dirty,
53
+ timestamp: new Date().toISOString(),
54
+ };
55
+ };
56
+ /**
57
+ * Experiment executor.
58
+ *
59
+ * @template TInput - The resource type (e.g., Graph, Dataset)
60
+ * @template TInputs - The algorithm inputs type
61
+ * @template TResult - The algorithm result type
62
+ */
63
+ export class Executor {
64
+ config;
65
+ inputCache;
66
+ memoryMonitor;
67
+ constructor(config = {}) {
68
+ this.config = {
69
+ ...DEFAULT_EXECUTOR_CONFIG,
70
+ monitorMemory: true,
71
+ ...config,
72
+ };
73
+ this.inputCache = new Map();
74
+ // Initialize memory monitor if enabled
75
+ if (this.config.monitorMemory) {
76
+ this.memoryMonitor = new MemoryMonitor({
77
+ warningThresholdMb: this.config.memoryWarningThresholdMb,
78
+ criticalThresholdMb: this.config.memoryCriticalThresholdMb,
79
+ verbose: true,
80
+ onWarningLevelChange: (level, stats) => {
81
+ if (level === MemoryWarningLevel.CRITICAL && this.config.abortOnMemoryCritical) {
82
+ throw new Error(`Memory critical threshold exceeded (${stats.rssMb.toFixed(1)}MB). Aborting execution.`);
83
+ }
84
+ },
85
+ });
86
+ }
87
+ }
88
+ /**
89
+ * Plan execution runs without executing.
90
+ *
91
+ * @param suts - SUTs to execute
92
+ * @param cases - Cases to run against
93
+ * @returns Array of planned runs
94
+ */
95
+ plan(suts, cases) {
96
+ const runs = [];
97
+ for (const sutDef of suts) {
98
+ for (const caseDef of cases) {
99
+ for (let rep = 0; rep < this.config.repetitions; rep++) {
100
+ const seed = this.config.seedBase + rep;
101
+ const runId = generateRunId({
102
+ sutId: sutDef.registration.id,
103
+ caseId: caseDef.case.caseId,
104
+ seed,
105
+ repetition: rep,
106
+ });
107
+ runs.push({
108
+ runId,
109
+ sutId: sutDef.registration.id,
110
+ caseId: caseDef.case.caseId,
111
+ repetition: rep,
112
+ seed,
113
+ });
114
+ }
115
+ }
116
+ }
117
+ return runs;
118
+ }
119
+ /**
120
+ * Execute all planned runs.
121
+ *
122
+ * @param suts - SUTs to execute
123
+ * @param cases - Cases to run against
124
+ * @param metricsExtractor - Function to extract metrics from result
125
+ * @param plannedRuns - Optional pre-filtered planned runs (for parallel workers)
126
+ * @returns Execution summary with all results
127
+ */
128
+ async execute(suts, cases, metricsExtractor, plannedRuns) {
129
+ const startTime = performance.now();
130
+ const effectivePlannedRuns = plannedRuns ?? this.plan(suts, cases);
131
+ const sutMap = new Map(suts.map((s) => [s.registration.id, s]));
132
+ const caseMap = new Map(cases.map((c) => [c.case.caseId, c]));
133
+ // Use concurrency limit if specified, otherwise sequential
134
+ const concurrency = this.config.concurrency ?? 1;
135
+ if (concurrency <= 1) {
136
+ // Sequential execution (original behavior)
137
+ return this.executeSequential(effectivePlannedRuns, sutMap, caseMap, metricsExtractor, startTime);
138
+ }
139
+ // Parallel execution with concurrency limit
140
+ return this.executeParallel(effectivePlannedRuns, sutMap, caseMap, metricsExtractor, startTime, concurrency);
141
+ }
142
+ /**
143
+ * Execute runs sequentially (original behavior).
144
+ * @param plannedRuns
145
+ * @param sutMap
146
+ * @param caseMap
147
+ * @param metricsExtractor
148
+ * @param startTime
149
+ * @internal
150
+ */
151
+ async executeSequential(plannedRuns, sutMap, caseMap, metricsExtractor, startTime) {
152
+ const results = [];
153
+ const errors = [];
154
+ let completed = 0;
155
+ let failed = 0;
156
+ for (const run of plannedRuns) {
157
+ const sutDef = sutMap.get(run.sutId);
158
+ const caseDef = caseMap.get(run.caseId);
159
+ if (!sutDef || !caseDef) {
160
+ errors.push({ runId: run.runId, error: "SUT or case not found" });
161
+ failed++;
162
+ continue;
163
+ }
164
+ // Report progress
165
+ if (this.config.onProgress) {
166
+ this.config.onProgress({
167
+ total: plannedRuns.length,
168
+ completed,
169
+ failed,
170
+ currentSut: run.sutId,
171
+ currentCase: run.caseId,
172
+ currentRepetition: run.repetition,
173
+ elapsedMs: performance.now() - startTime,
174
+ });
175
+ }
176
+ try {
177
+ const result = await this.executeRun(run, sutDef, caseDef, metricsExtractor);
178
+ results.push(result);
179
+ // Call onResult callback and await if it returns a promise
180
+ if (this.config.onResult) {
181
+ const callbackResult = this.config.onResult(result);
182
+ if (callbackResult instanceof Promise) {
183
+ await callbackResult;
184
+ }
185
+ }
186
+ completed++;
187
+ }
188
+ catch (error) {
189
+ const errorMessage = error instanceof Error ? error.message : String(error);
190
+ errors.push({ runId: run.runId, error: errorMessage });
191
+ failed++;
192
+ if (!this.config.continueOnError) {
193
+ throw error;
194
+ }
195
+ }
196
+ }
197
+ return {
198
+ totalRuns: plannedRuns.length,
199
+ successfulRuns: completed,
200
+ failedRuns: failed,
201
+ elapsedMs: performance.now() - startTime,
202
+ results,
203
+ errors,
204
+ };
205
+ }
206
+ /**
207
+ * Execute runs in parallel with a concurrency limit.
208
+ * @param plannedRuns
209
+ * @param sutMap
210
+ * @param caseMap
211
+ * @param metricsExtractor
212
+ * @param startTime
213
+ * @param concurrency
214
+ * @internal
215
+ */
216
+ async executeParallel(plannedRuns, sutMap, caseMap, metricsExtractor, startTime, concurrency) {
217
+ const results = [];
218
+ const errors = [];
219
+ // Thread-safe counters
220
+ let completed = 0;
221
+ let failed = 0;
222
+ const mutex = { locked: false };
223
+ const lockQueue = [];
224
+ const acquireLock = () => {
225
+ return new Promise((resolve) => {
226
+ if (mutex.locked) {
227
+ lockQueue.push(resolve);
228
+ }
229
+ else {
230
+ mutex.locked = true;
231
+ resolve();
232
+ }
233
+ });
234
+ };
235
+ const releaseLock = () => {
236
+ const next = lockQueue.shift();
237
+ if (next) {
238
+ next();
239
+ }
240
+ else {
241
+ mutex.locked = false;
242
+ }
243
+ };
244
+ // Process a single run
245
+ const processRun = async (run) => {
246
+ const sutDef = sutMap.get(run.sutId);
247
+ const caseDef = caseMap.get(run.caseId);
248
+ if (!sutDef || !caseDef) {
249
+ await acquireLock();
250
+ errors.push({ runId: run.runId, error: "SUT or case not found" });
251
+ failed++;
252
+ releaseLock();
253
+ return;
254
+ }
255
+ try {
256
+ const result = await this.executeRun(run, sutDef, caseDef, metricsExtractor);
257
+ await acquireLock();
258
+ results.push(result);
259
+ completed++;
260
+ // Call onResult callback (checkpoint save)
261
+ if (this.config.onResult) {
262
+ await this.config.onResult(result);
263
+ }
264
+ // Report progress
265
+ if (this.config.onProgress) {
266
+ this.config.onProgress({
267
+ total: plannedRuns.length,
268
+ completed,
269
+ failed,
270
+ currentSut: run.sutId,
271
+ currentCase: run.caseId,
272
+ currentRepetition: run.repetition,
273
+ elapsedMs: performance.now() - startTime,
274
+ });
275
+ }
276
+ releaseLock();
277
+ }
278
+ catch (error) {
279
+ await acquireLock();
280
+ const errorMessage = error instanceof Error ? error.message : String(error);
281
+ errors.push({ runId: run.runId, error: errorMessage });
282
+ failed++;
283
+ releaseLock();
284
+ if (!this.config.continueOnError) {
285
+ throw error;
286
+ }
287
+ }
288
+ };
289
+ // Worker pool: process runs in batches
290
+ for (let index = 0; index < plannedRuns.length; index += concurrency) {
291
+ const batch = plannedRuns.slice(index, index + concurrency);
292
+ await Promise.all(batch.map(processRun));
293
+ }
294
+ return {
295
+ totalRuns: plannedRuns.length,
296
+ successfulRuns: completed,
297
+ failedRuns: failed,
298
+ elapsedMs: performance.now() - startTime,
299
+ results,
300
+ errors,
301
+ };
302
+ }
303
+ /**
304
+ * Execute a single run.
305
+ * @param run
306
+ * @param sutDef
307
+ * @param caseDef
308
+ * @param metricsExtractor
309
+ */
310
+ async executeRun(run, sutDef, caseDef, metricsExtractor) {
311
+ const runStartTime = performance.now();
312
+ let peakMemoryBytes = 0;
313
+ // Check memory before execution
314
+ if (this.memoryMonitor) {
315
+ const initialLevel = this.memoryMonitor.check();
316
+ if (initialLevel === MemoryWarningLevel.EMERGENCY) {
317
+ throw new Error("Memory at emergency level before execution. Aborting.");
318
+ }
319
+ }
320
+ // Load or reuse input resource for this case (cached to avoid reloading)
321
+ const cacheKey = caseDef.case.caseId;
322
+ let input = this.inputCache.get(cacheKey);
323
+ if (!input) {
324
+ // Apply timeout to resource loading (large graphs can hang during loading)
325
+ input = await (this.config.timeoutMs > 0
326
+ ? Promise.race([
327
+ caseDef.getInput(),
328
+ new Promise((_, reject) => setTimeout(() => {
329
+ reject(new Error(`Resource loading timeout after ${this.config.timeoutMs}ms`));
330
+ }, this.config.timeoutMs)),
331
+ ])
332
+ : caseDef.getInput());
333
+ this.inputCache.set(cacheKey, input);
334
+ // Check memory after resource loading
335
+ if (this.memoryMonitor) {
336
+ const stats = this.memoryMonitor.getStats();
337
+ peakMemoryBytes = Math.max(peakMemoryBytes, stats.rssBytes);
338
+ }
339
+ }
340
+ // Get algorithm inputs for this case
341
+ const inputs = caseDef.getInputs();
342
+ // Create SUT instance (factory now takes only config)
343
+ const sut = sutDef.factory(run.config);
344
+ // Execute with timeout if configured
345
+ const sutResult = await (this.config.timeoutMs > 0
346
+ ? Promise.race([
347
+ sut.run({ ...inputs, input }),
348
+ new Promise((_, reject) => setTimeout(() => {
349
+ reject(new Error(`Timeout after ${this.config.timeoutMs}ms`));
350
+ }, this.config.timeoutMs)),
351
+ ])
352
+ : sut.run({ ...inputs, input }));
353
+ const executionTimeMs = performance.now() - runStartTime;
354
+ // Check memory after execution
355
+ let finalMemoryBytes = 0;
356
+ if (this.memoryMonitor) {
357
+ const stats = this.memoryMonitor.getStats();
358
+ peakMemoryBytes = Math.max(peakMemoryBytes, stats.rssBytes);
359
+ finalMemoryBytes = stats.rssBytes;
360
+ }
361
+ // Extract metrics
362
+ const metrics = metricsExtractor(sutResult);
363
+ // Build correctness result (basic - can be extended)
364
+ const correctness = {
365
+ expectedExists: caseDef.case.expectedOutput !== undefined,
366
+ producedOutput: true,
367
+ valid: true, // Assume valid if no exception
368
+ matchesExpected: null, // Would need comparison logic
369
+ };
370
+ // Build provenance
371
+ const provenance = getProvenance(this.config.collectProvenance);
372
+ provenance.executionTimeMs = executionTimeMs;
373
+ // Add memory stats if monitoring is enabled
374
+ if (this.memoryMonitor && this.config.collectProvenance) {
375
+ provenance.peakMemoryBytes = peakMemoryBytes;
376
+ provenance.finalMemoryBytes = finalMemoryBytes;
377
+ }
378
+ return {
379
+ run: {
380
+ runId: run.runId,
381
+ sut: run.sutId,
382
+ sutRole: sutDef.registration.role,
383
+ sutVersion: sutDef.registration.version,
384
+ caseId: run.caseId,
385
+ caseClass: caseDef.case.caseClass,
386
+ config: run.config,
387
+ seed: run.seed,
388
+ repetition: run.repetition,
389
+ },
390
+ correctness,
391
+ outputs: {
392
+ summary: {
393
+ // Could extract from sutResult
394
+ },
395
+ },
396
+ metrics: {
397
+ numeric: metrics,
398
+ },
399
+ provenance,
400
+ };
401
+ }
402
+ }
403
+ /**
404
+ * Create a default executor with standard configuration.
405
+ * @param config
406
+ */
407
+ export const createExecutor = (config) => new Executor(config);
408
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/executor/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Executor Module
3
+ *
4
+ * Re-exports executor components.
5
+ */
6
+ export { type CheckpointData, CheckpointManager, type CheckpointManagerOptions, type CheckpointMode, createFileCheckpointManager, getGitCommit, } from "./checkpoint-manager.js";
7
+ export { type CheckpointStorage, createCheckpointStorage, FileStorage, type FileSystem, getGitNamespace, GitStorage, InMemoryLock, type Lock, NodeFileSystem, } from "./checkpoint-storage.js";
8
+ export { createExecutor, DEFAULT_EXECUTOR_CONFIG, type ExecutionProgress, type ExecutionSummary, Executor, type ExecutorConfig, type PlannedRun, } from "./executor.js";
9
+ export { executeParallel, type ParallelExecutorOptions, shardPath } from "./parallel-executor.js";
10
+ export { generateConfigHash, generateRunId, parseRunId, type RunIdInputs, validateRunId, } from "./run-id.js";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACN,KAAK,cAAc,EACnB,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,2BAA2B,EAC3B,YAAY,GACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,WAAW,EACX,KAAK,UAAU,EACf,eAAe,EACf,UAAU,EACV,YAAY,EACZ,KAAK,IAAI,EACT,cAAc,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,cAAc,EACd,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,QAAQ,EACR,KAAK,cAAc,EACnB,KAAK,UAAU,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,KAAK,uBAAuB,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EACN,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,KAAK,WAAW,EAChB,aAAa,GACb,MAAM,aAAa,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Executor Module
3
+ *
4
+ * Re-exports executor components.
5
+ */
6
+ export { CheckpointManager, createFileCheckpointManager, getGitCommit, } from "./checkpoint-manager.js";
7
+ export { createCheckpointStorage, FileStorage, getGitNamespace, GitStorage, InMemoryLock, NodeFileSystem, } from "./checkpoint-storage.js";
8
+ export { createExecutor, DEFAULT_EXECUTOR_CONFIG, Executor, } from "./executor.js";
9
+ export { executeParallel, shardPath } from "./parallel-executor.js";
10
+ export { generateConfigHash, generateRunId, parseRunId, validateRunId, } from "./run-id.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEN,iBAAiB,EAGjB,2BAA2B,EAC3B,YAAY,GACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEN,uBAAuB,EACvB,WAAW,EAEX,eAAe,EACf,UAAU,EACV,YAAY,EAEZ,cAAc,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,cAAc,EACd,uBAAuB,EAGvB,QAAQ,GAGR,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAgC,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EACN,kBAAkB,EAClB,aAAa,EACb,UAAU,EAEV,aAAa,GACb,MAAM,aAAa,CAAC"}