@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,220 @@
1
+ import { Schema } from "effect";
2
+ const NonNegativeInteger = Schema.Finite.pipe(Schema.check(Schema.makeFilter((value) => value >= 0 && Number.isInteger(value) ? undefined : "value must be a non-negative integer")));
3
+ const PositiveInteger = NonNegativeInteger.pipe(Schema.check(Schema.makeFilter((value) => value >= 1 ? undefined : "value must be a positive integer")));
4
+ const NonNegativeFinite = Schema.Finite.pipe(Schema.check(Schema.makeFilter((value) => value >= 0 ? undefined : "value must be a non-negative finite number")));
5
+ const BoundedFailureReason = Schema.String.pipe(Schema.check(Schema.makeFilter((value) => value.length >= 1 && value.length <= 2_000
6
+ ? undefined
7
+ : "failure reason must contain between 1 and 2000 characters")));
8
+ const RunPlanEvent = Schema.Struct({
9
+ name: Schema.Literal("plan"),
10
+ at: Schema.String,
11
+ runId: Schema.String,
12
+ plannedCalls: NonNegativeInteger
13
+ });
14
+ const RunCallEventFields = {
15
+ at: Schema.String,
16
+ runId: Schema.String,
17
+ dimensionId: Schema.String,
18
+ caseId: Schema.String,
19
+ sequence: PositiveInteger
20
+ };
21
+ const RunCandidateEvent = Schema.Struct({
22
+ name: Schema.Literal("candidate#"),
23
+ ...RunCallEventFields
24
+ });
25
+ const RunJudgeEvent = Schema.Struct({
26
+ name: Schema.Literal("judge#"),
27
+ ...RunCallEventFields
28
+ });
29
+ export const EvalRunFailurePhase = Schema.Literals([
30
+ "target",
31
+ "classifier",
32
+ "suite-inspection",
33
+ "comparison",
34
+ "activation",
35
+ "accounting",
36
+ "completion"
37
+ ]);
38
+ const RunFailureDetailEvent = Schema.Struct({
39
+ name: Schema.Literal("failure-detail"),
40
+ at: Schema.String,
41
+ runId: Schema.String,
42
+ phase: EvalRunFailurePhase,
43
+ reason: BoundedFailureReason,
44
+ retryable: Schema.Boolean,
45
+ callId: Schema.optionalKey(Schema.String),
46
+ reservationId: Schema.optionalKey(Schema.String),
47
+ accounting: Schema.Struct({
48
+ expectedCalls: NonNegativeInteger,
49
+ observedCalls: NonNegativeInteger,
50
+ knownInputTokens: NonNegativeInteger,
51
+ knownOutputTokens: NonNegativeInteger,
52
+ unknownTokenMeasurements: NonNegativeInteger,
53
+ knownPricedSubtotalUsd: NonNegativeFinite,
54
+ unpricedCalls: NonNegativeInteger,
55
+ subscriptionUnitCalls: NonNegativeInteger
56
+ }),
57
+ cleanup: Schema.Struct({
58
+ sessionOpened: Schema.Boolean,
59
+ sessionClosed: Schema.Boolean,
60
+ detail: Schema.optionalKey(Schema.String)
61
+ })
62
+ });
63
+ const AuthoringEventFields = {
64
+ at: Schema.String,
65
+ operationId: Schema.String
66
+ };
67
+ const AuthoringBasisEvent = Schema.Struct({
68
+ name: Schema.Literal("basis"),
69
+ ...AuthoringEventFields
70
+ });
71
+ const AuthoringDimensionsEvent = Schema.Struct({
72
+ name: Schema.Literal("dimensions"),
73
+ ...AuthoringEventFields
74
+ });
75
+ const AuthoringActivationEvent = Schema.Struct({
76
+ name: Schema.Literal("activation"),
77
+ ...AuthoringEventFields
78
+ });
79
+ export const EvalNamedEvent = Schema.Union([
80
+ RunPlanEvent,
81
+ RunCandidateEvent,
82
+ RunJudgeEvent,
83
+ RunFailureDetailEvent,
84
+ AuthoringBasisEvent,
85
+ AuthoringDimensionsEvent,
86
+ AuthoringActivationEvent
87
+ ]);
88
+ export const EvalNamedEventLog = Schema.Array(EvalNamedEvent);
89
+ const caseKey = (dimensionId, caseId) => `${dimensionId}\u0000${caseId}`;
90
+ export function resumeEvalCaseCursors(log) {
91
+ const cursors = new Map();
92
+ for (const event of log) {
93
+ if (event.name !== "candidate#" && event.name !== "judge#")
94
+ continue;
95
+ const key = caseKey(event.dimensionId, event.caseId);
96
+ const cursor = cursors.get(key) ??
97
+ {
98
+ dimensionId: event.dimensionId,
99
+ caseId: event.caseId,
100
+ candidates: new Map(),
101
+ judges: new Set()
102
+ };
103
+ const firstHoleSequence = (() => {
104
+ let sequence = 1;
105
+ while (cursor.candidates.has(sequence) && cursor.judges.has(sequence)) {
106
+ sequence += 1;
107
+ }
108
+ return sequence;
109
+ })();
110
+ if (cursor.candidates.has(firstHoleSequence) &&
111
+ !cursor.judges.has(firstHoleSequence) &&
112
+ (event.name !== "judge#" || event.sequence !== firstHoleSequence)) {
113
+ cursors.set(key, cursor);
114
+ continue;
115
+ }
116
+ if (event.name === "candidate#")
117
+ cursor.candidates.set(event.sequence, event);
118
+ else
119
+ cursor.judges.add(event.sequence);
120
+ cursor.lastEvent = event;
121
+ cursors.set(key, cursor);
122
+ }
123
+ return [...cursors.values()].map((cursor) => {
124
+ let completePairs = 0;
125
+ while (cursor.candidates.has(completePairs + 1) &&
126
+ cursor.judges.has(completePairs + 1)) {
127
+ completePairs += 1;
128
+ }
129
+ const hole = cursor.candidates.get(completePairs + 1);
130
+ return {
131
+ dimensionId: cursor.dimensionId,
132
+ caseId: cursor.caseId,
133
+ completePairs,
134
+ ...(hole === undefined
135
+ ? cursor.lastEvent === undefined
136
+ ? {}
137
+ : { lastEvent: cursor.lastEvent }
138
+ : { lastEvent: hole }),
139
+ ...(hole === undefined ? {} : { hole })
140
+ };
141
+ });
142
+ }
143
+ export function evalEventLabel(event) {
144
+ return event.name === "candidate#" || event.name === "judge#"
145
+ ? `${event.name}${String(event.sequence)}`
146
+ : event.name;
147
+ }
148
+ const lastPlanEvent = (log) => {
149
+ for (let index = log.length - 1; index >= 0; index -= 1) {
150
+ const event = log[index];
151
+ if (event?.name === "plan")
152
+ return event;
153
+ }
154
+ return undefined;
155
+ };
156
+ export function presentEvalEventLog(log, options = {}) {
157
+ const plan = lastPlanEvent(log);
158
+ if (plan !== undefined && plan.plannedCalls < 1) {
159
+ return {
160
+ failed: true,
161
+ lines: ["run fail no planned calls"]
162
+ };
163
+ }
164
+ const cursors = resumeEvalCaseCursors(log);
165
+ const failHoles = options.failHoles ?? true;
166
+ const lastEvent = log[log.length - 1];
167
+ const failureLine = lastEvent?.name === "failure-detail"
168
+ ? `run fail ${lastEvent.phase}: ${lastEvent.reason}`
169
+ : undefined;
170
+ const authoringLine = lastEvent?.name === "basis" ||
171
+ lastEvent?.name === "dimensions" ||
172
+ lastEvent?.name === "activation"
173
+ ? `authoring ${evalEventLabel(lastEvent)}`
174
+ : undefined;
175
+ const cursorLines = cursors.map((cursor) => {
176
+ const label = cursor.lastEvent === undefined ? "plan" : evalEventLabel(cursor.lastEvent);
177
+ return `${cursor.dimensionId}/${cursor.caseId} ${cursor.hole === undefined || !failHoles
178
+ ? label
179
+ : `fail ${label} missing judge#${String(cursor.hole.sequence)}`}`;
180
+ });
181
+ return {
182
+ failed: failureLine !== undefined ||
183
+ (failHoles && cursors.some((cursor) => cursor.hole !== undefined)),
184
+ lines: failureLine !== undefined
185
+ ? [...cursorLines, failureLine]
186
+ : cursors.length === 0
187
+ ? authoringLine === undefined
188
+ ? plan === undefined
189
+ ? []
190
+ : [`run ${evalEventLabel(plan)}`]
191
+ : [authoringLine]
192
+ : authoringLine === undefined
193
+ ? cursorLines
194
+ : [...cursorLines, authoringLine]
195
+ };
196
+ }
197
+ export function assertEvalRunCanFail(log) {
198
+ const plan = lastPlanEvent(log);
199
+ if (plan === undefined) {
200
+ throw new Error("failed eval run cannot terminate without its plan event");
201
+ }
202
+ const terminal = log[log.length - 1];
203
+ if (terminal?.name !== "failure-detail" || terminal.runId !== plan.runId) {
204
+ throw new Error("failed eval run must end with a matching terminal failure-detail event");
205
+ }
206
+ }
207
+ export function assertEvalRunCanComplete(log) {
208
+ const plan = lastPlanEvent(log);
209
+ if (plan === undefined || plan.plannedCalls < 1) {
210
+ throw new Error("eval run cannot complete without a plan containing at least one call");
211
+ }
212
+ const failure = log.find((event) => event.name === "failure-detail" && event.runId === plan.runId);
213
+ if (failure !== undefined) {
214
+ throw new Error(`eval run cannot complete after terminal failure in phase ${JSON.stringify(failure.phase)}`);
215
+ }
216
+ const hole = resumeEvalCaseCursors(log).find((cursor) => cursor.hole !== undefined);
217
+ if (hole?.hole !== undefined) {
218
+ throw new Error(`eval case ${JSON.stringify(hole.dimensionId)}/${JSON.stringify(hole.caseId)} cannot complete after ${evalEventLabel(hole.hole)} without judge#${String(hole.hole.sequence)}`);
219
+ }
220
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Provisional transport limits for compiler-backed evaluation authoring.
3
+ *
4
+ * These values bound model input/output and persisted candidate context; they
5
+ * are not semantic-quality thresholds. Live preflight and later empirical
6
+ * calibration must determine whether they produce coherent, useful cases.
7
+ */
8
+ export declare const EVAL_AUTHORING_EVIDENCE_BLOCK_BYTES = 3000;
9
+ export declare const EVAL_AUTHORING_CASE_EVIDENCE_BYTES = 12000;
10
+ /**
11
+ * Maximum compiler blocks exposed as one mechanically safe author selection.
12
+ *
13
+ * A block may consume the complete block-byte allowance, so this cardinality
14
+ * guarantees that selecting every exposed block cannot exceed the case context
15
+ * allowance. The exact byte check remains authoritative because smaller blocks
16
+ * do not make every same-cardinality combination equivalent.
17
+ */
18
+ export declare const EVAL_AUTHORING_CASE_EVIDENCE_BLOCKS: number;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Provisional transport limits for compiler-backed evaluation authoring.
3
+ *
4
+ * These values bound model input/output and persisted candidate context; they
5
+ * are not semantic-quality thresholds. Live preflight and later empirical
6
+ * calibration must determine whether they produce coherent, useful cases.
7
+ */
8
+ export const EVAL_AUTHORING_EVIDENCE_BLOCK_BYTES = 3_000;
9
+ export const EVAL_AUTHORING_CASE_EVIDENCE_BYTES = 12_000;
10
+ /**
11
+ * Maximum compiler blocks exposed as one mechanically safe author selection.
12
+ *
13
+ * A block may consume the complete block-byte allowance, so this cardinality
14
+ * guarantees that selecting every exposed block cannot exceed the case context
15
+ * allowance. The exact byte check remains authoritative because smaller blocks
16
+ * do not make every same-cardinality combination equivalent.
17
+ */
18
+ export const EVAL_AUTHORING_CASE_EVIDENCE_BLOCKS = Math.floor(EVAL_AUTHORING_CASE_EVIDENCE_BYTES /
19
+ EVAL_AUTHORING_EVIDENCE_BLOCK_BYTES);
@@ -0,0 +1,22 @@
1
+ export type EvalAuthoringValidationCategory = "schema-constraint" | "schema-decode" | "case-shape" | "criterion-topology" | "control-topology" | "evidence-selection";
2
+ export declare class EvalAuthoringValidationIssue extends Error {
3
+ readonly category: EvalAuthoringValidationCategory;
4
+ readonly path: string;
5
+ constructor(input: {
6
+ readonly category: EvalAuthoringValidationCategory;
7
+ readonly path: string;
8
+ readonly detail: string;
9
+ readonly cause?: unknown;
10
+ });
11
+ }
12
+ export declare const evalAuthoringValidationDiagnostic: (cause: unknown) => {
13
+ readonly category: EvalAuthoringValidationCategory;
14
+ readonly path: string;
15
+ readonly detail: string;
16
+ };
17
+ export declare const prefixEvalAuthoringValidationIssue: (cause: unknown, prefix: string) => EvalAuthoringValidationIssue;
18
+ export declare const renderEvalAuthoringValidationFailure: (input: {
19
+ readonly scope: string;
20
+ readonly cause: unknown;
21
+ readonly callId?: string;
22
+ }) => string;
@@ -0,0 +1,72 @@
1
+ export class EvalAuthoringValidationIssue extends Error {
2
+ category;
3
+ path;
4
+ constructor(input) {
5
+ super(input.detail, input.cause === undefined ? undefined : { cause: input.cause });
6
+ this.name = "EvalAuthoringValidationIssue";
7
+ this.category = input.category;
8
+ this.path = input.path;
9
+ }
10
+ }
11
+ const recordOf = (value) => typeof value === "object" && value !== null && !Array.isArray(value)
12
+ ? value
13
+ : undefined;
14
+ const schemaIssuePath = (value) => {
15
+ const record = recordOf(value);
16
+ if (record === undefined)
17
+ return undefined;
18
+ if (Array.isArray(record.path))
19
+ return record.path;
20
+ if (Array.isArray(record.issues)) {
21
+ for (const issue of record.issues) {
22
+ const path = schemaIssuePath(issue);
23
+ if (path !== undefined)
24
+ return path;
25
+ }
26
+ }
27
+ return schemaIssuePath(record.issue);
28
+ };
29
+ const propertyPath = (segments) => segments.reduce((path, segment) => {
30
+ if (typeof segment === "number")
31
+ return `${path}[${String(segment)}]`;
32
+ if (typeof segment === "string" && /^[A-Za-z_$][A-Za-z0-9_$]*$/u.test(segment)) {
33
+ return `${path}.${segment}`;
34
+ }
35
+ return `${path}[${JSON.stringify(String(segment))}]`;
36
+ }, "$");
37
+ export const evalAuthoringValidationDiagnostic = (cause) => {
38
+ if (cause instanceof EvalAuthoringValidationIssue) {
39
+ return {
40
+ category: cause.category,
41
+ path: cause.path,
42
+ detail: cause.message
43
+ };
44
+ }
45
+ const record = recordOf(cause);
46
+ const issuePath = schemaIssuePath(record?.issue);
47
+ return {
48
+ category: "schema-decode",
49
+ path: issuePath === undefined ? "$" : propertyPath(issuePath),
50
+ detail: "value does not conform to the persisted evaluation schema"
51
+ };
52
+ };
53
+ export const prefixEvalAuthoringValidationIssue = (cause, prefix) => {
54
+ const diagnostic = evalAuthoringValidationDiagnostic(cause);
55
+ const suffix = diagnostic.path === "$" ? "" : diagnostic.path.slice(1);
56
+ return new EvalAuthoringValidationIssue({
57
+ category: diagnostic.category,
58
+ path: `${prefix}${suffix}`,
59
+ detail: diagnostic.detail,
60
+ cause
61
+ });
62
+ };
63
+ export const renderEvalAuthoringValidationFailure = (input) => {
64
+ const diagnostic = evalAuthoringValidationDiagnostic(input.cause);
65
+ return [
66
+ `${input.scope} failed validation`,
67
+ ...(input.callId === undefined ? [] : [`call id ${input.callId}`]),
68
+ `category ${diagnostic.category}`,
69
+ `path ${diagnostic.path}`,
70
+ diagnostic.detail
71
+ ].join("; ");
72
+ };
@@ -0,0 +1,20 @@
1
+ import type { EvalEvidenceBlock, EvalEvidenceSource } from "./project-contracts.js";
2
+ export declare function compileEvaluationEvidence(input: {
3
+ readonly sources: readonly {
4
+ readonly path: string;
5
+ readonly content: string;
6
+ }[];
7
+ readonly maximumBlockBytes: number;
8
+ }): readonly EvalEvidenceSource[];
9
+ export declare function assertEvaluationEvidenceSources(sources: readonly EvalEvidenceSource[]): void;
10
+ export declare function selectEvaluationEvidenceBlocks(input: {
11
+ readonly sources: readonly EvalEvidenceSource[];
12
+ readonly evidenceIds: readonly string[];
13
+ }): readonly EvalEvidenceSource[];
14
+ export declare function mergeEvaluationEvidenceSources(packets: readonly (readonly EvalEvidenceSource[])[]): readonly EvalEvidenceSource[];
15
+ export declare function resolveEvaluationEvidence(input: {
16
+ readonly sources: readonly EvalEvidenceSource[];
17
+ readonly evidenceIds: readonly string[];
18
+ readonly maximumContextBytes: number;
19
+ }): readonly EvalEvidenceBlock[];
20
+ export declare function renderEvaluationEvidenceContext(blocks: readonly EvalEvidenceBlock[]): string;