@velum-labs/routekit-eval-setup 1.3.2 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/dist/adapters/authoring-responses-request.d.ts +5 -0
  2. package/dist/adapters/authoring-responses-request.js +38 -0
  3. package/dist/adapters/evaluation-evidence-freshness.d.ts +7 -0
  4. package/dist/adapters/evaluation-evidence-freshness.js +76 -0
  5. package/dist/adapters/git-task-history.d.ts +67 -0
  6. package/dist/adapters/git-task-history.js +171 -0
  7. package/dist/adapters/integrated-repository-history.d.ts +21 -0
  8. package/dist/adapters/integrated-repository-history.js +175 -0
  9. package/dist/adapters/repository-command-diagnostic.d.ts +8 -0
  10. package/dist/adapters/repository-command-diagnostic.js +46 -0
  11. package/dist/adapters/repository-command-evidence.d.ts +13 -0
  12. package/dist/adapters/repository-command-evidence.js +102 -0
  13. package/dist/adapters/repository-command-runner.d.ts +238 -0
  14. package/dist/adapters/repository-command-runner.js +1483 -0
  15. package/dist/adapters/repository-import-context.d.ts +47 -0
  16. package/dist/adapters/repository-import-context.js +469 -0
  17. package/dist/adapters/repository-node-test-reporter.d.ts +3 -0
  18. package/dist/adapters/repository-node-test-reporter.js +27 -0
  19. package/dist/adapters/repository-review-evidence.d.ts +39 -0
  20. package/dist/adapters/repository-review-evidence.js +632 -0
  21. package/dist/adapters/repository-seed-selection.d.ts +7 -0
  22. package/dist/adapters/repository-seed-selection.js +79 -0
  23. package/dist/adapters/repository-solution-edits.d.ts +49 -0
  24. package/dist/adapters/repository-solution-edits.js +136 -0
  25. package/dist/adapters/repository-vitest-phase-adapter.d.ts +8 -0
  26. package/dist/adapters/repository-vitest-phase-adapter.js +310 -0
  27. package/dist/adapters/repository-vitest-reporter.d.ts +24 -0
  28. package/dist/adapters/repository-vitest-reporter.js +314 -0
  29. package/dist/adapters/strict-authoring-schema.d.ts +5 -0
  30. package/dist/adapters/strict-authoring-schema.js +158 -0
  31. package/dist/adapters/test-discovery.d.ts +30 -0
  32. package/dist/adapters/test-discovery.js +124 -0
  33. package/dist/adapters/typescript-repository-index.d.ts +51 -0
  34. package/dist/adapters/typescript-repository-index.js +226 -0
  35. package/dist/agentic-capabilities-protocol.d.ts +1373 -0
  36. package/dist/agentic-capabilities-protocol.js +786 -0
  37. package/dist/case-checkpoint-store.d.ts +29 -0
  38. package/dist/case-checkpoint-store.js +133 -0
  39. package/dist/case-pipeline-protocol-v2.d.ts +184 -0
  40. package/dist/case-pipeline-protocol-v2.js +193 -0
  41. package/dist/case-pipeline-protocol.d.ts +2626 -0
  42. package/dist/case-pipeline-protocol.js +371 -0
  43. package/dist/effect-api.d.ts +74 -10
  44. package/dist/effect-api.js +56 -6
  45. package/dist/errors.d.ts +31 -0
  46. package/dist/errors.js +10 -0
  47. package/dist/eval-capability-execution-envelope.d.ts +64 -0
  48. package/dist/eval-capability-execution-envelope.js +98 -0
  49. package/dist/eval-capability-policy.d.ts +90 -0
  50. package/dist/eval-capability-policy.js +107 -0
  51. package/dist/eval-event-log.d.ts +140 -0
  52. package/dist/eval-event-log.js +220 -0
  53. package/dist/evaluation-authoring-policy.d.ts +18 -0
  54. package/dist/evaluation-authoring-policy.js +19 -0
  55. package/dist/evaluation-authoring-validation.d.ts +22 -0
  56. package/dist/evaluation-authoring-validation.js +72 -0
  57. package/dist/evaluation-evidence.d.ts +20 -0
  58. package/dist/evaluation-evidence.js +319 -0
  59. package/dist/evaluation-grader-calibration-protocol.d.ts +108 -0
  60. package/dist/evaluation-grader-calibration-protocol.js +80 -0
  61. package/dist/evaluation-grader-calibration.d.ts +18 -0
  62. package/dist/evaluation-grader-calibration.js +334 -0
  63. package/dist/evaluation-grading-policy.d.ts +24 -0
  64. package/dist/evaluation-grading-policy.js +54 -0
  65. package/dist/evaluation-proposal-policy.d.ts +4 -0
  66. package/dist/evaluation-proposal-policy.js +91 -0
  67. package/dist/evaluation-source-retrieval.d.ts +68 -0
  68. package/dist/evaluation-source-retrieval.js +513 -0
  69. package/dist/evaluation-structure-policy.d.ts +29 -0
  70. package/dist/evaluation-structure-policy.js +138 -0
  71. package/dist/index.d.ts +124 -17
  72. package/dist/index.js +69 -11
  73. package/dist/inspection.js +2 -3
  74. package/dist/project-artifacts.d.ts +7 -2
  75. package/dist/project-artifacts.js +49 -136
  76. package/dist/project-authoring.d.ts +66 -5
  77. package/dist/project-authoring.js +783 -109
  78. package/dist/project-contracts.d.ts +419 -84
  79. package/dist/project-contracts.js +160 -52
  80. package/dist/project-store.js +2 -1
  81. package/dist/project-workflow.d.ts +5 -4
  82. package/dist/project-workflow.js +154 -35
  83. package/dist/repository-adversary-protocol.d.ts +64 -0
  84. package/dist/repository-adversary-protocol.js +105 -0
  85. package/dist/repository-behavior-protocol.d.ts +188 -0
  86. package/dist/repository-behavior-protocol.js +202 -0
  87. package/dist/repository-benchmark-protocol.d.ts +487 -0
  88. package/dist/repository-benchmark-protocol.js +96 -0
  89. package/dist/repository-execution-protocol.d.ts +150 -0
  90. package/dist/repository-execution-protocol.js +38 -0
  91. package/dist/repository-fixture-instructions.d.ts +3 -0
  92. package/dist/repository-fixture-instructions.js +91 -0
  93. package/dist/repository-fixture-protocol.d.ts +79 -0
  94. package/dist/repository-fixture-protocol.js +79 -0
  95. package/dist/repository-foundry-plan-protocol.d.ts +118 -0
  96. package/dist/repository-foundry-plan-protocol.js +296 -0
  97. package/dist/repository-foundry-progress-protocol.d.ts +52 -0
  98. package/dist/repository-foundry-progress-protocol.js +52 -0
  99. package/dist/repository-improvement-protocol.d.ts +100 -0
  100. package/dist/repository-improvement-protocol.js +106 -0
  101. package/dist/repository-language-model-protocol.d.ts +43 -0
  102. package/dist/repository-language-model-protocol.js +146 -0
  103. package/dist/repository-oracle-coverage-protocol.d.ts +18 -0
  104. package/dist/repository-oracle-coverage-protocol.js +39 -0
  105. package/dist/repository-oracle-execution-binding.d.ts +27 -0
  106. package/dist/repository-oracle-execution-binding.js +59 -0
  107. package/dist/repository-oracle-protocol.d.ts +230 -0
  108. package/dist/repository-oracle-protocol.js +156 -0
  109. package/dist/repository-oracle-scope-policy.d.ts +22 -0
  110. package/dist/repository-oracle-scope-policy.js +92 -0
  111. package/dist/repository-quality-policy.d.ts +15 -0
  112. package/dist/repository-quality-policy.js +357 -0
  113. package/dist/repository-routing-benchmark-protocol.d.ts +176 -0
  114. package/dist/repository-routing-benchmark-protocol.js +103 -0
  115. package/dist/repository-routing-model-protocol.d.ts +36 -0
  116. package/dist/repository-routing-model-protocol.js +89 -0
  117. package/dist/repository-routing-plan-protocol.d.ts +112 -0
  118. package/dist/repository-routing-plan-protocol.js +58 -0
  119. package/dist/repository-routing-quality-policy.d.ts +9 -0
  120. package/dist/repository-routing-quality-policy.js +191 -0
  121. package/dist/repository-seed-qualification-progress-protocol.d.ts +205 -0
  122. package/dist/repository-seed-qualification-progress-protocol.js +28 -0
  123. package/dist/repository-semantic-calibration-protocol.d.ts +768 -0
  124. package/dist/repository-semantic-calibration-protocol.js +276 -0
  125. package/dist/repository-semantic-calibration.d.ts +163 -0
  126. package/dist/repository-semantic-calibration.js +581 -0
  127. package/dist/repository-specification-contract-facts-protocol.d.ts +224 -0
  128. package/dist/repository-specification-contract-facts-protocol.js +276 -0
  129. package/dist/repository-specification-critique-protocol.d.ts +189 -0
  130. package/dist/repository-specification-critique-protocol.js +103 -0
  131. package/dist/repository-task-family-protocol.d.ts +24 -0
  132. package/dist/repository-task-family-protocol.js +37 -0
  133. package/dist/repository-task-seed-protocol.d.ts +384 -0
  134. package/dist/repository-task-seed-protocol.js +236 -0
  135. package/dist/repository-trajectory-protocol.d.ts +20 -0
  136. package/dist/repository-trajectory-protocol.js +42 -0
  137. package/dist/service.js +1 -1
  138. package/dist/services/adversary/service.d.ts +64 -0
  139. package/dist/services/adversary/service.js +330 -0
  140. package/dist/services/benchmark-compiler/service.d.ts +450 -0
  141. package/dist/services/benchmark-compiler/service.js +9 -0
  142. package/dist/services/budgeted-model/service.d.ts +118 -0
  143. package/dist/services/budgeted-model/service.js +460 -0
  144. package/dist/services/case-authoring/service.d.ts +163 -0
  145. package/dist/services/case-authoring/service.js +1456 -0
  146. package/dist/services/case-finalization/service.d.ts +283 -0
  147. package/dist/services/case-finalization/service.js +370 -0
  148. package/dist/services/case-generation/service.d.ts +619 -0
  149. package/dist/services/case-generation/service.js +2628 -0
  150. package/dist/services/case-pipeline/service.d.ts +31 -0
  151. package/dist/services/case-pipeline/service.js +485 -0
  152. package/dist/services/case-pipeline-v2/service.d.ts +70 -0
  153. package/dist/services/case-pipeline-v2/service.js +477 -0
  154. package/dist/services/command-observability/service.d.ts +13 -0
  155. package/dist/services/command-observability/service.js +3 -0
  156. package/dist/services/dimension-labeling/service.d.ts +77 -0
  157. package/dist/services/dimension-labeling/service.js +188 -0
  158. package/dist/services/eval-candidate/service.d.ts +208 -0
  159. package/dist/services/eval-candidate/service.js +64 -0
  160. package/dist/services/eval-capabilities/service.d.ts +183 -0
  161. package/dist/services/eval-capabilities/service.js +1433 -0
  162. package/dist/services/eval-environment/service.d.ts +173 -0
  163. package/dist/services/eval-environment/service.js +127 -0
  164. package/dist/services/evidence-reconstruction/service.d.ts +36 -0
  165. package/dist/services/evidence-reconstruction/service.js +145 -0
  166. package/dist/services/fixture-builder/service.d.ts +62 -0
  167. package/dist/services/fixture-builder/service.js +36 -0
  168. package/dist/services/fixture-validation/service.d.ts +75 -0
  169. package/dist/services/fixture-validation/service.js +295 -0
  170. package/dist/services/foundry/service.d.ts +831 -0
  171. package/dist/services/foundry/service.js +442 -0
  172. package/dist/services/foundry-progress/service.d.ts +62 -0
  173. package/dist/services/foundry-progress/service.js +149 -0
  174. package/dist/services/foundry-v2/service.d.ts +54 -0
  175. package/dist/services/foundry-v2/service.js +28 -0
  176. package/dist/services/grounded-authoring/service.d.ts +126 -0
  177. package/dist/services/grounded-authoring/service.js +822 -0
  178. package/dist/services/historical-case/service.d.ts +722 -0
  179. package/dist/services/historical-case/service.js +177 -0
  180. package/dist/services/improvement-loop/service.d.ts +59 -0
  181. package/dist/services/improvement-loop/service.js +176 -0
  182. package/dist/services/language-model/service.d.ts +52 -0
  183. package/dist/services/language-model/service.js +194 -0
  184. package/dist/services/oracle-builder/service.d.ts +146 -0
  185. package/dist/services/oracle-builder/service.js +513 -0
  186. package/dist/services/oracle-coverage/service.d.ts +28 -0
  187. package/dist/services/oracle-coverage/service.js +50 -0
  188. package/dist/services/oracle-coverage-witness/service.d.ts +130 -0
  189. package/dist/services/oracle-coverage-witness/service.js +538 -0
  190. package/dist/services/pipeline-challenge/service.d.ts +551 -0
  191. package/dist/services/pipeline-challenge/service.js +427 -0
  192. package/dist/services/pipeline-controls/service.d.ts +130 -0
  193. package/dist/services/pipeline-controls/service.js +483 -0
  194. package/dist/services/pipeline-oracle/service.d.ts +8 -0
  195. package/dist/services/pipeline-oracle/service.js +256 -0
  196. package/dist/services/pipeline-seed/service.d.ts +298 -0
  197. package/dist/services/pipeline-seed/service.js +428 -0
  198. package/dist/services/pipeline-spec/service.d.ts +103 -0
  199. package/dist/services/pipeline-spec/service.js +619 -0
  200. package/dist/services/pipeline-tournament/service.d.ts +258 -0
  201. package/dist/services/pipeline-tournament/service.js +476 -0
  202. package/dist/services/quality-gate/service.d.ts +233 -0
  203. package/dist/services/quality-gate/service.js +136 -0
  204. package/dist/services/repository-bundle/service.d.ts +33 -0
  205. package/dist/services/repository-bundle/service.js +114 -0
  206. package/dist/services/repository-model/service.d.ts +105 -0
  207. package/dist/services/repository-model/service.js +250 -0
  208. package/dist/services/repository-public-artifact/service.d.ts +133 -0
  209. package/dist/services/repository-public-artifact/service.js +330 -0
  210. package/dist/services/routing-benchmark/service.d.ts +362 -0
  211. package/dist/services/routing-benchmark/service.js +96 -0
  212. package/dist/services/specification-critic/service.d.ts +92 -0
  213. package/dist/services/specification-critic/service.js +172 -0
  214. package/dist/services/task-family/service.d.ts +40 -0
  215. package/dist/services/task-family/service.js +55 -0
  216. package/dist/services/task-seed/service.d.ts +906 -0
  217. package/dist/services/task-seed/service.js +1406 -0
  218. package/dist/services/task-specification/service.d.ts +27 -0
  219. package/dist/services/task-specification/service.js +40 -0
  220. package/dist/services/trajectory-policy/service.d.ts +110 -0
  221. package/dist/services/trajectory-policy/service.js +216 -0
  222. package/dist/test/agentic-capabilities-protocol.test.d.ts +1 -0
  223. package/dist/test/agentic-capabilities-protocol.test.js +570 -0
  224. package/dist/test/agentic-capabilities.test.d.ts +1 -0
  225. package/dist/test/agentic-capabilities.test.js +1461 -0
  226. package/dist/test/agentic-environment.test.d.ts +1 -0
  227. package/dist/test/agentic-environment.test.js +213 -0
  228. package/dist/test/case-pipeline-foundation.test.d.ts +1 -0
  229. package/dist/test/case-pipeline-foundation.test.js +535 -0
  230. package/dist/test/case-pipeline-protocol-v2.test.d.ts +1 -0
  231. package/dist/test/case-pipeline-protocol-v2.test.js +124 -0
  232. package/dist/test/case-pipeline-v2.test.d.ts +1 -0
  233. package/dist/test/case-pipeline-v2.test.js +286 -0
  234. package/dist/test/case-pipeline.test.d.ts +1 -0
  235. package/dist/test/case-pipeline.test.js +851 -0
  236. package/dist/test/eval-capability-policy.test.d.ts +1 -0
  237. package/dist/test/eval-capability-policy.test.js +50 -0
  238. package/dist/test/eval-event-log.test.d.ts +1 -0
  239. package/dist/test/eval-event-log.test.js +125 -0
  240. package/dist/test/evaluation-evidence-freshness.test.d.ts +1 -0
  241. package/dist/test/evaluation-evidence-freshness.test.js +44 -0
  242. package/dist/test/evaluation-evidence.test.d.ts +1 -0
  243. package/dist/test/evaluation-evidence.test.js +230 -0
  244. package/dist/test/evaluation-grader-calibration.test.d.ts +1 -0
  245. package/dist/test/evaluation-grader-calibration.test.js +373 -0
  246. package/dist/test/evaluation-proposal-digest.test.d.ts +1 -0
  247. package/dist/test/evaluation-proposal-digest.test.js +187 -0
  248. package/dist/test/evaluation-source-retrieval.test.d.ts +1 -0
  249. package/dist/test/evaluation-source-retrieval.test.js +237 -0
  250. package/dist/test/evaluation-structure-policy.test.d.ts +1 -0
  251. package/dist/test/evaluation-structure-policy.test.js +196 -0
  252. package/dist/test/fixtures/repository-resource-panel.d.ts +39 -0
  253. package/dist/test/fixtures/repository-resource-panel.js +111 -0
  254. package/dist/test/fixtures/vitest-boundary-panel.d.ts +84 -0
  255. package/dist/test/fixtures/vitest-boundary-panel.js +120 -0
  256. package/dist/test/fixtures/vitest-phase-panel.d.ts +135 -0
  257. package/dist/test/fixtures/vitest-phase-panel.js +213 -0
  258. package/dist/test/fixtures/vitest-reporter-results.d.ts +76 -0
  259. package/dist/test/fixtures/vitest-reporter-results.js +94 -0
  260. package/dist/test/grounded-authoring.test.d.ts +1 -0
  261. package/dist/test/grounded-authoring.test.js +565 -0
  262. package/dist/test/integrated-repository-history.test.d.ts +1 -0
  263. package/dist/test/integrated-repository-history.test.js +227 -0
  264. package/dist/test/project-authoring.test.js +593 -43
  265. package/dist/test/project-workflow.test.js +419 -40
  266. package/dist/test/repository-authoring-artifacts.test.d.ts +1 -0
  267. package/dist/test/repository-authoring-artifacts.test.js +185 -0
  268. package/dist/test/repository-bundle.test.d.ts +1 -0
  269. package/dist/test/repository-bundle.test.js +52 -0
  270. package/dist/test/repository-case-generation.test.d.ts +1 -0
  271. package/dist/test/repository-case-generation.test.js +3465 -0
  272. package/dist/test/repository-command-diagnostic.test.d.ts +1 -0
  273. package/dist/test/repository-command-diagnostic.test.js +55 -0
  274. package/dist/test/repository-command-signals.test.d.ts +1 -0
  275. package/dist/test/repository-command-signals.test.js +124 -0
  276. package/dist/test/repository-fixture-scope-coverage.test.d.ts +1 -0
  277. package/dist/test/repository-fixture-scope-coverage.test.js +127 -0
  278. package/dist/test/repository-fixture-validation.test.d.ts +1 -0
  279. package/dist/test/repository-fixture-validation.test.js +362 -0
  280. package/dist/test/repository-foundry-progress.test.d.ts +1 -0
  281. package/dist/test/repository-foundry-progress.test.js +110 -0
  282. package/dist/test/repository-foundry-quality.test.d.ts +1 -0
  283. package/dist/test/repository-foundry-quality.test.js +1138 -0
  284. package/dist/test/repository-import-context.test.d.ts +1 -0
  285. package/dist/test/repository-import-context.test.js +354 -0
  286. package/dist/test/repository-model-authoring.test.d.ts +1 -0
  287. package/dist/test/repository-model-authoring.test.js +544 -0
  288. package/dist/test/repository-model.test.d.ts +1 -0
  289. package/dist/test/repository-model.test.js +2195 -0
  290. package/dist/test/repository-node-test-reporter.test.d.ts +1 -0
  291. package/dist/test/repository-node-test-reporter.test.js +104 -0
  292. package/dist/test/repository-oracle-concurrency.test.d.ts +1 -0
  293. package/dist/test/repository-oracle-concurrency.test.js +542 -0
  294. package/dist/test/repository-oracle-coverage-witness.test.d.ts +1 -0
  295. package/dist/test/repository-oracle-coverage-witness.test.js +511 -0
  296. package/dist/test/repository-oracle-coverage.test.d.ts +1 -0
  297. package/dist/test/repository-oracle-coverage.test.js +168 -0
  298. package/dist/test/repository-oracle-evidence.test.d.ts +1 -0
  299. package/dist/test/repository-oracle-evidence.test.js +185 -0
  300. package/dist/test/repository-oracle-plan.test.d.ts +1 -0
  301. package/dist/test/repository-oracle-plan.test.js +176 -0
  302. package/dist/test/repository-overlay-isolation.test.d.ts +1 -0
  303. package/dist/test/repository-overlay-isolation.test.js +85 -0
  304. package/dist/test/repository-preparation-cache.test.d.ts +1 -0
  305. package/dist/test/repository-preparation-cache.test.js +414 -0
  306. package/dist/test/repository-public-artifact.test.d.ts +1 -0
  307. package/dist/test/repository-public-artifact.test.js +273 -0
  308. package/dist/test/repository-qualification-diagnostics.test.d.ts +1 -0
  309. package/dist/test/repository-qualification-diagnostics.test.js +524 -0
  310. package/dist/test/repository-reference-authoring.test.d.ts +1 -0
  311. package/dist/test/repository-reference-authoring.test.js +1633 -0
  312. package/dist/test/repository-review-evidence-v2.test.d.ts +1 -0
  313. package/dist/test/repository-review-evidence-v2.test.js +183 -0
  314. package/dist/test/repository-review-evidence.test.d.ts +1 -0
  315. package/dist/test/repository-review-evidence.test.js +124 -0
  316. package/dist/test/repository-seed-exclusions.test.d.ts +1 -0
  317. package/dist/test/repository-seed-exclusions.test.js +96 -0
  318. package/dist/test/repository-seed-selection.test.d.ts +1 -0
  319. package/dist/test/repository-seed-selection.test.js +504 -0
  320. package/dist/test/repository-semantic-calibration.test.d.ts +1 -0
  321. package/dist/test/repository-semantic-calibration.test.js +688 -0
  322. package/dist/test/repository-solution-edits.test.d.ts +1 -0
  323. package/dist/test/repository-solution-edits.test.js +377 -0
  324. package/dist/test/repository-specification-budget.test.d.ts +1 -0
  325. package/dist/test/repository-specification-budget.test.js +171 -0
  326. package/dist/test/repository-specification-contract-checkpoint.test.d.ts +1 -0
  327. package/dist/test/repository-specification-contract-checkpoint.test.js +228 -0
  328. package/dist/test/repository-specification-contract-facts.test.d.ts +1 -0
  329. package/dist/test/repository-specification-contract-facts.test.js +177 -0
  330. package/dist/test/repository-trajectory-authoring.test.d.ts +1 -0
  331. package/dist/test/repository-trajectory-authoring.test.js +176 -0
  332. package/dist/test/repository-valid-control-plan.test.d.ts +1 -0
  333. package/dist/test/repository-valid-control-plan.test.js +45 -0
  334. package/dist/test/repository-vitest-phase.test.d.ts +1 -0
  335. package/dist/test/repository-vitest-phase.test.js +848 -0
  336. package/dist/test/repository-vitest-reporter.test.d.ts +1 -0
  337. package/dist/test/repository-vitest-reporter.test.js +158 -0
  338. package/dist/test/repository-workspace-build.test.d.ts +1 -0
  339. package/dist/test/repository-workspace-build.test.js +160 -0
  340. package/dist/test/strict-authoring-schema.test.d.ts +1 -0
  341. package/dist/test/strict-authoring-schema.test.js +169 -0
  342. package/package.json +48 -6
@@ -0,0 +1,176 @@
1
+ import { Schema } from "effect";
2
+ export declare const RepositoryDimensionLabelReviewV1: Schema.Struct<{
3
+ readonly reviewerId: Schema.String;
4
+ readonly model: Schema.String;
5
+ readonly callId: Schema.optionalKey<Schema.String>;
6
+ readonly outcome: Schema.Literals<readonly ["approve", "reject"]>;
7
+ readonly primaryDimensionId: Schema.String;
8
+ readonly detail: Schema.String;
9
+ readonly evidenceIds: Schema.$Array<Schema.String>;
10
+ readonly independentLabel: Schema.Struct<{
11
+ readonly caseId: Schema.String;
12
+ readonly basisDigest: Schema.String;
13
+ readonly scores: Schema.$Array<Schema.Struct<{
14
+ readonly dimensionId: Schema.String;
15
+ readonly score: Schema.Finite;
16
+ }>>;
17
+ readonly unknownProbability: Schema.Finite;
18
+ }>;
19
+ }>;
20
+ export type RepositoryDimensionLabelReviewV1 = typeof RepositoryDimensionLabelReviewV1.Type;
21
+ export declare const RepositoryReviewedDimensionLabelV1: Schema.Struct<{
22
+ readonly version: Schema.Literal<1>;
23
+ readonly caseId: Schema.String;
24
+ readonly basisDigest: Schema.String;
25
+ readonly authorModel: Schema.String;
26
+ readonly authorCallId: Schema.optionalKey<Schema.String>;
27
+ readonly authorDetail: Schema.String;
28
+ readonly authorEvidenceIds: Schema.$Array<Schema.String>;
29
+ readonly label: Schema.Struct<{
30
+ readonly caseId: Schema.String;
31
+ readonly basisDigest: Schema.String;
32
+ readonly scores: Schema.$Array<Schema.Struct<{
33
+ readonly dimensionId: Schema.String;
34
+ readonly score: Schema.Finite;
35
+ }>>;
36
+ readonly unknownProbability: Schema.Finite;
37
+ }>;
38
+ readonly reviews: Schema.$Array<Schema.Struct<{
39
+ readonly reviewerId: Schema.String;
40
+ readonly model: Schema.String;
41
+ readonly callId: Schema.optionalKey<Schema.String>;
42
+ readonly outcome: Schema.Literals<readonly ["approve", "reject"]>;
43
+ readonly primaryDimensionId: Schema.String;
44
+ readonly detail: Schema.String;
45
+ readonly evidenceIds: Schema.$Array<Schema.String>;
46
+ readonly independentLabel: Schema.Struct<{
47
+ readonly caseId: Schema.String;
48
+ readonly basisDigest: Schema.String;
49
+ readonly scores: Schema.$Array<Schema.Struct<{
50
+ readonly dimensionId: Schema.String;
51
+ readonly score: Schema.Finite;
52
+ }>>;
53
+ readonly unknownProbability: Schema.Finite;
54
+ }>;
55
+ }>>;
56
+ }>;
57
+ export type RepositoryReviewedDimensionLabelV1 = typeof RepositoryReviewedDimensionLabelV1.Type;
58
+ export declare const RepositoryRoutingEligibilityPolicyV1: Schema.Struct<{
59
+ readonly activeDimensionThreshold: Schema.Finite;
60
+ readonly maximumUnknownProbability: Schema.Finite;
61
+ readonly minimumDominanceMargin: Schema.Finite;
62
+ readonly minimumCasesPerDimension: Schema.Finite;
63
+ }>;
64
+ export type RepositoryRoutingEligibilityPolicyV1 = typeof RepositoryRoutingEligibilityPolicyV1.Type;
65
+ export declare const RepositoryRoutingCaseAssignmentV1: Schema.Struct<{
66
+ readonly caseId: Schema.String;
67
+ readonly basisDigest: Schema.String;
68
+ readonly labelDigest: Schema.String;
69
+ readonly primaryDimensionId: Schema.optionalKey<Schema.String>;
70
+ readonly primaryScore: Schema.Finite;
71
+ readonly secondaryScore: Schema.Finite;
72
+ readonly unknownProbability: Schema.Finite;
73
+ readonly eligible: Schema.Boolean;
74
+ readonly rejectionReasons: Schema.$Array<Schema.String>;
75
+ }>;
76
+ export type RepositoryRoutingCaseAssignmentV1 = typeof RepositoryRoutingCaseAssignmentV1.Type;
77
+ export declare const RepositoryRoutingDimensionSliceV1: Schema.Struct<{
78
+ readonly dimensionId: Schema.String;
79
+ readonly caseIds: Schema.$Array<Schema.String>;
80
+ readonly minimumRequired: Schema.Finite;
81
+ readonly routingReady: Schema.Boolean;
82
+ }>;
83
+ export type RepositoryRoutingDimensionSliceV1 = typeof RepositoryRoutingDimensionSliceV1.Type;
84
+ export declare const RepositoryRoutingBenchmarkV1: Schema.Struct<{
85
+ readonly version: Schema.Literal<1>;
86
+ readonly basis: Schema.Struct<{
87
+ readonly version: Schema.Literal<3>;
88
+ readonly basisId: Schema.String;
89
+ readonly basisDigest: Schema.String;
90
+ readonly repositoryDigest: Schema.String;
91
+ readonly facetSnapshot: Schema.Struct<{
92
+ readonly repositoryId: Schema.String;
93
+ readonly repositoryDigest: Schema.String;
94
+ readonly name: Schema.String;
95
+ readonly purpose: Schema.String;
96
+ readonly languages: Schema.$Array<Schema.String>;
97
+ readonly frameworks: Schema.$Array<Schema.String>;
98
+ readonly components: Schema.$Array<Schema.Struct<{
99
+ readonly id: Schema.String;
100
+ readonly name: Schema.String;
101
+ readonly purpose: Schema.String;
102
+ readonly paths: Schema.$Array<Schema.String>;
103
+ }>>;
104
+ }>;
105
+ readonly dimensions: Schema.$Array<Schema.Struct<{
106
+ readonly id: Schema.String;
107
+ readonly name: Schema.String;
108
+ readonly description: Schema.String;
109
+ readonly inclusions: Schema.$Array<Schema.String>;
110
+ readonly exclusions: Schema.$Array<Schema.String>;
111
+ readonly confusableDimensionIds: Schema.$Array<Schema.String>;
112
+ readonly boundaryRules: Schema.$Array<Schema.String>;
113
+ readonly repositoryFacets: Schema.Struct<{
114
+ readonly componentIds: Schema.$Array<Schema.String>;
115
+ readonly pathAnchors: Schema.$Array<Schema.String>;
116
+ readonly symbolAnchors: Schema.$Array<Schema.String>;
117
+ }>;
118
+ readonly positiveExamples: Schema.$Array<Schema.String>;
119
+ readonly negativeExamples: Schema.$Array<Schema.String>;
120
+ readonly codeSummaries: Schema.$Array<Schema.String>;
121
+ readonly representativeSnippets: Schema.$Array<Schema.String>;
122
+ }>>;
123
+ readonly provenance: Schema.Struct<{
124
+ readonly generatorVersion: Schema.String;
125
+ readonly recipeId: Schema.String;
126
+ readonly authorModel: Schema.optionalKey<Schema.String>;
127
+ readonly sourceDigests: Schema.$Array<Schema.String>;
128
+ readonly constructionTaskDigest: Schema.optionalKey<Schema.String>;
129
+ readonly origin: Schema.optionalKey<Schema.Struct<{
130
+ readonly kind: Schema.Literals<readonly ["generated", "incumbent-enriched", "repair"]>;
131
+ readonly sourceBasisId: Schema.optionalKey<Schema.String>;
132
+ readonly sourceBasisVersion: Schema.optionalKey<Schema.Finite>;
133
+ }>>;
134
+ }>;
135
+ readonly validation: Schema.optionalKey<Schema.Struct<{
136
+ readonly validationDatasetDigest: Schema.String;
137
+ readonly caseCount: Schema.Finite;
138
+ readonly activeMae: Schema.Finite;
139
+ readonly activeF1: Schema.Finite;
140
+ readonly topDimensionAgreement: Schema.Finite;
141
+ readonly unknownMae: Schema.Finite;
142
+ readonly referenceUnknownRate: Schema.Finite;
143
+ readonly selectionScore: Schema.Finite;
144
+ }>>;
145
+ }>;
146
+ readonly policy: Schema.Struct<{
147
+ readonly activeDimensionThreshold: Schema.Finite;
148
+ readonly maximumUnknownProbability: Schema.Finite;
149
+ readonly minimumDominanceMargin: Schema.Finite;
150
+ readonly minimumCasesPerDimension: Schema.Finite;
151
+ }>;
152
+ readonly assignments: Schema.$Array<Schema.Struct<{
153
+ readonly caseId: Schema.String;
154
+ readonly basisDigest: Schema.String;
155
+ readonly labelDigest: Schema.String;
156
+ readonly primaryDimensionId: Schema.optionalKey<Schema.String>;
157
+ readonly primaryScore: Schema.Finite;
158
+ readonly secondaryScore: Schema.Finite;
159
+ readonly unknownProbability: Schema.Finite;
160
+ readonly eligible: Schema.Boolean;
161
+ readonly rejectionReasons: Schema.$Array<Schema.String>;
162
+ }>>;
163
+ readonly dimensions: Schema.$Array<Schema.Struct<{
164
+ readonly dimensionId: Schema.String;
165
+ readonly caseIds: Schema.$Array<Schema.String>;
166
+ readonly minimumRequired: Schema.Finite;
167
+ readonly routingReady: Schema.Boolean;
168
+ }>>;
169
+ readonly eligibleCaseIds: Schema.$Array<Schema.String>;
170
+ readonly libraryOnlyCaseIds: Schema.$Array<Schema.String>;
171
+ readonly routingReady: Schema.Boolean;
172
+ readonly coverageGaps: Schema.$Array<Schema.String>;
173
+ }>;
174
+ export type RepositoryRoutingBenchmarkV1 = typeof RepositoryRoutingBenchmarkV1.Type;
175
+ export declare function assertRepositoryReviewedDimensionLabelV1(value: unknown): asserts value is RepositoryReviewedDimensionLabelV1;
176
+ export declare function assertRepositoryRoutingEligibilityPolicyV1(value: unknown): asserts value is RepositoryRoutingEligibilityPolicyV1;
@@ -0,0 +1,103 @@
1
+ import { DimensionScoreLabelV3, RoutingBasisV3 } from "@velum-labs/routekit-eval-contracts";
2
+ import { Schema } from "effect";
3
+ export const RepositoryDimensionLabelReviewV1 = Schema.Struct({
4
+ reviewerId: Schema.String,
5
+ model: Schema.String,
6
+ callId: Schema.optionalKey(Schema.String),
7
+ outcome: Schema.Literals(["approve", "reject"]),
8
+ primaryDimensionId: Schema.String,
9
+ detail: Schema.String,
10
+ evidenceIds: Schema.Array(Schema.String),
11
+ independentLabel: DimensionScoreLabelV3
12
+ });
13
+ export const RepositoryReviewedDimensionLabelV1 = Schema.Struct({
14
+ version: Schema.Literal(1),
15
+ caseId: Schema.String,
16
+ basisDigest: Schema.String,
17
+ authorModel: Schema.String,
18
+ authorCallId: Schema.optionalKey(Schema.String),
19
+ authorDetail: Schema.String,
20
+ authorEvidenceIds: Schema.Array(Schema.String),
21
+ label: DimensionScoreLabelV3,
22
+ reviews: Schema.Array(RepositoryDimensionLabelReviewV1)
23
+ });
24
+ export const RepositoryRoutingEligibilityPolicyV1 = Schema.Struct({
25
+ activeDimensionThreshold: Schema.Finite,
26
+ maximumUnknownProbability: Schema.Finite,
27
+ minimumDominanceMargin: Schema.Finite,
28
+ minimumCasesPerDimension: Schema.Finite
29
+ });
30
+ export const RepositoryRoutingCaseAssignmentV1 = Schema.Struct({
31
+ caseId: Schema.String,
32
+ basisDigest: Schema.String,
33
+ labelDigest: Schema.String,
34
+ primaryDimensionId: Schema.optionalKey(Schema.String),
35
+ primaryScore: Schema.Finite,
36
+ secondaryScore: Schema.Finite,
37
+ unknownProbability: Schema.Finite,
38
+ eligible: Schema.Boolean,
39
+ rejectionReasons: Schema.Array(Schema.String)
40
+ });
41
+ export const RepositoryRoutingDimensionSliceV1 = Schema.Struct({
42
+ dimensionId: Schema.String,
43
+ caseIds: Schema.Array(Schema.String),
44
+ minimumRequired: Schema.Finite,
45
+ routingReady: Schema.Boolean
46
+ });
47
+ export const RepositoryRoutingBenchmarkV1 = Schema.Struct({
48
+ version: Schema.Literal(1),
49
+ basis: RoutingBasisV3,
50
+ policy: RepositoryRoutingEligibilityPolicyV1,
51
+ assignments: Schema.Array(RepositoryRoutingCaseAssignmentV1),
52
+ dimensions: Schema.Array(RepositoryRoutingDimensionSliceV1),
53
+ eligibleCaseIds: Schema.Array(Schema.String),
54
+ libraryOnlyCaseIds: Schema.Array(Schema.String),
55
+ routingReady: Schema.Boolean,
56
+ coverageGaps: Schema.Array(Schema.String)
57
+ });
58
+ const GPT_56_SOL = /^[a-z0-9][a-z0-9._-]*\/gpt-5\.6-sol$/u;
59
+ const GPT_56_TERRA = /^[a-z0-9][a-z0-9._-]*\/gpt-5\.6-terra$/u;
60
+ const GPT_56_LUNA = /^[a-z0-9][a-z0-9._-]*\/gpt-5\.6-luna$/u;
61
+ export function assertRepositoryReviewedDimensionLabelV1(value) {
62
+ const reviewed = Schema.decodeUnknownSync(RepositoryReviewedDimensionLabelV1)(value);
63
+ const reviewerIds = new Set(reviewed.reviews.map((review) => review.reviewerId));
64
+ const reviewerModels = new Set(reviewed.reviews.map((review) => review.model));
65
+ const hasTerra = reviewed.reviews.some((review) => GPT_56_TERRA.test(review.model));
66
+ const hasLuna = reviewed.reviews.some((review) => GPT_56_LUNA.test(review.model));
67
+ if (reviewed.caseId.trim().length === 0 ||
68
+ reviewed.basisDigest.trim().length === 0 ||
69
+ reviewed.label.caseId !== reviewed.caseId ||
70
+ reviewed.label.basisDigest !== reviewed.basisDigest ||
71
+ !GPT_56_SOL.test(reviewed.authorModel) ||
72
+ reviewed.authorDetail.trim().length === 0 ||
73
+ reviewed.authorEvidenceIds.length === 0 ||
74
+ reviewed.authorEvidenceIds.some((evidenceId) => evidenceId.trim().length === 0) ||
75
+ reviewed.reviews.length !== 2 ||
76
+ reviewerIds.size !== 2 ||
77
+ reviewerModels.size !== 2 ||
78
+ !hasTerra ||
79
+ !hasLuna ||
80
+ reviewed.reviews.some((review) => review.reviewerId.trim().length === 0 ||
81
+ review.primaryDimensionId.trim().length === 0 ||
82
+ review.detail.trim().length === 0 ||
83
+ review.evidenceIds.length === 0 ||
84
+ review.evidenceIds.some((evidenceId) => evidenceId.trim().length === 0) ||
85
+ review.independentLabel.caseId !== reviewed.caseId ||
86
+ review.independentLabel.basisDigest !== reviewed.basisDigest ||
87
+ [...review.independentLabel.scores].sort((left, right) => right.score - left.score || left.dimensionId.localeCompare(right.dimensionId))[0]?.dimensionId !== review.primaryDimensionId)) {
88
+ throw new Error("repository dimension labels require one GPT-5.6 Sol author and distinct Terra/Luna evidence-linked reviews");
89
+ }
90
+ }
91
+ export function assertRepositoryRoutingEligibilityPolicyV1(value) {
92
+ const policy = Schema.decodeUnknownSync(RepositoryRoutingEligibilityPolicyV1)(value);
93
+ const unitValues = [
94
+ policy.activeDimensionThreshold,
95
+ policy.maximumUnknownProbability,
96
+ policy.minimumDominanceMargin
97
+ ];
98
+ if (unitValues.some((entry) => entry < 0 || entry > 1) ||
99
+ !Number.isSafeInteger(policy.minimumCasesPerDimension) ||
100
+ policy.minimumCasesPerDimension < 1) {
101
+ throw new Error("repository routing eligibility policy requires unit-interval thresholds and a positive case minimum");
102
+ }
103
+ }
@@ -0,0 +1,36 @@
1
+ import { Schema } from "effect";
2
+ import { RepositoryFoundryReasoningEffortV1 } from "./repository-language-model-protocol.js";
3
+ export declare const REPOSITORY_ROUTING_MODEL_ROLES: readonly ["dimension-labeler", "dimension-critic-terra", "dimension-critic-luna"];
4
+ export declare const RepositoryRoutingModelRoleV1: Schema.Literals<readonly ["dimension-labeler", "dimension-critic-terra", "dimension-critic-luna"]>;
5
+ export type RepositoryRoutingModelRoleV1 = typeof RepositoryRoutingModelRoleV1.Type;
6
+ export declare const RepositoryRoutingModelAssignmentV1: Schema.Struct<{
7
+ readonly role: Schema.Literals<readonly ["dimension-labeler", "dimension-critic-terra", "dimension-critic-luna"]>;
8
+ readonly model: Schema.String;
9
+ readonly reasoningEffort: Schema.Literals<readonly ["low", "medium", "high", "xhigh", "max", "ultra"]>;
10
+ }>;
11
+ export type RepositoryRoutingModelAssignmentV1 = typeof RepositoryRoutingModelAssignmentV1.Type;
12
+ export declare const RepositoryRoutingModelPlanV1: Schema.Struct<{
13
+ readonly version: Schema.Literal<1>;
14
+ readonly assignments: Schema.$Array<Schema.Struct<{
15
+ readonly role: Schema.Literals<readonly ["dimension-labeler", "dimension-critic-terra", "dimension-critic-luna"]>;
16
+ readonly model: Schema.String;
17
+ readonly reasoningEffort: Schema.Literals<readonly ["low", "medium", "high", "xhigh", "max", "ultra"]>;
18
+ }>>;
19
+ }>;
20
+ export type RepositoryRoutingModelPlanV1 = typeof RepositoryRoutingModelPlanV1.Type;
21
+ export declare const RepositoryRoutingModelCallV1: Schema.Struct<{
22
+ readonly operationId: Schema.String;
23
+ readonly role: Schema.Literals<readonly ["dimension-labeler", "dimension-critic-terra", "dimension-critic-luna"]>;
24
+ readonly model: Schema.String;
25
+ readonly reasoningEffort: Schema.Literals<readonly ["low", "medium", "high", "xhigh", "max", "ultra"]>;
26
+ readonly callId: Schema.optionalKey<Schema.String>;
27
+ }>;
28
+ export type RepositoryRoutingModelCallV1 = typeof RepositoryRoutingModelCallV1.Type;
29
+ export declare function assertRepositoryRoutingModelPlanV1(value: unknown): asserts value is RepositoryRoutingModelPlanV1;
30
+ export declare function repositoryRoutingModelAssignmentV1(plan: RepositoryRoutingModelPlanV1, role: RepositoryRoutingModelRoleV1): RepositoryRoutingModelAssignmentV1;
31
+ export declare function gpt56RepositoryRoutingModelPlanV1(input: {
32
+ readonly solModel: string;
33
+ readonly terraModel: string;
34
+ readonly lunaModel: string;
35
+ readonly reasoningEffort?: RepositoryFoundryReasoningEffortV1;
36
+ }): RepositoryRoutingModelPlanV1;
@@ -0,0 +1,89 @@
1
+ import { Schema } from "effect";
2
+ import { RepositoryFoundryReasoningEffortV1 } from "./repository-language-model-protocol.js";
3
+ export const REPOSITORY_ROUTING_MODEL_ROLES = [
4
+ "dimension-labeler",
5
+ "dimension-critic-terra",
6
+ "dimension-critic-luna"
7
+ ];
8
+ export const RepositoryRoutingModelRoleV1 = Schema.Literals(REPOSITORY_ROUTING_MODEL_ROLES);
9
+ export const RepositoryRoutingModelAssignmentV1 = Schema.Struct({
10
+ role: RepositoryRoutingModelRoleV1,
11
+ model: Schema.String,
12
+ reasoningEffort: RepositoryFoundryReasoningEffortV1
13
+ });
14
+ export const RepositoryRoutingModelPlanV1 = Schema.Struct({
15
+ version: Schema.Literal(1),
16
+ assignments: Schema.Array(RepositoryRoutingModelAssignmentV1)
17
+ });
18
+ export const RepositoryRoutingModelCallV1 = Schema.Struct({
19
+ operationId: Schema.String,
20
+ role: RepositoryRoutingModelRoleV1,
21
+ model: Schema.String,
22
+ reasoningEffort: RepositoryFoundryReasoningEffortV1,
23
+ callId: Schema.optionalKey(Schema.String)
24
+ });
25
+ const GPT_56_SOL = /^[a-z0-9][a-z0-9._-]*\/gpt-5\.6-sol$/u;
26
+ const GPT_56_TERRA = /^[a-z0-9][a-z0-9._-]*\/gpt-5\.6-terra$/u;
27
+ const GPT_56_LUNA = /^[a-z0-9][a-z0-9._-]*\/gpt-5\.6-luna$/u;
28
+ const requiredModelFor = (role) => {
29
+ switch (role) {
30
+ case "dimension-labeler":
31
+ return GPT_56_SOL;
32
+ case "dimension-critic-terra":
33
+ return GPT_56_TERRA;
34
+ case "dimension-critic-luna":
35
+ return GPT_56_LUNA;
36
+ }
37
+ };
38
+ export function assertRepositoryRoutingModelPlanV1(value) {
39
+ const plan = Schema.decodeUnknownSync(RepositoryRoutingModelPlanV1)(value);
40
+ const byRole = new Map(plan.assignments.map((assignment) => [assignment.role, assignment]));
41
+ if (plan.assignments.length !== REPOSITORY_ROUTING_MODEL_ROLES.length ||
42
+ byRole.size !== plan.assignments.length ||
43
+ REPOSITORY_ROUTING_MODEL_ROLES.some((role) => !byRole.has(role))) {
44
+ throw new Error("repository routing model plan requires exactly one Sol labeler and distinct Terra/Luna critics");
45
+ }
46
+ for (const assignment of plan.assignments) {
47
+ if (!requiredModelFor(assignment.role).test(assignment.model)) {
48
+ throw new Error(`repository routing role ${assignment.role} requires its designated GPT-5.6 family model`);
49
+ }
50
+ if (assignment.reasoningEffort === "low" ||
51
+ assignment.reasoningEffort === "medium" ||
52
+ assignment.reasoningEffort === "ultra") {
53
+ throw new Error(`repository routing role ${assignment.role} requires high, xhigh, or max reasoning supported by all three GPT-5.6 models`);
54
+ }
55
+ }
56
+ }
57
+ export function repositoryRoutingModelAssignmentV1(plan, role) {
58
+ assertRepositoryRoutingModelPlanV1(plan);
59
+ const assignment = plan.assignments.find((candidate) => candidate.role === role);
60
+ if (assignment === undefined) {
61
+ throw new Error(`repository routing model role is unassigned: ${role}`);
62
+ }
63
+ return assignment;
64
+ }
65
+ export function gpt56RepositoryRoutingModelPlanV1(input) {
66
+ const reasoningEffort = input.reasoningEffort ?? "high";
67
+ const plan = {
68
+ version: 1,
69
+ assignments: [
70
+ {
71
+ role: "dimension-labeler",
72
+ model: input.solModel,
73
+ reasoningEffort
74
+ },
75
+ {
76
+ role: "dimension-critic-terra",
77
+ model: input.terraModel,
78
+ reasoningEffort
79
+ },
80
+ {
81
+ role: "dimension-critic-luna",
82
+ model: input.lunaModel,
83
+ reasoningEffort
84
+ }
85
+ ]
86
+ };
87
+ assertRepositoryRoutingModelPlanV1(plan);
88
+ return plan;
89
+ }
@@ -0,0 +1,112 @@
1
+ import { Schema } from "effect";
2
+ export declare const REPOSITORY_ROUTING_LABEL_SEMANTIC_CALLS = 3;
3
+ export declare const REPOSITORY_ROUTING_LABEL_TRANSIENT_RETRIES = 3;
4
+ export declare const REPOSITORY_ROUTING_LABEL_INPUT_CEILING = 512000;
5
+ export declare const REPOSITORY_ROUTING_LABEL_OUTPUT_CEILING = 16384;
6
+ export declare const REPOSITORY_ROUTING_LABEL_WALL_TIME_MS: number;
7
+ export declare const RepositoryRoutingLabelingBudgetV1: Schema.Struct<{
8
+ readonly semanticModelCalls: Schema.Finite;
9
+ readonly plannedModelCalls: Schema.Finite;
10
+ readonly maximumTransientRetries: Schema.Finite;
11
+ readonly requiredTotalInputTokens: Schema.Finite;
12
+ readonly requiredTotalOutputTokens: Schema.Finite;
13
+ readonly perCallOutputTokens: Schema.Finite;
14
+ readonly wallTimeMs: Schema.Finite;
15
+ }>;
16
+ export type RepositoryRoutingLabelingBudgetV1 = typeof RepositoryRoutingLabelingBudgetV1.Type;
17
+ export declare const RepositoryRoutingLabelingPlanV1: Schema.Struct<{
18
+ readonly version: Schema.Literal<1>;
19
+ readonly planDigest: Schema.String;
20
+ readonly foundryPlanDigest: Schema.String;
21
+ readonly caseId: Schema.String;
22
+ readonly behavioralFingerprint: Schema.String;
23
+ readonly basis: Schema.Struct<{
24
+ readonly version: Schema.Literal<3>;
25
+ readonly basisId: Schema.String;
26
+ readonly basisDigest: Schema.String;
27
+ readonly repositoryDigest: Schema.String;
28
+ readonly facetSnapshot: Schema.Struct<{
29
+ readonly repositoryId: Schema.String;
30
+ readonly repositoryDigest: Schema.String;
31
+ readonly name: Schema.String;
32
+ readonly purpose: Schema.String;
33
+ readonly languages: Schema.$Array<Schema.String>;
34
+ readonly frameworks: Schema.$Array<Schema.String>;
35
+ readonly components: Schema.$Array<Schema.Struct<{
36
+ readonly id: Schema.String;
37
+ readonly name: Schema.String;
38
+ readonly purpose: Schema.String;
39
+ readonly paths: Schema.$Array<Schema.String>;
40
+ }>>;
41
+ }>;
42
+ readonly dimensions: Schema.$Array<Schema.Struct<{
43
+ readonly id: Schema.String;
44
+ readonly name: Schema.String;
45
+ readonly description: Schema.String;
46
+ readonly inclusions: Schema.$Array<Schema.String>;
47
+ readonly exclusions: Schema.$Array<Schema.String>;
48
+ readonly confusableDimensionIds: Schema.$Array<Schema.String>;
49
+ readonly boundaryRules: Schema.$Array<Schema.String>;
50
+ readonly repositoryFacets: Schema.Struct<{
51
+ readonly componentIds: Schema.$Array<Schema.String>;
52
+ readonly pathAnchors: Schema.$Array<Schema.String>;
53
+ readonly symbolAnchors: Schema.$Array<Schema.String>;
54
+ }>;
55
+ readonly positiveExamples: Schema.$Array<Schema.String>;
56
+ readonly negativeExamples: Schema.$Array<Schema.String>;
57
+ readonly codeSummaries: Schema.$Array<Schema.String>;
58
+ readonly representativeSnippets: Schema.$Array<Schema.String>;
59
+ }>>;
60
+ readonly provenance: Schema.Struct<{
61
+ readonly generatorVersion: Schema.String;
62
+ readonly recipeId: Schema.String;
63
+ readonly authorModel: Schema.optionalKey<Schema.String>;
64
+ readonly sourceDigests: Schema.$Array<Schema.String>;
65
+ readonly constructionTaskDigest: Schema.optionalKey<Schema.String>;
66
+ readonly origin: Schema.optionalKey<Schema.Struct<{
67
+ readonly kind: Schema.Literals<readonly ["generated", "incumbent-enriched", "repair"]>;
68
+ readonly sourceBasisId: Schema.optionalKey<Schema.String>;
69
+ readonly sourceBasisVersion: Schema.optionalKey<Schema.Finite>;
70
+ }>>;
71
+ }>;
72
+ readonly validation: Schema.optionalKey<Schema.Struct<{
73
+ readonly validationDatasetDigest: Schema.String;
74
+ readonly caseCount: Schema.Finite;
75
+ readonly activeMae: Schema.Finite;
76
+ readonly activeF1: Schema.Finite;
77
+ readonly topDimensionAgreement: Schema.Finite;
78
+ readonly unknownMae: Schema.Finite;
79
+ readonly referenceUnknownRate: Schema.Finite;
80
+ readonly selectionScore: Schema.Finite;
81
+ }>>;
82
+ }>;
83
+ readonly modelPlan: Schema.Struct<{
84
+ readonly version: Schema.Literal<1>;
85
+ readonly assignments: Schema.$Array<Schema.Struct<{
86
+ readonly role: Schema.Literals<readonly ["dimension-labeler", "dimension-critic-terra", "dimension-critic-luna"]>;
87
+ readonly model: Schema.String;
88
+ readonly reasoningEffort: Schema.Literals<readonly ["low", "medium", "high", "xhigh", "max", "ultra"]>;
89
+ }>>;
90
+ }>;
91
+ readonly policy: Schema.Struct<{
92
+ readonly activeDimensionThreshold: Schema.Finite;
93
+ readonly maximumUnknownProbability: Schema.Finite;
94
+ readonly minimumDominanceMargin: Schema.Finite;
95
+ readonly minimumCasesPerDimension: Schema.Finite;
96
+ }>;
97
+ readonly budget: Schema.Struct<{
98
+ readonly semanticModelCalls: Schema.Finite;
99
+ readonly plannedModelCalls: Schema.Finite;
100
+ readonly maximumTransientRetries: Schema.Finite;
101
+ readonly requiredTotalInputTokens: Schema.Finite;
102
+ readonly requiredTotalOutputTokens: Schema.Finite;
103
+ readonly perCallOutputTokens: Schema.Finite;
104
+ readonly wallTimeMs: Schema.Finite;
105
+ }>;
106
+ }>;
107
+ export type RepositoryRoutingLabelingPlanV1 = typeof RepositoryRoutingLabelingPlanV1.Type;
108
+ type PlanWithoutDigest = Omit<RepositoryRoutingLabelingPlanV1, "planDigest">;
109
+ export declare const repositoryRoutingLabelingBudgetV1: () => RepositoryRoutingLabelingBudgetV1;
110
+ export declare const repositoryRoutingLabelingPlanDigestV1: (plan: PlanWithoutDigest) => string;
111
+ export declare function assertRepositoryRoutingLabelingPlanV1(value: unknown): asserts value is RepositoryRoutingLabelingPlanV1;
112
+ export {};
@@ -0,0 +1,58 @@
1
+ import { createHash } from "node:crypto";
2
+ import { RoutingBasisV3 } from "@velum-labs/routekit-eval-contracts";
3
+ import { Schema } from "effect";
4
+ import { RepositoryRoutingEligibilityPolicyV1 } from "./repository-routing-benchmark-protocol.js";
5
+ import { assertRepositoryRoutingModelPlanV1, RepositoryRoutingModelPlanV1 } from "./repository-routing-model-protocol.js";
6
+ export const REPOSITORY_ROUTING_LABEL_SEMANTIC_CALLS = 3;
7
+ export const REPOSITORY_ROUTING_LABEL_TRANSIENT_RETRIES = 3;
8
+ export const REPOSITORY_ROUTING_LABEL_INPUT_CEILING = 512_000;
9
+ export const REPOSITORY_ROUTING_LABEL_OUTPUT_CEILING = 16_384;
10
+ export const REPOSITORY_ROUTING_LABEL_WALL_TIME_MS = 30 * 60_000;
11
+ export const RepositoryRoutingLabelingBudgetV1 = Schema.Struct({
12
+ semanticModelCalls: Schema.Finite,
13
+ plannedModelCalls: Schema.Finite,
14
+ maximumTransientRetries: Schema.Finite,
15
+ requiredTotalInputTokens: Schema.Finite,
16
+ requiredTotalOutputTokens: Schema.Finite,
17
+ perCallOutputTokens: Schema.Finite,
18
+ wallTimeMs: Schema.Finite
19
+ });
20
+ export const RepositoryRoutingLabelingPlanV1 = Schema.Struct({
21
+ version: Schema.Literal(1),
22
+ planDigest: Schema.String,
23
+ foundryPlanDigest: Schema.String,
24
+ caseId: Schema.String,
25
+ behavioralFingerprint: Schema.String,
26
+ basis: RoutingBasisV3,
27
+ modelPlan: RepositoryRoutingModelPlanV1,
28
+ policy: RepositoryRoutingEligibilityPolicyV1,
29
+ budget: RepositoryRoutingLabelingBudgetV1
30
+ });
31
+ const digest = (value) => createHash("sha256").update(JSON.stringify(value)).digest("hex");
32
+ export const repositoryRoutingLabelingBudgetV1 = () => {
33
+ const plannedModelCalls = REPOSITORY_ROUTING_LABEL_SEMANTIC_CALLS + REPOSITORY_ROUTING_LABEL_TRANSIENT_RETRIES;
34
+ return {
35
+ semanticModelCalls: REPOSITORY_ROUTING_LABEL_SEMANTIC_CALLS,
36
+ plannedModelCalls,
37
+ maximumTransientRetries: REPOSITORY_ROUTING_LABEL_TRANSIENT_RETRIES,
38
+ requiredTotalInputTokens: plannedModelCalls * REPOSITORY_ROUTING_LABEL_INPUT_CEILING,
39
+ requiredTotalOutputTokens: plannedModelCalls * REPOSITORY_ROUTING_LABEL_OUTPUT_CEILING,
40
+ perCallOutputTokens: REPOSITORY_ROUTING_LABEL_OUTPUT_CEILING,
41
+ wallTimeMs: REPOSITORY_ROUTING_LABEL_WALL_TIME_MS
42
+ };
43
+ };
44
+ export const repositoryRoutingLabelingPlanDigestV1 = (plan) => digest(plan);
45
+ export function assertRepositoryRoutingLabelingPlanV1(value) {
46
+ const plan = Schema.decodeUnknownSync(RepositoryRoutingLabelingPlanV1)(value);
47
+ assertRepositoryRoutingModelPlanV1(plan.modelPlan);
48
+ const integers = Object.values(plan.budget);
49
+ if (plan.foundryPlanDigest.trim().length === 0 ||
50
+ plan.caseId.trim().length === 0 ||
51
+ plan.behavioralFingerprint.trim().length === 0 ||
52
+ integers.some((entry) => !Number.isSafeInteger(entry) || entry < 0) ||
53
+ JSON.stringify(plan.budget) !== JSON.stringify(repositoryRoutingLabelingBudgetV1()) ||
54
+ plan.planDigest !==
55
+ repositoryRoutingLabelingPlanDigestV1((({ planDigest: _planDigest, ...withoutDigest }) => withoutDigest)(plan))) {
56
+ throw new Error("repository routing labeling plan identity or immutable budget is invalid");
57
+ }
58
+ }
@@ -0,0 +1,9 @@
1
+ import { type RoutingBasisV3 } from "@velum-labs/routekit-eval-contracts";
2
+ import type { RepositoryValidatedBenchmarkLibraryV1 } from "./repository-benchmark-protocol.js";
3
+ import { type RepositoryReviewedDimensionLabelV1, type RepositoryRoutingBenchmarkV1, type RepositoryRoutingEligibilityPolicyV1 } from "./repository-routing-benchmark-protocol.js";
4
+ export declare function compileRepositoryRoutingBenchmarkV1(input: {
5
+ readonly basis: RoutingBasisV3;
6
+ readonly library: RepositoryValidatedBenchmarkLibraryV1;
7
+ readonly labels: readonly RepositoryReviewedDimensionLabelV1[];
8
+ readonly policy: RepositoryRoutingEligibilityPolicyV1;
9
+ }): RepositoryRoutingBenchmarkV1;