@velum-labs/routekit-eval-setup 1.4.0 → 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 (341) 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 -12
  44. package/dist/effect-api.js +56 -7
  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 +51 -0
  52. package/dist/eval-event-log.js +69 -10
  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 -19
  72. package/dist/index.js +69 -12
  73. package/dist/inspection.js +2 -3
  74. package/dist/project-artifacts.d.ts +2 -2
  75. package/dist/project-artifacts.js +26 -121
  76. package/dist/project-authoring.d.ts +66 -5
  77. package/dist/project-authoring.js +783 -109
  78. package/dist/project-contracts.d.ts +292 -82
  79. package/dist/project-contracts.js +65 -7
  80. package/dist/project-store.js +2 -1
  81. package/dist/project-workflow.d.ts +3 -3
  82. package/dist/project-workflow.js +116 -18
  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.js +34 -1
  239. package/dist/test/evaluation-evidence-freshness.test.d.ts +1 -0
  240. package/dist/test/evaluation-evidence-freshness.test.js +44 -0
  241. package/dist/test/evaluation-evidence.test.d.ts +1 -0
  242. package/dist/test/evaluation-evidence.test.js +230 -0
  243. package/dist/test/evaluation-grader-calibration.test.d.ts +1 -0
  244. package/dist/test/evaluation-grader-calibration.test.js +373 -0
  245. package/dist/test/evaluation-proposal-digest.test.d.ts +1 -0
  246. package/dist/test/evaluation-proposal-digest.test.js +187 -0
  247. package/dist/test/evaluation-source-retrieval.test.d.ts +1 -0
  248. package/dist/test/evaluation-source-retrieval.test.js +237 -0
  249. package/dist/test/evaluation-structure-policy.test.d.ts +1 -0
  250. package/dist/test/evaluation-structure-policy.test.js +196 -0
  251. package/dist/test/fixtures/repository-resource-panel.d.ts +39 -0
  252. package/dist/test/fixtures/repository-resource-panel.js +111 -0
  253. package/dist/test/fixtures/vitest-boundary-panel.d.ts +84 -0
  254. package/dist/test/fixtures/vitest-boundary-panel.js +120 -0
  255. package/dist/test/fixtures/vitest-phase-panel.d.ts +135 -0
  256. package/dist/test/fixtures/vitest-phase-panel.js +213 -0
  257. package/dist/test/fixtures/vitest-reporter-results.d.ts +76 -0
  258. package/dist/test/fixtures/vitest-reporter-results.js +94 -0
  259. package/dist/test/grounded-authoring.test.d.ts +1 -0
  260. package/dist/test/grounded-authoring.test.js +565 -0
  261. package/dist/test/integrated-repository-history.test.d.ts +1 -0
  262. package/dist/test/integrated-repository-history.test.js +227 -0
  263. package/dist/test/project-authoring.test.js +593 -43
  264. package/dist/test/project-workflow.test.js +395 -32
  265. package/dist/test/repository-authoring-artifacts.test.d.ts +1 -0
  266. package/dist/test/repository-authoring-artifacts.test.js +185 -0
  267. package/dist/test/repository-bundle.test.d.ts +1 -0
  268. package/dist/test/repository-bundle.test.js +52 -0
  269. package/dist/test/repository-case-generation.test.d.ts +1 -0
  270. package/dist/test/repository-case-generation.test.js +3465 -0
  271. package/dist/test/repository-command-diagnostic.test.d.ts +1 -0
  272. package/dist/test/repository-command-diagnostic.test.js +55 -0
  273. package/dist/test/repository-command-signals.test.d.ts +1 -0
  274. package/dist/test/repository-command-signals.test.js +124 -0
  275. package/dist/test/repository-fixture-scope-coverage.test.d.ts +1 -0
  276. package/dist/test/repository-fixture-scope-coverage.test.js +127 -0
  277. package/dist/test/repository-fixture-validation.test.d.ts +1 -0
  278. package/dist/test/repository-fixture-validation.test.js +362 -0
  279. package/dist/test/repository-foundry-progress.test.d.ts +1 -0
  280. package/dist/test/repository-foundry-progress.test.js +110 -0
  281. package/dist/test/repository-foundry-quality.test.d.ts +1 -0
  282. package/dist/test/repository-foundry-quality.test.js +1138 -0
  283. package/dist/test/repository-import-context.test.d.ts +1 -0
  284. package/dist/test/repository-import-context.test.js +354 -0
  285. package/dist/test/repository-model-authoring.test.d.ts +1 -0
  286. package/dist/test/repository-model-authoring.test.js +544 -0
  287. package/dist/test/repository-model.test.d.ts +1 -0
  288. package/dist/test/repository-model.test.js +2195 -0
  289. package/dist/test/repository-node-test-reporter.test.d.ts +1 -0
  290. package/dist/test/repository-node-test-reporter.test.js +104 -0
  291. package/dist/test/repository-oracle-concurrency.test.d.ts +1 -0
  292. package/dist/test/repository-oracle-concurrency.test.js +542 -0
  293. package/dist/test/repository-oracle-coverage-witness.test.d.ts +1 -0
  294. package/dist/test/repository-oracle-coverage-witness.test.js +511 -0
  295. package/dist/test/repository-oracle-coverage.test.d.ts +1 -0
  296. package/dist/test/repository-oracle-coverage.test.js +168 -0
  297. package/dist/test/repository-oracle-evidence.test.d.ts +1 -0
  298. package/dist/test/repository-oracle-evidence.test.js +185 -0
  299. package/dist/test/repository-oracle-plan.test.d.ts +1 -0
  300. package/dist/test/repository-oracle-plan.test.js +176 -0
  301. package/dist/test/repository-overlay-isolation.test.d.ts +1 -0
  302. package/dist/test/repository-overlay-isolation.test.js +85 -0
  303. package/dist/test/repository-preparation-cache.test.d.ts +1 -0
  304. package/dist/test/repository-preparation-cache.test.js +414 -0
  305. package/dist/test/repository-public-artifact.test.d.ts +1 -0
  306. package/dist/test/repository-public-artifact.test.js +273 -0
  307. package/dist/test/repository-qualification-diagnostics.test.d.ts +1 -0
  308. package/dist/test/repository-qualification-diagnostics.test.js +524 -0
  309. package/dist/test/repository-reference-authoring.test.d.ts +1 -0
  310. package/dist/test/repository-reference-authoring.test.js +1633 -0
  311. package/dist/test/repository-review-evidence-v2.test.d.ts +1 -0
  312. package/dist/test/repository-review-evidence-v2.test.js +183 -0
  313. package/dist/test/repository-review-evidence.test.d.ts +1 -0
  314. package/dist/test/repository-review-evidence.test.js +124 -0
  315. package/dist/test/repository-seed-exclusions.test.d.ts +1 -0
  316. package/dist/test/repository-seed-exclusions.test.js +96 -0
  317. package/dist/test/repository-seed-selection.test.d.ts +1 -0
  318. package/dist/test/repository-seed-selection.test.js +504 -0
  319. package/dist/test/repository-semantic-calibration.test.d.ts +1 -0
  320. package/dist/test/repository-semantic-calibration.test.js +688 -0
  321. package/dist/test/repository-solution-edits.test.d.ts +1 -0
  322. package/dist/test/repository-solution-edits.test.js +377 -0
  323. package/dist/test/repository-specification-budget.test.d.ts +1 -0
  324. package/dist/test/repository-specification-budget.test.js +171 -0
  325. package/dist/test/repository-specification-contract-checkpoint.test.d.ts +1 -0
  326. package/dist/test/repository-specification-contract-checkpoint.test.js +228 -0
  327. package/dist/test/repository-specification-contract-facts.test.d.ts +1 -0
  328. package/dist/test/repository-specification-contract-facts.test.js +177 -0
  329. package/dist/test/repository-trajectory-authoring.test.d.ts +1 -0
  330. package/dist/test/repository-trajectory-authoring.test.js +176 -0
  331. package/dist/test/repository-valid-control-plan.test.d.ts +1 -0
  332. package/dist/test/repository-valid-control-plan.test.js +45 -0
  333. package/dist/test/repository-vitest-phase.test.d.ts +1 -0
  334. package/dist/test/repository-vitest-phase.test.js +848 -0
  335. package/dist/test/repository-vitest-reporter.test.d.ts +1 -0
  336. package/dist/test/repository-vitest-reporter.test.js +158 -0
  337. package/dist/test/repository-workspace-build.test.d.ts +1 -0
  338. package/dist/test/repository-workspace-build.test.js +160 -0
  339. package/dist/test/strict-authoring-schema.test.d.ts +1 -0
  340. package/dist/test/strict-authoring-schema.test.js +169 -0
  341. package/package.json +48 -7
@@ -0,0 +1,283 @@
1
+ import { Effect } from "effect";
2
+ import { RepositoryFoundryError } from "../../errors.js";
3
+ import { RepositoryBenchmarkCaseV1 } from "../../repository-benchmark-protocol.js";
4
+ import { type RepositoryFoundryGenerationPlanV1 } from "../../repository-foundry-plan-protocol.js";
5
+ import { type RepositoryHiddenOracleV1 } from "../../repository-oracle-protocol.js";
6
+ import { RepositorySeedCrossBatchQualificationV1 } from "../../repository-task-seed-protocol.js";
7
+ import { type RepositoryGeneratedCaseCheckpointV1 } from "../case-generation/service.js";
8
+ export type RepositoryFoundryFinalizationInputV1 = {
9
+ readonly plan: RepositoryFoundryGenerationPlanV1;
10
+ readonly qualification: typeof RepositorySeedCrossBatchQualificationV1.Type;
11
+ readonly checkpoint: RepositoryGeneratedCaseCheckpointV1;
12
+ };
13
+ /** Structural and cross-payload checks precede any repository execution or model call. */
14
+ export declare const assertRepositoryFoundryFinalizationInputV1: (input: RepositoryFoundryFinalizationInputV1) => void;
15
+ /**
16
+ * Re-execute the frozen final populations and then request the original quality
17
+ * review. No task, solution or fixture authoring is permitted in this operation.
18
+ */
19
+ export declare const finalizeRepositoryGeneratedCaseV1: (input: RepositoryFoundryFinalizationInputV1 & {
20
+ readonly reviewOperationId: string;
21
+ readonly reviewInputVersion?: 2;
22
+ }) => Effect.Effect<{
23
+ version: 1;
24
+ plan: {
25
+ readonly version: 1;
26
+ readonly caseId: string;
27
+ readonly repository: {
28
+ readonly root: string;
29
+ readonly requestedRef: string;
30
+ readonly commit: string;
31
+ readonly tree: string;
32
+ };
33
+ readonly referenceCommit: string;
34
+ readonly seedId: string;
35
+ readonly modelPlan: {
36
+ readonly version: 1;
37
+ readonly assignments: readonly {
38
+ readonly role: "oracle-critic" | "repository-analyst" | "specification-writer" | "specification-critic-a" | "specification-critic-b" | "trajectory-designer" | "trajectory-critic" | "oracle-designer" | "valid-solution-generator-a" | "valid-solution-generator-b" | "adversary" | "solution-critic-a" | "solution-critic-b" | "held-out-adversary" | "held-out-solution-critic-a" | "held-out-solution-critic-b" | "quality-reviewer" | "hill-climb-planner";
39
+ readonly model: string;
40
+ readonly reasoningEffort: "high" | "medium" | "low" | "xhigh" | "max" | "ultra";
41
+ }[];
42
+ };
43
+ readonly budget: {
44
+ readonly wallTimeMs: number;
45
+ readonly requiredTotalInputTokens: number;
46
+ readonly requiredTotalOutputTokens: number;
47
+ readonly plannedModelCalls: number;
48
+ readonly maximumTransientRetries: number;
49
+ readonly maximumHillClimbAttempts: number;
50
+ readonly perCallOutputTokens: number;
51
+ readonly maximumSpecificationRevisions?: number | undefined;
52
+ readonly maximumOracleCoverageRevisions?: number | undefined;
53
+ readonly maximumFixtureRepairAttempts?: number | undefined;
54
+ };
55
+ readonly qualification: {
56
+ readonly batches: number;
57
+ readonly repetitionsPerBatch: number;
58
+ readonly oracleRepetitions: number;
59
+ readonly oracleConcurrency?: number | undefined;
60
+ };
61
+ readonly planDigest: string;
62
+ readonly initialCommit: string;
63
+ readonly reviewInputVersion?: 2 | undefined;
64
+ readonly requestedDimension?: string | undefined;
65
+ readonly excludedReferenceCommits?: readonly string[] | undefined;
66
+ readonly historyProvenance?: {
67
+ readonly method: "integrated-retained-history-v1";
68
+ readonly requestedRef: string;
69
+ readonly requestedTipCommit: string;
70
+ readonly requestedTipTree: string;
71
+ readonly integrationCommit: string;
72
+ readonly pathBlobs: readonly {
73
+ readonly path: string;
74
+ readonly blob: string;
75
+ }[];
76
+ } | undefined;
77
+ readonly validControlRegenerationSequence?: number | undefined;
78
+ readonly validControlReviewVersion?: 1 | 2 | undefined;
79
+ readonly dependencyContextVersion?: 1 | 2 | undefined;
80
+ readonly oracleCoverageWitnessVersion?: 1 | 2 | undefined;
81
+ readonly oracleCoverageWitnessRepairVersion?: 1 | undefined;
82
+ readonly oracleRepairFeedbackVersion?: 1 | undefined;
83
+ readonly specificationContractFactsVersion?: 1 | undefined;
84
+ };
85
+ qualification: {
86
+ readonly seed: {
87
+ readonly id: string;
88
+ readonly source: {
89
+ readonly kind: "historical-fix";
90
+ readonly changeEpisodeId: string;
91
+ } | {
92
+ readonly kind: "historical-feature";
93
+ readonly changeEpisodeId: string;
94
+ } | {
95
+ readonly kind: "historical-refactor";
96
+ readonly changeEpisodeId: string;
97
+ } | {
98
+ readonly kind: "existing-test";
99
+ readonly testIds: readonly string[];
100
+ } | {
101
+ readonly kind: "public-api";
102
+ readonly surfaceIds: readonly string[];
103
+ } | {
104
+ readonly kind: "schema-contract";
105
+ readonly protocolIds: readonly string[];
106
+ } | {
107
+ readonly kind: "production-request";
108
+ readonly requestId: string;
109
+ } | {
110
+ readonly kind: "reviewed-synthetic-gap";
111
+ readonly reviewId: string;
112
+ };
113
+ readonly version: 1;
114
+ readonly rejectionReasons: readonly string[];
115
+ readonly confidence: "high" | "medium" | "review-required";
116
+ readonly status: "candidate" | "qualified" | "rejected";
117
+ readonly capabilityEvidence: readonly {
118
+ readonly kind: "symbol" | "package" | "public-surface" | "protocol" | "schema" | "test" | "command" | "history-episode" | "workload-signal" | "documentation";
119
+ readonly id: string;
120
+ readonly path?: string | undefined;
121
+ }[];
122
+ readonly initialState: {
123
+ readonly commit: string;
124
+ readonly parentCommit?: string | undefined;
125
+ };
126
+ readonly targetBehavior: readonly {
127
+ readonly id: string;
128
+ readonly description: string;
129
+ readonly critical: boolean;
130
+ readonly evidence: readonly {
131
+ readonly kind: "symbol" | "package" | "public-surface" | "protocol" | "schema" | "test" | "command" | "history-episode" | "workload-signal" | "documentation";
132
+ readonly id: string;
133
+ readonly path?: string | undefined;
134
+ }[];
135
+ }[];
136
+ readonly baselineObservations: readonly {
137
+ readonly id: string;
138
+ readonly kind: "test-command" | "property" | "schema" | "event-trace" | "structural";
139
+ readonly subjectId: string;
140
+ readonly outcome: "pass" | "fail" | "unknown";
141
+ readonly detail: string;
142
+ }[];
143
+ readonly preChangeObservations: readonly {
144
+ readonly id: string;
145
+ readonly kind: "test-command" | "property" | "schema" | "event-trace" | "structural";
146
+ readonly subjectId: string;
147
+ readonly outcome: "pass" | "fail" | "unknown";
148
+ readonly detail: string;
149
+ }[];
150
+ readonly postChangeObservations: readonly {
151
+ readonly id: string;
152
+ readonly kind: "test-command" | "property" | "schema" | "event-trace" | "structural";
153
+ readonly subjectId: string;
154
+ readonly outcome: "pass" | "fail" | "unknown";
155
+ readonly detail: string;
156
+ }[];
157
+ readonly candidateTestIds: readonly string[];
158
+ readonly risks: readonly ("review-required" | "external-service" | "ambiguous-intent" | "bundled-change" | "flaky-baseline" | "reference-only-oracle" | "weak-test-delta" | "unrealistic-mutation" | "private-context" | "cross-batch-instability")[];
159
+ readonly summary: string;
160
+ readonly environment: {
161
+ readonly protectedControlPaths: readonly string[];
162
+ readonly trustedPreparationRecipes: readonly {
163
+ readonly id: string;
164
+ readonly kind: "schema" | "test" | "build" | "check" | "custom";
165
+ readonly cwd: string;
166
+ readonly executable: string;
167
+ readonly args: readonly string[];
168
+ readonly timeoutMs: number;
169
+ }[];
170
+ readonly candidateValidationRecipes: readonly {
171
+ readonly id: string;
172
+ readonly kind: "schema" | "test" | "build" | "check" | "custom";
173
+ readonly cwd: string;
174
+ readonly executable: string;
175
+ readonly args: readonly string[];
176
+ readonly timeoutMs: number;
177
+ }[];
178
+ readonly baselineGradeRecipes: readonly {
179
+ readonly id: string;
180
+ readonly kind: "schema" | "test" | "build" | "check" | "custom";
181
+ readonly cwd: string;
182
+ readonly executable: string;
183
+ readonly args: readonly string[];
184
+ readonly timeoutMs: number;
185
+ }[];
186
+ readonly gradeRecipes: readonly {
187
+ readonly id: string;
188
+ readonly kind: "schema" | "test" | "build" | "check" | "custom";
189
+ readonly cwd: string;
190
+ readonly executable: string;
191
+ readonly args: readonly string[];
192
+ readonly timeoutMs: number;
193
+ }[];
194
+ readonly packageManager?: {
195
+ readonly name: "pnpm";
196
+ readonly version: string;
197
+ } | undefined;
198
+ readonly lockfilePath?: string | undefined;
199
+ };
200
+ readonly referenceCommit?: string | undefined;
201
+ };
202
+ readonly stability: {
203
+ readonly version: 1;
204
+ readonly seedId: string;
205
+ readonly batchesRequired: number;
206
+ readonly repetitionsPerBatch: number;
207
+ readonly stable: boolean;
208
+ readonly batches: readonly {
209
+ readonly batch: number;
210
+ readonly status: "qualified" | "rejected";
211
+ readonly phaseSignatures: readonly {
212
+ readonly phase: "baseline" | "pre-change" | "post-change";
213
+ readonly signatures: readonly string[];
214
+ }[];
215
+ readonly rejectionReasons: readonly string[];
216
+ }[];
217
+ readonly divergentPhases: readonly ("baseline" | "pre-change" | "post-change")[];
218
+ readonly failureSignatures: readonly {
219
+ readonly signature: string;
220
+ readonly count: number;
221
+ }[];
222
+ readonly rejectionReasons: readonly string[];
223
+ };
224
+ };
225
+ generation: {
226
+ qualityReview: {
227
+ readonly verdict: "approve" | "reject";
228
+ readonly detail: string;
229
+ readonly findings: readonly {
230
+ readonly axis: "oracle" | "specification" | "valid-solution-independence" | "development-adversaries" | "held-out-adversaries" | "trajectory";
231
+ readonly outcome: "pass" | "fail";
232
+ readonly detail: string;
233
+ readonly evidenceIds: readonly string[];
234
+ }[];
235
+ readonly coverageGaps: readonly string[];
236
+ readonly correlatedAssumptions: readonly string[];
237
+ };
238
+ modelCalls: {
239
+ readonly reasoningEffort: "high" | "medium" | "low" | "xhigh" | "max" | "ultra";
240
+ readonly role: "oracle-critic" | "repository-analyst" | "specification-writer" | "specification-critic-a" | "specification-critic-b" | "trajectory-designer" | "trajectory-critic" | "oracle-designer" | "valid-solution-generator-a" | "valid-solution-generator-b" | "adversary" | "solution-critic-a" | "solution-critic-b" | "held-out-adversary" | "held-out-solution-critic-a" | "held-out-solution-critic-b" | "quality-reviewer" | "hill-climb-planner";
241
+ readonly model: string;
242
+ readonly operationId: string;
243
+ readonly callId?: string | undefined;
244
+ }[];
245
+ version: 1;
246
+ trajectoryPolicy: import("../../repository-trajectory-protocol.js").RepositoryTrajectoryPolicyV1;
247
+ authored: import("../case-authoring/service.js").RepositoryModelAuthoredCaseSpecificationV1;
248
+ benchmarkCase: RepositoryBenchmarkCaseV1;
249
+ weakAdequacy: import("../../repository-oracle-protocol.js").RepositoryOracleAdequacyReportV1;
250
+ fixtureProposal: import("../case-generation/service.js").RepositoryFixtureProposalV1;
251
+ sourceContext?: {
252
+ readonly initialCommit: string;
253
+ readonly referenceCommit: string;
254
+ readonly initialSupportingPaths: readonly string[];
255
+ readonly referenceSupportingPaths: readonly string[];
256
+ };
257
+ initialFixtureProposal: import("../case-generation/service.js").RepositoryFixtureProposalV1;
258
+ oracleCoverageReviews?: readonly {
259
+ readonly phase: "initial" | "before-freeze";
260
+ readonly revision: number;
261
+ readonly review: import("../../repository-oracle-coverage-protocol.js").RepositoryOracleCoverageReviewV1;
262
+ readonly executionAssessment?: {
263
+ readonly kind: "resolved-by-execution";
264
+ readonly witnesses: readonly import("../oracle-coverage-witness/service.js").RepositoryOracleCoverageWitnessV1[];
265
+ };
266
+ }[];
267
+ oracleCoverageWitnessRevisions?: readonly {
268
+ readonly sequence: number;
269
+ readonly decision: "accepted" | "rejected";
270
+ readonly revisions: readonly import("../oracle-coverage-witness/service.js").RepositoryOracleCoverageWitnessRevisionV1[];
271
+ }[];
272
+ trajectoryPolicyReview: import("../trajectory-policy/service.js").RepositoryTrajectoryPolicyReviewV1;
273
+ trajectoryRevisionAttempts: readonly import("../trajectory-policy/service.js").RepositoryTrajectoryRevisionAttemptV1[];
274
+ validSolutionProposal: import("../case-generation/service.js").RepositorySolutionProposalV1;
275
+ adversaryProposal: import("../case-generation/service.js").RepositorySolutionProposalV1;
276
+ solutionReviews: readonly [import("../case-generation/service.js").RepositorySolutionReviewProposalV1, import("../case-generation/service.js").RepositorySolutionReviewProposalV1];
277
+ heldOutAdversaryProposal: import("../case-generation/service.js").RepositorySolutionProposalV1;
278
+ heldOutSolutionReviews: readonly [import("../case-generation/service.js").RepositorySolutionReviewProposalV1, import("../case-generation/service.js").RepositorySolutionReviewProposalV1];
279
+ heldOutAdequacy: import("../../repository-oracle-protocol.js").RepositoryOracleAdequacyReportV1;
280
+ hillClimbAttempts: readonly import("../case-generation/service.js").RepositoryHillClimbAttemptV1[];
281
+ heldOutOracle: RepositoryHiddenOracleV1;
282
+ };
283
+ }, RepositoryFoundryError, import("../language-model/service.js").RepositoryFoundryLanguageModel>;
@@ -0,0 +1,370 @@
1
+ import { Effect, Option, Schema } from "effect";
2
+ import { RepositoryExecutableSolutionSchemaV1 } from "../../case-pipeline-protocol.js";
3
+ import { RepositoryFoundryError } from "../../errors.js";
4
+ import { RepositoryBenchmarkCaseV1 } from "../../repository-benchmark-protocol.js";
5
+ import { assertRepositoryHiddenFixtureSuiteV1 } from "../../repository-fixture-protocol.js";
6
+ import { assertRepositoryFoundryGenerationPlanV1 } from "../../repository-foundry-plan-protocol.js";
7
+ import { assertRepositoryHiddenOracleV1 } from "../../repository-oracle-protocol.js";
8
+ import { repositoryOracleExecutionBindingV1 } from "../../repository-oracle-execution-binding.js";
9
+ import { evaluateRepositoryOracleAdequacyV1 } from "../../repository-quality-policy.js";
10
+ import { assertRepositoryTaskSeedV1, RepositorySeedCrossBatchQualificationV1 } from "../../repository-task-seed-protocol.js";
11
+ import { assertRepositorySpecificationContractFactsEvidenceV1, reviewRepositoryGeneratedCaseCheckpointV1 } from "../case-generation/service.js";
12
+ import { RepositoryFoundryEvidenceReconstruction } from "../evidence-reconstruction/service.js";
13
+ import { reportFoundryStageV1 } from "../foundry-progress/service.js";
14
+ import { compileReviewedHistoricalCaseV1 } from "../historical-case/service.js";
15
+ import { buildHistoricalHiddenOracleV1 } from "../oracle-builder/service.js";
16
+ import { validateRepositoryOracleCoverageWitnessRevisionsV1 } from "../oracle-coverage-witness/service.js";
17
+ import { buildRepositoryBehaviorMapV1 } from "../repository-model/service.js";
18
+ import { qualifyHistoricalTaskSeedAcrossBatchesV1 } from "../task-seed/service.js";
19
+ const fail = (detail, cause) => new RepositoryFoundryError({
20
+ operation: "compile-reviewed-case",
21
+ detail: `frozen case finalization: ${detail}`,
22
+ ...(cause === undefined ? {} : { cause })
23
+ });
24
+ const normalize = (value) => Array.isArray(value)
25
+ ? value.map(normalize)
26
+ : value !== null && typeof value === "object"
27
+ ? Object.fromEntries(Object.entries(value)
28
+ .filter(([, entry]) => entry !== undefined)
29
+ .sort(([left], [right]) => left.localeCompare(right))
30
+ .map(([key, entry]) => [key, normalize(entry)]))
31
+ : value;
32
+ const same = (left, right) => JSON.stringify(normalize(left)) === JSON.stringify(normalize(right));
33
+ const structuralClauses = (oracle) => oracle.clauses.filter((clause) => clause.kind === "architecture" || clause.kind === "transformation-completeness");
34
+ /** Public oracle solutions are labels, not executable controls. */
35
+ const savedPopulations = (checkpoint) => {
36
+ const packet = checkpoint.qualityReviewInput;
37
+ const decode = Schema.decodeUnknownSync(Schema.Array(RepositoryExecutableSolutionSchemaV1));
38
+ try {
39
+ const valid = decode(packet.validSolutions);
40
+ const development = decode(packet.developmentAdversaries);
41
+ const heldOut = decode(packet.heldOutAdversaries);
42
+ if (valid.some((solution) => solution.expectedClass !== "valid") ||
43
+ [...development, ...heldOut].some((solution) => solution.expectedClass !== "wrong"))
44
+ throw fail("saved control classes differ from their populations");
45
+ return { development: [...valid, ...development], heldOut: [...valid, ...heldOut] };
46
+ }
47
+ catch (cause) {
48
+ throw fail("complete saved control populations must be executable", cause);
49
+ }
50
+ };
51
+ const assertSavedPopulation = (input, oracle, solutions) => {
52
+ const binding = repositoryOracleExecutionBindingV1({
53
+ repositoryRoot: input.plan.repository.root,
54
+ caseId: input.plan.caseId,
55
+ seed: input.checkpoint.seed,
56
+ additionalSolutions: solutions,
57
+ hiddenFixtureSuite: {
58
+ version: 1,
59
+ caseId: input.plan.caseId,
60
+ fixtures: oracle.fixtures,
61
+ overlays: input.checkpoint.generation.fixtureProposal.overlays
62
+ },
63
+ structuralClauses: structuralClauses(oracle),
64
+ repetitions: input.plan.qualification.oracleRepetitions
65
+ });
66
+ if (oracle.executionBindingDigest === undefined
67
+ // Legacy evidence retained complete controls. Never authorize patches from
68
+ // metadata alone when the artifact has no executable binding.
69
+ ? !same(binding.solutions, oracle.solutions)
70
+ : oracle.executionBindingDigest !== binding.executionBindingDigest ||
71
+ !same(binding.solutionMetadata, oracle.solutions) ||
72
+ (oracle.executionRepetitions !== undefined &&
73
+ oracle.executionRepetitions !== binding.repetitions))
74
+ throw fail("complete saved control populations and executable bindings must agree");
75
+ };
76
+ /** Structural and cross-payload checks precede any repository execution or model call. */
77
+ export const assertRepositoryFoundryFinalizationInputV1 = (input) => {
78
+ assertRepositoryFoundryGenerationPlanV1(input.plan);
79
+ Schema.decodeUnknownSync(RepositorySeedCrossBatchQualificationV1)(input.qualification);
80
+ const { checkpoint, plan, qualification } = input;
81
+ const generation = checkpoint.generation;
82
+ Schema.decodeUnknownSync(RepositoryBenchmarkCaseV1)(generation.benchmarkCase);
83
+ // Decoding the published schema strips executable control overlays and
84
+ // host observation metadata. Validate against it, then bind the complete
85
+ // saved evidence that the generation reviewer actually received.
86
+ const benchmark = generation.benchmarkCase;
87
+ assertRepositoryTaskSeedV1(checkpoint.seed);
88
+ assertRepositoryHiddenOracleV1(generation.heldOutOracle);
89
+ if (checkpoint.version !== 1 ||
90
+ checkpoint.kind !== "pending-quality-review" ||
91
+ checkpoint.validControlReviewVersion !==
92
+ (plan.validControlReviewVersion === 2 ? 2 : undefined) ||
93
+ checkpoint.reviewInputVersion !== plan.reviewInputVersion ||
94
+ checkpoint.specificationContractFactsVersion !== plan.specificationContractFactsVersion ||
95
+ checkpoint.repositoryRoot !== plan.repository.root ||
96
+ checkpoint.operationId !== `repository-foundry-${plan.planDigest.slice(0, 20)}` ||
97
+ !same(checkpoint.modelPlan, plan.modelPlan) ||
98
+ benchmark.id !== plan.caseId ||
99
+ benchmark.status !== "valid-library" ||
100
+ !benchmark.adequacy.admitted ||
101
+ benchmark.seedId !== plan.seedId ||
102
+ benchmark.visible.lane !== "repository-agent" ||
103
+ benchmark.visible.checkoutCommit !== plan.initialCommit ||
104
+ checkpoint.seed.id !== plan.seedId ||
105
+ checkpoint.seed.initialState.commit !== plan.initialCommit ||
106
+ checkpoint.seed.referenceCommit !== plan.referenceCommit ||
107
+ qualification.seed.id !== plan.seedId ||
108
+ !qualification.stability.stable ||
109
+ qualification.seed.status !== "qualified" ||
110
+ qualification.seed.initialState.commit !== plan.initialCommit ||
111
+ qualification.seed.referenceCommit !== plan.referenceCommit ||
112
+ !same(qualification.seed.environment, checkpoint.seed.environment) ||
113
+ generation.heldOutOracle.caseId !== plan.caseId ||
114
+ !evaluateRepositoryOracleAdequacyV1(benchmark.hidden).admitted ||
115
+ !evaluateRepositoryOracleAdequacyV1(generation.heldOutOracle).admitted ||
116
+ generation.modelCalls.some((call) => call.role === "quality-reviewer") ||
117
+ generation.modelCalls.length + 1 > plan.budget.plannedModelCalls)
118
+ throw fail("checkpoint, completed populations, budget and parent plan must agree");
119
+ if (plan.specificationContractFactsVersion === 1) {
120
+ assertRepositorySpecificationContractFactsEvidenceV1(generation.authored);
121
+ if (generation.authored.referenceGrounding?.beforeCommit !== plan.initialCommit ||
122
+ generation.authored.referenceGrounding.referenceCommit !== plan.referenceCommit ||
123
+ !same(generation.authored.groundedTargetBehavior, checkpoint.seed.targetBehavior))
124
+ throw fail("contract-fact checkpoint must retain its pinned reference and final grounded behavior");
125
+ }
126
+ const packet = checkpoint.qualityReviewInput;
127
+ const boundFields = {
128
+ ...(plan.validControlReviewVersion === 2 ? { validControlReviewVersion: 2 } : {}),
129
+ ...(plan.specificationContractFactsVersion === undefined
130
+ ? {}
131
+ : {
132
+ specificationContractFactsVersion: plan.specificationContractFactsVersion,
133
+ contractFacts: generation.authored.contractFacts
134
+ }),
135
+ visible: generation.authored.visible,
136
+ targetBehavior: checkpoint.seed.targetBehavior,
137
+ specificationReviews: generation.authored.reviews,
138
+ fixtureProposal: generation.fixtureProposal,
139
+ ...(plan.oracleCoverageWitnessVersion !== undefined
140
+ ? { oracleCoverageReviews: generation.oracleCoverageReviews }
141
+ : {}),
142
+ ...(plan.oracleCoverageWitnessVersion === 2
143
+ ? { oracleCoverageWitnessRevisions: generation.oracleCoverageWitnessRevisions }
144
+ : {}),
145
+ solutionReviews: generation.solutionReviews,
146
+ heldOutSolutionReviews: generation.heldOutSolutionReviews,
147
+ heldOutAdequacy: generation.heldOutAdequacy,
148
+ executableAdequacy: benchmark.adequacy,
149
+ oracleFrozenBeforeHeldOutTournament: true,
150
+ trajectoryPolicy: generation.trajectoryPolicy,
151
+ trajectoryPolicyReview: generation.trajectoryPolicyReview,
152
+ trajectoryRevisionAttempts: generation.trajectoryRevisionAttempts,
153
+ developmentOracle: {
154
+ clauses: benchmark.hidden.clauses,
155
+ observations: benchmark.hidden.observations
156
+ },
157
+ heldOutOracle: {
158
+ clauses: generation.heldOutOracle.clauses,
159
+ observations: generation.heldOutOracle.observations
160
+ }
161
+ };
162
+ for (const [key, value] of Object.entries(boundFields))
163
+ if (!same(packet[key], value))
164
+ throw fail(`the saved ${key} review evidence differs`);
165
+ const populations = savedPopulations(checkpoint);
166
+ assertSavedPopulation(input, benchmark.hidden, populations.development);
167
+ assertSavedPopulation(input, generation.heldOutOracle, populations.heldOut);
168
+ if (!Array.isArray(packet.evidenceInventory) ||
169
+ checkpoint.sourceBases.some((source) => typeof source !== "string"))
170
+ throw fail("complete saved control populations and source bases must agree");
171
+ const suite = {
172
+ version: 1,
173
+ caseId: plan.caseId,
174
+ fixtures: benchmark.hidden.fixtures,
175
+ overlays: generation.fixtureProposal.overlays
176
+ };
177
+ assertRepositoryHiddenFixtureSuiteV1(suite);
178
+ if (!same(suite.fixtures, generation.heldOutOracle.fixtures))
179
+ throw fail("development and held-out evidence must use the same frozen suite");
180
+ if (plan.oracleCoverageWitnessVersion === 2) {
181
+ const recordedRevisions = generation.hillClimbAttempts.flatMap((attempt) => attempt.coverageWitnessRevalidation === undefined
182
+ ? []
183
+ : [
184
+ {
185
+ sequence: attempt.sequence,
186
+ decision: attempt.decision,
187
+ revisions: attempt.coverageWitnessRevalidation.revisions
188
+ }
189
+ ]);
190
+ if (!same(generation.oracleCoverageWitnessRevisions, recordedRevisions))
191
+ throw fail("witness revision history must match the complete hill-climb decisions");
192
+ const witnesses = generation.oracleCoverageReviews?.flatMap((review) => review.executionAssessment?.witnesses ?? []) ?? [];
193
+ const retained = new Map(witnesses.map((witness) => [witness.fixture.id, witness.overlay]));
194
+ for (const attempt of generation.oracleCoverageWitnessRevisions ?? []) {
195
+ for (const revision of attempt.revisions) {
196
+ const original = witnesses.find((witness) => witness.fixture.id === revision.fixtureId);
197
+ if (original === undefined ||
198
+ revision.originalExecutionOperationId !== original.executionOperationId ||
199
+ revision.referenceCommit !== original.referenceCommit ||
200
+ !same(revision.beforeOverlay, retained.get(revision.fixtureId)))
201
+ throw fail("witness revision lineage must preserve the original obligation and incumbent");
202
+ if (attempt.decision === "accepted") {
203
+ if (revision.status !== "validated" ||
204
+ revision.referenceEvidence.outcome !== "pass" ||
205
+ revision.mutantEvidence?.outcome !== "fail")
206
+ throw fail("an accepted witness revision requires repeated semantic validation");
207
+ retained.set(revision.fixtureId, revision.overlay);
208
+ }
209
+ }
210
+ }
211
+ for (const [id, overlay] of retained)
212
+ if (!same(overlay, suite.overlays.find((candidate) => candidate.fixtureIds[0] === id)))
213
+ throw fail("the final suite must contain each adopted witness revision");
214
+ }
215
+ };
216
+ const assertSameFrozenOracle = (original, replay) => {
217
+ // Legacy executable populations were checked in full before any execution;
218
+ // a fresh oracle deliberately publishes metadata rather than patch bodies.
219
+ const originalMetadata = original.solutions.map(({ id, kind, family, expectedClass, commit }) => ({
220
+ id, kind, family, expectedClass, commit
221
+ }));
222
+ if (!same(original.fixtures, replay.fixtures) ||
223
+ !same(original.clauses, replay.clauses) ||
224
+ !same(originalMetadata, replay.solutions) ||
225
+ (original.executionBindingDigest !== undefined &&
226
+ original.executionBindingDigest !== replay.executionBindingDigest) ||
227
+ original.observations.length !== replay.observations.length)
228
+ throw fail("revalidation changed a frozen fixture, clause, control, or observation population");
229
+ };
230
+ /**
231
+ * Re-execute the frozen final populations and then request the original quality
232
+ * review. No task, solution or fixture authoring is permitted in this operation.
233
+ */
234
+ export const finalizeRepositoryGeneratedCaseV1 = Effect.fn("CaseFinalization.finalize")(function* (input) {
235
+ const reconstruction = yield* Effect.serviceOption(RepositoryFoundryEvidenceReconstruction);
236
+ if (Option.isSome(reconstruction))
237
+ return yield* fail("real finalization cannot run inside diagnostic reconstruction");
238
+ yield* Effect.try({
239
+ try: () => assertRepositoryFoundryFinalizationInputV1(input),
240
+ catch: (cause) => fail("invalid or incomplete frozen checkpoint", cause)
241
+ });
242
+ const { plan, checkpoint } = input;
243
+ const original = checkpoint.generation;
244
+ const populations = savedPopulations(checkpoint);
245
+ yield* reportFoundryStageV1("replay-qualify", "revalidating the frozen parent checkpoint");
246
+ const qualification = yield* qualifyHistoricalTaskSeedAcrossBatchesV1({
247
+ repositoryRoot: plan.repository.root,
248
+ seed: input.qualification.seed,
249
+ batches: plan.qualification.batches,
250
+ repetitionsPerBatch: plan.qualification.repetitionsPerBatch
251
+ });
252
+ if (!qualification.stability.stable || qualification.seed.status !== "qualified")
253
+ return yield* fail("fresh repeated historical qualification failed");
254
+ const seed = { ...qualification.seed, targetBehavior: checkpoint.seed.targetBehavior };
255
+ if (plan.oracleCoverageWitnessVersion === 2) {
256
+ const revisions = yield* validateRepositoryOracleCoverageWitnessRevisionsV1({
257
+ operationId: `${input.reviewOperationId}:witness-revalidation`,
258
+ repositoryRoot: plan.repository.root,
259
+ seed,
260
+ suite: {
261
+ version: 1,
262
+ caseId: plan.caseId,
263
+ fixtures: original.benchmarkCase.hidden.fixtures,
264
+ overlays: original.fixtureProposal.overlays
265
+ },
266
+ retained: (original.oracleCoverageReviews ?? []).flatMap((review) => (review.executionAssessment?.witnesses ?? []).map((witness) => ({
267
+ witness,
268
+ overlay: witness.overlay
269
+ })))
270
+ });
271
+ if (revisions.some((revision) => revision.status !== "validated"))
272
+ return yield* fail("fresh witness revalidation did not preserve an original defect-detection obligation");
273
+ }
274
+ const map = yield* buildRepositoryBehaviorMapV1({
275
+ repositoryRoot: plan.repository.root,
276
+ requestedRef: plan.repository.commit
277
+ });
278
+ if (map.repository.commit !== plan.repository.commit ||
279
+ map.repository.tree !== plan.repository.tree)
280
+ return yield* fail("the pinned repository history differs from the parent plan");
281
+ yield* reportFoundryStageV1("tournament", "replaying the complete frozen development population");
282
+ const compiled = yield* compileReviewedHistoricalCaseV1({
283
+ repositoryRoot: plan.repository.root,
284
+ map,
285
+ seed,
286
+ blueprint: {
287
+ caseId: plan.caseId,
288
+ ...(plan.requestedDimension === undefined
289
+ ? {}
290
+ : { requestedDimension: plan.requestedDimension }),
291
+ visible: original.authored.visible,
292
+ specificationReviews: original.authored.reviews,
293
+ finalFixtureSuite: {
294
+ version: 1,
295
+ caseId: plan.caseId,
296
+ fixtures: original.benchmarkCase.hidden.fixtures,
297
+ overlays: original.fixtureProposal.overlays
298
+ },
299
+ solutions: populations.development,
300
+ structuralClauses: structuralClauses(original.benchmarkCase.hidden),
301
+ trajectoryPolicy: original.trajectoryPolicy,
302
+ oracleRepetitions: plan.qualification.oracleRepetitions,
303
+ ...(plan.qualification.oracleConcurrency === undefined
304
+ ? {}
305
+ : { oracleConcurrency: plan.qualification.oracleConcurrency })
306
+ }
307
+ });
308
+ if (compiled.benchmarkCase.status !== "valid-library" ||
309
+ !compiled.benchmarkCase.adequacy.admitted ||
310
+ compiled.benchmarkCase.behavioralFingerprint !== original.benchmarkCase.behavioralFingerprint)
311
+ return yield* fail("fresh development validation failed or changed the task fingerprint");
312
+ yield* Effect.try({
313
+ try: () => assertSameFrozenOracle(original.benchmarkCase.hidden, compiled.hidden),
314
+ catch: (cause) => fail("development replay did not preserve the frozen population", cause)
315
+ });
316
+ yield* reportFoundryStageV1("held-out-tournament", "replaying the frozen held-out population");
317
+ const heldOutOracle = yield* buildHistoricalHiddenOracleV1({
318
+ repositoryRoot: plan.repository.root,
319
+ caseId: plan.caseId,
320
+ seed,
321
+ additionalSolutions: populations.heldOut,
322
+ structuralClauses: structuralClauses(original.heldOutOracle),
323
+ hiddenFixtureSuite: {
324
+ version: 1,
325
+ caseId: plan.caseId,
326
+ fixtures: original.heldOutOracle.fixtures,
327
+ overlays: original.fixtureProposal.overlays
328
+ },
329
+ repetitions: plan.qualification.oracleRepetitions,
330
+ ...(plan.qualification.oracleConcurrency === undefined
331
+ ? {}
332
+ : { oracleConcurrency: plan.qualification.oracleConcurrency })
333
+ });
334
+ const heldOutAdequacy = evaluateRepositoryOracleAdequacyV1(heldOutOracle);
335
+ if (!heldOutAdequacy.admitted)
336
+ return yield* fail("fresh frozen held-out validation failed");
337
+ yield* Effect.try({
338
+ try: () => assertSameFrozenOracle(original.heldOutOracle, heldOutOracle),
339
+ catch: (cause) => fail("held-out replay did not preserve the frozen population", cause)
340
+ });
341
+ const refreshed = {
342
+ ...checkpoint,
343
+ seed,
344
+ requiresReplayValidation: false,
345
+ generation: {
346
+ ...original,
347
+ benchmarkCase: compiled.benchmarkCase,
348
+ heldOutOracle,
349
+ heldOutAdequacy
350
+ },
351
+ qualityReviewInput: {
352
+ ...checkpoint.qualityReviewInput,
353
+ executableAdequacy: compiled.benchmarkCase.adequacy,
354
+ heldOutAdequacy,
355
+ developmentOracle: {
356
+ clauses: compiled.benchmarkCase.hidden.clauses,
357
+ observations: compiled.benchmarkCase.hidden.observations
358
+ },
359
+ heldOutOracle: { clauses: heldOutOracle.clauses, observations: heldOutOracle.observations }
360
+ }
361
+ };
362
+ const generation = yield* reviewRepositoryGeneratedCaseCheckpointV1({
363
+ checkpoint: refreshed,
364
+ operationId: input.reviewOperationId,
365
+ ...(input.reviewInputVersion === undefined
366
+ ? {}
367
+ : { reviewInputVersion: input.reviewInputVersion })
368
+ });
369
+ return { version: 1, plan, qualification, generation };
370
+ });