@overkill-dev/run 0.0.65 → 0.0.67

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 (369) hide show
  1. package/attachments/attachment-context.js +10 -0
  2. package/attachments/attachment-context.js.map +1 -1
  3. package/attachments/failure-artifact-stream.js +53 -0
  4. package/attachments/failure-artifact-stream.js.map +1 -0
  5. package/attachments/resource-failure-context.js +41 -0
  6. package/attachments/resource-failure-context.js.map +1 -0
  7. package/config/benchmark-execution.js +30 -0
  8. package/config/benchmark-execution.js.map +1 -0
  9. package/config/config-error.d.ts +4 -0
  10. package/config/config-error.d.ts.map +1 -0
  11. package/config/config-error.js +7 -0
  12. package/config/config-error.js.map +1 -0
  13. package/config/config.d.ts +57 -0
  14. package/config/config.d.ts.map +1 -0
  15. package/{run/run-config.js → config/config.js} +54 -19
  16. package/config/config.js.map +1 -0
  17. package/{run/coverage-config-schema.d.ts → config/coverage-schema.d.ts} +5 -5
  18. package/config/coverage-schema.d.ts.map +1 -0
  19. package/{run/coverage-config-schema.js → config/coverage-schema.js} +1 -1
  20. package/config/coverage-schema.js.map +1 -0
  21. package/{run/run-config-defaults.js → config/defaults.js} +6 -1
  22. package/config/defaults.js.map +1 -0
  23. package/{run/run-execution-config.d.ts → config/execution.d.ts} +5 -7
  24. package/config/execution.d.ts.map +1 -0
  25. package/config/host-process.js +41 -0
  26. package/config/host-process.js.map +1 -0
  27. package/config/profile-file-discovery.js +88 -0
  28. package/config/profile-file-discovery.js.map +1 -0
  29. package/{run/profile-config-normalization.js → config/profile-normalization.js} +13 -13
  30. package/config/profile-normalization.js.map +1 -0
  31. package/{run/profile-file-glob.js → config/profile-patterns.js} +6 -10
  32. package/config/profile-patterns.js.map +1 -0
  33. package/{run/run-config-schema.d.ts → config/schema.d.ts} +206 -26
  34. package/config/schema.d.ts.map +1 -0
  35. package/{run/run-config-schema.js → config/schema.js} +38 -12
  36. package/config/schema.js.map +1 -0
  37. package/config/snapshot.js +204 -0
  38. package/config/snapshot.js.map +1 -0
  39. package/config/types.d.ts +157 -0
  40. package/config/types.d.ts.map +1 -0
  41. package/config/validation.js +91 -0
  42. package/config/validation.js.map +1 -0
  43. package/{run/work-distribution-config.js → config/work-distribution.js} +3 -3
  44. package/config/work-distribution.js.map +1 -0
  45. package/engine/case-execution.d.ts +1 -0
  46. package/engine/case-execution.d.ts.map +1 -1
  47. package/engine/case-execution.js +17 -29
  48. package/engine/case-execution.js.map +1 -1
  49. package/engine/recorded-assertion-failure.js +30 -0
  50. package/engine/recorded-assertion-failure.js.map +1 -0
  51. package/engine/run-artifact.d.ts +2 -2
  52. package/engine/run-artifact.d.ts.map +1 -1
  53. package/engine/runtime-attachment.d.ts +25 -5
  54. package/engine/runtime-attachment.d.ts.map +1 -1
  55. package/engine/runtime-attachment.js.map +1 -1
  56. package/package-version.js +31 -0
  57. package/package-version.js.map +1 -0
  58. package/package.json +30 -9
  59. package/packages/resources/attachment-context.entry-point.js +1 -1
  60. package/packages/resources/attachment-context.entry-point.js.map +1 -1
  61. package/packages/run/command-line.entry-point.d.ts +5 -3
  62. package/packages/run/command-line.entry-point.d.ts.map +1 -1
  63. package/packages/run/command-line.entry-point.js +28 -7
  64. package/packages/run/command-line.entry-point.js.map +1 -1
  65. package/packages/run/config.entry-point.d.ts +8 -6
  66. package/packages/run/config.entry-point.d.ts.map +1 -1
  67. package/packages/run/config.entry-point.js +4 -4
  68. package/packages/run/config.entry-point.js.map +1 -1
  69. package/packages/run/run.entry-point.d.ts +6 -4
  70. package/packages/run/run.entry-point.d.ts.map +1 -1
  71. package/packages/run/run.entry-point.js +3 -3
  72. package/packages/run/run.entry-point.js.map +1 -1
  73. package/packages/simulation/transcript.entry-point.js +2 -0
  74. package/packages/simulation/transcript.entry-point.js.map +1 -1
  75. package/readme.md +56 -14
  76. package/reporters/human-reporter-rendering.js +52 -22
  77. package/reporters/human-reporter-rendering.js.map +1 -1
  78. package/resources/failure-artifacts.js +9 -0
  79. package/resources/failure-artifacts.js.map +1 -0
  80. package/run/assertion-result-schema.js +69 -0
  81. package/run/assertion-result-schema.js.map +1 -0
  82. package/run/attachment-coordinator-context.js.map +1 -1
  83. package/run/attachment-coordinator.js +8 -4
  84. package/run/attachment-coordinator.js.map +1 -1
  85. package/run/attachment-eligibility.js +1 -1
  86. package/run/attachment-eligibility.js.map +1 -1
  87. package/run/attachment-execution.js +53 -6
  88. package/run/attachment-execution.js.map +1 -1
  89. package/run/attachment-protocol.js +4 -0
  90. package/run/attachment-protocol.js.map +1 -1
  91. package/run/attachment-record.js +2 -2
  92. package/run/attachment-record.js.map +1 -1
  93. package/run/attachment-reporter.js +1 -0
  94. package/run/attachment-reporter.js.map +1 -1
  95. package/run/attachment-results.js +5 -9
  96. package/run/attachment-results.js.map +1 -1
  97. package/run/attachment-storage-session.js +1 -0
  98. package/run/attachment-storage-session.js.map +1 -1
  99. package/run/attachment-storage-writer.js +128 -0
  100. package/run/attachment-storage-writer.js.map +1 -0
  101. package/run/attachment-store.js +84 -127
  102. package/run/attachment-store.js.map +1 -1
  103. package/run/attachment-wire-schema.js +45 -9
  104. package/run/attachment-wire-schema.js.map +1 -1
  105. package/run/attachment-worker-context.js +1 -1
  106. package/run/attachment-worker-context.js.map +1 -1
  107. package/run/attachment-writer.js +5 -3
  108. package/run/attachment-writer.js.map +1 -1
  109. package/run/benchmark-commands.d.ts +10 -0
  110. package/run/benchmark-commands.d.ts.map +1 -0
  111. package/run/benchmark-commands.js +82 -0
  112. package/run/benchmark-commands.js.map +1 -0
  113. package/run/capability-policy-snapshots.d.ts +3 -2
  114. package/run/capability-policy-snapshots.d.ts.map +1 -1
  115. package/run/capability-policy-snapshots.js.map +1 -1
  116. package/run/capability-policy.js +48 -38
  117. package/run/capability-policy.js.map +1 -1
  118. package/run/child-process-outbox.js +36 -0
  119. package/run/child-process-outbox.js.map +1 -0
  120. package/run/child-process-protocol.js +17 -13
  121. package/run/child-process-protocol.js.map +1 -1
  122. package/run/child-process-shutdown.js +54 -0
  123. package/run/child-process-shutdown.js.map +1 -0
  124. package/run/collected-run-plan-schema.js +90 -0
  125. package/run/collected-run-plan-schema.js.map +1 -0
  126. package/run/command-line-command-namespace.d.ts.map +1 -1
  127. package/run/command-line-command-namespace.js.map +1 -1
  128. package/run/command-line-command.d.ts +26 -18
  129. package/run/command-line-command.d.ts.map +1 -1
  130. package/run/command-line-command.js +3 -2
  131. package/run/command-line-command.js.map +1 -1
  132. package/run/command-line-config.d.ts +5 -0
  133. package/run/command-line-config.d.ts.map +1 -0
  134. package/run/command-line-config.js +51 -0
  135. package/run/command-line-config.js.map +1 -0
  136. package/run/command-line-execution.js +82 -0
  137. package/run/command-line-execution.js.map +1 -0
  138. package/run/command-line-runner.d.ts +4 -5
  139. package/run/command-line-runner.d.ts.map +1 -1
  140. package/run/command-line-runner.js +6 -124
  141. package/run/command-line-runner.js.map +1 -1
  142. package/run/command-line-unimplemented-commands.js +1 -8
  143. package/run/command-line-unimplemented-commands.js.map +1 -1
  144. package/run/coverage-loaded-sources.js +8 -9
  145. package/run/coverage-loaded-sources.js.map +1 -1
  146. package/run/coverage-method-ranges.js +100 -0
  147. package/run/coverage-method-ranges.js.map +1 -0
  148. package/run/coverage-paths.js.map +1 -1
  149. package/run/coverage-reporting.js.map +1 -1
  150. package/run/coverage-runtime-source.js +68 -25
  151. package/run/coverage-runtime-source.js.map +1 -1
  152. package/run/coverage-session.js.map +1 -1
  153. package/run/coverage-source-map.js +2 -3
  154. package/run/coverage-source-map.js.map +1 -1
  155. package/run/coverage-source-selection.js +12 -6
  156. package/run/coverage-source-selection.js.map +1 -1
  157. package/run/coverage-tokens.js +26 -0
  158. package/run/coverage-tokens.js.map +1 -0
  159. package/run/current-process-run-orchestrator.js +7 -11
  160. package/run/current-process-run-orchestrator.js.map +1 -1
  161. package/run/diff-schema.js +78 -0
  162. package/run/diff-schema.js.map +1 -0
  163. package/run/duration-history-schema.js +1 -1
  164. package/run/duration-history-schema.js.map +1 -1
  165. package/run/failure-artifact-retention.js +76 -0
  166. package/run/failure-artifact-retention.js.map +1 -0
  167. package/run/node-child-process-starters.js +8 -1
  168. package/run/node-child-process-starters.js.map +1 -1
  169. package/run/node-command-line-runner.d.ts +1 -1
  170. package/run/node-command-line-runner.d.ts.map +1 -1
  171. package/run/node-command-line-runner.js +18 -10
  172. package/run/node-command-line-runner.js.map +1 -1
  173. package/run/node-process-policy-observation.js +43 -0
  174. package/run/node-process-policy-observation.js.map +1 -0
  175. package/run/permission-denial-runtime-policy.js +3 -0
  176. package/run/permission-denial-runtime-policy.js.map +1 -1
  177. package/run/reporter-event-schema.js +42 -0
  178. package/run/reporter-event-schema.js.map +1 -0
  179. package/run/request-snapshot.js +40 -0
  180. package/run/request-snapshot.js.map +1 -0
  181. package/run/resource-disposal-error.js +27 -0
  182. package/run/resource-disposal-error.js.map +1 -0
  183. package/run/resource-failure-preparation.js +86 -0
  184. package/run/resource-failure-preparation.js.map +1 -0
  185. package/run/resource-lifecycle-disposal.js +132 -0
  186. package/run/resource-lifecycle-disposal.js.map +1 -0
  187. package/run/resource-lifecycle-session-acquirer.js +31 -10
  188. package/run/resource-lifecycle-session-acquirer.js.map +1 -1
  189. package/run/resource-lifecycle-state.d.ts +2 -1
  190. package/run/resource-lifecycle-state.d.ts.map +1 -1
  191. package/run/resource-lifecycle-state.js +30 -1
  192. package/run/resource-lifecycle-state.js.map +1 -1
  193. package/run/resource-lifecycle.js +26 -104
  194. package/run/resource-lifecycle.js.map +1 -1
  195. package/run/run-artifact-id-schema.js +27 -0
  196. package/run/run-artifact-id-schema.js.map +1 -0
  197. package/run/run-artifact-schema.js +74 -0
  198. package/run/run-artifact-schema.js.map +1 -0
  199. package/run/run-collected-planning.js +9 -0
  200. package/run/run-collected-planning.js.map +1 -1
  201. package/run/run-collected-resolution.js.map +1 -1
  202. package/run/run-collection-error-result.js +4 -3
  203. package/run/run-collection-error-result.js.map +1 -1
  204. package/run/run-command-schema.js +60 -0
  205. package/run/run-command-schema.js.map +1 -0
  206. package/run/run-coverage.js.map +1 -1
  207. package/run/run-discovery-types.d.ts +2 -2
  208. package/run/run-discovery-types.d.ts.map +1 -1
  209. package/run/run-discovery.js +14 -96
  210. package/run/run-discovery.js.map +1 -1
  211. package/run/run-engine-primitives.d.ts.map +1 -1
  212. package/run/run-errors.d.ts +7 -7
  213. package/run/run-errors.d.ts.map +1 -1
  214. package/run/run-errors.js +17 -6
  215. package/run/run-errors.js.map +1 -1
  216. package/run/run-facts.js +5 -70
  217. package/run/run-facts.js.map +1 -1
  218. package/run/run-host-process.js +1 -40
  219. package/run/run-host-process.js.map +1 -1
  220. package/run/run-identity-schema.js +38 -0
  221. package/run/run-identity-schema.js.map +1 -0
  222. package/run/run-if-main-options.js.map +1 -1
  223. package/run/run-if-main-profile.d.ts +8 -10
  224. package/run/run-if-main-profile.d.ts.map +1 -1
  225. package/run/run-if-main-profile.js +25 -112
  226. package/run/run-if-main-profile.js.map +1 -1
  227. package/run/run-if-main.d.ts.map +1 -1
  228. package/run/run-if-main.js.map +1 -1
  229. package/run/run-in-process-execution.js +2 -0
  230. package/run/run-in-process-execution.js.map +1 -1
  231. package/run/run-input-resolution.js +11 -6
  232. package/run/run-input-resolution.js.map +1 -1
  233. package/run/run-isolated-command.js +2 -2
  234. package/run/run-isolated-command.js.map +1 -1
  235. package/run/run-isolated-process.js +12 -7
  236. package/run/run-isolated-process.js.map +1 -1
  237. package/run/run-local-command.js +23 -13
  238. package/run/run-local-command.js.map +1 -1
  239. package/run/run-local-coverage.js +16 -3
  240. package/run/run-local-coverage.js.map +1 -1
  241. package/run/run-local-execution.js.map +1 -1
  242. package/run/run-local-resolution.js +1 -3
  243. package/run/run-local-resolution.js.map +1 -1
  244. package/run/run-local-test-plan.js.map +1 -1
  245. package/run/run-orchestrator-dependencies.d.ts +4 -4
  246. package/run/run-orchestrator-dependencies.d.ts.map +1 -1
  247. package/run/run-orchestrator.d.ts +2 -2
  248. package/run/run-orchestrator.d.ts.map +1 -1
  249. package/run/run-orchestrator.js +2 -2
  250. package/run/run-orchestrator.js.map +1 -1
  251. package/run/run-ordering.js.map +1 -1
  252. package/run/run-process-engine.js.map +1 -1
  253. package/run/run-profile-facts.js +62 -0
  254. package/run/run-profile-facts.js.map +1 -0
  255. package/run/run-record-types.d.ts +5 -4
  256. package/run/run-record-types.d.ts.map +1 -1
  257. package/run/run-record-versions.js +1 -30
  258. package/run/run-record-versions.js.map +1 -1
  259. package/run/run-reporter-resolution.js +4 -1
  260. package/run/run-reporter-resolution.js.map +1 -1
  261. package/run/run-result-reporting.js.map +1 -1
  262. package/run/run-result-schema.js +65 -0
  263. package/run/run-result-schema.js.map +1 -0
  264. package/run/run-runtime-schema.js +64 -0
  265. package/run/run-runtime-schema.js.map +1 -0
  266. package/run/run-selection.js.map +1 -1
  267. package/run/run-supervised-process.js +3 -4
  268. package/run/run-supervised-process.js.map +1 -1
  269. package/run/run-support.js +5 -222
  270. package/run/run-support.js.map +1 -1
  271. package/run/run-types.d.ts +40 -166
  272. package/run/run-types.d.ts.map +1 -1
  273. package/run/run-types.js.map +1 -1
  274. package/run/run-validation.js +4 -63
  275. package/run/run-validation.js.map +1 -1
  276. package/run/run.d.ts.map +1 -1
  277. package/run/run.js +32 -16
  278. package/run/run.js.map +1 -1
  279. package/run/serialized-value-schema.js +76 -0
  280. package/run/serialized-value-schema.js.map +1 -0
  281. package/run/simulation-witness.js +38 -0
  282. package/run/simulation-witness.js.map +1 -0
  283. package/run/supervised-child-failure.js +26 -0
  284. package/run/supervised-child-failure.js.map +1 -0
  285. package/run/supervised-child-process.d.ts +3 -0
  286. package/run/supervised-child-process.d.ts.map +1 -1
  287. package/run/supervised-child-process.js +3 -1
  288. package/run/supervised-child-process.js.map +1 -1
  289. package/run/supervised-child-transport.js +125 -0
  290. package/run/supervised-child-transport.js.map +1 -0
  291. package/run/supervised-child.entry-point.js +47 -39
  292. package/run/supervised-child.entry-point.js.map +1 -1
  293. package/run/supervised-child.js +3 -3
  294. package/run/supervised-child.js.map +1 -1
  295. package/run/supervised-protocol-schema.js +42 -0
  296. package/run/supervised-protocol-schema.js.map +1 -0
  297. package/run/supervised-protocol.js.map +1 -1
  298. package/run/supervised-run-collection.js +33 -30
  299. package/run/supervised-run-collection.js.map +1 -1
  300. package/run/supervised-run-resource-policy.js.map +1 -1
  301. package/run/supervised-run-runtime.js +33 -15
  302. package/run/supervised-run-runtime.js.map +1 -1
  303. package/run/supervised-run-state.js +43 -22
  304. package/run/supervised-run-state.js.map +1 -1
  305. package/run/supervised-run.js +69 -36
  306. package/run/supervised-run.js.map +1 -1
  307. package/run/test-profile.js +21 -0
  308. package/run/test-profile.js.map +1 -0
  309. package/run/work-unit-identity.js.map +1 -1
  310. package/run/work-unit-planning.js +6 -6
  311. package/run/work-unit-planning.js.map +1 -1
  312. package/run/work-unit-resource-constraints.js +1 -1
  313. package/run/work-unit-resource-constraints.js.map +1 -1
  314. package/run/worker-pool-execution.js +2 -3
  315. package/run/worker-pool-execution.js.map +1 -1
  316. package/run/worker-pool-host-process.js +50 -20
  317. package/run/worker-pool-host-process.js.map +1 -1
  318. package/run/worker-pool-host-protocol-schema.js +80 -0
  319. package/run/worker-pool-host-protocol-schema.js.map +1 -0
  320. package/run/worker-pool-host-protocol.js.map +1 -1
  321. package/run/worker-pool-host-task.js +20 -11
  322. package/run/worker-pool-host-task.js.map +1 -1
  323. package/run/worker-pool-host-transport.js +96 -0
  324. package/run/worker-pool-host-transport.js.map +1 -0
  325. package/run/worker-pool-host.entry-point.js +43 -8
  326. package/run/worker-pool-host.entry-point.js.map +1 -1
  327. package/run/worker-pool-lanes.js.map +1 -1
  328. package/run/worker-pool-lifecycle-lanes.js.map +1 -1
  329. package/run/worker-pool-placement-planning.js.map +1 -1
  330. package/run/worker-pool-protocol.js +3 -0
  331. package/run/worker-pool-protocol.js.map +1 -1
  332. package/run/worker-pool-resource-lifecycle-execution.js +66 -1
  333. package/run/worker-pool-resource-lifecycle-execution.js.map +1 -1
  334. package/run/worker-pool-routing.js +2 -1
  335. package/run/worker-pool-routing.js.map +1 -1
  336. package/run/worker-pool-runtime.js.map +1 -1
  337. package/run/worker-pool-task-events.js +18 -15
  338. package/run/worker-pool-task-events.js.map +1 -1
  339. package/run/worker-pool-task-schema.js +61 -0
  340. package/run/worker-pool-task-schema.js.map +1 -0
  341. package/run/worker-pool-task-validation.js +1 -0
  342. package/run/worker-pool-task-validation.js.map +1 -1
  343. package/run/worker-pool-worker-resources.js +68 -0
  344. package/run/worker-pool-worker-resources.js.map +1 -1
  345. package/run/worker-pool-worker.js +11 -4
  346. package/run/worker-pool-worker.js.map +1 -1
  347. package/sbom.cdx.json +27 -44
  348. package/stored-value.js +12 -0
  349. package/stored-value.js.map +1 -0
  350. package/transcript/http-transcript-artifact.js +2 -0
  351. package/transcript/http-transcript-artifact.js.map +1 -0
  352. package/transcript/transcript-store.d.ts +1 -1
  353. package/transcript/transcript-store.d.ts.map +1 -1
  354. package/transcript/transcript-store.js +29 -3
  355. package/transcript/transcript-store.js.map +1 -1
  356. package/run/coverage-config-schema.d.ts.map +0 -1
  357. package/run/coverage-config-schema.js.map +0 -1
  358. package/run/node-process-capability-restrictions.js +0 -92
  359. package/run/node-process-capability-restrictions.js.map +0 -1
  360. package/run/profile-config-normalization.js.map +0 -1
  361. package/run/profile-file-glob.js.map +0 -1
  362. package/run/run-config-defaults.js.map +0 -1
  363. package/run/run-config-schema.d.ts.map +0 -1
  364. package/run/run-config-schema.js.map +0 -1
  365. package/run/run-config.d.ts +0 -62
  366. package/run/run-config.d.ts.map +0 -1
  367. package/run/run-config.js.map +0 -1
  368. package/run/run-execution-config.d.ts.map +0 -1
  369. package/run/work-distribution-config.js.map +0 -1
@@ -0,0 +1,88 @@
1
+ import { resolve } from 'node:path';
2
+ import { invalidProfileFileGlobMessage, invalidProfileFileSetNameMessage } from "./profile-patterns.js";
3
+ export class ProfileFileDiscoveryError extends Error {
4
+ failureReason;
5
+ constructor(message, options, reason) {
6
+ super(message, options);
7
+ this.name = 'ProfileFileDiscoveryError';
8
+ this.failureReason = reason;
9
+ }
10
+ reason() {
11
+ return this.failureReason;
12
+ }
13
+ }
14
+ function validatePatterns(files, fieldPrefix) {
15
+ const fields = ['include', 'exclude'];
16
+ for (const field of fields) {
17
+ const patterns = files[field];
18
+ for (const pattern of patterns) {
19
+ const message = invalidProfileFileGlobMessage(`${fieldPrefix}${field}`, pattern);
20
+ if (message !== null) {
21
+ throw new ProfileFileDiscoveryError(message, undefined, 'invalid-policy');
22
+ }
23
+ }
24
+ }
25
+ }
26
+ function validateSets(sets) {
27
+ const entries = Object.entries(sets);
28
+ if (entries.length === 0) {
29
+ throw new ProfileFileDiscoveryError('Invalid profile files.sets: at least one file set is required.', undefined, 'invalid-policy');
30
+ }
31
+ for (const [name, set] of entries) {
32
+ const message = invalidProfileFileSetNameMessage(name);
33
+ if (message !== null) {
34
+ throw new ProfileFileDiscoveryError(message, undefined, 'invalid-policy');
35
+ }
36
+ validatePatterns(set, `sets.${name}.`);
37
+ }
38
+ }
39
+ function validateFiles(files) {
40
+ if (files.sets === undefined) {
41
+ validatePatterns(files, '');
42
+ }
43
+ else {
44
+ validateSets(files.sets);
45
+ }
46
+ }
47
+ async function discoverPatterns(cwd, files, fileSet, dependencies) {
48
+ const discovered = new Map();
49
+ const matches = dependencies.glob(files.include, { cwd, exclude: files.exclude, followSymlinks: false });
50
+ for await (const match of matches) {
51
+ const path = await dependencies.realpath(resolve(cwd, match));
52
+ const stats = await dependencies.stat(path);
53
+ if (stats.isFile()) {
54
+ discovered.set(path, { path, fileSet });
55
+ }
56
+ }
57
+ return Array.from(discovered.values()).toSorted(function compareProfileFiles(first, second) {
58
+ return first.path.localeCompare(second.path);
59
+ });
60
+ }
61
+ function validateSetOwnership(files) {
62
+ const owners = new Map();
63
+ for (const file of files) {
64
+ if (owners.has(file.path)) {
65
+ throw new ProfileFileDiscoveryError(`Profile file sets must not overlap: ${file.path} matched ${owners.get(file.path)} and ${file.fileSet}.`, undefined, 'overlap');
66
+ }
67
+ owners.set(file.path, file.fileSet);
68
+ }
69
+ }
70
+ export async function discoverProfileFiles(request, dependencies) {
71
+ validateFiles(request.files);
72
+ if (request.files.sets === undefined) {
73
+ return await discoverPatterns(request.cwd, request.files, null, dependencies);
74
+ }
75
+ const sets = await Promise.all(Object.entries(request.files.sets).map(async function discoverSet([name, files]) {
76
+ const matches = await discoverPatterns(request.cwd, files, name, dependencies);
77
+ if (matches.length === 0) {
78
+ throw new ProfileFileDiscoveryError(`Profile files.sets.${name} matched no test files.`, undefined, 'empty-set');
79
+ }
80
+ return matches;
81
+ }));
82
+ const files = sets.flat();
83
+ validateSetOwnership(files);
84
+ return files.toSorted(function compareProfileFiles(first, second) {
85
+ return first.path.localeCompare(second.path);
86
+ });
87
+ }
88
+ //# sourceMappingURL=profile-file-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-file-discovery.js","sourceRoot":"","sources":["../../../../source/config/profile-file-discovery.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import path from 'node:path';
2
- import { invalidProfileFileGlobConfigMessage, invalidRunProfileFileSetNameMessage, invalidRunProfileNameMessage } from "./profile-file-glob.js";
3
- import { defaultCoveragePolicy, defaultWorkDistribution } from "./run-config-defaults.js";
4
- import { RunConfigError } from "./run-errors.js";
5
- import { invalidWorkDistributionConfigMessage, normalizeWorkDistribution } from "./work-distribution-config.js";
2
+ import { invalidProfileFileGlobConfigMessage, invalidProfileFileSetNameMessage, invalidProfileNameMessage } from "./profile-patterns.js";
3
+ import { defaultCoveragePolicy, defaultWorkDistribution } from "./defaults.js";
4
+ import { ConfigError } from "./config-error.js";
5
+ import { invalidWorkDistributionConfigMessage, normalizeWorkDistribution } from "./work-distribution.js";
6
6
  function assertValidProfileGlob(field, pattern) {
7
7
  const message = invalidProfileFileGlobConfigMessage(field, pattern);
8
8
  if (message !== null) {
9
- throw new RunConfigError(message);
9
+ throw new ConfigError(message);
10
10
  }
11
11
  }
12
12
  function normalizeCoverageOutputs(outputs) {
@@ -54,7 +54,7 @@ function normalizeCoverageOutputDirectory(outputDirectory, configPath) {
54
54
  return null;
55
55
  }
56
56
  if (configPath === null) {
57
- throw new RunConfigError('Coverage outputDir requires a loaded config file.');
57
+ throw new ConfigError('Coverage outputDir requires a loaded config file.');
58
58
  }
59
59
  return path.isAbsolute(outputDirectory)
60
60
  ? path.resolve(outputDirectory)
@@ -85,15 +85,15 @@ function normalizeProfileFilePatterns(files, fieldPrefix) {
85
85
  };
86
86
  }
87
87
  function assertValidProfileFileSetName(name) {
88
- const message = invalidRunProfileFileSetNameMessage(name);
88
+ const message = invalidProfileFileSetNameMessage(name);
89
89
  if (message !== null) {
90
- throw new RunConfigError(message);
90
+ throw new ConfigError(message);
91
91
  }
92
92
  }
93
93
  function normalizeProfileFileSets(files) {
94
94
  const entries = Object.entries(files.sets);
95
95
  if (entries.length === 0) {
96
- throw new RunConfigError('Invalid profile files.sets: at least one file set is required.');
96
+ throw new ConfigError('Invalid profile files.sets: at least one file set is required.');
97
97
  }
98
98
  return {
99
99
  sets: Object.fromEntries(entries.map(function normalizeProfileFileSet([name, set]) {
@@ -119,18 +119,18 @@ export function normalizeRequiredProfileFiles(files) {
119
119
  : normalizeProfileFilePatterns(files, null);
120
120
  }
121
121
  export function assertValidProfileName(profileName) {
122
- const message = invalidRunProfileNameMessage(profileName);
122
+ const message = invalidProfileNameMessage(profileName);
123
123
  if (message !== null) {
124
- throw new RunConfigError(message);
124
+ throw new ConfigError(message);
125
125
  }
126
126
  }
127
127
  export function assertValidWorkDistribution(execution, files) {
128
128
  const message = invalidWorkDistributionConfigMessage(execution, files);
129
129
  if (message !== null) {
130
- throw new RunConfigError(message);
130
+ throw new ConfigError(message);
131
131
  }
132
132
  }
133
133
  export function normalizedWorkDistribution(execution) {
134
134
  return normalizeWorkDistribution(execution, defaultWorkDistribution);
135
135
  }
136
- //# sourceMappingURL=profile-config-normalization.js.map
136
+ //# sourceMappingURL=profile-normalization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-normalization.js","sourceRoot":"","sources":["../../../../source/config/profile-normalization.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,14 @@
1
1
  import { isAbsolute } from 'node:path';
2
- const runProfileNamePattern = /^[A-Za-z0-9._-]+$/u;
3
- const reservedBenchmarkProfileName = 'benchmark';
4
- export function invalidRunProfileNameMessage(profileName) {
5
- if (!runProfileNamePattern.test(profileName)) {
2
+ const profileNamePattern = /^[A-Za-z0-9._-]+$/u;
3
+ export function invalidProfileNameMessage(profileName) {
4
+ if (!profileNamePattern.test(profileName)) {
6
5
  return `Invalid profile name "${profileName}". ` +
7
6
  'Profile names may only contain letters, numbers, dots, underscores, and hyphens.';
8
7
  }
9
- if (profileName === reservedBenchmarkProfileName) {
10
- return 'Invalid profile name "benchmark". The "benchmark" profile name is reserved for benchmark commands.';
11
- }
12
8
  return null;
13
9
  }
14
- export function invalidRunProfileFileSetNameMessage(fileSetName) {
15
- return runProfileNamePattern.test(fileSetName)
10
+ export function invalidProfileFileSetNameMessage(fileSetName) {
11
+ return profileNamePattern.test(fileSetName)
16
12
  ? null
17
13
  : `Invalid profile file set name "${fileSetName}". ` +
18
14
  'Profile file set names may only contain letters, numbers, dots, underscores, and hyphens.';
@@ -43,4 +39,4 @@ export function invalidProfileFileGlobConfigMessage(field, pattern) {
43
39
  const message = invalidProfileFileGlobMessage(field, pattern);
44
40
  return message === null ? null : configMessage(message);
45
41
  }
46
- //# sourceMappingURL=profile-file-glob.js.map
42
+ //# sourceMappingURL=profile-patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-patterns.js","sourceRoot":"","sources":["../../../../source/config/profile-patterns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEhD,MAAM,UAAU,yBAAyB,CAAC,WAAmB;IACzD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,OAAO,yBAAyB,WAAW,KAAK;YAC5C,kFAAkF,CAAC;IAC3F,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,WAAmB;IAChE,OAAO,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;QACvC,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,kCAAkC,WAAW,KAAK;YAChD,2FAA2F,CAAC;AACxG,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACjC,OAAO,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IAClC,OAAO,WAAW,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAa,EAAE,OAAe;IACxE,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAEtC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,iBAAiB,KAAK,kCAAkC,CAAC;IACpE,CAAC;IAED,IAAI,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,iBAAiB,KAAK,2CAA2C,CAAC;IAC7E,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACtB,OAAO,iBAAiB,KAAK,wCAAwC,CAAC;IAC1E,CAAC;IAED,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,iBAAiB,KAAK,iDAAiD,CAAC;IACnF,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,KAAa,EAAE,OAAe;IAC9E,MAAM,OAAO,GAAG,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE9D,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC5D,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod/v4';
2
2
  import { type DefinedOutputRenderer } from '../engine/reporter-output.ts';
3
3
  import { type DefinedReporter } from '../engine/reporter.ts';
4
- import { type RunProjectCoverageOutput as CoverageOutput, type RunProjectCoveragePolicy as CoveragePolicy, type RunProjectCoverageSources as CoverageSources, type RunProjectCoverageThresholds as CoverageThresholds } from './coverage-config-schema.ts';
4
+ import { type ProjectCoverageOutput as CoverageOutput, type ProjectCoveragePolicy as CoveragePolicy, type ProjectCoverageSources as CoverageSources, type ProjectCoverageThresholds as CoverageThresholds } from './coverage-schema.ts';
5
5
  declare const integrationRetryPolicySchema: z.ZodReadonly<z.ZodObject<{
6
6
  artifacts: z.ZodOptional<z.ZodEnum<{
7
7
  all: "all";
@@ -10,7 +10,7 @@ declare const integrationRetryPolicySchema: z.ZodReadonly<z.ZodObject<{
10
10
  }>>;
11
11
  maxAttempts: z.ZodNumber;
12
12
  }, z.core.$strict>>;
13
- export type RunProjectIntegrationRetryPolicy = z.infer<typeof integrationRetryPolicySchema>;
13
+ export type ProjectIntegrationRetryPolicy = z.infer<typeof integrationRetryPolicySchema>;
14
14
  declare const profileFilesSchema: z.ZodReadonly<z.ZodUnion<readonly [z.ZodReadonly<z.ZodObject<{
15
15
  exclude: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
16
16
  include: z.ZodReadonly<z.ZodTuple<[z.ZodString], z.ZodString>>;
@@ -74,7 +74,10 @@ export declare const microtestExecutionSchema: z.ZodDiscriminatedUnion<[z.ZodRea
74
74
  export declare const integrationExecutionSchema: z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
75
75
  maxConcurrency: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"unlimited">]>>;
76
76
  processModel: z.ZodLiteral<"supervised-process">;
77
- scheduling: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"concurrent">, z.ZodLiteral<"serial">]>>;
77
+ scheduling: z.ZodOptional<z.ZodEnum<{
78
+ serial: "serial";
79
+ concurrent: "concurrent";
80
+ }>>;
78
81
  }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
79
82
  assignmentPolicy: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"case-count-balanced">, z.ZodLiteral<"duration-history-balanced">, z.ZodLiteral<"stable">]>>;
80
83
  dispatchPolicy: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"dynamic-lease">, z.ZodLiteral<"static-assignment">]>>;
@@ -88,7 +91,10 @@ export declare const integrationExecutionSchema: z.ZodDiscriminatedUnion<[z.ZodR
88
91
  maxConcurrency: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"unlimited">]>>;
89
92
  maxWorkers: z.ZodOptional<z.ZodNumber>;
90
93
  processModel: z.ZodLiteral<"worker-pool">;
91
- scheduling: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"concurrent">, z.ZodLiteral<"serial">]>>;
94
+ scheduling: z.ZodOptional<z.ZodEnum<{
95
+ serial: "serial";
96
+ concurrent: "concurrent";
97
+ }>>;
92
98
  workDistribution: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
93
99
  mode: z.ZodLiteral<"file">;
94
100
  }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
@@ -188,7 +194,7 @@ export declare const attachmentLimitsSchema: z.ZodDefault<z.ZodReadonly<z.ZodObj
188
194
  maxScopeBytes: z.ZodDefault<z.ZodNumber>;
189
195
  maxScopeAttachments: z.ZodDefault<z.ZodNumber>;
190
196
  }, z.core.$strict>>>;
191
- export type RunProjectAttachmentLimits = z.input<typeof attachmentLimitsSchema>;
197
+ export type ProjectAttachmentLimits = z.input<typeof attachmentLimitsSchema>;
192
198
  export declare const integrationProfileSchema: z.ZodReadonly<z.ZodObject<{
193
199
  attachments: z.ZodDefault<z.ZodReadonly<z.ZodObject<{
194
200
  maxInlineBytes: z.ZodDefault<z.ZodNumber>;
@@ -199,7 +205,10 @@ export declare const integrationProfileSchema: z.ZodReadonly<z.ZodObject<{
199
205
  execution: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
200
206
  maxConcurrency: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"unlimited">]>>;
201
207
  processModel: z.ZodLiteral<"supervised-process">;
202
- scheduling: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"concurrent">, z.ZodLiteral<"serial">]>>;
208
+ scheduling: z.ZodOptional<z.ZodEnum<{
209
+ serial: "serial";
210
+ concurrent: "concurrent";
211
+ }>>;
203
212
  }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
204
213
  assignmentPolicy: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"case-count-balanced">, z.ZodLiteral<"duration-history-balanced">, z.ZodLiteral<"stable">]>>;
205
214
  dispatchPolicy: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"dynamic-lease">, z.ZodLiteral<"static-assignment">]>>;
@@ -213,7 +222,10 @@ export declare const integrationProfileSchema: z.ZodReadonly<z.ZodObject<{
213
222
  maxConcurrency: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"unlimited">]>>;
214
223
  maxWorkers: z.ZodOptional<z.ZodNumber>;
215
224
  processModel: z.ZodLiteral<"worker-pool">;
216
- scheduling: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"concurrent">, z.ZodLiteral<"serial">]>>;
225
+ scheduling: z.ZodOptional<z.ZodEnum<{
226
+ serial: "serial";
227
+ concurrent: "concurrent";
228
+ }>>;
217
229
  workDistribution: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
218
230
  mode: z.ZodLiteral<"file">;
219
231
  }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
@@ -282,6 +294,88 @@ export declare const integrationProfileSchema: z.ZodReadonly<z.ZodObject<{
282
294
  softMilliseconds: z.ZodOptional<z.ZodNumber>;
283
295
  }, z.core.$strict>>>;
284
296
  }, z.core.$strict>>;
297
+ declare const benchmarkProfileSchema: z.ZodReadonly<z.ZodObject<{
298
+ attachments: z.ZodDefault<z.ZodReadonly<z.ZodObject<{
299
+ maxInlineBytes: z.ZodDefault<z.ZodNumber>;
300
+ maxArtifactBytes: z.ZodDefault<z.ZodNumber>;
301
+ maxScopeBytes: z.ZodDefault<z.ZodNumber>;
302
+ maxScopeAttachments: z.ZodDefault<z.ZodNumber>;
303
+ }, z.core.$strict>>>;
304
+ execution: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
305
+ processModel: z.ZodLiteral<"supervised-process">;
306
+ maxConcurrency: z.ZodOptional<z.ZodLiteral<1>>;
307
+ scheduling: z.ZodOptional<z.ZodLiteral<"serial">>;
308
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
309
+ hedging: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
310
+ mode: z.ZodLiteral<"off">;
311
+ }, z.core.$strict>>>;
312
+ maxConcurrency: z.ZodOptional<z.ZodLiteral<1>>;
313
+ scheduling: z.ZodOptional<z.ZodLiteral<"serial">>;
314
+ assignmentPolicy: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"case-count-balanced">, z.ZodLiteral<"duration-history-balanced">, z.ZodLiteral<"stable">]>>;
315
+ dispatchPolicy: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"dynamic-lease">, z.ZodLiteral<"static-assignment">]>>;
316
+ maxWorkers: z.ZodOptional<z.ZodNumber>;
317
+ processModel: z.ZodLiteral<"worker-pool">;
318
+ workDistribution: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
319
+ mode: z.ZodLiteral<"file">;
320
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
321
+ mode: z.ZodLiteral<"case">;
322
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
323
+ groups: z.ZodReadonly<z.ZodTuple<[z.ZodReadonly<z.ZodObject<{
324
+ fileSets: z.ZodReadonly<z.ZodTuple<[z.ZodString], z.ZodString>>;
325
+ granularity: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"case">, z.ZodLiteral<"file">, z.ZodLiteral<"group">]>>;
326
+ name: z.ZodString;
327
+ order: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"lexical">, z.ZodLiteral<"plan">, z.ZodLiteral<"profile-default">, z.ZodLiteral<"seeded">]>>;
328
+ scheduling: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"concurrent">, z.ZodLiteral<"profile-default">, z.ZodLiteral<"serial">]>>;
329
+ workerLifecycle: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"fresh-worker-per-unit">, z.ZodLiteral<"profile-default">, z.ZodLiteral<"reuse">]>>;
330
+ }, z.core.$strict>>], z.ZodReadonly<z.ZodObject<{
331
+ fileSets: z.ZodReadonly<z.ZodTuple<[z.ZodString], z.ZodString>>;
332
+ granularity: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"case">, z.ZodLiteral<"file">, z.ZodLiteral<"group">]>>;
333
+ name: z.ZodString;
334
+ order: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"lexical">, z.ZodLiteral<"plan">, z.ZodLiteral<"profile-default">, z.ZodLiteral<"seeded">]>>;
335
+ scheduling: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"concurrent">, z.ZodLiteral<"profile-default">, z.ZodLiteral<"serial">]>>;
336
+ workerLifecycle: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"fresh-worker-per-unit">, z.ZodLiteral<"profile-default">, z.ZodLiteral<"reuse">]>>;
337
+ }, z.core.$strict>>>>;
338
+ mode: z.ZodLiteral<"group">;
339
+ unmatched: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"file">, z.ZodLiteral<"reject">]>>;
340
+ }, z.core.$strict>>], "mode">>;
341
+ workerLifecycle: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"fresh-worker-per-unit">, z.ZodLiteral<"reuse">]>>;
342
+ }, z.core.$strict>>], "processModel">>;
343
+ files: z.ZodReadonly<z.ZodUnion<readonly [z.ZodReadonly<z.ZodObject<{
344
+ exclude: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
345
+ include: z.ZodReadonly<z.ZodTuple<[z.ZodString], z.ZodString>>;
346
+ sets: z.ZodOptional<z.ZodNever>;
347
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
348
+ exclude: z.ZodOptional<z.ZodNever>;
349
+ include: z.ZodOptional<z.ZodNever>;
350
+ sets: z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodReadonly<z.ZodObject<{
351
+ exclude: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
352
+ include: z.ZodReadonly<z.ZodTuple<[z.ZodString], z.ZodString>>;
353
+ }, z.core.$strict>>>>;
354
+ }, z.core.$strict>>]>>;
355
+ reporters: z.ZodOptional<z.ZodReadonly<z.ZodTuple<[z.ZodCustom<DefinedReporter, DefinedReporter>], z.ZodCustom<DefinedReporter, DefinedReporter>>>>;
356
+ resourceUsage: z.ZodOptional<z.ZodUnion<readonly [z.ZodReadonly<z.ZodObject<{
357
+ budgets: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
358
+ activeResourceCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
359
+ javaScriptEngineHeapBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
360
+ residentSetBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
361
+ residentSetGrowthBytesPerSecond: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
362
+ }, z.core.$strict>>>;
363
+ measure: z.ZodLiteral<true>;
364
+ samplingIntervalMilliseconds: z.ZodOptional<z.ZodNumber>;
365
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
366
+ measure: z.ZodOptional<z.ZodLiteral<false>>;
367
+ }, z.core.$strict>>]>>;
368
+ testFamily: z.ZodLiteral<"benchmark">;
369
+ timings: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
370
+ collection: z.ZodUnion<readonly [z.ZodLiteral<"precise">, z.ZodLiteral<"summary">]>;
371
+ }, z.core.$strict>>>;
372
+ timeouts: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
373
+ collectionMilliseconds: z.ZodOptional<z.ZodNumber>;
374
+ hardMilliseconds: z.ZodOptional<z.ZodNumber>;
375
+ softMilliseconds: z.ZodOptional<z.ZodNumber>;
376
+ }, z.core.$strict>>>;
377
+ }, z.core.$strict>>;
378
+ export type ProjectBenchmarkProfileConfig = z.input<typeof benchmarkProfileSchema>;
285
379
  export declare const projectConfigSchema: z.ZodReadonly<z.ZodObject<{
286
380
  loader: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
287
381
  sourceMaps: z.ZodBoolean;
@@ -289,6 +383,86 @@ export declare const projectConfigSchema: z.ZodReadonly<z.ZodObject<{
289
383
  }, z.core.$strict>>>;
290
384
  outputRenderer: z.ZodOptional<z.ZodCustom<DefinedOutputRenderer, DefinedOutputRenderer>>;
291
385
  profiles: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
386
+ attachments: z.ZodDefault<z.ZodReadonly<z.ZodObject<{
387
+ maxInlineBytes: z.ZodDefault<z.ZodNumber>;
388
+ maxArtifactBytes: z.ZodDefault<z.ZodNumber>;
389
+ maxScopeBytes: z.ZodDefault<z.ZodNumber>;
390
+ maxScopeAttachments: z.ZodDefault<z.ZodNumber>;
391
+ }, z.core.$strict>>>;
392
+ execution: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
393
+ processModel: z.ZodLiteral<"supervised-process">;
394
+ maxConcurrency: z.ZodOptional<z.ZodLiteral<1>>;
395
+ scheduling: z.ZodOptional<z.ZodLiteral<"serial">>;
396
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
397
+ hedging: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
398
+ mode: z.ZodLiteral<"off">;
399
+ }, z.core.$strict>>>;
400
+ maxConcurrency: z.ZodOptional<z.ZodLiteral<1>>;
401
+ scheduling: z.ZodOptional<z.ZodLiteral<"serial">>;
402
+ assignmentPolicy: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"case-count-balanced">, z.ZodLiteral<"duration-history-balanced">, z.ZodLiteral<"stable">]>>;
403
+ dispatchPolicy: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"dynamic-lease">, z.ZodLiteral<"static-assignment">]>>;
404
+ maxWorkers: z.ZodOptional<z.ZodNumber>;
405
+ processModel: z.ZodLiteral<"worker-pool">;
406
+ workDistribution: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
407
+ mode: z.ZodLiteral<"file">;
408
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
409
+ mode: z.ZodLiteral<"case">;
410
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
411
+ groups: z.ZodReadonly<z.ZodTuple<[z.ZodReadonly<z.ZodObject<{
412
+ fileSets: z.ZodReadonly<z.ZodTuple<[z.ZodString], z.ZodString>>;
413
+ granularity: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"case">, z.ZodLiteral<"file">, z.ZodLiteral<"group">]>>;
414
+ name: z.ZodString;
415
+ order: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"lexical">, z.ZodLiteral<"plan">, z.ZodLiteral<"profile-default">, z.ZodLiteral<"seeded">]>>;
416
+ scheduling: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"concurrent">, z.ZodLiteral<"profile-default">, z.ZodLiteral<"serial">]>>;
417
+ workerLifecycle: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"fresh-worker-per-unit">, z.ZodLiteral<"profile-default">, z.ZodLiteral<"reuse">]>>;
418
+ }, z.core.$strict>>], z.ZodReadonly<z.ZodObject<{
419
+ fileSets: z.ZodReadonly<z.ZodTuple<[z.ZodString], z.ZodString>>;
420
+ granularity: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"case">, z.ZodLiteral<"file">, z.ZodLiteral<"group">]>>;
421
+ name: z.ZodString;
422
+ order: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"lexical">, z.ZodLiteral<"plan">, z.ZodLiteral<"profile-default">, z.ZodLiteral<"seeded">]>>;
423
+ scheduling: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"concurrent">, z.ZodLiteral<"profile-default">, z.ZodLiteral<"serial">]>>;
424
+ workerLifecycle: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"fresh-worker-per-unit">, z.ZodLiteral<"profile-default">, z.ZodLiteral<"reuse">]>>;
425
+ }, z.core.$strict>>>>;
426
+ mode: z.ZodLiteral<"group">;
427
+ unmatched: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"file">, z.ZodLiteral<"reject">]>>;
428
+ }, z.core.$strict>>], "mode">>;
429
+ workerLifecycle: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"fresh-worker-per-unit">, z.ZodLiteral<"reuse">]>>;
430
+ }, z.core.$strict>>], "processModel">>;
431
+ files: z.ZodReadonly<z.ZodUnion<readonly [z.ZodReadonly<z.ZodObject<{
432
+ exclude: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
433
+ include: z.ZodReadonly<z.ZodTuple<[z.ZodString], z.ZodString>>;
434
+ sets: z.ZodOptional<z.ZodNever>;
435
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
436
+ exclude: z.ZodOptional<z.ZodNever>;
437
+ include: z.ZodOptional<z.ZodNever>;
438
+ sets: z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodReadonly<z.ZodObject<{
439
+ exclude: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
440
+ include: z.ZodReadonly<z.ZodTuple<[z.ZodString], z.ZodString>>;
441
+ }, z.core.$strict>>>>;
442
+ }, z.core.$strict>>]>>;
443
+ reporters: z.ZodOptional<z.ZodReadonly<z.ZodTuple<[z.ZodCustom<DefinedReporter, DefinedReporter>], z.ZodCustom<DefinedReporter, DefinedReporter>>>>;
444
+ resourceUsage: z.ZodOptional<z.ZodUnion<readonly [z.ZodReadonly<z.ZodObject<{
445
+ budgets: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
446
+ activeResourceCount: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
447
+ javaScriptEngineHeapBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
448
+ residentSetBytes: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
449
+ residentSetGrowthBytesPerSecond: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
450
+ }, z.core.$strict>>>;
451
+ measure: z.ZodLiteral<true>;
452
+ samplingIntervalMilliseconds: z.ZodOptional<z.ZodNumber>;
453
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
454
+ measure: z.ZodOptional<z.ZodLiteral<false>>;
455
+ }, z.core.$strict>>]>>;
456
+ testFamily: z.ZodLiteral<"benchmark">;
457
+ timings: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
458
+ collection: z.ZodUnion<readonly [z.ZodLiteral<"precise">, z.ZodLiteral<"summary">]>;
459
+ }, z.core.$strict>>>;
460
+ timeouts: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
461
+ collectionMilliseconds: z.ZodOptional<z.ZodNumber>;
462
+ hardMilliseconds: z.ZodOptional<z.ZodNumber>;
463
+ softMilliseconds: z.ZodOptional<z.ZodNumber>;
464
+ }, z.core.$strict>>>;
465
+ }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
292
466
  attachments: z.ZodDefault<z.ZodReadonly<z.ZodObject<{
293
467
  maxInlineBytes: z.ZodDefault<z.ZodNumber>;
294
468
  maxArtifactBytes: z.ZodDefault<z.ZodNumber>;
@@ -298,7 +472,10 @@ export declare const projectConfigSchema: z.ZodReadonly<z.ZodObject<{
298
472
  execution: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
299
473
  maxConcurrency: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"unlimited">]>>;
300
474
  processModel: z.ZodLiteral<"supervised-process">;
301
- scheduling: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"concurrent">, z.ZodLiteral<"serial">]>>;
475
+ scheduling: z.ZodOptional<z.ZodEnum<{
476
+ serial: "serial";
477
+ concurrent: "concurrent";
478
+ }>>;
302
479
  }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
303
480
  assignmentPolicy: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"case-count-balanced">, z.ZodLiteral<"duration-history-balanced">, z.ZodLiteral<"stable">]>>;
304
481
  dispatchPolicy: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"dynamic-lease">, z.ZodLiteral<"static-assignment">]>>;
@@ -312,7 +489,10 @@ export declare const projectConfigSchema: z.ZodReadonly<z.ZodObject<{
312
489
  maxConcurrency: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"unlimited">]>>;
313
490
  maxWorkers: z.ZodOptional<z.ZodNumber>;
314
491
  processModel: z.ZodLiteral<"worker-pool">;
315
- scheduling: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"concurrent">, z.ZodLiteral<"serial">]>>;
492
+ scheduling: z.ZodOptional<z.ZodEnum<{
493
+ serial: "serial";
494
+ concurrent: "concurrent";
495
+ }>>;
316
496
  workDistribution: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
317
497
  mode: z.ZodLiteral<"file">;
318
498
  }, z.core.$strict>>, z.ZodReadonly<z.ZodObject<{
@@ -451,21 +631,21 @@ export declare const projectConfigSchema: z.ZodReadonly<z.ZodObject<{
451
631
  reporters: z.ZodOptional<z.ZodReadonly<z.ZodTuple<[z.ZodCustom<DefinedReporter, DefinedReporter>], z.ZodCustom<DefinedReporter, DefinedReporter>>>>;
452
632
  runtimeStateDir: z.ZodOptional<z.ZodString>;
453
633
  }, z.core.$strict>>;
454
- export type RunProjectResourceBudgets = z.infer<typeof resourceBudgetsSchema>;
455
- export type RunProjectCoverageOutput = CoverageOutput;
456
- export type RunProjectCoveragePolicy = CoveragePolicy;
457
- export type RunProjectCoverageSources = CoverageSources;
458
- export type RunProjectCoverageThresholds = CoverageThresholds;
459
- export type RunProjectProfileFiles = z.infer<typeof profileFilesSchema>;
460
- export type RunProjectMeasuredResourceUsage = z.infer<typeof measuredResourceUsageSchema>;
461
- export type RunProjectUnmeasuredResourceUsage = z.infer<typeof unmeasuredResourceUsageSchema>;
462
- export type RunProjectResourceUsageConfig = z.infer<typeof resourceUsageSchema>;
463
- export type RunProjectTimingProfilePolicy = z.infer<typeof timingProfilePolicySchema>;
464
- export type RunProjectTimeoutConfig = z.infer<typeof timeoutSchema>;
465
- export type RunProjectIntegrationExecution = z.infer<typeof integrationExecutionSchema>;
466
- export type RunProjectIntegrationProfileConfig = z.infer<typeof integrationProfileSchema>;
467
- export type RunProjectMicrotestExecution = z.infer<typeof microtestExecutionSchema>;
468
- export type RunProjectMicrotestProfileConfig = z.infer<typeof microtestProfileSchema>;
469
- export type RunProjectConfig = z.infer<typeof projectConfigSchema>;
634
+ export type ProjectResourceBudgets = z.infer<typeof resourceBudgetsSchema>;
635
+ export type ProjectCoverageOutput = CoverageOutput;
636
+ export type ProjectCoveragePolicy = CoveragePolicy;
637
+ export type ProjectCoverageSources = CoverageSources;
638
+ export type ProjectCoverageThresholds = CoverageThresholds;
639
+ export type ProjectProfileFiles = z.infer<typeof profileFilesSchema>;
640
+ export type ProjectMeasuredResourceUsage = z.infer<typeof measuredResourceUsageSchema>;
641
+ export type ProjectUnmeasuredResourceUsage = z.infer<typeof unmeasuredResourceUsageSchema>;
642
+ export type ProjectResourceUsageConfig = z.infer<typeof resourceUsageSchema>;
643
+ export type ProjectTimingProfilePolicy = z.infer<typeof timingProfilePolicySchema>;
644
+ export type ProjectTimeoutConfig = z.infer<typeof timeoutSchema>;
645
+ export type ProjectIntegrationExecution = z.infer<typeof integrationExecutionSchema>;
646
+ export type ProjectIntegrationProfileConfig = z.infer<typeof integrationProfileSchema>;
647
+ export type ProjectMicrotestExecution = z.infer<typeof microtestExecutionSchema>;
648
+ export type ProjectMicrotestProfileConfig = z.infer<typeof microtestProfileSchema>;
649
+ export type Config = z.infer<typeof projectConfigSchema>;
470
650
  export {};
471
- //# sourceMappingURL=run-config-schema.d.ts.map
651
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../source/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAEH,KAAK,qBAAqB,IAAI,cAAc,EAC5C,KAAK,qBAAqB,IAAI,cAAc,EAC5C,KAAK,sBAAsB,IAAI,eAAe,EAC9C,KAAK,yBAAyB,IAAI,kBAAkB,EACvD,MAAM,sBAAsB,CAAC;AAsB9B,QAAA,MAAM,4BAA4B;;;;;;;mBAKnB,CAAC;AAEhB,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AA2BzF,QAAA,MAAM,kBAAkB;;;;;;;;;;;sBAA2E,CAAC;AAEpG,eAAO,MAAM,qBAAqB;;;;;mBAOnB,CAAC;AAEhB,QAAA,MAAM,2BAA2B;;;;;;;;;mBAMlB,CAAC;AAEhB,QAAA,MAAM,6BAA6B;;mBAIpB,CAAC;AAEhB,eAAO,MAAM,mBAAmB;;;;;;;;;;;qBAA0E,CAAC;AAE3G,eAAO,MAAM,aAAa;;;;mBAMX,CAAC;AAOhB,eAAO,MAAM,yBAAyB;;mBAIvB,CAAC;AAEhB,eAAO,MAAM,wBAAwB;;;;;;;;qCAenC,CAAC;AAqGH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCASrC,CAAC;AAkBH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAWpB,CAAC;AAEhB,eAAO,MAAM,sBAAsB;;;;;oBAQE,CAAC;AAEtC,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE7E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAYtB,CAAC;AAEhB,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAWb,CAAC;AAEhB,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAUnF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAQjB,CAAC;AAEhB,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC3E,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC;AACnD,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC;AACnD,MAAM,MAAM,sBAAsB,GAAG,eAAe,CAAC;AACrD,MAAM,MAAM,yBAAyB,GAAG,kBAAkB,CAAC;AAC3D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACrE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AACvF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAC3F,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAC7E,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AACnF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACjE,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AACrF,MAAM,MAAM,+BAU+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACvF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACjF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACnF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -2,7 +2,7 @@ import { z } from 'zod/v4';
2
2
  import { defaultAttachmentLimits } from "../engine/runtime-attachment.js";
3
3
  import { isOutputRenderer } from "../engine/reporter-output.js";
4
4
  import { isReporter } from "../engine/reporter.js";
5
- import { coveragePolicySchema } from "./coverage-config-schema.js";
5
+ import { coveragePolicySchema } from "./coverage-schema.js";
6
6
  const reporterSchema = z.custom(isReporter, 'must be created with defineReporter(...)');
7
7
  const outputRendererSchema = z.custom(isOutputRenderer, 'must be created with defineOutputRenderer(...)');
8
8
  const loaderSchema = z
@@ -173,25 +173,38 @@ const workDistributionSchema = z.discriminatedUnion('mode', [
173
173
  })
174
174
  .readonly()
175
175
  ]);
176
+ const workerPoolExecutionFields = {
177
+ assignmentPolicy: z.optional(workerPoolAssignmentPolicySchema),
178
+ dispatchPolicy: z.optional(workerPoolDispatchPolicySchema),
179
+ hedging: z.optional(workerPoolHedgingSchema),
180
+ maxConcurrency: z.optional(maxConcurrencySchema),
181
+ maxWorkers: z.optional(positiveSafeIntegerSchema),
182
+ processModel: z.literal('worker-pool'),
183
+ scheduling: z.optional(z.enum(['concurrent', 'serial'])),
184
+ workDistribution: z.optional(workDistributionSchema),
185
+ workerLifecycle: z.optional(workerLifecycleSchema)
186
+ };
176
187
  export const integrationExecutionSchema = z.discriminatedUnion('processModel', [
177
188
  z
178
189
  .strictObject({
179
190
  maxConcurrency: z.optional(maxConcurrencySchema),
180
191
  processModel: z.literal('supervised-process'),
181
- scheduling: z.optional(z.union([z.literal('concurrent'), z.literal('serial')]))
192
+ scheduling: z.optional(z.enum(['concurrent', 'serial']))
182
193
  })
183
194
  .readonly(),
195
+ z.strictObject(workerPoolExecutionFields).readonly()
196
+ ]);
197
+ const benchmarkAdmissionFields = {
198
+ maxConcurrency: z.optional(z.literal(1)),
199
+ scheduling: z.optional(z.literal('serial'))
200
+ };
201
+ const benchmarkExecutionSchema = z.discriminatedUnion('processModel', [
202
+ z.strictObject({ ...benchmarkAdmissionFields, processModel: z.literal('supervised-process') }).readonly(),
184
203
  z
185
204
  .strictObject({
186
- assignmentPolicy: z.optional(workerPoolAssignmentPolicySchema),
187
- dispatchPolicy: z.optional(workerPoolDispatchPolicySchema),
188
- hedging: z.optional(workerPoolHedgingSchema),
189
- maxConcurrency: z.optional(maxConcurrencySchema),
190
- maxWorkers: z.optional(positiveSafeIntegerSchema),
191
- processModel: z.literal('worker-pool'),
192
- scheduling: z.optional(z.union([z.literal('concurrent'), z.literal('serial')])),
193
- workDistribution: z.optional(workDistributionSchema),
194
- workerLifecycle: z.optional(workerLifecycleSchema)
205
+ ...workerPoolExecutionFields,
206
+ ...benchmarkAdmissionFields,
207
+ hedging: z.optional(z.strictObject({ mode: z.literal('off') }).readonly())
195
208
  })
196
209
  .readonly()
197
210
  ]);
@@ -229,7 +242,20 @@ export const integrationProfileSchema = z
229
242
  timeouts: z.optional(timeoutSchema)
230
243
  })
231
244
  .readonly();
245
+ const benchmarkProfileSchema = z
246
+ .strictObject({
247
+ attachments: attachmentLimitsSchema,
248
+ execution: z.optional(benchmarkExecutionSchema),
249
+ files: profileFilesSchema,
250
+ reporters: z.optional(z.tuple([reporterSchema]).rest(reporterSchema).readonly()),
251
+ resourceUsage: z.optional(resourceUsageSchema),
252
+ testFamily: z.literal('benchmark'),
253
+ timings: z.optional(timingProfilePolicySchema),
254
+ timeouts: z.optional(timeoutSchema)
255
+ })
256
+ .readonly();
232
257
  const profileSchema = z.discriminatedUnion('testFamily', [
258
+ benchmarkProfileSchema,
233
259
  integrationProfileSchema,
234
260
  microtestProfileSchema
235
261
  ]);
@@ -246,4 +272,4 @@ export const projectConfigSchema = z
246
272
  export function workerPoolProjectExecution(execution) {
247
273
  return execution?.processModel === 'worker-pool' ? execution : null;
248
274
  }
249
- //# sourceMappingURL=run-config-schema.js.map
275
+ //# sourceMappingURL=schema.js.map