@velum-labs/routekit-eval-setup 1.3.2 → 1.5.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 (342) hide show
  1. package/dist/adapters/authoring-responses-request.d.ts +5 -0
  2. package/dist/adapters/authoring-responses-request.js +38 -0
  3. package/dist/adapters/evaluation-evidence-freshness.d.ts +7 -0
  4. package/dist/adapters/evaluation-evidence-freshness.js +76 -0
  5. package/dist/adapters/git-task-history.d.ts +67 -0
  6. package/dist/adapters/git-task-history.js +171 -0
  7. package/dist/adapters/integrated-repository-history.d.ts +21 -0
  8. package/dist/adapters/integrated-repository-history.js +175 -0
  9. package/dist/adapters/repository-command-diagnostic.d.ts +8 -0
  10. package/dist/adapters/repository-command-diagnostic.js +46 -0
  11. package/dist/adapters/repository-command-evidence.d.ts +13 -0
  12. package/dist/adapters/repository-command-evidence.js +102 -0
  13. package/dist/adapters/repository-command-runner.d.ts +238 -0
  14. package/dist/adapters/repository-command-runner.js +1483 -0
  15. package/dist/adapters/repository-import-context.d.ts +47 -0
  16. package/dist/adapters/repository-import-context.js +469 -0
  17. package/dist/adapters/repository-node-test-reporter.d.ts +3 -0
  18. package/dist/adapters/repository-node-test-reporter.js +27 -0
  19. package/dist/adapters/repository-review-evidence.d.ts +39 -0
  20. package/dist/adapters/repository-review-evidence.js +632 -0
  21. package/dist/adapters/repository-seed-selection.d.ts +7 -0
  22. package/dist/adapters/repository-seed-selection.js +79 -0
  23. package/dist/adapters/repository-solution-edits.d.ts +49 -0
  24. package/dist/adapters/repository-solution-edits.js +136 -0
  25. package/dist/adapters/repository-vitest-phase-adapter.d.ts +8 -0
  26. package/dist/adapters/repository-vitest-phase-adapter.js +310 -0
  27. package/dist/adapters/repository-vitest-reporter.d.ts +24 -0
  28. package/dist/adapters/repository-vitest-reporter.js +314 -0
  29. package/dist/adapters/strict-authoring-schema.d.ts +5 -0
  30. package/dist/adapters/strict-authoring-schema.js +158 -0
  31. package/dist/adapters/test-discovery.d.ts +30 -0
  32. package/dist/adapters/test-discovery.js +124 -0
  33. package/dist/adapters/typescript-repository-index.d.ts +51 -0
  34. package/dist/adapters/typescript-repository-index.js +226 -0
  35. package/dist/agentic-capabilities-protocol.d.ts +1373 -0
  36. package/dist/agentic-capabilities-protocol.js +786 -0
  37. package/dist/case-checkpoint-store.d.ts +29 -0
  38. package/dist/case-checkpoint-store.js +133 -0
  39. package/dist/case-pipeline-protocol-v2.d.ts +184 -0
  40. package/dist/case-pipeline-protocol-v2.js +193 -0
  41. package/dist/case-pipeline-protocol.d.ts +2626 -0
  42. package/dist/case-pipeline-protocol.js +371 -0
  43. package/dist/effect-api.d.ts +74 -10
  44. package/dist/effect-api.js +56 -6
  45. package/dist/errors.d.ts +31 -0
  46. package/dist/errors.js +10 -0
  47. package/dist/eval-capability-execution-envelope.d.ts +64 -0
  48. package/dist/eval-capability-execution-envelope.js +98 -0
  49. package/dist/eval-capability-policy.d.ts +90 -0
  50. package/dist/eval-capability-policy.js +107 -0
  51. package/dist/eval-event-log.d.ts +140 -0
  52. package/dist/eval-event-log.js +220 -0
  53. package/dist/evaluation-authoring-policy.d.ts +18 -0
  54. package/dist/evaluation-authoring-policy.js +19 -0
  55. package/dist/evaluation-authoring-validation.d.ts +22 -0
  56. package/dist/evaluation-authoring-validation.js +72 -0
  57. package/dist/evaluation-evidence.d.ts +20 -0
  58. package/dist/evaluation-evidence.js +319 -0
  59. package/dist/evaluation-grader-calibration-protocol.d.ts +108 -0
  60. package/dist/evaluation-grader-calibration-protocol.js +80 -0
  61. package/dist/evaluation-grader-calibration.d.ts +18 -0
  62. package/dist/evaluation-grader-calibration.js +334 -0
  63. package/dist/evaluation-grading-policy.d.ts +24 -0
  64. package/dist/evaluation-grading-policy.js +54 -0
  65. package/dist/evaluation-proposal-policy.d.ts +4 -0
  66. package/dist/evaluation-proposal-policy.js +91 -0
  67. package/dist/evaluation-source-retrieval.d.ts +68 -0
  68. package/dist/evaluation-source-retrieval.js +513 -0
  69. package/dist/evaluation-structure-policy.d.ts +29 -0
  70. package/dist/evaluation-structure-policy.js +138 -0
  71. package/dist/index.d.ts +124 -17
  72. package/dist/index.js +69 -11
  73. package/dist/inspection.js +2 -3
  74. package/dist/project-artifacts.d.ts +7 -2
  75. package/dist/project-artifacts.js +49 -136
  76. package/dist/project-authoring.d.ts +66 -5
  77. package/dist/project-authoring.js +783 -109
  78. package/dist/project-contracts.d.ts +419 -84
  79. package/dist/project-contracts.js +160 -52
  80. package/dist/project-store.js +2 -1
  81. package/dist/project-workflow.d.ts +5 -4
  82. package/dist/project-workflow.js +154 -35
  83. package/dist/repository-adversary-protocol.d.ts +64 -0
  84. package/dist/repository-adversary-protocol.js +105 -0
  85. package/dist/repository-behavior-protocol.d.ts +188 -0
  86. package/dist/repository-behavior-protocol.js +202 -0
  87. package/dist/repository-benchmark-protocol.d.ts +487 -0
  88. package/dist/repository-benchmark-protocol.js +96 -0
  89. package/dist/repository-execution-protocol.d.ts +150 -0
  90. package/dist/repository-execution-protocol.js +38 -0
  91. package/dist/repository-fixture-instructions.d.ts +3 -0
  92. package/dist/repository-fixture-instructions.js +91 -0
  93. package/dist/repository-fixture-protocol.d.ts +79 -0
  94. package/dist/repository-fixture-protocol.js +79 -0
  95. package/dist/repository-foundry-plan-protocol.d.ts +118 -0
  96. package/dist/repository-foundry-plan-protocol.js +296 -0
  97. package/dist/repository-foundry-progress-protocol.d.ts +52 -0
  98. package/dist/repository-foundry-progress-protocol.js +52 -0
  99. package/dist/repository-improvement-protocol.d.ts +100 -0
  100. package/dist/repository-improvement-protocol.js +106 -0
  101. package/dist/repository-language-model-protocol.d.ts +43 -0
  102. package/dist/repository-language-model-protocol.js +146 -0
  103. package/dist/repository-oracle-coverage-protocol.d.ts +18 -0
  104. package/dist/repository-oracle-coverage-protocol.js +39 -0
  105. package/dist/repository-oracle-execution-binding.d.ts +27 -0
  106. package/dist/repository-oracle-execution-binding.js +59 -0
  107. package/dist/repository-oracle-protocol.d.ts +230 -0
  108. package/dist/repository-oracle-protocol.js +156 -0
  109. package/dist/repository-oracle-scope-policy.d.ts +22 -0
  110. package/dist/repository-oracle-scope-policy.js +92 -0
  111. package/dist/repository-quality-policy.d.ts +15 -0
  112. package/dist/repository-quality-policy.js +357 -0
  113. package/dist/repository-routing-benchmark-protocol.d.ts +176 -0
  114. package/dist/repository-routing-benchmark-protocol.js +103 -0
  115. package/dist/repository-routing-model-protocol.d.ts +36 -0
  116. package/dist/repository-routing-model-protocol.js +89 -0
  117. package/dist/repository-routing-plan-protocol.d.ts +112 -0
  118. package/dist/repository-routing-plan-protocol.js +58 -0
  119. package/dist/repository-routing-quality-policy.d.ts +9 -0
  120. package/dist/repository-routing-quality-policy.js +191 -0
  121. package/dist/repository-seed-qualification-progress-protocol.d.ts +205 -0
  122. package/dist/repository-seed-qualification-progress-protocol.js +28 -0
  123. package/dist/repository-semantic-calibration-protocol.d.ts +768 -0
  124. package/dist/repository-semantic-calibration-protocol.js +276 -0
  125. package/dist/repository-semantic-calibration.d.ts +163 -0
  126. package/dist/repository-semantic-calibration.js +581 -0
  127. package/dist/repository-specification-contract-facts-protocol.d.ts +224 -0
  128. package/dist/repository-specification-contract-facts-protocol.js +276 -0
  129. package/dist/repository-specification-critique-protocol.d.ts +189 -0
  130. package/dist/repository-specification-critique-protocol.js +103 -0
  131. package/dist/repository-task-family-protocol.d.ts +24 -0
  132. package/dist/repository-task-family-protocol.js +37 -0
  133. package/dist/repository-task-seed-protocol.d.ts +384 -0
  134. package/dist/repository-task-seed-protocol.js +236 -0
  135. package/dist/repository-trajectory-protocol.d.ts +20 -0
  136. package/dist/repository-trajectory-protocol.js +42 -0
  137. package/dist/service.js +1 -1
  138. package/dist/services/adversary/service.d.ts +64 -0
  139. package/dist/services/adversary/service.js +330 -0
  140. package/dist/services/benchmark-compiler/service.d.ts +450 -0
  141. package/dist/services/benchmark-compiler/service.js +9 -0
  142. package/dist/services/budgeted-model/service.d.ts +118 -0
  143. package/dist/services/budgeted-model/service.js +460 -0
  144. package/dist/services/case-authoring/service.d.ts +163 -0
  145. package/dist/services/case-authoring/service.js +1456 -0
  146. package/dist/services/case-finalization/service.d.ts +283 -0
  147. package/dist/services/case-finalization/service.js +370 -0
  148. package/dist/services/case-generation/service.d.ts +619 -0
  149. package/dist/services/case-generation/service.js +2628 -0
  150. package/dist/services/case-pipeline/service.d.ts +31 -0
  151. package/dist/services/case-pipeline/service.js +485 -0
  152. package/dist/services/case-pipeline-v2/service.d.ts +70 -0
  153. package/dist/services/case-pipeline-v2/service.js +477 -0
  154. package/dist/services/command-observability/service.d.ts +13 -0
  155. package/dist/services/command-observability/service.js +3 -0
  156. package/dist/services/dimension-labeling/service.d.ts +77 -0
  157. package/dist/services/dimension-labeling/service.js +188 -0
  158. package/dist/services/eval-candidate/service.d.ts +208 -0
  159. package/dist/services/eval-candidate/service.js +64 -0
  160. package/dist/services/eval-capabilities/service.d.ts +183 -0
  161. package/dist/services/eval-capabilities/service.js +1433 -0
  162. package/dist/services/eval-environment/service.d.ts +173 -0
  163. package/dist/services/eval-environment/service.js +127 -0
  164. package/dist/services/evidence-reconstruction/service.d.ts +36 -0
  165. package/dist/services/evidence-reconstruction/service.js +145 -0
  166. package/dist/services/fixture-builder/service.d.ts +62 -0
  167. package/dist/services/fixture-builder/service.js +36 -0
  168. package/dist/services/fixture-validation/service.d.ts +75 -0
  169. package/dist/services/fixture-validation/service.js +295 -0
  170. package/dist/services/foundry/service.d.ts +831 -0
  171. package/dist/services/foundry/service.js +442 -0
  172. package/dist/services/foundry-progress/service.d.ts +62 -0
  173. package/dist/services/foundry-progress/service.js +149 -0
  174. package/dist/services/foundry-v2/service.d.ts +54 -0
  175. package/dist/services/foundry-v2/service.js +28 -0
  176. package/dist/services/grounded-authoring/service.d.ts +126 -0
  177. package/dist/services/grounded-authoring/service.js +822 -0
  178. package/dist/services/historical-case/service.d.ts +722 -0
  179. package/dist/services/historical-case/service.js +177 -0
  180. package/dist/services/improvement-loop/service.d.ts +59 -0
  181. package/dist/services/improvement-loop/service.js +176 -0
  182. package/dist/services/language-model/service.d.ts +52 -0
  183. package/dist/services/language-model/service.js +194 -0
  184. package/dist/services/oracle-builder/service.d.ts +146 -0
  185. package/dist/services/oracle-builder/service.js +513 -0
  186. package/dist/services/oracle-coverage/service.d.ts +28 -0
  187. package/dist/services/oracle-coverage/service.js +50 -0
  188. package/dist/services/oracle-coverage-witness/service.d.ts +130 -0
  189. package/dist/services/oracle-coverage-witness/service.js +538 -0
  190. package/dist/services/pipeline-challenge/service.d.ts +551 -0
  191. package/dist/services/pipeline-challenge/service.js +427 -0
  192. package/dist/services/pipeline-controls/service.d.ts +130 -0
  193. package/dist/services/pipeline-controls/service.js +483 -0
  194. package/dist/services/pipeline-oracle/service.d.ts +8 -0
  195. package/dist/services/pipeline-oracle/service.js +256 -0
  196. package/dist/services/pipeline-seed/service.d.ts +298 -0
  197. package/dist/services/pipeline-seed/service.js +428 -0
  198. package/dist/services/pipeline-spec/service.d.ts +103 -0
  199. package/dist/services/pipeline-spec/service.js +619 -0
  200. package/dist/services/pipeline-tournament/service.d.ts +258 -0
  201. package/dist/services/pipeline-tournament/service.js +476 -0
  202. package/dist/services/quality-gate/service.d.ts +233 -0
  203. package/dist/services/quality-gate/service.js +136 -0
  204. package/dist/services/repository-bundle/service.d.ts +33 -0
  205. package/dist/services/repository-bundle/service.js +114 -0
  206. package/dist/services/repository-model/service.d.ts +105 -0
  207. package/dist/services/repository-model/service.js +250 -0
  208. package/dist/services/repository-public-artifact/service.d.ts +133 -0
  209. package/dist/services/repository-public-artifact/service.js +330 -0
  210. package/dist/services/routing-benchmark/service.d.ts +362 -0
  211. package/dist/services/routing-benchmark/service.js +96 -0
  212. package/dist/services/specification-critic/service.d.ts +92 -0
  213. package/dist/services/specification-critic/service.js +172 -0
  214. package/dist/services/task-family/service.d.ts +40 -0
  215. package/dist/services/task-family/service.js +55 -0
  216. package/dist/services/task-seed/service.d.ts +906 -0
  217. package/dist/services/task-seed/service.js +1406 -0
  218. package/dist/services/task-specification/service.d.ts +27 -0
  219. package/dist/services/task-specification/service.js +40 -0
  220. package/dist/services/trajectory-policy/service.d.ts +110 -0
  221. package/dist/services/trajectory-policy/service.js +216 -0
  222. package/dist/test/agentic-capabilities-protocol.test.d.ts +1 -0
  223. package/dist/test/agentic-capabilities-protocol.test.js +570 -0
  224. package/dist/test/agentic-capabilities.test.d.ts +1 -0
  225. package/dist/test/agentic-capabilities.test.js +1461 -0
  226. package/dist/test/agentic-environment.test.d.ts +1 -0
  227. package/dist/test/agentic-environment.test.js +213 -0
  228. package/dist/test/case-pipeline-foundation.test.d.ts +1 -0
  229. package/dist/test/case-pipeline-foundation.test.js +535 -0
  230. package/dist/test/case-pipeline-protocol-v2.test.d.ts +1 -0
  231. package/dist/test/case-pipeline-protocol-v2.test.js +124 -0
  232. package/dist/test/case-pipeline-v2.test.d.ts +1 -0
  233. package/dist/test/case-pipeline-v2.test.js +286 -0
  234. package/dist/test/case-pipeline.test.d.ts +1 -0
  235. package/dist/test/case-pipeline.test.js +851 -0
  236. package/dist/test/eval-capability-policy.test.d.ts +1 -0
  237. package/dist/test/eval-capability-policy.test.js +50 -0
  238. package/dist/test/eval-event-log.test.d.ts +1 -0
  239. package/dist/test/eval-event-log.test.js +125 -0
  240. package/dist/test/evaluation-evidence-freshness.test.d.ts +1 -0
  241. package/dist/test/evaluation-evidence-freshness.test.js +44 -0
  242. package/dist/test/evaluation-evidence.test.d.ts +1 -0
  243. package/dist/test/evaluation-evidence.test.js +230 -0
  244. package/dist/test/evaluation-grader-calibration.test.d.ts +1 -0
  245. package/dist/test/evaluation-grader-calibration.test.js +373 -0
  246. package/dist/test/evaluation-proposal-digest.test.d.ts +1 -0
  247. package/dist/test/evaluation-proposal-digest.test.js +187 -0
  248. package/dist/test/evaluation-source-retrieval.test.d.ts +1 -0
  249. package/dist/test/evaluation-source-retrieval.test.js +237 -0
  250. package/dist/test/evaluation-structure-policy.test.d.ts +1 -0
  251. package/dist/test/evaluation-structure-policy.test.js +196 -0
  252. package/dist/test/fixtures/repository-resource-panel.d.ts +39 -0
  253. package/dist/test/fixtures/repository-resource-panel.js +111 -0
  254. package/dist/test/fixtures/vitest-boundary-panel.d.ts +84 -0
  255. package/dist/test/fixtures/vitest-boundary-panel.js +120 -0
  256. package/dist/test/fixtures/vitest-phase-panel.d.ts +135 -0
  257. package/dist/test/fixtures/vitest-phase-panel.js +213 -0
  258. package/dist/test/fixtures/vitest-reporter-results.d.ts +76 -0
  259. package/dist/test/fixtures/vitest-reporter-results.js +94 -0
  260. package/dist/test/grounded-authoring.test.d.ts +1 -0
  261. package/dist/test/grounded-authoring.test.js +565 -0
  262. package/dist/test/integrated-repository-history.test.d.ts +1 -0
  263. package/dist/test/integrated-repository-history.test.js +227 -0
  264. package/dist/test/project-authoring.test.js +593 -43
  265. package/dist/test/project-workflow.test.js +419 -40
  266. package/dist/test/repository-authoring-artifacts.test.d.ts +1 -0
  267. package/dist/test/repository-authoring-artifacts.test.js +185 -0
  268. package/dist/test/repository-bundle.test.d.ts +1 -0
  269. package/dist/test/repository-bundle.test.js +52 -0
  270. package/dist/test/repository-case-generation.test.d.ts +1 -0
  271. package/dist/test/repository-case-generation.test.js +3465 -0
  272. package/dist/test/repository-command-diagnostic.test.d.ts +1 -0
  273. package/dist/test/repository-command-diagnostic.test.js +55 -0
  274. package/dist/test/repository-command-signals.test.d.ts +1 -0
  275. package/dist/test/repository-command-signals.test.js +124 -0
  276. package/dist/test/repository-fixture-scope-coverage.test.d.ts +1 -0
  277. package/dist/test/repository-fixture-scope-coverage.test.js +127 -0
  278. package/dist/test/repository-fixture-validation.test.d.ts +1 -0
  279. package/dist/test/repository-fixture-validation.test.js +362 -0
  280. package/dist/test/repository-foundry-progress.test.d.ts +1 -0
  281. package/dist/test/repository-foundry-progress.test.js +110 -0
  282. package/dist/test/repository-foundry-quality.test.d.ts +1 -0
  283. package/dist/test/repository-foundry-quality.test.js +1138 -0
  284. package/dist/test/repository-import-context.test.d.ts +1 -0
  285. package/dist/test/repository-import-context.test.js +354 -0
  286. package/dist/test/repository-model-authoring.test.d.ts +1 -0
  287. package/dist/test/repository-model-authoring.test.js +544 -0
  288. package/dist/test/repository-model.test.d.ts +1 -0
  289. package/dist/test/repository-model.test.js +2195 -0
  290. package/dist/test/repository-node-test-reporter.test.d.ts +1 -0
  291. package/dist/test/repository-node-test-reporter.test.js +104 -0
  292. package/dist/test/repository-oracle-concurrency.test.d.ts +1 -0
  293. package/dist/test/repository-oracle-concurrency.test.js +542 -0
  294. package/dist/test/repository-oracle-coverage-witness.test.d.ts +1 -0
  295. package/dist/test/repository-oracle-coverage-witness.test.js +511 -0
  296. package/dist/test/repository-oracle-coverage.test.d.ts +1 -0
  297. package/dist/test/repository-oracle-coverage.test.js +168 -0
  298. package/dist/test/repository-oracle-evidence.test.d.ts +1 -0
  299. package/dist/test/repository-oracle-evidence.test.js +185 -0
  300. package/dist/test/repository-oracle-plan.test.d.ts +1 -0
  301. package/dist/test/repository-oracle-plan.test.js +176 -0
  302. package/dist/test/repository-overlay-isolation.test.d.ts +1 -0
  303. package/dist/test/repository-overlay-isolation.test.js +85 -0
  304. package/dist/test/repository-preparation-cache.test.d.ts +1 -0
  305. package/dist/test/repository-preparation-cache.test.js +414 -0
  306. package/dist/test/repository-public-artifact.test.d.ts +1 -0
  307. package/dist/test/repository-public-artifact.test.js +273 -0
  308. package/dist/test/repository-qualification-diagnostics.test.d.ts +1 -0
  309. package/dist/test/repository-qualification-diagnostics.test.js +524 -0
  310. package/dist/test/repository-reference-authoring.test.d.ts +1 -0
  311. package/dist/test/repository-reference-authoring.test.js +1633 -0
  312. package/dist/test/repository-review-evidence-v2.test.d.ts +1 -0
  313. package/dist/test/repository-review-evidence-v2.test.js +183 -0
  314. package/dist/test/repository-review-evidence.test.d.ts +1 -0
  315. package/dist/test/repository-review-evidence.test.js +124 -0
  316. package/dist/test/repository-seed-exclusions.test.d.ts +1 -0
  317. package/dist/test/repository-seed-exclusions.test.js +96 -0
  318. package/dist/test/repository-seed-selection.test.d.ts +1 -0
  319. package/dist/test/repository-seed-selection.test.js +504 -0
  320. package/dist/test/repository-semantic-calibration.test.d.ts +1 -0
  321. package/dist/test/repository-semantic-calibration.test.js +688 -0
  322. package/dist/test/repository-solution-edits.test.d.ts +1 -0
  323. package/dist/test/repository-solution-edits.test.js +377 -0
  324. package/dist/test/repository-specification-budget.test.d.ts +1 -0
  325. package/dist/test/repository-specification-budget.test.js +171 -0
  326. package/dist/test/repository-specification-contract-checkpoint.test.d.ts +1 -0
  327. package/dist/test/repository-specification-contract-checkpoint.test.js +228 -0
  328. package/dist/test/repository-specification-contract-facts.test.d.ts +1 -0
  329. package/dist/test/repository-specification-contract-facts.test.js +177 -0
  330. package/dist/test/repository-trajectory-authoring.test.d.ts +1 -0
  331. package/dist/test/repository-trajectory-authoring.test.js +176 -0
  332. package/dist/test/repository-valid-control-plan.test.d.ts +1 -0
  333. package/dist/test/repository-valid-control-plan.test.js +45 -0
  334. package/dist/test/repository-vitest-phase.test.d.ts +1 -0
  335. package/dist/test/repository-vitest-phase.test.js +848 -0
  336. package/dist/test/repository-vitest-reporter.test.d.ts +1 -0
  337. package/dist/test/repository-vitest-reporter.test.js +158 -0
  338. package/dist/test/repository-workspace-build.test.d.ts +1 -0
  339. package/dist/test/repository-workspace-build.test.js +160 -0
  340. package/dist/test/strict-authoring-schema.test.d.ts +1 -0
  341. package/dist/test/strict-authoring-schema.test.js +169 -0
  342. package/package.json +48 -6
@@ -0,0 +1,31 @@
1
+ import { Effect } from "effect";
2
+ import { type CaseCheckpointStoreV1 } from "../../case-checkpoint-store.js";
3
+ import { type AdmitCheckpointV1, type PipelineCaseContextV1, type PipelineCheckpointsV1, type PipelineStateV1 } from "../../case-pipeline-protocol.js";
4
+ import type { RepositoryBehaviorMapV1 } from "../../repository-behavior-protocol.js";
5
+ import { RepositoryFoundryLanguageModel } from "../language-model/service.js";
6
+ export type CasePipelineRunInputV1 = {
7
+ readonly context: PipelineCaseContextV1;
8
+ readonly map: RepositoryBehaviorMapV1;
9
+ readonly store?: CaseCheckpointStoreV1;
10
+ };
11
+ export type CasePipelineRunResultV1 = {
12
+ readonly state: PipelineStateV1;
13
+ readonly checkpoints: PipelineCheckpointsV1;
14
+ readonly admit?: AdmitCheckpointV1;
15
+ };
16
+ export type CasePipelineStatusResultV1 = {
17
+ readonly state?: PipelineStateV1;
18
+ readonly checkpoints: PipelineCheckpointsV1;
19
+ readonly ledgerEntries: number;
20
+ readonly error?: string;
21
+ };
22
+ /** Public runner: every failure, including defects at an adapter boundary, is returned as durable state. */
23
+ export declare const runCasePipelineV1: (input: CasePipelineRunInputV1) => Effect.Effect<CasePipelineRunResultV1, never, RepositoryFoundryLanguageModel>;
24
+ /** Read-only status inspection. It never invokes or requires a language model. */
25
+ export declare const readCasePipelineStatusV1: (input: {
26
+ readonly caseDirectory: string;
27
+ }) => Effect.Effect<CasePipelineStatusResultV1>;
28
+ export declare const runRepositoryCasePipelineV1: (input: CasePipelineRunInputV1) => Effect.Effect<CasePipelineRunResultV1, never, RepositoryFoundryLanguageModel>;
29
+ export declare const readRepositoryCasePipelineStatusV1: (input: {
30
+ readonly caseDirectory: string;
31
+ }) => Effect.Effect<CasePipelineStatusResultV1>;
@@ -0,0 +1,485 @@
1
+ import { Cause, Clock, Effect, Option, Schema } from "effect";
2
+ import { makeCaseCheckpointStoreV1 } from "../../case-checkpoint-store.js";
3
+ import { checkpointDigestV1, nextPipelineStageV1, PIPELINE_CHECKPOINT_SCHEMAS, PIPELINE_STAGES, PipelineBudgetExhaustedError, PipelineStageError, pipelineScientificIdentityDigestV1, pipelineStageIndexV1 } from "../../case-pipeline-protocol.js";
4
+ import { RepositorySpecificationReviewV1 } from "../../repository-specification-critique-protocol.js";
5
+ import { BudgetedLanguageModelLive, makePipelineStateAccessorV1, normalizePipelineFailureV1, PipelineBudgetTracker } from "../budgeted-model/service.js";
6
+ import { RepositoryFoundryLanguageModel } from "../language-model/service.js";
7
+ import { runPipelineAdmitStageV1, runPipelineChallengeStageV1 } from "../pipeline-challenge/service.js";
8
+ import { runPipelineControlsStageV1 } from "../pipeline-controls/service.js";
9
+ import { runPipelineOracleStageV1 } from "../pipeline-oracle/service.js";
10
+ import { runPipelineSeedStageV1 } from "../pipeline-seed/service.js";
11
+ import { runPipelineSpecStageV1 } from "../pipeline-spec/service.js";
12
+ import { runPipelineTournamentStageV1 } from "../pipeline-tournament/service.js";
13
+ const nowIso = (millis) => new Date(millis).toISOString();
14
+ const initialState = (context, map, at) => ({
15
+ version: 1,
16
+ caseId: context.caseId,
17
+ repositoryRoot: context.repositoryRoot,
18
+ dimension: context.dimension,
19
+ model: context.primaryModel,
20
+ identityDigest: pipelineScientificIdentityDigestV1(context, map),
21
+ stage: "seed",
22
+ status: "running",
23
+ startedAt: nowIso(at),
24
+ updatedAt: nowIso(at),
25
+ modelCalls: 0,
26
+ elapsedMs: 0,
27
+ resumeCount: 0,
28
+ folds: 0
29
+ });
30
+ const sameIdentity = (state, context, map) => state.caseId === context.caseId &&
31
+ state.repositoryRoot === context.repositoryRoot &&
32
+ state.model === context.primaryModel &&
33
+ state.identityDigest === pipelineScientificIdentityDigestV1(context, map);
34
+ const acceptedSpec = (checkpoint) => {
35
+ const last = checkpoint.reviews.at(-1);
36
+ if (last === undefined)
37
+ return false;
38
+ const decoded = Schema.decodeUnknownOption(RepositorySpecificationReviewV1)(last);
39
+ if (Option.isNone(decoded))
40
+ return false;
41
+ const review = decoded.value;
42
+ return (review.verdict === "sufficient" &&
43
+ review.dimensionFit?.outcome === "fit" &&
44
+ review.referenceCompatibility?.outcome === "compatible" &&
45
+ (review.criticalBehaviorCoverage?.every(({ outcome }) => outcome === "covered") ?? false) &&
46
+ review.findings.every(({ severity }) => severity !== "blocker"));
47
+ };
48
+ const checkpointComplete = (stage, checkpoint) => {
49
+ switch (stage) {
50
+ case "seed":
51
+ return checkpoint.seed.status === "qualified";
52
+ case "spec":
53
+ return acceptedSpec(checkpoint);
54
+ case "oracle": {
55
+ const oracle = checkpoint;
56
+ return oracle.preflight.passed;
57
+ }
58
+ case "controls": {
59
+ const controls = checkpoint;
60
+ return controls.valid.length >= 1 && controls.wrong.length >= 1;
61
+ }
62
+ case "tournament":
63
+ return checkpoint.adequacy.admitted;
64
+ case "challenge":
65
+ case "admit":
66
+ return true;
67
+ }
68
+ };
69
+ const parentDigest = (stage, context, checkpoints) => {
70
+ if (stage === "seed")
71
+ return checkpointDigestV1(context);
72
+ const previous = PIPELINE_STAGES[pipelineStageIndexV1(stage) - 1];
73
+ if (previous === undefined)
74
+ return undefined;
75
+ const checkpoint = checkpoints[previous];
76
+ return checkpoint === undefined ? undefined : checkpointDigestV1(checkpoint);
77
+ };
78
+ const withCheckpoint = (checkpoints, stage, checkpoint) => ({ ...checkpoints, [stage]: checkpoint });
79
+ const withoutFrom = (checkpoints, stage) => {
80
+ const retained = {};
81
+ for (const candidate of PIPELINE_STAGES) {
82
+ if (pipelineStageIndexV1(candidate) < pipelineStageIndexV1(stage)) {
83
+ const value = checkpoints[candidate];
84
+ if (value !== undefined)
85
+ retained[candidate] = value;
86
+ }
87
+ }
88
+ return retained;
89
+ };
90
+ const readStageCheckpoint = (store, stage) => {
91
+ switch (stage) {
92
+ case "seed":
93
+ return store.readStage(stage, PIPELINE_CHECKPOINT_SCHEMAS.seed);
94
+ case "spec":
95
+ return store.readStage(stage, PIPELINE_CHECKPOINT_SCHEMAS.spec);
96
+ case "oracle":
97
+ return store.readStage(stage, PIPELINE_CHECKPOINT_SCHEMAS.oracle);
98
+ case "controls":
99
+ return store.readStage(stage, PIPELINE_CHECKPOINT_SCHEMAS.controls);
100
+ case "tournament":
101
+ return store.readStage(stage, PIPELINE_CHECKPOINT_SCHEMAS.tournament);
102
+ case "challenge":
103
+ return store.readStage(stage, PIPELINE_CHECKPOINT_SCHEMAS.challenge);
104
+ case "admit":
105
+ return store.readStage(stage, PIPELINE_CHECKPOINT_SCHEMAS.admit);
106
+ }
107
+ };
108
+ /**
109
+ * Persist and decode through the checkpoint schema before exposing a checkpoint
110
+ * to the next stage. Stage parent digests must describe the durable JSON value,
111
+ * not an in-memory value that may differ after JSON/schema round-tripping.
112
+ */
113
+ const persistStageCheckpoint = Effect.fn("CasePipeline.persistStageCheckpoint")(function* (store, stage, checkpoint) {
114
+ yield* store.writeStage(stage, checkpoint);
115
+ const persisted = yield* readStageCheckpoint(store, stage);
116
+ if (Option.isNone(persisted)) {
117
+ return yield* Effect.die(new Error(`persisted pipeline checkpoint ${stage} could not be decoded`));
118
+ }
119
+ return persisted.value;
120
+ });
121
+ const loadCheckpoints = Effect.fn("CasePipeline.loadCheckpoints")(function* (store, context) {
122
+ let checkpoints = {};
123
+ for (const stage of PIPELINE_STAGES) {
124
+ const loaded = yield* readStageCheckpoint(store, stage);
125
+ if (Option.isNone(loaded)) {
126
+ yield* store.deleteFrom(stage);
127
+ break;
128
+ }
129
+ const checkpoint = loaded.value;
130
+ const expected = parentDigest(stage, context, checkpoints);
131
+ // The seed digest includes the requested budget, which may be extended on resume.
132
+ // Its durable state identity is checked separately; scientific child links are strict.
133
+ if (stage !== "seed" && checkpoint.parentDigest !== expected) {
134
+ yield* Effect.logWarning(`pipeline checkpoint ${stage} has a stale parent and will be regenerated: expected=${String(expected)} actual=${checkpoint.parentDigest}`);
135
+ yield* store.deleteFrom(stage);
136
+ break;
137
+ }
138
+ checkpoints = withCheckpoint(checkpoints, stage, checkpoint);
139
+ if (!checkpointComplete(stage, checkpoint)) {
140
+ const next = nextPipelineStageV1(stage);
141
+ if (next !== "done")
142
+ yield* store.deleteFrom(next);
143
+ break;
144
+ }
145
+ }
146
+ return checkpoints;
147
+ });
148
+ const firstIncompleteStage = (checkpoints) => {
149
+ for (const stage of PIPELINE_STAGES) {
150
+ const checkpoint = checkpoints[stage];
151
+ if (checkpoint === undefined || !checkpointComplete(stage, checkpoint))
152
+ return stage;
153
+ }
154
+ return "done";
155
+ };
156
+ const runStage = (input) => {
157
+ const base = {
158
+ context: input.context,
159
+ map: input.map,
160
+ workCheckpointStore: input.store,
161
+ checkpoints: input.checkpoints
162
+ };
163
+ const checkpoint = (stage, value) => input.beforeCheckpoint.pipe(Effect.andThen(input.store.writeStage(stage, value)), Effect.orDie);
164
+ switch (input.stage) {
165
+ case "seed":
166
+ return runPipelineSeedStageV1({
167
+ ...base,
168
+ checkpoint: (value) => checkpoint("seed", value)
169
+ });
170
+ case "spec":
171
+ return runPipelineSpecStageV1({
172
+ ...base,
173
+ checkpoint: (value) => checkpoint("spec", value)
174
+ });
175
+ case "oracle":
176
+ return runPipelineOracleStageV1({
177
+ ...base,
178
+ checkpoint: (value) => checkpoint("oracle", value)
179
+ });
180
+ case "controls":
181
+ return runPipelineControlsStageV1({
182
+ ...base,
183
+ checkpoint: (value) => checkpoint("controls", value)
184
+ });
185
+ case "tournament":
186
+ return runPipelineTournamentStageV1({
187
+ ...base,
188
+ checkpoint: (value) => checkpoint("tournament", value)
189
+ });
190
+ case "challenge":
191
+ return runPipelineChallengeStageV1({
192
+ ...base,
193
+ checkpoint: (value) => checkpoint("challenge", value)
194
+ });
195
+ case "admit":
196
+ return runPipelineAdmitStageV1({
197
+ ...base,
198
+ checkpoint: (value) => checkpoint("admit", value)
199
+ });
200
+ }
201
+ };
202
+ const persistedState = Effect.fnUntraced(function* (input) {
203
+ const current = yield* input.accessor.get;
204
+ const at = yield* Clock.currentTimeMillis;
205
+ const next = {
206
+ ...current,
207
+ ...input.patch,
208
+ elapsedMs: Math.max(current.elapsedMs, input.baselineElapsedMs + Math.max(0, at - input.runStartedAt)),
209
+ updatedAt: nowIso(at)
210
+ };
211
+ yield* input.accessor.set(next);
212
+ yield* input.store.writeState(next);
213
+ return next;
214
+ });
215
+ const describeFailure = (error) => error instanceof Error && error.message.trim().length > 0 ? error.message : String(error);
216
+ const pipelineStageErrorOf = (error, depth = 0) => {
217
+ if (error instanceof PipelineStageError)
218
+ return error;
219
+ if (depth >= 8 || typeof error !== "object" || error === null || !("cause" in error)) {
220
+ return undefined;
221
+ }
222
+ return pipelineStageErrorOf(error.cause, depth + 1);
223
+ };
224
+ const wallBudgetError = (context, stage, snapshot) => new PipelineBudgetExhaustedError({
225
+ budget: context.budget,
226
+ modelCalls: snapshot.modelCalls,
227
+ elapsedMs: snapshot.elapsedMs,
228
+ stage
229
+ });
230
+ const pipelineProgram = Effect.fn("CasePipeline.runProgram")(function* (input) {
231
+ const store = input.store ?? makeCaseCheckpointStoreV1({ caseDirectory: input.context.caseDirectory });
232
+ const runStartedAt = yield* Clock.currentTimeMillis;
233
+ const prior = yield* store.readState;
234
+ const base = Option.isSome(prior)
235
+ ? prior.value
236
+ : initialState(input.context, input.map, runStartedAt);
237
+ const accessor = yield* makePipelineStateAccessorV1(base);
238
+ const baselineElapsedMs = base.elapsedMs;
239
+ if (!sameIdentity(base, input.context, input.map)) {
240
+ const at = yield* Clock.currentTimeMillis;
241
+ /*
242
+ * Refuse the incompatible invocation without poisoning the durable case.
243
+ * The caller receives one of the four public outcomes, while a subsequent
244
+ * invocation with the original identity can still resume its evidence.
245
+ */
246
+ const state = {
247
+ ...base,
248
+ status: "failed",
249
+ stage: "done",
250
+ reason: "case directory belongs to a different pipeline identity",
251
+ updatedAt: nowIso(at)
252
+ };
253
+ return { state, checkpoints: {} };
254
+ }
255
+ let checkpoints = yield* loadCheckpoints(store, input.context);
256
+ const resumed = Option.isSome(prior);
257
+ let state = yield* persistedState({
258
+ accessor,
259
+ store,
260
+ patch: {
261
+ status: "running",
262
+ stage: firstIncompleteStage(checkpoints),
263
+ reason: undefined,
264
+ resumeCount: base.resumeCount + (resumed ? 1 : 0)
265
+ },
266
+ runStartedAt,
267
+ baselineElapsedMs
268
+ });
269
+ const inner = yield* RepositoryFoundryLanguageModel;
270
+ const execute = Effect.gen(function* () {
271
+ const budget = yield* PipelineBudgetTracker;
272
+ const assertWallAvailable = (stage) => Effect.gen(function* () {
273
+ const snapshot = yield* budget.snapshot;
274
+ if (snapshot.remainingMs <= 0) {
275
+ return yield* wallBudgetError(input.context, stage, snapshot);
276
+ }
277
+ return snapshot;
278
+ });
279
+ let challengeFold = state.folds;
280
+ for (;;) {
281
+ const failedChallenge = checkpoints.challenge;
282
+ if (failedChallenge?.verdict === "failed") {
283
+ if (failedChallenge.fold >= input.context.foldLimit) {
284
+ state = yield* persistedState({
285
+ accessor,
286
+ store,
287
+ patch: {
288
+ status: "rejected",
289
+ stage: "done",
290
+ reason: "fresh held-out challenge failed at the fold limit"
291
+ },
292
+ runStartedAt,
293
+ baselineElapsedMs
294
+ });
295
+ return { state, checkpoints };
296
+ }
297
+ const controls = checkpoints.controls;
298
+ if (controls === undefined) {
299
+ state = yield* persistedState({
300
+ accessor,
301
+ store,
302
+ patch: {
303
+ status: "failed",
304
+ stage: "done",
305
+ reason: "challenge fold has no controls checkpoint"
306
+ },
307
+ runStartedAt,
308
+ baselineElapsedMs
309
+ });
310
+ return { state, checkpoints };
311
+ }
312
+ const nextFolds = Math.max(state.folds, failedChallenge.fold + 1);
313
+ /*
314
+ * Persist the next fresh-challenge identity before invalidating any
315
+ * descendant. If the process stops during the fold, the failed
316
+ * challenge remains sufficient to replay this idempotent transition;
317
+ * after descendant deletion, state.folds alone preserves the identity.
318
+ */
319
+ state = yield* persistedState({
320
+ accessor,
321
+ store,
322
+ patch: { status: "running", stage: "tournament", folds: nextFolds, reason: undefined },
323
+ runStartedAt,
324
+ baselineElapsedMs
325
+ });
326
+ const existingWrongIds = new Set(controls.wrong.map(({ id }) => id));
327
+ const newHeldOut = failedChallenge.heldOut.filter(({ id }) => !existingWrongIds.has(id));
328
+ const foldedControls = {
329
+ ...controls,
330
+ createdAt: nowIso(yield* Clock.currentTimeMillis),
331
+ wrong: [...controls.wrong, ...newHeldOut]
332
+ };
333
+ const persistedControls = yield* persistStageCheckpoint(store, "controls", foldedControls);
334
+ yield* store.deleteFrom("tournament");
335
+ checkpoints = {
336
+ ...withoutFrom(checkpoints, "tournament"),
337
+ controls: persistedControls
338
+ };
339
+ challengeFold = nextFolds;
340
+ continue;
341
+ }
342
+ const stage = firstIncompleteStage(checkpoints);
343
+ if (stage === "done") {
344
+ const admit = checkpoints.admit;
345
+ const status = admit?.verdict === "admitted" ? "admitted" : "rejected";
346
+ state = yield* persistedState({
347
+ accessor,
348
+ store,
349
+ patch: {
350
+ status,
351
+ stage: "done",
352
+ ...(status === "admitted"
353
+ ? { reason: undefined }
354
+ : { reason: admit?.reasons.join("; ") ?? "admission evidence is incomplete" })
355
+ },
356
+ runStartedAt,
357
+ baselineElapsedMs
358
+ });
359
+ return {
360
+ state,
361
+ checkpoints,
362
+ ...(admit === undefined ? {} : { admit })
363
+ };
364
+ }
365
+ state = yield* persistedState({
366
+ accessor,
367
+ store,
368
+ patch: { status: "running", stage, reason: undefined },
369
+ runStartedAt,
370
+ baselineElapsedMs
371
+ });
372
+ const stageCheckpoints = stage === "challenge"
373
+ ? {
374
+ ...checkpoints,
375
+ /*
376
+ * Challenge consumes only the durable fold number from a prior
377
+ * checkpoint. Keep that scheduling hint out of the scientific
378
+ * checkpoint chain until the stage returns a complete value.
379
+ */
380
+ challenge: { fold: challengeFold }
381
+ }
382
+ : checkpoints;
383
+ const beforeStage = yield* assertWallAvailable(stage).pipe(Effect.result);
384
+ if (beforeStage._tag === "Failure") {
385
+ const reason = describeFailure(beforeStage.failure);
386
+ state = yield* persistedState({
387
+ accessor,
388
+ store,
389
+ patch: { status: "exhausted", stage, reason },
390
+ runStartedAt,
391
+ baselineElapsedMs
392
+ });
393
+ return { state, checkpoints };
394
+ }
395
+ const outcome = yield* Effect.result(runStage({
396
+ stage,
397
+ context: input.context,
398
+ map: input.map,
399
+ checkpoints: stageCheckpoints,
400
+ store,
401
+ beforeCheckpoint: assertWallAvailable(stage).pipe(Effect.asVoid)
402
+ }).pipe(Effect.catchDefect((defect) => defect instanceof PipelineBudgetExhaustedError
403
+ ? Effect.fail(defect)
404
+ : Effect.die(defect)), Effect.interruptible, Effect.timeoutOrElse({
405
+ duration: beforeStage.success.remainingMs,
406
+ orElse: () => Effect.flatMap(budget.snapshot, (snapshot) => Effect.fail(wallBudgetError(input.context, stage, snapshot)))
407
+ }), Effect.flatMap((checkpoint) => assertWallAvailable(stage).pipe(Effect.as(checkpoint)))));
408
+ if (outcome._tag === "Failure") {
409
+ const normalized = normalizePipelineFailureV1(outcome.failure);
410
+ const stageError = pipelineStageErrorOf(normalized);
411
+ const status = normalized instanceof PipelineBudgetExhaustedError
412
+ ? "exhausted"
413
+ : stageError?.terminal === true
414
+ ? "failed"
415
+ : "running";
416
+ const reason = describeFailure(normalized);
417
+ state = yield* persistedState({
418
+ accessor,
419
+ store,
420
+ patch: { status, stage: status === "failed" ? "done" : stage, reason },
421
+ runStartedAt,
422
+ baselineElapsedMs
423
+ });
424
+ return { state, checkpoints };
425
+ }
426
+ const checkpoint = yield* persistStageCheckpoint(store, stage, outcome.success);
427
+ checkpoints = withCheckpoint(checkpoints, stage, checkpoint);
428
+ }
429
+ });
430
+ return yield* execute.pipe(Effect.provide(BudgetedLanguageModelLive({
431
+ store,
432
+ state: accessor,
433
+ budget: input.context.budget,
434
+ startedAtMs: runStartedAt,
435
+ inner
436
+ })));
437
+ });
438
+ /** Public runner: every failure, including defects at an adapter boundary, is returned as durable state. */
439
+ export const runCasePipelineV1 = (input) => pipelineProgram(input).pipe(Effect.catchCause((cause) => Effect.gen(function* () {
440
+ const store = input.store ?? makeCaseCheckpointStoreV1({ caseDirectory: input.context.caseDirectory });
441
+ const at = yield* Clock.currentTimeMillis;
442
+ const loaded = yield* store.readState.pipe(Effect.option);
443
+ const prior = Option.isSome(loaded) && Option.isSome(loaded.value)
444
+ ? loaded.value.value
445
+ : initialState(input.context, input.map, at);
446
+ const terminal = pipelineStageErrorOf(Cause.squash(cause))?.terminal === true;
447
+ const state = {
448
+ ...prior,
449
+ status: terminal ? "failed" : "running",
450
+ stage: terminal ? "done" : prior.stage,
451
+ reason: Cause.pretty(cause),
452
+ updatedAt: nowIso(at)
453
+ };
454
+ yield* store.writeState(state).pipe(Effect.ignore);
455
+ const loadedCheckpoints = yield* Effect.result(loadCheckpoints(store, input.context));
456
+ const checkpoints = loadedCheckpoints._tag === "Success"
457
+ ? loadedCheckpoints.success
458
+ : {};
459
+ return {
460
+ state,
461
+ checkpoints,
462
+ ...(checkpoints.admit === undefined ? {} : { admit: checkpoints.admit })
463
+ };
464
+ })));
465
+ /** Read-only status inspection. It never invokes or requires a language model. */
466
+ export const readCasePipelineStatusV1 = (input) => {
467
+ const store = makeCaseCheckpointStoreV1(input);
468
+ return Effect.gen(function* () {
469
+ const state = yield* store.readState;
470
+ const ledger = yield* store.readLedger;
471
+ let checkpoints = {};
472
+ for (const stage of PIPELINE_STAGES) {
473
+ const value = yield* readStageCheckpoint(store, stage);
474
+ if (Option.isSome(value))
475
+ checkpoints = withCheckpoint(checkpoints, stage, value.value);
476
+ }
477
+ return {
478
+ ...(Option.isNone(state) ? {} : { state: state.value }),
479
+ checkpoints,
480
+ ledgerEntries: ledger.length
481
+ };
482
+ }).pipe(Effect.catchCause((cause) => Effect.succeed({ checkpoints: {}, ledgerEntries: 0, error: Cause.pretty(cause) })));
483
+ };
484
+ export const runRepositoryCasePipelineV1 = runCasePipelineV1;
485
+ export const readRepositoryCasePipelineStatusV1 = readCasePipelineStatusV1;
@@ -0,0 +1,70 @@
1
+ import { Effect } from "effect";
2
+ import { type CaseCheckpointStoreV1 } from "../../case-checkpoint-store.js";
3
+ import { type PipelineCheckpointOfV1 } from "../../case-pipeline-protocol.js";
4
+ import { type PipelineCheckpointDescriptorV2, type PipelinePortsV2, type PipelineScientificIdentityV2 } from "../../case-pipeline-protocol-v2.js";
5
+ import { type RepositoryCommandExecutionPortV1 } from "../../adapters/repository-command-runner.js";
6
+ import { RepositoryFoundryError } from "../../errors.js";
7
+ import type { RepositoryBehaviorMapV1 } from "../../repository-behavior-protocol.js";
8
+ import { type CasePipelineRunResultV1 } from "../case-pipeline/service.js";
9
+ /** The platform port executes commands in the real isolated checkout, with the runner's exact environment. */
10
+ export declare const makeRepositoryCommandExecutionPortV2: (ports: PipelinePortsV2) => RepositoryCommandExecutionPortV1;
11
+ export type CasePipelineRunInputV2 = {
12
+ readonly identity: PipelineScientificIdentityV2;
13
+ readonly runtimeRoot: string;
14
+ readonly attemptGeneration: number;
15
+ readonly map: RepositoryBehaviorMapV1;
16
+ readonly ports: PipelinePortsV2;
17
+ };
18
+ export type CasePipelineRunResultV2 = {
19
+ readonly identityDigest: string;
20
+ readonly runtimeRoot: string;
21
+ readonly attemptGeneration: number;
22
+ readonly checkpoints: readonly PipelineCheckpointDescriptorV2[];
23
+ readonly result: CasePipelineRunResultV1;
24
+ };
25
+ export declare const repositoryBehaviorMapDigestV2: (map: RepositoryBehaviorMapV1) => string;
26
+ export declare const makePortableCheckpointStoreV2: (input: {
27
+ readonly identity: PipelineScientificIdentityV2;
28
+ readonly runtimeRoot: string;
29
+ readonly attemptGeneration: number;
30
+ readonly ports: PipelinePortsV2;
31
+ }) => Effect.Effect<{
32
+ store: CaseCheckpointStoreV1;
33
+ descriptors: () => readonly PipelineCheckpointDescriptorV2[];
34
+ completeAdmit: (admit: PipelineCheckpointOfV1<"admit">) => Effect.Effect<{
35
+ readonly kind: "stage" | "loop" | "terminal";
36
+ readonly version: 2;
37
+ readonly stage: "seed" | "spec" | "oracle" | "controls" | "tournament" | "challenge" | "admit";
38
+ readonly checkpointId: string;
39
+ readonly identityDigest: string;
40
+ readonly attemptGeneration: number;
41
+ readonly sequence: number;
42
+ readonly parentDigest: string;
43
+ readonly payloadDigest: string;
44
+ readonly payloadBytes: number;
45
+ readonly createdAt: string;
46
+ readonly loopName?: string | undefined;
47
+ readonly loopIteration?: number | undefined;
48
+ }, RepositoryFoundryError, never>;
49
+ }, RepositoryFoundryError, never>;
50
+ export declare const runCasePipelineV2: (input: CasePipelineRunInputV2) => Effect.Effect<{
51
+ identityDigest: string;
52
+ runtimeRoot: string;
53
+ attemptGeneration: number;
54
+ checkpoints: readonly {
55
+ readonly kind: "stage" | "loop" | "terminal";
56
+ readonly version: 2;
57
+ readonly stage: "seed" | "spec" | "oracle" | "controls" | "tournament" | "challenge" | "admit";
58
+ readonly checkpointId: string;
59
+ readonly identityDigest: string;
60
+ readonly attemptGeneration: number;
61
+ readonly sequence: number;
62
+ readonly parentDigest: string;
63
+ readonly payloadDigest: string;
64
+ readonly payloadBytes: number;
65
+ readonly createdAt: string;
66
+ readonly loopName?: string | undefined;
67
+ readonly loopIteration?: number | undefined;
68
+ }[];
69
+ result: CasePipelineRunResultV1;
70
+ }, RepositoryFoundryError, never>;