@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
@@ -1,5 +1,6 @@
1
1
  import { DecompositionResult, DimensionScoreLabelV3, DimensionScorePredictionV3, EvalCandidateReasoningEfforts, EvalComparisonResult, EvalReasoningEffort, PublishedRoutingActivation, RoutingBasisApprovalV3, RoutingBasisV3, RoutingActivationConstraints, RequestRoutingRequirements, RoutingObjectivePolicy, WorkloadDimension } from "@velum-labs/routekit-eval-contracts";
2
- import { Schema } from "effect";
2
+ import { Effect, Schema } from "effect";
3
+ import { EvalNamedEventLog } from "./eval-event-log.js";
3
4
  export const EVAL_PROJECT_VERSION = 1;
4
5
  export const EVAL_PROJECT_V2_VERSION = 2;
5
6
  export const EvalProjectQuestion = Schema.Struct({
@@ -526,11 +527,58 @@ export const EvalProjectDocument = Schema.Union([
526
527
  EvalProjectState,
527
528
  EvalProjectStateV2
528
529
  ]);
530
+ export const EvalEvidenceBlock = Schema.Struct({
531
+ id: Schema.String,
532
+ path: Schema.String,
533
+ sourceDigest: Schema.String,
534
+ contentDigest: Schema.String,
535
+ ordinal: NonNegativeInteger,
536
+ startLine: NonNegativeInteger,
537
+ endLine: NonNegativeInteger,
538
+ text: Schema.String
539
+ });
540
+ export const EvalEvidenceSource = Schema.Struct({
541
+ path: Schema.String,
542
+ sourceDigest: Schema.String,
543
+ sourceBytes: Schema.optionalKey(NonNegativeInteger),
544
+ sourceBlockCount: Schema.optionalKey(NonNegativeInteger),
545
+ blocks: Schema.Array(EvalEvidenceBlock)
546
+ });
547
+ export const EvalCriterion = Schema.Struct({
548
+ id: Schema.String,
549
+ description: Schema.String,
550
+ importance: Schema.Literals(["critical", "supporting"]),
551
+ gradingMode: Schema.Literal("semantic")
552
+ });
553
+ export const EvalPositiveControl = Schema.Struct({
554
+ id: Schema.String,
555
+ response: Schema.String
556
+ });
557
+ export const EvalNegativeControl = Schema.Struct({
558
+ id: Schema.String,
559
+ response: Schema.String,
560
+ targetedCriterionIds: Schema.Array(Schema.String),
561
+ kind: Schema.Literals([
562
+ "missing-criterion",
563
+ "forbidden-behavior",
564
+ "non-responsive"
565
+ ])
566
+ });
567
+ const EvalCompiledCase = {
568
+ // Optional only at the persisted decoding boundary. The current evaluation
569
+ // structure policy requires compiler-owned evidence and hidden controls
570
+ // before approval, planning, or execution.
571
+ evidenceIds: Schema.optionalKey(Schema.Array(Schema.String)),
572
+ criteria: Schema.optionalKey(Schema.Array(EvalCriterion)),
573
+ positiveControls: Schema.optionalKey(Schema.Array(EvalPositiveControl)),
574
+ negativeControls: Schema.optionalKey(Schema.Array(EvalNegativeControl))
575
+ };
529
576
  export const EvalDimensionCase = Schema.Struct({
530
577
  id: Schema.String,
531
578
  prompt: Schema.String,
532
579
  context: Schema.optionalKey(Schema.String),
533
- rubric: Schema.String
580
+ rubric: Schema.String,
581
+ ...EvalCompiledCase
534
582
  });
535
583
  export const EvalDimensionSuite = Schema.Struct({
536
584
  version: Schema.Literal(EVAL_PROJECT_VERSION),
@@ -552,6 +600,7 @@ export const EvalCompositionCase = Schema.Struct({
552
600
  prompt: Schema.String,
553
601
  context: Schema.optionalKey(Schema.String),
554
602
  rubric: Schema.String,
603
+ ...EvalCompiledCase,
555
604
  decomposition: DecompositionResult,
556
605
  requirements: RequestRoutingRequirements
557
606
  });
@@ -568,6 +617,7 @@ export const EvalEvaluationProposal = Schema.Struct({
568
617
  candidateModels: Schema.Array(Schema.String),
569
618
  candidateReasoningEfforts: Schema.optionalKey(EvalCandidateReasoningEfforts),
570
619
  judgeModel: Schema.String,
620
+ evidenceSources: Schema.optionalKey(Schema.Array(EvalEvidenceSource)),
571
621
  suites: Schema.Array(EvalDimensionSuite),
572
622
  decompositionBenchmark: EvalDecompositionBenchmark,
573
623
  compositionSuite: EvalCompositionSuite
@@ -576,9 +626,21 @@ export const EvalArtifactApproval = Schema.Struct({
576
626
  version: Schema.Literal(EVAL_PROJECT_VERSION),
577
627
  kind: Schema.Literals(["routing-basis", "evaluations"]),
578
628
  digest: Schema.String,
579
- approvedAt: Schema.String
629
+ approvedAt: Schema.String,
630
+ structurePolicyVersion: Schema.optionalKey(NonNegativeInteger),
631
+ structureReportDigest: Schema.optionalKey(Schema.String)
580
632
  });
581
633
  export const EvalPlanScope = Schema.Literals(["pilot", "full"]);
634
+ export const EvalCostEstimate = Schema.Struct({
635
+ callCount: NonNegativeInteger,
636
+ maximumInputTokens: NonNegativeInteger,
637
+ maximumOutputTokens: NonNegativeInteger,
638
+ maximumCostUsd: Schema.optionalKey(NonNegativeFinite),
639
+ knownPricedMaximumUsd: NonNegativeFinite,
640
+ unpricedCalls: NonNegativeInteger,
641
+ subscriptionUnitCalls: NonNegativeInteger,
642
+ unknowns: Schema.Array(Schema.String)
643
+ });
582
644
  export const EvalExecutionPlan = Schema.Struct({
583
645
  version: Schema.Literal(EVAL_PROJECT_VERSION),
584
646
  planId: Schema.String,
@@ -586,6 +648,7 @@ export const EvalExecutionPlan = Schema.Struct({
586
648
  projectRevision: NonNegativeInteger,
587
649
  createdAt: Schema.String,
588
650
  scope: EvalPlanScope,
651
+ repetitions: NonNegativeInteger.pipe(Schema.withDecodingDefaultKey(Effect.succeed(1))),
589
652
  basisDigest: Schema.String,
590
653
  evaluationDigest: Schema.String,
591
654
  candidateModels: Schema.Array(Schema.String),
@@ -607,7 +670,8 @@ export const EvalExecutionPlan = Schema.Struct({
607
670
  expectedCompositionJudgeCalls: NonNegativeInteger,
608
671
  expectedCandidateCalls: NonNegativeInteger,
609
672
  expectedJudgeCalls: NonNegativeInteger,
610
- expectedCallCount: NonNegativeInteger
673
+ expectedCallCount: NonNegativeInteger,
674
+ costEstimate: Schema.optionalKey(EvalCostEstimate)
611
675
  });
612
676
  export function scopedExpectedCalls(plan) {
613
677
  const candidateModelCount = plan.candidateModels.length;
@@ -630,6 +694,44 @@ export function scopedExpectedCalls(plan) {
630
694
  expectedCallCount: expectedCandidateCalls + expectedJudgeCalls + expectedClassifierCalls
631
695
  };
632
696
  }
697
+ export const EVAL_MAXIMUM_INPUT_TOKENS_PER_CALL = 256 * 1024;
698
+ export function estimateEvalPlanCost(plan, costService) {
699
+ const candidateCaseCalls = plan.expectedDimensionCandidateCalls + plan.expectedCompositionCandidateCalls;
700
+ const callsPerCandidate = plan.candidateModels.length === 0 ? 0 : candidateCaseCalls / plan.candidateModels.length;
701
+ const calls = [
702
+ ...plan.candidateModels.map((model) => ({
703
+ model,
704
+ callCount: callsPerCandidate,
705
+ maximumInputTokens: EVAL_MAXIMUM_INPUT_TOKENS_PER_CALL,
706
+ maximumOutputTokens: plan.maximumOutputTokens,
707
+ ...(plan.candidateReasoningEfforts?.[model] === undefined
708
+ ? {}
709
+ : { reasoningEffort: plan.candidateReasoningEfforts[model] })
710
+ })),
711
+ {
712
+ model: plan.judgeModel,
713
+ callCount: candidateCaseCalls,
714
+ maximumInputTokens: EVAL_MAXIMUM_INPUT_TOKENS_PER_CALL,
715
+ maximumOutputTokens: plan.maximumOutputTokens
716
+ },
717
+ {
718
+ model: plan.classifierModel,
719
+ callCount: plan.expectedClassifierCalls,
720
+ maximumInputTokens: EVAL_MAXIMUM_INPUT_TOKENS_PER_CALL,
721
+ maximumOutputTokens: plan.maximumOutputTokens
722
+ }
723
+ ];
724
+ return costService.estimate(calls).pipe(Effect.map((estimate) => ({
725
+ callCount: estimate.callCount,
726
+ maximumInputTokens: estimate.knownInputTokens,
727
+ maximumOutputTokens: estimate.knownOutputTokens,
728
+ ...(estimate.maximumCostUsd === undefined ? {} : { maximumCostUsd: estimate.maximumCostUsd }),
729
+ knownPricedMaximumUsd: estimate.knownPricedMaximumUsd,
730
+ unpricedCalls: estimate.unpricedCalls + estimate.upstreamManagedCalls + estimate.unknownBillingCalls,
731
+ subscriptionUnitCalls: estimate.subscriptionUnitCalls,
732
+ unknowns: estimate.unknowns
733
+ })));
734
+ }
633
735
  export const EvalRunTarget = Schema.Struct({
634
736
  kind: Schema.Literals(["configured", "external"]),
635
737
  identity: Schema.String,
@@ -648,7 +750,8 @@ export const EvalRunLedger = Schema.Struct({
648
750
  knownOutputTokens: NonNegativeInteger,
649
751
  unknownTokenMeasurements: NonNegativeInteger,
650
752
  knownPricedSubtotalUsd: NonNegativeFinite,
651
- unpricedCalls: NonNegativeInteger
753
+ unpricedCalls: NonNegativeInteger,
754
+ subscriptionUnitCalls: NonNegativeInteger.pipe(Schema.withDecodingDefaultKey(Effect.succeed(0)))
652
755
  });
653
756
  export const EvalClassifierObservation = Schema.Struct({
654
757
  caseId: Schema.String,
@@ -666,10 +769,13 @@ export const EvalClassifierObservation = Schema.Struct({
666
769
  });
667
770
  export const EvalCompositionCaseResult = Schema.Struct({
668
771
  caseId: Schema.String,
669
- predictedWinner: Schema.String,
670
- observedWinner: Schema.String,
772
+ predictedWinner: Schema.NullOr(Schema.String),
773
+ predictedTiedModels: Schema.optionalKey(Schema.Array(Schema.String)).pipe(Schema.withDecodingDefaultKey(Effect.succeed([]))),
774
+ observedWinner: Schema.NullOr(Schema.String),
775
+ observedTiedModels: Schema.optionalKey(Schema.Array(Schema.String)).pipe(Schema.withDecodingDefaultKey(Effect.succeed([]))),
671
776
  predictedScoreGap: NonNegativeFinite,
672
777
  observedScoreGap: NonNegativeFinite,
778
+ comparable: Schema.optionalKey(Schema.Boolean).pipe(Schema.withDecodingDefaultKey(Effect.succeed(false))),
673
779
  passed: Schema.Boolean
674
780
  });
675
781
  export const EvalRunQualification = Schema.Struct({
@@ -683,18 +789,17 @@ export const EvalRunQualification = Schema.Struct({
683
789
  expectedCases: NonNegativeInteger,
684
790
  comparableCases: NonNegativeInteger,
685
791
  agreeingCases: NonNegativeInteger,
686
- winnerAgreement: NonNegativeFinite,
792
+ winnerAgreement: Schema.optionalKey(NonNegativeFinite),
793
+ conclusion: Schema.optionalKey(Schema.Literals(["passed", "failed", "inconclusive"])).pipe(Schema.withDecodingDefaultKey(Effect.succeed("failed"))),
794
+ reason: Schema.optionalKey(Schema.String),
795
+ publishable: Schema.optionalKey(Schema.Boolean).pipe(Schema.withDecodingDefaultKey(Effect.succeed(false))),
687
796
  cases: Schema.Array(EvalCompositionCaseResult)
688
797
  })
689
798
  });
690
- export function summarizeEvalRunLedger(comparisons, expectedCalls, classifierObservations = []) {
799
+ export function summarizeEvalRunLedger(comparisons, expectedCalls, costService, classifierObservations = [], classifierModel = "unknown") {
691
800
  let observedCalls = 0;
692
801
  let observedCandidateRows = 0;
693
- let knownInputTokens = 0;
694
- let knownOutputTokens = 0;
695
- let unknownTokenMeasurements = 0;
696
- let knownPricedSubtotalUsd = 0;
697
- let unpricedCalls = 0;
802
+ const actualCalls = [];
698
803
  for (const comparison of comparisons) {
699
804
  const calls = comparison.calls ??
700
805
  comparison.models.flatMap((model) => model.cases.map((testCase) => ({
@@ -707,49 +812,52 @@ export function summarizeEvalRunLedger(comparisons, expectedCalls, classifierObs
707
812
  observedCalls += 1;
708
813
  if (call.role === "candidate")
709
814
  observedCandidateRows += 1;
710
- if (call.measurement.inputTokens === undefined ||
711
- call.measurement.outputTokens === undefined) {
712
- unknownTokenMeasurements += 1;
713
- }
714
- else {
715
- knownInputTokens += call.measurement.inputTokens;
716
- knownOutputTokens += call.measurement.outputTokens;
717
- }
718
- if (call.measurement.costUsd === undefined) {
719
- unpricedCalls += 1;
720
- }
721
- else {
722
- knownPricedSubtotalUsd += call.measurement.costUsd;
723
- }
815
+ actualCalls.push({
816
+ model: call.model,
817
+ usage: {
818
+ ...(call.measurement.inputTokens === undefined
819
+ ? {}
820
+ : { inputTokens: call.measurement.inputTokens }),
821
+ ...(call.measurement.inputTokens === undefined ? {} : { cachedInputTokens: 0 }),
822
+ ...(call.measurement.outputTokens === undefined
823
+ ? {}
824
+ : { outputTokens: call.measurement.outputTokens })
825
+ },
826
+ ...(call.measurement.costUsd === undefined
827
+ ? {}
828
+ : { providerCostUsd: call.measurement.costUsd })
829
+ });
724
830
  }
725
831
  }
726
832
  for (const observation of classifierObservations) {
727
833
  observedCalls += 1;
728
- if (observation.measurement.inputTokens === undefined ||
729
- observation.measurement.outputTokens === undefined) {
730
- unknownTokenMeasurements += 1;
731
- }
732
- else {
733
- knownInputTokens += observation.measurement.inputTokens;
734
- knownOutputTokens += observation.measurement.outputTokens;
735
- }
736
- if (observation.measurement.costUsd === undefined) {
737
- unpricedCalls += 1;
738
- }
739
- else {
740
- knownPricedSubtotalUsd += observation.measurement.costUsd;
741
- }
834
+ actualCalls.push({
835
+ model: classifierModel,
836
+ usage: {
837
+ ...(observation.measurement.inputTokens === undefined
838
+ ? {}
839
+ : { inputTokens: observation.measurement.inputTokens }),
840
+ ...(observation.measurement.inputTokens === undefined ? {} : { cachedInputTokens: 0 }),
841
+ ...(observation.measurement.outputTokens === undefined
842
+ ? {}
843
+ : { outputTokens: observation.measurement.outputTokens })
844
+ },
845
+ ...(observation.measurement.costUsd === undefined
846
+ ? {}
847
+ : { providerCostUsd: observation.measurement.costUsd })
848
+ });
742
849
  }
743
- return {
850
+ return costService.actuals(actualCalls).pipe(Effect.map((actuals) => ({
744
851
  expectedCalls,
745
852
  observedCalls,
746
853
  observedCandidateRows,
747
- knownInputTokens,
748
- knownOutputTokens,
749
- unknownTokenMeasurements,
750
- knownPricedSubtotalUsd,
751
- unpricedCalls
752
- };
854
+ knownInputTokens: actuals.knownInputTokens,
855
+ knownOutputTokens: actuals.knownOutputTokens,
856
+ unknownTokenMeasurements: actuals.unknownTokenCalls,
857
+ knownPricedSubtotalUsd: actuals.knownPricedSubtotalUsd,
858
+ unpricedCalls: actuals.unpricedCalls + actuals.upstreamManagedCalls + actuals.unknownBillingCalls,
859
+ subscriptionUnitCalls: actuals.subscriptionUnitCalls
860
+ })));
753
861
  }
754
862
  const EvalRunReportCommon = {
755
863
  version: Schema.Literal(EVAL_PROJECT_VERSION),
@@ -764,7 +872,8 @@ const EvalRunReportCommon = {
764
872
  cleanup: EvalRunCleanup,
765
873
  comparisons: Schema.Array(EvalComparisonResult),
766
874
  qualification: Schema.optionalKey(EvalRunQualification),
767
- ledger: EvalRunLedger
875
+ ledger: EvalRunLedger,
876
+ events: Schema.optionalKey(EvalNamedEventLog).pipe(Schema.withDecodingDefaultKey(Effect.succeed([])))
768
877
  };
769
878
  export const EvalRunFailureError = Schema.Struct({
770
879
  name: Schema.String,
@@ -778,8 +887,7 @@ const QualifiedEvalRunReport = Schema.Struct({
778
887
  });
779
888
  const CompletedEvalRunReport = Schema.Struct({
780
889
  ...EvalRunReportCommon,
781
- status: Schema.Literal("completed"),
782
- activation: PublishedRoutingActivation
890
+ status: Schema.Literal("completed")
783
891
  });
784
892
  const FailedEvalRunReport = Schema.Struct({
785
893
  ...EvalRunReportCommon,
@@ -14,6 +14,7 @@ const storeFailure = (operation, path, cause) => new EvalProjectStoreError({
14
14
  export const makeFileEvalProjectStore = Effect.gen(function* () {
15
15
  const fs = yield* FileSystem.FileSystem;
16
16
  const paths = yield* Path.Path;
17
+ const platform = yield* Effect.context();
17
18
  const projectPath = (root) => paths.join(paths.resolve(root), ".routekit", "evals", PROJECT_FILE);
18
19
  const loadDocument = (repositoryRoot) => Effect.gen(function* () {
19
20
  const root = yield* fs
@@ -45,7 +46,7 @@ export const makeFileEvalProjectStore = Effect.gen(function* () {
45
46
  .pipe(Effect.mapError((cause) => storeFailure("creating", directory, cause)));
46
47
  yield* writeFileAtomicEffect(target, `${JSON.stringify(state, null, 2)}\n`, {
47
48
  mode: 0o600
48
- }).pipe(Effect.mapError((cause) => storeFailure("committing", target, cause)), Effect.provideService(FileSystem.FileSystem, fs), Effect.provideService(Path.Path, paths));
49
+ }).pipe(Effect.mapError((cause) => storeFailure("committing", target, cause)), Effect.provide(platform));
49
50
  });
50
51
  return EvalProjectStore.of({
51
52
  loadDocument,
@@ -1,4 +1,5 @@
1
- import { Context, Effect, Layer, Path } from "effect";
1
+ import { CostService } from "@velum-labs/routekit-registry";
2
+ import { Context, Effect, FileSystem, Layer, Path } from "effect";
2
3
  import type { EvalProjectArtifactError, EvalSetupInspectionError } from "./errors.js";
3
4
  import { EvalDimensionContrastError, type EvalModelCatalogError, type EvalProjectStoreError, EvalProjectTransitionError } from "./errors.js";
4
5
  import { EvalRepositoryInspector } from "./inspection.js";
@@ -15,7 +16,7 @@ export type EvalProjectWorkflowShape = {
15
16
  readonly approveDimensions: (repositoryRoot: string, basisDigest: string) => Effect.Effect<EvalProjectStatus, EvalProjectWorkflowError>;
16
17
  readonly proposeEvaluations: (repositoryRoot: string, proposal: Omit<EvalEvaluationProposal, "version" | "evaluationDigest" | "basisDigest" | "candidateModels" | "candidateReasoningEfforts" | "judgeModel">) => Effect.Effect<EvalProjectStatus, EvalProjectWorkflowError>;
17
18
  readonly approveEvaluations: (repositoryRoot: string, evaluationDigest: string) => Effect.Effect<EvalProjectStatus, EvalProjectWorkflowError>;
18
- readonly createPlan: (repositoryRoot: string, scope: EvalPlanScope) => Effect.Effect<EvalExecutionPlan, EvalProjectWorkflowError>;
19
+ readonly createPlan: (repositoryRoot: string, scope: EvalPlanScope, repetitions?: number) => Effect.Effect<EvalExecutionPlan, EvalProjectWorkflowError>;
19
20
  readonly startRun: (repositoryRoot: string, planId: string) => Effect.Effect<{
20
21
  readonly plan: EvalExecutionPlan;
21
22
  readonly runId: string;
@@ -28,6 +29,6 @@ export type EvalProjectWorkflowShape = {
28
29
  declare const EvalProjectWorkflow_base: Context.ServiceClass<EvalProjectWorkflow, "@velum-labs/routekit-eval-setup/EvalProjectWorkflow", EvalProjectWorkflowShape>;
29
30
  export declare class EvalProjectWorkflow extends EvalProjectWorkflow_base {
30
31
  }
31
- export declare const makeEvalProjectWorkflow: Effect.Effect<EvalProjectWorkflowShape, never, EvalProjectArtifacts | Path.Path | EvalProjectStore | EvalRepositoryInspector | EvalModelCatalog>;
32
- export declare const EvalProjectWorkflowLive: Layer.Layer<EvalProjectWorkflow, never, EvalProjectArtifacts | Path.Path | EvalProjectStore | EvalRepositoryInspector | EvalModelCatalog>;
32
+ export declare const makeEvalProjectWorkflow: Effect.Effect<EvalProjectWorkflowShape, never, EvalProjectArtifacts | Path.Path | FileSystem.FileSystem | EvalRepositoryInspector | EvalProjectStore | EvalModelCatalog | CostService>;
33
+ export declare const EvalProjectWorkflowLive: Layer.Layer<EvalProjectWorkflow, never, EvalProjectArtifacts | Path.Path | FileSystem.FileSystem | EvalRepositoryInspector | EvalProjectStore | EvalModelCatalog | CostService>;
33
34
  export {};