@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
@@ -3,6 +3,10 @@ import { assertRoutingBasis } from "@velum-labs/routekit-eval-contracts";
3
3
  import { writeFileAtomicEffect } from "@velum-labs/routekit-runtime/effect";
4
4
  import { Context, Effect, Exit, FileSystem, Layer, Path, Schema } from "effect";
5
5
  import { EvalProjectArtifactError } from "./errors.js";
6
+ import { candidateCaseProjection, hiddenOracleProjection } from "./evaluation-structure-policy.js";
7
+ import { EVAL_GRADER_MINIMUM_SCORE, EVAL_GRADER_SYSTEM_PROMPT, renderEvaluationCandidatePromptSource } from "./evaluation-grading-policy.js";
8
+ import { assertEvaluationProposal, evaluationProposalDigest } from "./evaluation-proposal-policy.js";
9
+ import { EvalNamedEventLog as EvalNamedEventLogSchema } from "./eval-event-log.js";
6
10
  import { EVAL_PROJECT_VERSION, EvalArtifactApproval as EvalArtifactApprovalSchema, BasisCandidatesArtifactsV3 as BasisCandidatesArtifactsV3Schema, BasisEvaluationProjectionV3 as BasisEvaluationProjectionV3Schema, BasisCandidateCheckpointV3 as BasisCandidateCheckpointV3Schema, BasisGenerationArtifactsV3 as BasisGenerationArtifactsV3Schema, BasisQualificationArtifactsV3 as BasisQualificationArtifactsV3Schema, BasisRepairArtifactsV3 as BasisRepairArtifactsV3Schema, BasisValidationJobCheckpointV3 as BasisValidationJobCheckpointV3Schema, BasisValidationResultsArtifactsV3 as BasisValidationResultsArtifactsV3Schema, BasisValidationArtifactsV3 as BasisValidationArtifactsV3Schema, EvalEvaluationProposal as EvalEvaluationProposalSchema, EvalExecutionPlan as EvalExecutionPlanSchema, EvalRoutingBasisProposal as EvalRoutingBasisProposalSchema, EvalRunReport as EvalRunReportSchema } from "./project-contracts.js";
7
11
  const BASIS_PROPOSAL = "routing-basis.proposed.json";
8
12
  const BASIS_APPROVAL = "routing-basis.approval.json";
@@ -18,29 +22,38 @@ const BASIS_REPAIR_V3 = "basis/repair.v3.json";
18
22
  const BASIS_REPAIR_VALIDATION_V3 = "basis/repair-validation.v3.json";
19
23
  const BASIS_REPAIR_VALIDATION_RESULTS_V3 = "basis/repair-validation-results.v3.json";
20
24
  const ARTIFACT_ID = /^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$/u;
21
- const renderCandidatePrompt = () => `const prompt = [
22
- testCase.prompt,
23
- "",
24
- "Response requirements:",
25
- "- Answer every part of the request directly and completely.",
26
- "- When translating protocols, emit the complete target-protocol envelope and terminal event; do not merely reframe or forward source objects.",
27
- "- When asked for a body, bytes, frames, or code, include the concrete output rather than only describing it.",
28
- ...(testCase.context === undefined
29
- ? []
30
- : ["", "Reference material:", "-----", testCase.context, "-----"])
31
- ].join("\\n");`;
25
+ const repeatedCase = (byId, selectedCaseId) => {
26
+ const exact = byId.get(selectedCaseId);
27
+ if (exact !== undefined)
28
+ return exact;
29
+ const repeated = /^(.*)#[1-9][0-9]*$/u.exec(selectedCaseId);
30
+ const sourceId = repeated?.[1];
31
+ if (sourceId === undefined) {
32
+ throw new Error(`execution plan refers to unknown case ${JSON.stringify(selectedCaseId)}`);
33
+ }
34
+ const testCase = byId.get(sourceId);
35
+ if (testCase === undefined) {
36
+ throw new Error(`execution plan refers to unknown case ${JSON.stringify(selectedCaseId)}`);
37
+ }
38
+ return { ...testCase, id: selectedCaseId };
39
+ };
32
40
  const renderDimensionSuite = () => `import assert from "node:assert/strict";
33
41
  import { test } from "node:test";
34
42
  import { setupAgent, setupJudge } from "routekit/eval";
35
- import cases from "./data/cases.json" with { type: "json" };
43
+ import candidateCases from "./data/candidate-cases.json" with { type: "json" };
44
+ import hiddenOracles from "./data/hidden-oracles.json" with { type: "json" };
36
45
  import manifest from "./routekit.eval-manifest.json" with { type: "json" };
37
46
 
38
- assert.equal(cases.length, manifest.caseCount);
39
- assert.deepEqual(cases.map((testCase) => testCase.id), manifest.caseIds);
47
+ assert.equal(candidateCases.length, manifest.caseCount);
48
+ assert.equal(hiddenOracles.length, manifest.caseCount);
49
+ assert.deepEqual(candidateCases.map((candidateCase) => candidateCase.id), manifest.caseIds);
50
+ assert.deepEqual(hiddenOracles.map((oracle) => oracle.id), manifest.caseIds);
40
51
  const candidateReasoningEfforts = manifest.candidateReasoningEfforts ?? {};
52
+ const hiddenOracleById = new Map(hiddenOracles.map((oracle) => [oracle.id, oracle]));
41
53
  const judge = setupJudge({
42
54
  agent: setupAgent({ model: manifest.judgeModel }),
43
- minScore: 0.8
55
+ minScore: ${String(EVAL_GRADER_MINIMUM_SCORE)},
56
+ systemPrompt: ${JSON.stringify(EVAL_GRADER_SYSTEM_PROMPT)}
44
57
  });
45
58
 
46
59
  for (const model of manifest.candidateModels) {
@@ -51,10 +64,10 @@ for (const model of manifest.candidateModels) {
51
64
  ? {}
52
65
  : { parameters: { reasoning: { effort } } })
53
66
  });
54
- for (const testCase of cases) {
55
- test(\`\${model} / \${testCase.id}\`, async () => {
56
- ${renderCandidatePrompt()}
57
- const run = await candidate.run({ prompt, caseId: testCase.id });
67
+ for (const candidateCase of candidateCases) {
68
+ test(\`\${model} / \${candidateCase.id}\`, async () => {
69
+ ${renderEvaluationCandidatePromptSource()}
70
+ const run = await candidate.run({ prompt, caseId: candidateCase.id });
58
71
  let candidateCompletionError;
59
72
  try {
60
73
  run.toComplete();
@@ -63,7 +76,9 @@ for (const model of manifest.candidateModels) {
63
76
  }
64
77
  let judgeError;
65
78
  try {
66
- await judge.autoEvals({ criteria: testCase.rubric, prompt, run });
79
+ const oracle = hiddenOracleById.get(candidateCase.id);
80
+ assert.ok(oracle);
81
+ await judge.autoEvals({ criteria: oracle.rubric, prompt, run });
67
82
  } catch (error) {
68
83
  judgeError = error;
69
84
  }
@@ -87,96 +102,13 @@ const digest = (value) => createHash("sha256").update(JSON.stringify(value)).dig
87
102
  export function routingBasisDigest(dimensions) {
88
103
  return digest({ version: 2, dimensions });
89
104
  }
90
- export function evaluationProposalDigest(proposal) {
91
- return digest(proposal);
92
- }
93
- function assertEvaluationProposal(proposal) {
94
- if (proposal.evaluationDigest !==
95
- evaluationProposalDigest({
96
- version: proposal.version,
97
- basisDigest: proposal.basisDigest,
98
- candidateModels: proposal.candidateModels,
99
- ...(proposal.candidateReasoningEfforts === undefined
100
- ? {}
101
- : { candidateReasoningEfforts: proposal.candidateReasoningEfforts }),
102
- judgeModel: proposal.judgeModel,
103
- suites: proposal.suites,
104
- decompositionBenchmark: proposal.decompositionBenchmark,
105
- compositionSuite: proposal.compositionSuite
106
- })) {
107
- throw new Error("evaluation proposal digest does not match its contents");
108
- }
109
- if (proposal.candidateModels.length < 2) {
110
- throw new Error("evaluation proposal requires at least two candidate models");
111
- }
112
- if (new Set(proposal.candidateModels).size !== proposal.candidateModels.length) {
113
- throw new Error("evaluation proposal candidate models must be unique");
114
- }
115
- if (Object.keys(proposal.candidateReasoningEfforts ?? {}).some((model) => !proposal.candidateModels.includes(model))) {
116
- throw new Error("evaluation proposal reasoning efforts must belong to candidate models");
117
- }
118
- if (proposal.judgeModel.trim().length === 0) {
119
- throw new Error("evaluation proposal judge must be explicit");
120
- }
121
- const dimensions = new Set();
122
- for (const suite of proposal.suites) {
123
- if (dimensions.has(suite.dimensionId)) {
124
- throw new Error(`duplicate dimension suite ${JSON.stringify(suite.dimensionId)}`);
125
- }
126
- dimensions.add(suite.dimensionId);
127
- assertDimensionSuite(suite);
128
- }
129
- if (proposal.decompositionBenchmark.maximumVectorL1Error < 0 ||
130
- proposal.decompositionBenchmark.maximumVectorL1Error > 2 ||
131
- proposal.decompositionBenchmark.cases.length < 5) {
132
- throw new Error("decomposition benchmark must define a reviewed threshold and at least five cases");
133
- }
134
- if (proposal.compositionSuite.maximumOutputTokens < 1 ||
135
- proposal.compositionSuite.minimumWinnerScoreGap < 0 ||
136
- proposal.compositionSuite.minimumWinnerScoreGap > 1 ||
137
- proposal.compositionSuite.minimumWinnerAgreement < 0 ||
138
- proposal.compositionSuite.minimumWinnerAgreement > 1 ||
139
- proposal.compositionSuite.cases.length < 5) {
140
- throw new Error("composition benchmark must define reviewed thresholds and at least five cases");
141
- }
142
- for (const [label, cases] of [
143
- ["decomposition", proposal.decompositionBenchmark.cases],
144
- ["composition", proposal.compositionSuite.cases]
145
- ]) {
146
- const ids = new Set();
147
- for (const testCase of cases) {
148
- if (testCase.id.trim().length === 0 || ids.has(testCase.id)) {
149
- throw new Error(`${label} benchmark contains an invalid or duplicate case id`);
150
- }
151
- ids.add(testCase.id);
152
- }
153
- }
154
- }
155
- function assertDimensionSuite(suite) {
156
- if (suite.maximumOutputTokens < 1) {
157
- throw new Error(`dimension suite ${JSON.stringify(suite.dimensionId)} has no output allowance`);
158
- }
159
- if (suite.cases.length < 5) {
160
- throw new Error(`dimension suite ${JSON.stringify(suite.dimensionId)} must contain at least five cases`);
161
- }
162
- const ids = new Set();
163
- for (const testCase of suite.cases) {
164
- if (testCase.id.trim().length === 0 ||
165
- testCase.prompt.trim().length === 0 ||
166
- testCase.rubric.trim().length === 0) {
167
- throw new Error(`dimension suite ${JSON.stringify(suite.dimensionId)} contains an incomplete case`);
168
- }
169
- if (ids.has(testCase.id)) {
170
- throw new Error(`dimension suite ${JSON.stringify(suite.dimensionId)} contains duplicate case ${JSON.stringify(testCase.id)}`);
171
- }
172
- ids.add(testCase.id);
173
- }
174
- }
105
+ export { evaluationProposalDigest };
175
106
  export class EvalProjectArtifacts extends Context.Service()("@velum-labs/routekit-eval-setup/EvalProjectArtifacts") {
176
107
  }
177
108
  export const makeFileEvalProjectArtifacts = Effect.gen(function* () {
178
109
  const fs = yield* FileSystem.FileSystem;
179
110
  const paths = yield* Path.Path;
111
+ const platform = yield* Effect.context();
180
112
  const root = (repositoryRoot) => paths.join(paths.resolve(repositoryRoot), ".routekit", "evals");
181
113
  const artifactPath = (repositoryRoot, name) => paths.join(root(repositoryRoot), name);
182
114
  const candidateCheckpointName = (recipeId) => ARTIFACT_ID.test(recipeId)
@@ -193,7 +125,7 @@ export const makeFileEvalProjectArtifacts = Effect.gen(function* () {
193
125
  };
194
126
  const writeAtomic = (target, content) => writeFileAtomicEffect(target, content, {
195
127
  mode: 0o600
196
- }).pipe(Effect.mapError((cause) => artifactFailure("writing", target, cause)), Effect.provideService(FileSystem.FileSystem, fs), Effect.provideService(Path.Path, paths));
128
+ }).pipe(Effect.mapError((cause) => artifactFailure("writing", target, cause)), Effect.provide(platform));
197
129
  const read = (repositoryRoot, name, decode) => Effect.gen(function* () {
198
130
  const target = artifactPath(repositoryRoot, name);
199
131
  const exists = yield* fs
@@ -292,19 +224,6 @@ export const makeFileEvalProjectArtifacts = Effect.gen(function* () {
292
224
  for (const suite of proposal.suites) {
293
225
  const suiteRoot = paths.join("dimensions", suite.dimensionId);
294
226
  yield* write(repositoryRoot, paths.join(suiteRoot, "suite.json"), suite);
295
- yield* writeText(repositoryRoot, paths.join(suiteRoot, `${suite.dimensionId}.eval.ts`), renderDimensionSuite());
296
- yield* write(repositoryRoot, paths.join(suiteRoot, "data", "cases.json"), suite.cases);
297
- yield* write(repositoryRoot, paths.join(suiteRoot, "routekit.eval-manifest.json"), {
298
- version: EVAL_PROJECT_VERSION,
299
- profileId: suite.dimensionId,
300
- candidateModels: proposal.candidateModels,
301
- candidateReasoningEfforts: proposal.candidateReasoningEfforts ?? {},
302
- judgeModel: proposal.judgeModel,
303
- caseCount: suite.cases.length,
304
- caseIds: suite.cases.map((testCase) => testCase.id),
305
- maxOutputTokens: suite.maximumOutputTokens,
306
- expectedCallCount: suite.cases.length * proposal.candidateModels.length * 2
307
- });
308
227
  }
309
228
  yield* write(repositoryRoot, paths.join("benchmarks", "decomposition.json"), proposal.decompositionBenchmark);
310
229
  yield* write(repositoryRoot, paths.join("benchmarks", "composition.json"), proposal.compositionSuite);
@@ -324,16 +243,11 @@ export const makeFileEvalProjectArtifacts = Effect.gen(function* () {
324
243
  return yield* artifactFailure("writing", selection.dimensionId, new Error("execution plan refers to an unknown dimension suite"));
325
244
  }
326
245
  const byId = new Map(suite.cases.map((testCase) => [testCase.id, testCase]));
327
- const cases = selection.caseIds.map((caseId) => {
328
- const testCase = byId.get(caseId);
329
- if (testCase === undefined) {
330
- throw new Error(`execution plan refers to unknown case ${JSON.stringify(caseId)} in ${JSON.stringify(selection.dimensionId)}`);
331
- }
332
- return testCase;
333
- });
246
+ const cases = selection.caseIds.map((caseId) => repeatedCase(byId, caseId));
334
247
  const suiteRoot = paths.join("plans", plan.planId, "dimensions", selection.dimensionId);
335
248
  yield* writeText(repositoryRoot, paths.join(suiteRoot, `${selection.dimensionId}.eval.ts`), renderDimensionSuite(), mode === "rematerialize");
336
- yield* write(repositoryRoot, paths.join(suiteRoot, "data", "cases.json"), cases, mode === "rematerialize");
249
+ yield* write(repositoryRoot, paths.join(suiteRoot, "data", "candidate-cases.json"), cases.map(candidateCaseProjection), mode === "rematerialize");
250
+ yield* write(repositoryRoot, paths.join(suiteRoot, "data", "hidden-oracles.json"), cases.map(hiddenOracleProjection), mode === "rematerialize");
337
251
  yield* write(repositoryRoot, paths.join(suiteRoot, "routekit.eval-manifest.json"), {
338
252
  version: EVAL_PROJECT_VERSION,
339
253
  profileId: selection.dimensionId,
@@ -347,16 +261,11 @@ export const makeFileEvalProjectArtifacts = Effect.gen(function* () {
347
261
  }, mode === "rematerialize");
348
262
  }
349
263
  const compositionById = new Map(proposal.compositionSuite.cases.map((testCase) => [testCase.id, testCase]));
350
- const compositionCases = plan.selectedCompositionCaseIds.map((caseId) => {
351
- const testCase = compositionById.get(caseId);
352
- if (testCase === undefined) {
353
- throw new Error(`execution plan refers to unknown composition case ${JSON.stringify(caseId)}`);
354
- }
355
- return testCase;
356
- });
264
+ const compositionCases = plan.selectedCompositionCaseIds.map((caseId) => repeatedCase(compositionById, caseId));
357
265
  const compositionRoot = paths.join("plans", plan.planId, "composition");
358
266
  yield* writeText(repositoryRoot, paths.join(compositionRoot, "composition.eval.ts"), renderDimensionSuite(), mode === "rematerialize");
359
- yield* write(repositoryRoot, paths.join(compositionRoot, "data", "cases.json"), compositionCases, mode === "rematerialize");
267
+ yield* write(repositoryRoot, paths.join(compositionRoot, "data", "candidate-cases.json"), compositionCases.map(candidateCaseProjection), mode === "rematerialize");
268
+ yield* write(repositoryRoot, paths.join(compositionRoot, "data", "hidden-oracles.json"), compositionCases.map(hiddenOracleProjection), mode === "rematerialize");
360
269
  yield* write(repositoryRoot, paths.join(compositionRoot, "routekit.eval-manifest.json"), {
361
270
  version: EVAL_PROJECT_VERSION,
362
271
  profileId: "composition",
@@ -435,7 +344,11 @@ export const makeFileEvalProjectArtifacts = Effect.gen(function* () {
435
344
  reports.push(entry);
436
345
  }
437
346
  return reports.sort((left, right) => left.localeCompare(right));
438
- })
347
+ }),
348
+ saveRunEventLog: (repositoryRoot, runId, events) => requireArtifactId("run", runId).pipe(Effect.andThen(Schema.decodeEffect(EvalNamedEventLogSchema)(events).pipe(Effect.mapError((cause) => artifactFailure("writing", artifactPath(repositoryRoot, paths.join("runs", runId, "events.json")), cause)))), Effect.andThen(write(repositoryRoot, paths.join("runs", runId, "events.json"), events))),
349
+ loadRunEventLog: (repositoryRoot, runId) => requireArtifactId("run", runId).pipe(Effect.andThen(read(repositoryRoot, paths.join("runs", runId, "events.json"), Schema.decodeUnknownEffect(EvalNamedEventLogSchema))), Effect.map((events) => events ?? [])),
350
+ saveAuthoringEventLog: (repositoryRoot, events) => Schema.decodeEffect(EvalNamedEventLogSchema)(events).pipe(Effect.mapError((cause) => artifactFailure("writing", artifactPath(repositoryRoot, paths.join("authoring", "events.json")), cause)), Effect.andThen(write(repositoryRoot, paths.join("authoring", "events.json"), events))),
351
+ loadAuthoringEventLog: (repositoryRoot) => read(repositoryRoot, paths.join("authoring", "events.json"), Schema.decodeUnknownEffect(EvalNamedEventLogSchema)).pipe(Effect.map((events) => events ?? []))
439
352
  });
440
353
  });
441
354
  export const EvalProjectArtifactsLive = Layer.effect(EvalProjectArtifacts, makeFileEvalProjectArtifacts);
@@ -1,11 +1,17 @@
1
1
  import { type RoutingBasis } from "@velum-labs/routekit-eval-contracts";
2
2
  import { Context, Effect, FileSystem, Layer, Path } from "effect";
3
3
  import { EvalProjectAuthoringError } from "./errors.js";
4
- import { type EvalEvaluationProposal, type EvalProposedDimension, type EvalProjectConfiguration } from "./project-contracts.js";
4
+ import { type EvalEvidenceSource, type EvalEvaluationProposal, type EvalProposedDimension, type EvalProjectConfiguration } from "./project-contracts.js";
5
5
  export declare const EVAL_AUTHORING_SOURCE_BYTES = 60000;
6
6
  export declare const EVAL_AUTHORING_SOURCE_FILES = 64;
7
7
  export declare const EVAL_AUTHORING_CASES_PER_DIMENSION = 20;
8
8
  export declare const EVAL_AUTHORING_EVALUATION_OUTPUT_TOKENS = 32768;
9
+ /**
10
+ * A routing basis admits at most ten dimensions, so cross-dimension preflight
11
+ * requests at most half as many dossiers as a twenty-case suite with the same
12
+ * authored-case schema. This is an output allowance, not a quality threshold.
13
+ */
14
+ export declare const EVAL_AUTHORING_PREFLIGHT_OUTPUT_TOKENS = 16384;
9
15
  /**
10
16
  * Maximum serialized request body admitted for one authoring call.
11
17
  *
@@ -14,37 +20,92 @@ export declare const EVAL_AUTHORING_EVALUATION_OUTPUT_TOKENS = 32768;
14
20
  * reserves serialized UTF-8 bytes as a conservative input-token upper bound.
15
21
  */
16
22
  export declare const EVAL_AUTHORING_REQUEST_BYTES = 512000;
23
+ /**
24
+ * Complete frozen reviews include both control populations and their replay
25
+ * history. This separately budgeted allowance is opt-in; archived authoring
26
+ * envelopes and all non-review roles retain the original 512KB bound.
27
+ */
28
+ export declare const EVAL_AUTHORING_REVIEW_REQUEST_BYTES = 1000000;
17
29
  export type EvalAuthoringSource = {
18
30
  readonly path: string;
19
31
  readonly content: string;
20
32
  };
33
+ export type EvalAuthoringSourceClass = "implementation" | "test" | "protocol" | "documentation" | "operational";
34
+ export type EvalAuthoringSourceManifestEntry = {
35
+ readonly path: string;
36
+ readonly sizeBytes: number;
37
+ readonly sourceClass: EvalAuthoringSourceClass;
38
+ readonly targetDimensions: readonly string[];
39
+ readonly inclusionReason: string;
40
+ };
41
+ export type EvalAuthoringSourceManifest = {
42
+ readonly version: 1;
43
+ readonly purpose: "dimensions" | "evaluations";
44
+ readonly workloadDescription: string;
45
+ readonly basisDigest?: string;
46
+ readonly packets: readonly {
47
+ readonly target: string;
48
+ readonly targetDimensions: readonly string[];
49
+ readonly sources: readonly EvalAuthoringSourceManifestEntry[];
50
+ }[];
51
+ };
21
52
  export type EvalAuthoringCompletion = {
22
53
  readonly operationId: string;
23
54
  readonly model: string;
55
+ readonly foundryRole?: string;
56
+ readonly reasoningEffort?: string;
57
+ readonly reviewInputVersion?: 2;
24
58
  readonly instructions: string;
25
59
  readonly input: string;
26
60
  readonly schemaName: string;
27
61
  readonly jsonSchema: Readonly<Record<string, unknown>>;
28
62
  readonly maximumOutputTokens: number;
29
63
  };
64
+ export type EvalAuthoringCompletionResult = {
65
+ readonly text: string;
66
+ readonly callId?: string;
67
+ };
30
68
  export type EvalAuthoringTransportShape = {
31
69
  readonly complete: (input: EvalAuthoringCompletion) => Effect.Effect<string, EvalProjectAuthoringError>;
70
+ readonly completeDetailed?: (input: EvalAuthoringCompletion) => Effect.Effect<EvalAuthoringCompletionResult, EvalProjectAuthoringError>;
32
71
  };
33
72
  declare const EvalAuthoringTransport_base: Context.ServiceClass<EvalAuthoringTransport, "@velum-labs/routekit-eval-setup/EvalAuthoringTransport", EvalAuthoringTransportShape>;
34
73
  export declare class EvalAuthoringTransport extends EvalAuthoringTransport_base {
35
74
  }
36
- /**
37
- * Revalidate every selected source at the read boundary. Discovery inventory
38
- * membership is necessary but not sufficient because the checkout may mutate.
39
- */
40
75
  export declare function readProjectAuthoringSources(input: {
41
76
  readonly repositoryRoot: string;
42
77
  readonly selectedFiles: readonly string[];
43
78
  readonly sourceInventory: readonly string[];
44
79
  }): Effect.Effect<readonly EvalAuthoringSource[], EvalProjectAuthoringError, FileSystem.FileSystem | Path.Path>;
80
+ type EvalAuthoringSourcePacket = {
81
+ readonly sources: readonly EvalAuthoringSourceManifestEntry[];
82
+ };
83
+ type EvalAuthoringEvidencePacket = {
84
+ readonly packet: EvalAuthoringSourcePacket;
85
+ readonly evidenceSources: readonly EvalEvidenceSource[];
86
+ };
87
+ type EvalAuthoringDimensionEvidencePacket = EvalAuthoringEvidencePacket & {
88
+ readonly preflightEvidenceSources: readonly EvalEvidenceSource[];
89
+ };
90
+ export declare const selectProjectAuthoringEvidencePacket: (input: {
91
+ readonly repositoryRoot: string;
92
+ readonly sourceInventory: readonly string[];
93
+ readonly targetDimensions: RoutingBasis["dimensions"];
94
+ }) => Effect.Effect<EvalAuthoringDimensionEvidencePacket, EvalProjectAuthoringError, FileSystem.FileSystem | Path.Path>;
95
+ export declare const selectSharedProjectAuthoringEvidencePacket: (input: {
96
+ readonly repositoryRoot: string;
97
+ readonly sourceInventory: readonly string[];
98
+ readonly targetDimensions: RoutingBasis["dimensions"];
99
+ }) => Effect.Effect<EvalAuthoringEvidencePacket, EvalProjectAuthoringError, FileSystem.FileSystem | Path.Path>;
45
100
  export declare function selectProjectAuthoringSourceFiles(input: {
46
101
  readonly repositoryRoot: string;
47
102
  readonly sourceInventory: readonly string[];
103
+ readonly workloadDescription?: string;
104
+ readonly targetDimensions?: RoutingBasis["dimensions"];
105
+ readonly explicitInclusions?: readonly {
106
+ readonly path: string;
107
+ readonly reason: string;
108
+ }[];
48
109
  }): Effect.Effect<readonly string[], EvalProjectAuthoringError, FileSystem.FileSystem | Path.Path>;
49
110
  export type EvalProjectAuthorShape = {
50
111
  readonly proposeDimensions: (input: {