openpond-sdk 0.9.9 → 0.11.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 (253) hide show
  1. package/README.md +18 -17
  2. package/dist/advanced-refiner-evaluations.js +42 -0
  3. package/dist/advanced-refiner-evaluations.js.map +7 -0
  4. package/dist/candidate-evaluations.js +25 -0
  5. package/dist/candidate-evaluations.js.map +7 -0
  6. package/dist/{chunk-BGXWHDYM.js → chunk-2JKV5OJO.js} +95 -59
  7. package/dist/chunk-2JKV5OJO.js.map +7 -0
  8. package/dist/{chunk-4HZORGK3.js → chunk-2NSNBED7.js} +18 -5
  9. package/dist/chunk-2NSNBED7.js.map +7 -0
  10. package/dist/chunk-5RZAPZWI.js +445 -0
  11. package/dist/chunk-5RZAPZWI.js.map +7 -0
  12. package/dist/{chunk-JCPLAIZL.js → chunk-5U25KAJM.js} +106 -76
  13. package/dist/chunk-5U25KAJM.js.map +7 -0
  14. package/dist/chunk-7Q7I6FAT.js +139 -0
  15. package/dist/chunk-7Q7I6FAT.js.map +7 -0
  16. package/dist/chunk-A64VYVXN.js +64 -0
  17. package/dist/chunk-A64VYVXN.js.map +7 -0
  18. package/dist/{chunk-DT7FRNIZ.js → chunk-CSWVE3E6.js} +2 -2
  19. package/dist/chunk-DJWHN7NU.js +394 -0
  20. package/dist/chunk-DJWHN7NU.js.map +7 -0
  21. package/dist/{chunk-KYCQ7LZ4.js → chunk-DSGGM2ME.js} +2 -2
  22. package/dist/chunk-DSGGM2ME.js.map +7 -0
  23. package/dist/chunk-GDJRGRHA.js +144 -0
  24. package/dist/chunk-GDJRGRHA.js.map +7 -0
  25. package/dist/chunk-HOAYWW33.js +587 -0
  26. package/dist/chunk-HOAYWW33.js.map +7 -0
  27. package/dist/{chunk-Y4NGWGTA.js → chunk-I2MBVOVX.js} +265 -264
  28. package/dist/chunk-I2MBVOVX.js.map +7 -0
  29. package/dist/{chunk-6D4JIOOC.js → chunk-IXBSFJCX.js} +5 -5
  30. package/dist/{chunk-WOPM32SE.js → chunk-JA3KFK3U.js} +7 -1
  31. package/dist/chunk-JA3KFK3U.js.map +7 -0
  32. package/dist/chunk-JMQ4HBWP.js +160 -0
  33. package/dist/chunk-JMQ4HBWP.js.map +7 -0
  34. package/dist/chunk-KQWCXW3A.js +294 -0
  35. package/dist/chunk-KQWCXW3A.js.map +7 -0
  36. package/dist/{chunk-3HV3G6DG.js → chunk-NHCGOFQW.js} +3 -3
  37. package/dist/{chunk-XMKEFQ62.js → chunk-PJ2VLNJF.js} +20 -2
  38. package/dist/chunk-PJ2VLNJF.js.map +7 -0
  39. package/dist/{chunk-32H2EJRA.js → chunk-R3M6BIOK.js} +2 -2
  40. package/dist/chunk-SLS3GFPG.js +125 -0
  41. package/dist/chunk-SLS3GFPG.js.map +7 -0
  42. package/dist/chunk-SVU4RZ4K.js +70 -0
  43. package/dist/chunk-SVU4RZ4K.js.map +7 -0
  44. package/dist/chunk-T4APHDES.js +74 -0
  45. package/dist/chunk-T4APHDES.js.map +7 -0
  46. package/dist/chunk-VC5OV5AS.js +174 -0
  47. package/dist/chunk-VC5OV5AS.js.map +7 -0
  48. package/dist/{chunk-YYJ4T4U4.js → chunk-WX22WN33.js} +13 -7
  49. package/dist/chunk-WX22WN33.js.map +7 -0
  50. package/dist/chunk-XEUOJ5WF.js +31 -0
  51. package/dist/chunk-XEUOJ5WF.js.map +7 -0
  52. package/dist/{chunk-LGEF4S5I.js → chunk-XJDWHTH5.js} +390 -362
  53. package/dist/chunk-XJDWHTH5.js.map +7 -0
  54. package/dist/chunk-YCQVVFE5.js +37 -0
  55. package/dist/chunk-YCQVVFE5.js.map +7 -0
  56. package/dist/chunk-ZVJU5CJ5.js +267 -0
  57. package/dist/chunk-ZVJU5CJ5.js.map +7 -0
  58. package/dist/connected-evidence.js +81 -0
  59. package/dist/connected-evidence.js.map +7 -0
  60. package/dist/dataset-workspaces.js +45 -80
  61. package/dist/dataset-workspaces.js.map +4 -4
  62. package/dist/experiment-evaluation-schedules.js +48 -0
  63. package/dist/experiment-evaluation-schedules.js.map +7 -0
  64. package/dist/experiment-improvements.js +52 -0
  65. package/dist/experiment-improvements.js.map +7 -0
  66. package/dist/experiments.js +63 -124
  67. package/dist/experiments.js.map +4 -4
  68. package/dist/human-review.js +13 -0
  69. package/dist/human-review.js.map +7 -0
  70. package/dist/index.js +208 -17
  71. package/dist/index.js.map +2 -2
  72. package/dist/learning.js +1 -1
  73. package/dist/model-starter-attempts.js +2 -2
  74. package/dist/model-starter-catalog.js +9 -4
  75. package/dist/model-starter-catalog.js.map +1 -1
  76. package/dist/model-starters.js +15 -6
  77. package/dist/model-taskset-runs.js +3 -3
  78. package/dist/post-training.js +47 -0
  79. package/dist/post-training.js.map +7 -0
  80. package/dist/taskset-drafts.js +13 -6
  81. package/dist/taskset-drafts.js.map +2 -2
  82. package/dist/taskset-packages.js +31 -559
  83. package/dist/taskset-packages.js.map +4 -4
  84. package/dist/training-bundle.js +59 -18
  85. package/dist/training-bundle.js.map +2 -2
  86. package/dist/training-projects.js +3 -1
  87. package/dist/training-projects.js.map +2 -2
  88. package/dist/training.js +7 -2
  89. package/dist/types/packages/sdk/src/advanced-refiner-evaluations.d.ts +2673 -0
  90. package/dist/types/packages/sdk/src/advanced-refiner-evaluations.d.ts.map +1 -0
  91. package/dist/types/packages/sdk/src/candidate-evaluation-client.d.ts +1079 -0
  92. package/dist/types/packages/sdk/src/candidate-evaluation-client.d.ts.map +1 -0
  93. package/dist/types/packages/sdk/src/candidate-evaluations.d.ts +845 -0
  94. package/dist/types/packages/sdk/src/candidate-evaluations.d.ts.map +1 -0
  95. package/dist/types/packages/sdk/src/claude-code-runtime.d.ts +51 -0
  96. package/dist/types/packages/sdk/src/claude-code-runtime.d.ts.map +1 -0
  97. package/dist/types/packages/sdk/src/connected-dataset-publication.d.ts +15 -0
  98. package/dist/types/packages/sdk/src/connected-dataset-publication.d.ts.map +1 -0
  99. package/dist/types/packages/sdk/src/connected-dataset-source.d.ts +48 -0
  100. package/dist/types/packages/sdk/src/connected-dataset-source.d.ts.map +1 -0
  101. package/dist/types/packages/sdk/src/connected-evidence-client.d.ts +2460 -0
  102. package/dist/types/packages/sdk/src/connected-evidence-client.d.ts.map +1 -0
  103. package/dist/types/packages/sdk/src/connected-evidence-contracts.d.ts +215 -0
  104. package/dist/types/packages/sdk/src/connected-evidence-contracts.d.ts.map +1 -0
  105. package/dist/types/packages/sdk/src/connected-evidence-http.d.ts +6 -0
  106. package/dist/types/packages/sdk/src/connected-evidence-http.d.ts.map +1 -0
  107. package/dist/types/packages/sdk/src/connected-evidence.d.ts +6 -0
  108. package/dist/types/packages/sdk/src/connected-evidence.d.ts.map +1 -0
  109. package/dist/types/packages/sdk/src/connected-recorded-execution.d.ts +690 -0
  110. package/dist/types/packages/sdk/src/connected-recorded-execution.d.ts.map +1 -0
  111. package/dist/types/packages/sdk/src/dataset-population.d.ts +1 -0
  112. package/dist/types/packages/sdk/src/dataset-population.d.ts.map +1 -1
  113. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts +771 -120
  114. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts.map +1 -1
  115. package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts +278 -38
  116. package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts.map +1 -1
  117. package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts +280 -40
  118. package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts.map +1 -1
  119. package/dist/types/packages/sdk/src/evaluation-coordination-http.d.ts +17 -0
  120. package/dist/types/packages/sdk/src/evaluation-coordination-http.d.ts.map +1 -0
  121. package/dist/types/packages/sdk/src/experiment-client.d.ts +4353 -490
  122. package/dist/types/packages/sdk/src/experiment-client.d.ts.map +1 -1
  123. package/dist/types/packages/sdk/src/experiment-contracts.d.ts +1067 -2
  124. package/dist/types/packages/sdk/src/experiment-contracts.d.ts.map +1 -1
  125. package/dist/types/packages/sdk/src/experiment-evaluation-schedules.d.ts +2780 -0
  126. package/dist/types/packages/sdk/src/experiment-evaluation-schedules.d.ts.map +1 -0
  127. package/dist/types/packages/sdk/src/experiment-execution-selection.d.ts +58 -0
  128. package/dist/types/packages/sdk/src/experiment-execution-selection.d.ts.map +1 -0
  129. package/dist/types/packages/sdk/src/experiment-grading-contracts.d.ts +8 -0
  130. package/dist/types/packages/sdk/src/experiment-grading-contracts.d.ts.map +1 -1
  131. package/dist/types/packages/sdk/src/experiment-harness-catalog.d.ts +24 -0
  132. package/dist/types/packages/sdk/src/experiment-harness-catalog.d.ts.map +1 -0
  133. package/dist/types/packages/sdk/src/experiment-improvement-client.d.ts +5724 -0
  134. package/dist/types/packages/sdk/src/experiment-improvement-client.d.ts.map +1 -0
  135. package/dist/types/packages/sdk/src/experiment-improvement-contracts.d.ts +13024 -0
  136. package/dist/types/packages/sdk/src/experiment-improvement-contracts.d.ts.map +1 -0
  137. package/dist/types/packages/sdk/src/experiment-improvement-hosted-adoption.d.ts +1361 -0
  138. package/dist/types/packages/sdk/src/experiment-improvement-hosted-adoption.d.ts.map +1 -0
  139. package/dist/types/packages/sdk/src/experiment-improvements.d.ts +4 -0
  140. package/dist/types/packages/sdk/src/experiment-improvements.d.ts.map +1 -0
  141. package/dist/types/packages/sdk/src/experiment-run-contracts.d.ts +383 -0
  142. package/dist/types/packages/sdk/src/experiment-run-contracts.d.ts.map +1 -0
  143. package/dist/types/packages/sdk/src/experiment-run-details.d.ts +2111 -0
  144. package/dist/types/packages/sdk/src/experiment-run-details.d.ts.map +1 -0
  145. package/dist/types/packages/sdk/src/experiment-scoring-contracts.d.ts +7 -2
  146. package/dist/types/packages/sdk/src/experiment-scoring-contracts.d.ts.map +1 -1
  147. package/dist/types/packages/sdk/src/experiments.d.ts +7 -1
  148. package/dist/types/packages/sdk/src/experiments.d.ts.map +1 -1
  149. package/dist/types/packages/sdk/src/grader-inspection.d.ts +307 -5
  150. package/dist/types/packages/sdk/src/grader-inspection.d.ts.map +1 -1
  151. package/dist/types/packages/sdk/src/harness-experiment-policy.d.ts +238 -0
  152. package/dist/types/packages/sdk/src/harness-experiment-policy.d.ts.map +1 -1
  153. package/dist/types/packages/sdk/src/human-review-client.d.ts +1267 -0
  154. package/dist/types/packages/sdk/src/human-review-client.d.ts.map +1 -0
  155. package/dist/types/packages/sdk/src/human-review.d.ts +3 -0
  156. package/dist/types/packages/sdk/src/human-review.d.ts.map +1 -0
  157. package/dist/types/packages/sdk/src/index.d.ts +10 -0
  158. package/dist/types/packages/sdk/src/index.d.ts.map +1 -1
  159. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts +181 -0
  160. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts.map +1 -1
  161. package/dist/types/packages/sdk/src/model-batch-review-contracts.d.ts +20 -4
  162. package/dist/types/packages/sdk/src/model-batch-review-contracts.d.ts.map +1 -1
  163. package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts +79 -5
  164. package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts.map +1 -1
  165. package/dist/types/packages/sdk/src/model-batch-review.d.ts +15 -13
  166. package/dist/types/packages/sdk/src/model-batch-review.d.ts.map +1 -1
  167. package/dist/types/packages/sdk/src/model-learning-policy.d.ts +359 -1
  168. package/dist/types/packages/sdk/src/model-learning-policy.d.ts.map +1 -1
  169. package/dist/types/packages/sdk/src/model-starter-attempts.d.ts +444 -19
  170. package/dist/types/packages/sdk/src/model-starter-attempts.d.ts.map +1 -1
  171. package/dist/types/packages/sdk/src/model-starter-catalog.d.ts +234 -12
  172. package/dist/types/packages/sdk/src/model-starter-catalog.d.ts.map +1 -1
  173. package/dist/types/packages/sdk/src/model-starter-execution.d.ts +79 -1
  174. package/dist/types/packages/sdk/src/model-starter-execution.d.ts.map +1 -1
  175. package/dist/types/packages/sdk/src/model-starters.d.ts +467 -13
  176. package/dist/types/packages/sdk/src/model-starters.d.ts.map +1 -1
  177. package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts +312 -4
  178. package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts.map +1 -1
  179. package/dist/types/packages/sdk/src/model-taskset-resources.d.ts +78 -1
  180. package/dist/types/packages/sdk/src/model-taskset-resources.d.ts.map +1 -1
  181. package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts +1326 -4
  182. package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts.map +1 -1
  183. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts +1329 -5
  184. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts.map +1 -1
  185. package/dist/types/packages/sdk/src/post-training.d.ts +3518 -0
  186. package/dist/types/packages/sdk/src/post-training.d.ts.map +1 -0
  187. package/dist/types/packages/sdk/src/profile-evaluation-discovery.d.ts +1127 -0
  188. package/dist/types/packages/sdk/src/profile-evaluation-discovery.d.ts.map +1 -0
  189. package/dist/types/packages/sdk/src/profile-external-dataset-package.d.ts +1369 -0
  190. package/dist/types/packages/sdk/src/profile-external-dataset-package.d.ts.map +1 -0
  191. package/dist/types/packages/sdk/src/taskset-authored-contracts.d.ts +142 -22
  192. package/dist/types/packages/sdk/src/taskset-authored-contracts.d.ts.map +1 -1
  193. package/dist/types/packages/sdk/src/taskset-authored-files.d.ts +111 -18
  194. package/dist/types/packages/sdk/src/taskset-authored-files.d.ts.map +1 -1
  195. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts +278 -38
  196. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts.map +1 -1
  197. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts +661 -103
  198. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts.map +1 -1
  199. package/dist/types/packages/sdk/src/taskset-draft-core.d.ts +217 -20
  200. package/dist/types/packages/sdk/src/taskset-draft-core.d.ts.map +1 -1
  201. package/dist/types/packages/sdk/src/taskset-draft-dataset-artifacts.d.ts +12 -12
  202. package/dist/types/packages/sdk/src/taskset-draft-dataset-sources.d.ts +17 -17
  203. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts +140 -20
  204. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts.map +1 -1
  205. package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts +638 -42
  206. package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts.map +1 -1
  207. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts +249 -36
  208. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts.map +1 -1
  209. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts +278 -38
  210. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts.map +1 -1
  211. package/dist/types/packages/sdk/src/taskset-drafts.d.ts +1 -0
  212. package/dist/types/packages/sdk/src/taskset-drafts.d.ts.map +1 -1
  213. package/dist/types/packages/sdk/src/taskset-package-client.d.ts +2805 -41
  214. package/dist/types/packages/sdk/src/taskset-package-client.d.ts.map +1 -1
  215. package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts +660 -12
  216. package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts.map +1 -1
  217. package/dist/types/packages/sdk/src/taskset-package-grader-projection.d.ts +77 -3
  218. package/dist/types/packages/sdk/src/taskset-package-grader-projection.d.ts.map +1 -1
  219. package/dist/types/packages/sdk/src/taskset-package-learning.d.ts +29 -11
  220. package/dist/types/packages/sdk/src/taskset-package-learning.d.ts.map +1 -1
  221. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts +430 -39
  222. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts.map +1 -1
  223. package/dist/types/packages/sdk/src/training-acceptance.d.ts +10 -10
  224. package/dist/types/packages/sdk/src/training-candidate-decisions.d.ts +2 -2
  225. package/dist/types/packages/sdk/src/training-evaluation-results.d.ts +1 -1
  226. package/dist/types/packages/sdk/src/training-learning-batch.d.ts +376 -42
  227. package/dist/types/packages/sdk/src/training-learning-batch.d.ts.map +1 -1
  228. package/dist/types/packages/sdk/src/training-preparations.d.ts +3930 -0
  229. package/dist/types/packages/sdk/src/training-preparations.d.ts.map +1 -1
  230. package/dist/types/packages/sdk/src/training-project-client.d.ts +828 -8
  231. package/dist/types/packages/sdk/src/training-project-client.d.ts.map +1 -1
  232. package/dist/types/packages/sdk/src/training-project-contracts.d.ts +1226 -11
  233. package/dist/types/packages/sdk/src/training-project-contracts.d.ts.map +1 -1
  234. package/dist/types/packages/sdk/src/training.d.ts +2655 -24
  235. package/dist/types/packages/sdk/src/training.d.ts.map +1 -1
  236. package/package.json +30 -2
  237. package/dist/chunk-4HZORGK3.js.map +0 -7
  238. package/dist/chunk-4JRSH2TT.js +0 -256
  239. package/dist/chunk-4JRSH2TT.js.map +0 -7
  240. package/dist/chunk-BGXWHDYM.js.map +0 -7
  241. package/dist/chunk-JCPLAIZL.js.map +0 -7
  242. package/dist/chunk-KYCQ7LZ4.js.map +0 -7
  243. package/dist/chunk-LGEF4S5I.js.map +0 -7
  244. package/dist/chunk-WOPM32SE.js.map +0 -7
  245. package/dist/chunk-XMKEFQ62.js.map +0 -7
  246. package/dist/chunk-Y4NGWGTA.js.map +0 -7
  247. package/dist/chunk-YYJ4T4U4.js.map +0 -7
  248. package/dist/types/packages/sdk/src/experiment-history.d.ts +0 -266
  249. package/dist/types/packages/sdk/src/experiment-history.d.ts.map +0 -1
  250. /package/dist/{chunk-DT7FRNIZ.js.map → chunk-CSWVE3E6.js.map} +0 -0
  251. /package/dist/{chunk-6D4JIOOC.js.map → chunk-IXBSFJCX.js.map} +0 -0
  252. /package/dist/{chunk-3HV3G6DG.js.map → chunk-NHCGOFQW.js.map} +0 -0
  253. /package/dist/{chunk-32H2EJRA.js.map → chunk-R3M6BIOK.js.map} +0 -0
package/README.md CHANGED
@@ -14,28 +14,29 @@ npm install openpond-sdk
14
14
 
15
15
  Node.js 22.14 or newer is required. This package is server-only: never expose an OpenPond API key in browser code or a `NEXT_PUBLIC_*` environment variable.
16
16
 
17
- ## Saved Experiments
18
-
19
- `OpenPondExperimentsClient` from `openpond-sdk/experiments` saves immutable named
20
- configuration revisions and starts separate executions. It is also available as
21
- `createOpenPondClient({ apiKey, baseUrl }).experiments(teamId)`. Saving does not
22
- start compute. Supply stable operation IDs for save and Start, and reuse them
23
- after transport failures. A new Start operation creates another execution from
24
- the exact definition reference; configuration updates require `expectedRevision`.
25
-
26
- `get` and `list` read saved configurations; `result` reads portable retained
27
- execution evidence. `compare` verifies both retained results and uses the shared
28
- Evals compatibility and score-eligibility rules without starting or regrading
29
- anything. Execution status and cancellation use `OpenPondModelTasksetRunsClient`.
30
- Host runtime readiness, permissions and whole-execution budgets remain enforced
31
- on Start. Unsupported runtime configurations fail admission before dispatch.
17
+ ## Experiments
18
+
19
+ `OpenPondExperimentsClient` from `openpond-sdk/experiments` admits one run and its
20
+ immutable configuration with `run(configuration)`. It is also available as
21
+ `createOpenPondClient({ apiKey, baseUrl }).experiments(teamId)`. The request includes
22
+ one stable operation ID (also on its nested request), dataset/population,
23
+ target/settings, selected graders and spending cap. Reuse the same operation ID
24
+ after a transport failure; it returns the same Experiment without duplicate work.
25
+
26
+ `get` and `list` return runs with their resolved `configuration`; each run ID is
27
+ its Experiment ID. `cancel` stops it. `duplicate(id, newOperationId)` starts a new
28
+ Experiment with copied settings; edit the snapshot and call `run` to change them.
29
+ Original results remain immutable. `result` reads portable evidence; `score`
30
+ grades retained output. `compare` uses shared Evals compatibility and score rules
31
+ without starting or regrading anything. Host runtime readiness, permissions and
32
+ the whole Experiment spending cap remain enforced before dispatch.
32
33
 
33
34
  Released Profile, Workflow, Skill and Agent-action targets use the
34
35
  `hosted_harness` policy with an exact `profileRepositoryId`, native `source`,
35
36
  `packageHash` and `modelConfigurationHash`. The host resolves these pins through
36
37
  the authorized native runtime; callers cannot replace released behavior with
37
- Chat messages. Native receipt IDs belong to each execution, while the saved
38
- definition retains the same task/seed population. Clients verify repository,
38
+ Chat messages. Native receipt IDs belong to each Experiment; admission retains the
39
+ reviewed task/seed population. Clients verify repository,
39
40
  source, package, model and case identities before accepting a run.
40
41
 
41
42
  ## Next.js route handler
@@ -0,0 +1,42 @@
1
+ import {
2
+ AdvancedRefinerEvaluationAccountingSchema,
3
+ AdvancedRefinerEvaluationCommandSchema,
4
+ AdvancedRefinerEvaluationOptionsSchema,
5
+ AdvancedRefinerEvaluationPinSchema,
6
+ AdvancedRefinerEvaluationPrepareSchema,
7
+ AdvancedRefinerEvaluationSetupCommandSchema,
8
+ AdvancedRefinerEvaluationStartSchema,
9
+ AdvancedRefinerReviewCaseReceiptSchema,
10
+ AdvancedRefinerReviewReceiptSchema,
11
+ OpenPondAdvancedRefinerEvaluationClient,
12
+ sealAdvancedRefinerEvaluationPin,
13
+ sealAdvancedRefinerReviewReceipt,
14
+ verifyAdvancedRefinerEvaluationPin
15
+ } from "./chunk-ZVJU5CJ5.js";
16
+ import "./chunk-GDJRGRHA.js";
17
+ import "./chunk-YCQVVFE5.js";
18
+ import "./chunk-SVU4RZ4K.js";
19
+ import "./chunk-T4APHDES.js";
20
+ import "./chunk-2NSNBED7.js";
21
+ import "./chunk-WX22WN33.js";
22
+ import "./chunk-2JKV5OJO.js";
23
+ import "./chunk-TCHAWJMB.js";
24
+ import "./chunk-3KXDH6OB.js";
25
+ import "./chunk-I2MBVOVX.js";
26
+ import "./chunk-QUOW6URQ.js";
27
+ export {
28
+ AdvancedRefinerEvaluationAccountingSchema,
29
+ AdvancedRefinerEvaluationCommandSchema,
30
+ AdvancedRefinerEvaluationOptionsSchema,
31
+ AdvancedRefinerEvaluationPinSchema,
32
+ AdvancedRefinerEvaluationPrepareSchema,
33
+ AdvancedRefinerEvaluationSetupCommandSchema,
34
+ AdvancedRefinerEvaluationStartSchema,
35
+ AdvancedRefinerReviewCaseReceiptSchema,
36
+ AdvancedRefinerReviewReceiptSchema,
37
+ OpenPondAdvancedRefinerEvaluationClient,
38
+ sealAdvancedRefinerEvaluationPin,
39
+ sealAdvancedRefinerReviewReceipt,
40
+ verifyAdvancedRefinerEvaluationPin
41
+ };
42
+ //# sourceMappingURL=advanced-refiner-evaluations.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,25 @@
1
+ import {
2
+ CandidateEvaluationControlSchema,
3
+ CandidateEvaluationOptionSchema,
4
+ CandidateEvaluationOptionsSchema,
5
+ CandidateEvaluationPreparationSchema,
6
+ CandidateEvaluationRequestSchema,
7
+ createCandidateEvaluationClient
8
+ } from "./chunk-7Q7I6FAT.js";
9
+ import "./chunk-XEUOJ5WF.js";
10
+ import "./chunk-2NSNBED7.js";
11
+ import "./chunk-WX22WN33.js";
12
+ import "./chunk-2JKV5OJO.js";
13
+ import "./chunk-TCHAWJMB.js";
14
+ import "./chunk-3KXDH6OB.js";
15
+ import "./chunk-I2MBVOVX.js";
16
+ import "./chunk-QUOW6URQ.js";
17
+ export {
18
+ CandidateEvaluationControlSchema,
19
+ CandidateEvaluationOptionSchema,
20
+ CandidateEvaluationOptionsSchema,
21
+ CandidateEvaluationPreparationSchema,
22
+ CandidateEvaluationRequestSchema,
23
+ createCandidateEvaluationClient
24
+ };
25
+ //# sourceMappingURL=candidate-evaluations.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -8,20 +8,46 @@ import {
8
8
  contentHash
9
9
  } from "./chunk-QUOW6URQ.js";
10
10
 
11
+ // src/claude-code-runtime.ts
12
+ import { z } from "zod";
13
+ var Hash = z.string().regex(/^[a-f0-9]{64}$/);
14
+ var ClaudeCodeRuntimeSchema = z.object({ providerId: z.literal("claude-code"), configurationHash: Hash, executableHash: Hash, version: z.string().regex(/^2\.\d+\.\d+$/), capabilityHash: Hash, maximumRequestCostUsd: z.number().finite().positive().max(1e4), requestTimeoutMs: z.number().int().min(1e3).max(3e5), maximumTurns: z.number().int().min(1).max(100), holdOpen: z.boolean() }).strict();
15
+ var ClaudeCodeControlSchema = z.object({ id: z.string().min(1).max(200), receiptId: z.string().min(1).max(200), sessionId: z.uuid(), operationId: z.string().min(1).max(200), action: z.enum(["message", "seal"]), text: z.string().max(262144).optional() }).strict().superRefine((value, context) => {
16
+ if (value.action === "message" && !value.text?.trim()) context.addIssue({ code: "custom", message: "A human intervention requires a message." });
17
+ if (value.action === "seal" && value.text !== void 0) context.addIssue({ code: "custom", message: "Sealing does not add a prompt." });
18
+ });
19
+ var ClaudeProcessEvidenceSchema = z.object({
20
+ provider: z.literal("claude-code"),
21
+ sessionId: z.uuid(),
22
+ requestId: z.string().min(1).max(200),
23
+ modelId: z.string().min(1).max(500),
24
+ runtime: ClaudeCodeRuntimeSchema,
25
+ sourceHash: Hash,
26
+ outputHash: Hash,
27
+ traceHash: Hash,
28
+ runtimeEventRefs: z.array(z.string().min(1).max(200)).min(1).max(2e4),
29
+ eventCount: z.number().int().positive().max(2e4),
30
+ startedAt: z.iso.datetime(),
31
+ completedAt: z.iso.datetime(),
32
+ cleanupComplete: z.literal(true)
33
+ }).strict().superRefine((value, context) => {
34
+ if (value.runtimeEventRefs.length !== value.eventCount || new Set(value.runtimeEventRefs).size !== value.eventCount) context.addIssue({ code: "custom", message: "Process event references must match the exact retained trace population." });
35
+ });
36
+
11
37
  // src/model-starter-attempts.ts
12
- import { z as z3 } from "zod";
38
+ import { z as z4 } from "zod";
13
39
 
14
40
  // src/evaluation-project-context.ts
15
- import { z } from "zod";
16
- var EvaluationProjectContextSchema = z.object({
17
- id: z.string().trim().min(1).max(240),
18
- revision: z.number().int().positive(),
19
- contentHash: z.string().regex(/^[a-f0-9]{64}$/),
20
- targetId: z.string().trim().min(1).max(240).nullable()
41
+ import { z as z2 } from "zod";
42
+ var EvaluationProjectContextSchema = z2.object({
43
+ id: z2.string().trim().min(1).max(240),
44
+ revision: z2.number().int().positive(),
45
+ contentHash: z2.string().regex(/^[a-f0-9]{64}$/),
46
+ targetId: z2.string().trim().min(1).max(240).nullable()
21
47
  }).strict();
22
- var EvaluationMessagesSchema = z.array(z.object({
23
- role: z.enum(["system", "user", "assistant"]),
24
- content: z.string().max(1e5)
48
+ var EvaluationMessagesSchema = z2.array(z2.object({
49
+ role: z2.enum(["system", "user", "assistant"]),
50
+ content: z2.string().max(1e5)
25
51
  }).strict()).max(100).superRefine((messages, context) => {
26
52
  if (messages.reduce((total, message) => total + message.content.length, 0) > 1e5)
27
53
  context.addIssue({ code: "custom", message: "Evaluation prompt exceeds 100,000 characters." });
@@ -33,18 +59,18 @@ import { TaskGradeSchema as TaskGradeSchema2 } from "@openpond/evals/graders";
33
59
  import { TaskSplitSchema } from "@openpond/evals/tasksets";
34
60
 
35
61
  // src/experiment-grading-contracts.ts
36
- import { z as z2 } from "zod";
62
+ import { z as z3 } from "zod";
37
63
  import { TaskGradeSchema } from "@openpond/evals/graders";
38
- var ExperimentAttemptGradeSchema = z2.object({
39
- schemaVersion: z2.literal("openpond.experimentAttemptGrade.v1"),
40
- selectionHash: z2.string().regex(/^[a-f0-9]{64}$/),
41
- grades: z2.array(TaskGradeSchema).min(1).max(100),
42
- score: z2.number().min(0).max(1).nullable(),
43
- passed: z2.boolean(),
44
- rewardEligible: z2.boolean(),
45
- gradingStatus: z2.enum(["scored", "unscorable", "not_configured"]),
64
+ var ExperimentAttemptGradeSchema = z3.object({
65
+ schemaVersion: z3.literal("openpond.experimentAttemptGrade.v1"),
66
+ selectionHash: z3.string().regex(/^[a-f0-9]{64}$/),
67
+ grades: z3.array(TaskGradeSchema).min(1).max(100),
68
+ score: z3.number().min(0).max(1).nullable(),
69
+ passed: z3.boolean(),
70
+ rewardEligible: z3.boolean(),
71
+ gradingStatus: z3.enum(["scored", "pending", "unscorable", "not_configured"]),
46
72
  failureClass: FailureClassSchema.nullable(),
47
- contentHash: z2.string().regex(/^[a-f0-9]{64}$/)
73
+ contentHash: z3.string().regex(/^[a-f0-9]{64}$/)
48
74
  }).strict().superRefine((grade, context) => {
49
75
  const { contentHash: actual, ...body } = grade;
50
76
  if (contentHash(body) !== actual) context.addIssue({ code: "custom", message: "Experiment grading integrity failed." });
@@ -62,71 +88,78 @@ var ExperimentAttemptGradeSchema = z2.object({
62
88
  });
63
89
 
64
90
  // src/model-starter-attempts.ts
65
- var IdSchema = z3.string().trim().min(1).max(200);
66
- var HashSchema = z3.string().regex(/^[a-f0-9]{64}$/);
67
- var ModelStarterAttemptPolicySchema = z3.discriminatedUnion("kind", [
68
- z3.object({ kind: z3.literal("hosted_chat"), modelId: IdSchema, messages: EvaluationMessagesSchema.optional(), maxOutputTokens: z3.number().int().min(1).max(4096).default(1024), temperature: z3.number().min(0).max(2).default(0), topP: z3.number().gt(0).max(1).default(1) }).strict(),
69
- z3.object({ kind: z3.literal("fixture"), fixtureId: IdSchema }).strict()
91
+ import { StandaloneHarnessExperimentSourceSchema, NativeHarnessExperimentEvidenceSchema } from "@openpond/evals/experiments";
92
+ var IdSchema = z4.string().trim().min(1).max(200);
93
+ var HashSchema = z4.string().regex(/^[a-f0-9]{64}$/);
94
+ var ModelStarterAttemptPolicySchema = z4.discriminatedUnion("kind", [
95
+ z4.object({ kind: z4.literal("hosted_chat"), modelId: IdSchema, localRuntime: z4.union([z4.object({ providerId: z4.literal("custom-openai-compatible"), configurationHash: HashSchema, maximumRequestCostUsd: z4.number().finite().positive().max(1e4), requestTimeoutMs: z4.number().int().min(1e3).max(3e5) }).strict(), ClaudeCodeRuntimeSchema]).optional(), candidate: z4.object({ artifactId: IdSchema, contentHash: HashSchema, preparationId: IdSchema, dispatchId: IdSchema, baseProfileId: IdSchema, workerImageDigest: z4.string().regex(/^sha256:[a-f0-9]{64}$/) }).strict().optional(), harness: StandaloneHarnessExperimentSourceSchema.optional(), messages: EvaluationMessagesSchema.optional(), maxOutputTokens: z4.number().int().min(1).max(4096).default(1024), temperature: z4.number().min(0).max(2).default(0), topP: z4.number().gt(0).max(1).default(1) }).strict(),
96
+ z4.object({ kind: z4.literal("fixture"), fixtureId: IdSchema }).strict()
70
97
  ]);
71
- var ModelStarterAttemptRequestSchema = z3.object({
72
- schemaVersion: z3.literal("openpond.modelStarterAttemptRequest.v1"),
98
+ var ModelStarterAttemptRequestSchema = z4.object({
99
+ schemaVersion: z4.literal("openpond.modelStarterAttemptRequest.v1"),
73
100
  operationId: IdSchema,
74
101
  teamId: IdSchema,
75
102
  modelProjectId: IdSchema.nullable(),
76
103
  project: EvaluationProjectContextSchema.optional(),
77
104
  taskset: ModelProjectVersionedRefSchema,
78
105
  taskId: IdSchema,
79
- environmentSeed: z3.number().int().min(0).max(2147483647).default(0),
106
+ environmentSeed: z4.number().int().min(0).max(2147483647).default(0),
80
107
  policy: ModelStarterAttemptPolicySchema
81
108
  }).strict();
82
- var ModelStarterAttemptChoicesQuerySchema = z3.object({ modelProjectId: IdSchema.nullable(), taskset: ModelProjectVersionedRefSchema, afterTaskId: IdSchema.optional(), limit: z3.number().int().min(1).max(100).default(25) }).strict();
83
- var ModelStarterAttemptChoicesSchema = z3.object({
109
+ var ModelStarterAttemptChoicesQuerySchema = z4.object({ modelProjectId: IdSchema.nullable(), taskset: ModelProjectVersionedRefSchema, afterTaskId: IdSchema.optional(), limit: z4.number().int().min(1).max(100).default(25) }).strict();
110
+ var ModelStarterAttemptChoicesSchema = z4.object({
84
111
  modelProjectId: IdSchema.nullable(),
85
112
  taskset: ModelProjectVersionedRefSchema,
86
- available: z3.boolean(),
87
- unavailableReason: z3.string().max(1e3).nullable(),
88
- models: z3.array(z3.object({ id: IdSchema, name: z3.string().max(500) }).strict()).max(200),
89
- tasks: z3.array(z3.object({ id: IdSchema, split: TaskSplitSchema, inputPreview: z3.string().max(500), fixtures: z3.array(z3.object({ id: IdSchema, label: z3.string().max(200) }).strict()).max(1e3) }).strict()).max(100),
113
+ available: z4.boolean(),
114
+ unavailableReason: z4.string().max(1e3).nullable(),
115
+ models: z4.array(z4.object({ id: IdSchema, name: z4.string().max(500) }).strict()).max(200),
116
+ tasks: z4.array(z4.object({ id: IdSchema, split: TaskSplitSchema, inputPreview: z4.string().max(500), fixtures: z4.array(z4.object({ id: IdSchema, label: z4.string().max(200) }).strict()).max(1e3) }).strict()).max(100),
90
117
  nextCursor: IdSchema.nullable()
91
118
  }).strict();
92
- var ModelStarterAttemptSummarySchema = z3.object({
93
- schemaVersion: z3.literal("openpond.modelStarterAttemptSummary.v1"),
119
+ var ModelStarterAttemptSummarySchema = z4.object({
120
+ schemaVersion: z4.literal("openpond.modelStarterAttemptSummary.v1"),
94
121
  id: IdSchema,
95
- revision: z3.number().int().positive(),
122
+ revision: z4.number().int().positive(),
96
123
  request: ModelStarterAttemptRequestSchema,
97
- status: z3.enum(["queued", "running", "cancelling", "completed", "failed", "cancelled"]),
98
- policySnapshot: z3.object({ modelId: IdSchema, provider: IdSchema, upstreamModelId: z3.string().min(1).max(500), configurationHash: HashSchema }).strict().nullable(),
99
- createdAt: z3.iso.datetime(),
100
- startedAt: z3.iso.datetime().nullable(),
101
- completedAt: z3.iso.datetime().nullable(),
102
- cleanupComplete: z3.boolean(),
103
- resultAvailable: z3.boolean(),
104
- score: z3.number().min(0).max(1).nullable(),
105
- gradingStatus: z3.enum(["not_started", "scored", "unscorable", "not_configured"]).default("not_started"),
106
- passed: z3.boolean().nullable(),
107
- outputPreview: z3.string().max(500).nullable(),
108
- error: z3.object({ code: IdSchema, message: z3.string().max(2e3) }).strict().nullable()
124
+ status: z4.enum(["queued", "running", "cancelling", "completed", "failed", "cancelled"]),
125
+ policySnapshot: z4.object({ modelId: IdSchema, provider: IdSchema, upstreamModelId: z4.string().min(1).max(500), configurationHash: HashSchema }).strict().nullable(),
126
+ createdAt: z4.iso.datetime(),
127
+ startedAt: z4.iso.datetime().nullable(),
128
+ completedAt: z4.iso.datetime().nullable(),
129
+ cleanupComplete: z4.boolean(),
130
+ resultAvailable: z4.boolean(),
131
+ score: z4.number().min(0).max(1).nullable(),
132
+ gradingStatus: z4.enum(["not_started", "pending", "scored", "unscorable", "not_configured"]).default("not_started"),
133
+ passed: z4.boolean().nullable(),
134
+ outputPreview: z4.string().max(500).nullable(),
135
+ error: z4.object({ code: IdSchema, message: z4.string().max(2e3) }).strict().nullable()
109
136
  }).strict().superRefine((value, context) => {
110
137
  if (value.request.policy.kind === "fixture" !== (value.policySnapshot === null)) context.addIssue({ code: "custom", path: ["policySnapshot"], message: "Fixture execution must not claim a model identity." });
111
138
  if (value.status === "completed" && (!value.cleanupComplete || !value.resultAvailable || !value.completedAt)) context.addIssue({ code: "custom", message: "Completed attempts require retained results and confirmed cleanup." });
112
139
  });
113
- var ModelStarterAttemptListQuerySchema = z3.object({ modelProjectId: IdSchema, afterId: IdSchema.optional(), limit: z3.number().int().min(1).max(100).default(25) }).strict();
114
- var ModelStarterAttemptPageSchema = z3.object({ items: z3.array(ModelStarterAttemptSummarySchema).max(100), nextCursor: IdSchema.nullable() }).strict();
115
- var ModelStarterAttemptResultSchema = z3.object({
116
- schemaVersion: z3.literal("openpond.modelStarterAttemptResult.v1"),
140
+ var ModelStarterAttemptListQuerySchema = z4.object({ modelProjectId: IdSchema, afterId: IdSchema.optional(), limit: z4.number().int().min(1).max(100).default(25) }).strict();
141
+ var ModelStarterAttemptPageSchema = z4.object({ items: z4.array(ModelStarterAttemptSummarySchema).max(100), nextCursor: IdSchema.nullable() }).strict();
142
+ var ModelStarterAttemptResultSchema = z4.object({
143
+ schemaVersion: z4.literal("openpond.modelStarterAttemptResult.v1"),
117
144
  attempt: ModelStarterAttemptSummarySchema,
118
- output: z3.string().max(1048576).nullable(),
145
+ output: z4.string().max(1048576).nullable(),
119
146
  // Only model-facing messages, never the private environment snapshot.
120
- messages: z3.array(z3.record(z3.string(), z3.unknown())).max(4002),
147
+ messages: z4.array(z4.record(z4.string(), z4.unknown())).max(4002),
121
148
  composition: RewardCompositionSchema.nullable(),
122
149
  // Ordinary Tasksets have no Reward binding. Absence preserves the hash of
123
150
  // already retained v1 results; new producers explicitly return null or a grade.
124
151
  grade: TaskGradeSchema2.nullable().optional(),
125
152
  experimentGrade: ExperimentAttemptGradeSchema.nullable().optional(),
126
- environment: z3.object({ status: z3.enum(["completed", "budget_exhausted", "cancelled", "timed_out", "policy_failure", "environment_failure"]), collected: z3.boolean(), definition: ModelProjectVersionedRefSchema, initialStateHash: HashSchema.nullable(), finalStateHash: HashSchema.nullable(), attemptHash: HashSchema }).strict(),
127
- providerRequestIds: z3.array(IdSchema).max(1001),
153
+ environment: z4.object({ status: z4.enum(["completed", "budget_exhausted", "cancelled", "timed_out", "policy_failure", "environment_failure"]), collected: z4.boolean(), definition: ModelProjectVersionedRefSchema, initialStateHash: HashSchema.nullable(), finalStateHash: HashSchema.nullable(), attemptHash: HashSchema }).strict(),
154
+ native: NativeHarnessExperimentEvidenceSchema.optional(),
155
+ providerRequestIds: z4.array(IdSchema).max(1001),
128
156
  contentHash: HashSchema
129
157
  }).strict().superRefine((value, context) => {
158
+ const source = value.attempt.request.policy.kind === "hosted_chat" ? value.attempt.request.policy.harness : void 0;
159
+ if (Boolean(source) !== Boolean(value.native))
160
+ context.addIssue({ code: "custom", path: ["native"], message: "Standalone Harness results require their exact native evidence." });
161
+ if (value.native && (!source || contentHash(source) !== contentHash(value.native.source) || value.native.modelConfigurationHash !== value.attempt.policySnapshot?.configurationHash || value.environment.initialStateHash !== null || value.environment.finalStateHash !== null || value.environment.status === "completed" && (!value.environment.collected || value.output === null || value.native.partialOutputAvailable || value.native.outputHash !== contentHash(value.output))))
162
+ context.addIssue({ code: "custom", path: ["native"], message: "Native evidence differs from the admitted source, model or output." });
130
163
  if (value.experimentGrade) {
131
164
  if (value.grade || value.composition) context.addIssue({ code: "custom", message: "Selected Experiment grading cannot claim another grade population." });
132
165
  if (!["completed", "failed"].includes(value.attempt.status) || !value.attempt.resultAvailable || value.attempt.score !== value.experimentGrade.score || value.attempt.gradingStatus !== value.experimentGrade.gradingStatus || value.attempt.passed !== (value.experimentGrade.score === null ? null : value.experimentGrade.passed))
@@ -216,7 +249,7 @@ var OpenPondModelStarterAttemptsClient = class {
216
249
  }
217
250
  const value = JSON.parse(text);
218
251
  if (!response.ok) {
219
- const error = z3.object({ code: IdSchema, message: z3.string().max(2e3) }).safeParse(value);
252
+ const error = z4.object({ code: IdSchema, message: z4.string().max(2e3) }).safeParse(value);
220
253
  throw new OpenPondModelStarterAttemptError(response.status, error.success ? error.data.code : "attempt_request_failed", error.success ? error.data.message : "Attempt request failed.");
221
254
  }
222
255
  return value;
@@ -226,6 +259,9 @@ var OpenPondModelStarterAttemptsClient = class {
226
259
  export {
227
260
  EvaluationProjectContextSchema,
228
261
  EvaluationMessagesSchema,
262
+ ClaudeCodeRuntimeSchema,
263
+ ClaudeCodeControlSchema,
264
+ ClaudeProcessEvidenceSchema,
229
265
  ExperimentAttemptGradeSchema,
230
266
  ModelStarterAttemptPolicySchema,
231
267
  ModelStarterAttemptRequestSchema,
@@ -238,4 +274,4 @@ export {
238
274
  OpenPondModelStarterAttemptError,
239
275
  OpenPondModelStarterAttemptsClient
240
276
  };
241
- //# sourceMappingURL=chunk-BGXWHDYM.js.map
277
+ //# sourceMappingURL=chunk-2JKV5OJO.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/claude-code-runtime.ts", "../src/model-starter-attempts.ts", "../src/evaluation-project-context.ts", "../src/experiment-grading-contracts.ts"],
4
+ "sourcesContent": ["import {z} from \"zod\";\nconst Hash=z.string().regex(/^[a-f0-9]{64}$/);\nexport const ClaudeCodeRuntimeSchema=z.object({providerId:z.literal(\"claude-code\"),configurationHash:Hash,executableHash:Hash,version:z.string().regex(/^2\\.\\d+\\.\\d+$/),capabilityHash:Hash,maximumRequestCostUsd:z.number().finite().positive().max(10000),requestTimeoutMs:z.number().int().min(1000).max(300000),maximumTurns:z.number().int().min(1).max(100),holdOpen:z.boolean()}).strict();\nexport type ClaudeCodeRuntime=z.infer<typeof ClaudeCodeRuntimeSchema>;\nexport const ClaudeCodeControlSchema=z.object({id:z.string().min(1).max(200),receiptId:z.string().min(1).max(200),sessionId:z.uuid(),operationId:z.string().min(1).max(200),action:z.enum([\"message\",\"seal\"]),text:z.string().max(262144).optional()}).strict().superRefine((value,context)=>{if(value.action===\"message\"&&!value.text?.trim())context.addIssue({code:\"custom\",message:\"A human intervention requires a message.\"});if(value.action===\"seal\"&&value.text!==undefined)context.addIssue({code:\"custom\",message:\"Sealing does not add a prompt.\"});});\nexport const ClaudeProcessEvidenceSchema=z.object({\n provider:z.literal(\"claude-code\"),sessionId:z.uuid(),requestId:z.string().min(1).max(200),modelId:z.string().min(1).max(500),\n runtime:ClaudeCodeRuntimeSchema,sourceHash:Hash,outputHash:Hash,traceHash:Hash,\n runtimeEventRefs:z.array(z.string().min(1).max(200)).min(1).max(20000),eventCount:z.number().int().positive().max(20000),\n startedAt:z.iso.datetime(),completedAt:z.iso.datetime(),cleanupComplete:z.literal(true),\n}).strict().superRefine((value,context)=>{if(value.runtimeEventRefs.length!==value.eventCount||new Set(value.runtimeEventRefs).size!==value.eventCount)context.addIssue({code:\"custom\",message:\"Process event references must match the exact retained trace population.\"});});\nexport type ClaudeProcessEvidence=z.infer<typeof ClaudeProcessEvidenceSchema>;\n", "import {ClaudeCodeRuntimeSchema} from \"./claude-code-runtime.js\";\nimport { z } from \"zod\";\nimport { EvaluationProjectContextSchema, EvaluationMessagesSchema } from \"./evaluation-project-context.js\";\nexport { EvaluationProjectContextSchema, EvaluationMessagesSchema, type EvaluationProjectContext } from \"./evaluation-project-context.js\";\nimport { RewardCompositionSchema } from \"@openpond/evals/rewards\";\nimport { TaskGradeSchema } from \"@openpond/evals/graders\";\nimport { TaskSplitSchema } from \"@openpond/evals/tasksets\";\nimport { ExperimentAttemptGradeSchema } from \"./experiment-grading-contracts.js\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { canonicalJson, canonicalSha256 } from \"./protocol.js\";\nimport { StandaloneHarnessExperimentSourceSchema, NativeHarnessExperimentEvidenceSchema } from \"@openpond/evals/experiments\";\nimport { contentHash } from \"@openpond/harness\";\n\nconst IdSchema = z.string().trim().min(1).max(200);\nconst HashSchema = z.string().regex(/^[a-f0-9]{64}$/);\nexport const ModelStarterAttemptPolicySchema = z.discriminatedUnion(\"kind\", [\n z.object({ kind: z.literal(\"hosted_chat\"), modelId: IdSchema, localRuntime:z.union([z.object({providerId:z.literal(\"custom-openai-compatible\"),configurationHash:HashSchema,maximumRequestCostUsd:z.number().finite().positive().max(10000),requestTimeoutMs:z.number().int().min(1000).max(300000)}).strict(),ClaudeCodeRuntimeSchema]).optional(), candidate: z.object({ artifactId: IdSchema, contentHash: HashSchema, preparationId: IdSchema, dispatchId: IdSchema, baseProfileId: IdSchema, workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/) }).strict().optional(), harness: StandaloneHarnessExperimentSourceSchema.optional(), messages: EvaluationMessagesSchema.optional(), maxOutputTokens: z.number().int().min(1).max(4_096).default(1_024), temperature: z.number().min(0).max(2).default(0), topP: z.number().gt(0).max(1).default(1) }).strict(),\n z.object({ kind: z.literal(\"fixture\"), fixtureId: IdSchema }).strict(),\n]);\n/** The server resolves task input, private state, verifier and fixture script.\n * A caller can select releases, but cannot submit replacement execution bytes. */\nexport const ModelStarterAttemptRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelStarterAttemptRequest.v1\"),\n operationId: IdSchema, teamId: IdSchema, modelProjectId: IdSchema.nullable(),\n project: EvaluationProjectContextSchema.optional(),\n taskset: ModelProjectVersionedRefSchema, taskId: IdSchema,\n environmentSeed: z.number().int().min(0).max(2_147_483_647).default(0),\n policy: ModelStarterAttemptPolicySchema,\n}).strict();\nexport type ModelStarterAttemptRequest = z.infer<typeof ModelStarterAttemptRequestSchema>;\nexport const ModelStarterAttemptChoicesQuerySchema = z.object({ modelProjectId: IdSchema.nullable(), taskset: ModelProjectVersionedRefSchema, afterTaskId: IdSchema.optional(), limit: z.number().int().min(1).max(100).default(25) }).strict();\nexport const ModelStarterAttemptChoicesSchema = z.object({\n modelProjectId: IdSchema.nullable(), taskset: ModelProjectVersionedRefSchema, available: z.boolean(), unavailableReason: z.string().max(1_000).nullable(),\n models: z.array(z.object({ id: IdSchema, name: z.string().max(500) }).strict()).max(200),\n tasks: z.array(z.object({ id: IdSchema, split: TaskSplitSchema, inputPreview: z.string().max(500), fixtures: z.array(z.object({ id: IdSchema, label: z.string().max(200) }).strict()).max(1_000) }).strict()).max(100),\n nextCursor: IdSchema.nullable(),\n}).strict();\nexport const ModelStarterAttemptSummarySchema = z.object({\n schemaVersion: z.literal(\"openpond.modelStarterAttemptSummary.v1\"),\n id: IdSchema, revision: z.number().int().positive(), request: ModelStarterAttemptRequestSchema,\n status: z.enum([\"queued\", \"running\", \"cancelling\", \"completed\", \"failed\", \"cancelled\"]),\n policySnapshot: z.object({ modelId: IdSchema, provider: IdSchema, upstreamModelId: z.string().min(1).max(500), configurationHash: HashSchema }).strict().nullable(),\n createdAt: z.iso.datetime(), startedAt: z.iso.datetime().nullable(), completedAt: z.iso.datetime().nullable(),\n cleanupComplete: z.boolean(), resultAvailable: z.boolean(), score: z.number().min(0).max(1).nullable(),\n gradingStatus: z.enum([\"not_started\", \"pending\", \"scored\", \"unscorable\", \"not_configured\"]).default(\"not_started\"),\n passed: z.boolean().nullable(), outputPreview: z.string().max(500).nullable(),\n error: z.object({ code: IdSchema, message: z.string().max(2_000) }).strict().nullable(),\n}).strict().superRefine((value, context) => {\n if ((value.request.policy.kind === \"fixture\") !== (value.policySnapshot === null)) context.addIssue({ code: \"custom\", path: [\"policySnapshot\"], message: \"Fixture execution must not claim a model identity.\" });\n if (value.status === \"completed\" && (!value.cleanupComplete || !value.resultAvailable || !value.completedAt)) context.addIssue({ code: \"custom\", message: \"Completed attempts require retained results and confirmed cleanup.\" });\n});\nexport type ModelStarterAttemptSummary = z.infer<typeof ModelStarterAttemptSummarySchema>;\nexport const ModelStarterAttemptListQuerySchema = z.object({ modelProjectId: IdSchema, afterId: IdSchema.optional(), limit: z.number().int().min(1).max(100).default(25) }).strict();\nexport const ModelStarterAttemptPageSchema = z.object({ items: z.array(ModelStarterAttemptSummarySchema).max(100), nextCursor: IdSchema.nullable() }).strict();\nexport const ModelStarterAttemptResultSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelStarterAttemptResult.v1\"),\n attempt: ModelStarterAttemptSummarySchema,\n output: z.string().max(1_048_576).nullable(),\n // Only model-facing messages, never the private environment snapshot.\n messages: z.array(z.record(z.string(), z.unknown())).max(4_002),\n composition: RewardCompositionSchema.nullable(),\n // Ordinary Tasksets have no Reward binding. Absence preserves the hash of\n // already retained v1 results; new producers explicitly return null or a grade.\n grade: TaskGradeSchema.nullable().optional(),\n experimentGrade: ExperimentAttemptGradeSchema.nullable().optional(),\n environment: z.object({ status: z.enum([\"completed\", \"budget_exhausted\", \"cancelled\", \"timed_out\", \"policy_failure\", \"environment_failure\"]), collected: z.boolean(), definition: ModelProjectVersionedRefSchema, initialStateHash: HashSchema.nullable(), finalStateHash: HashSchema.nullable(), attemptHash: HashSchema }).strict(),\n native: NativeHarnessExperimentEvidenceSchema.optional(),\n providerRequestIds: z.array(IdSchema).max(1_001),\n contentHash: HashSchema,\n}).strict().superRefine((value, context) => {\n const source = value.attempt.request.policy.kind === \"hosted_chat\" ? value.attempt.request.policy.harness : undefined;\n if (Boolean(source) !== Boolean(value.native))\n context.addIssue({ code: \"custom\", path: [\"native\"], message: \"Standalone Harness results require their exact native evidence.\" });\n if (value.native && (!source || contentHash(source) !== contentHash(value.native.source)\n || value.native.modelConfigurationHash !== value.attempt.policySnapshot?.configurationHash\n || value.environment.initialStateHash !== null || value.environment.finalStateHash !== null\n || (value.environment.status === \"completed\" && (!value.environment.collected || value.output === null\n || value.native.partialOutputAvailable || value.native.outputHash !== contentHash(value.output)))))\n context.addIssue({ code: \"custom\", path: [\"native\"], message: \"Native evidence differs from the admitted source, model or output.\" });\n if (value.experimentGrade) {\n if (value.grade || value.composition) context.addIssue({ code: \"custom\", message: \"Selected Experiment grading cannot claim another grade population.\" });\n if (![\"completed\", \"failed\"].includes(value.attempt.status) || !value.attempt.resultAvailable || value.attempt.score !== value.experimentGrade.score\n || value.attempt.gradingStatus !== value.experimentGrade.gradingStatus || value.attempt.passed !== (value.experimentGrade.score === null ? null : value.experimentGrade.passed))\n context.addIssue({ code: \"custom\", message: \"Experiment grading differs from its retained attempt summary.\" });\n }\n if (!value.grade) return;\n if (value.composition) context.addIssue({ code: \"custom\", path: [\"grade\"], message: \"An ordinary grade cannot also claim a Reward composition.\" });\n if (![\"completed\", \"failed\"].includes(value.attempt.status) || !value.attempt.resultAvailable || value.attempt.score !== value.grade.score || value.attempt.gradingStatus !== value.grade.gradingStatus || value.attempt.passed !== (value.grade.score === null ? null : value.grade.passed)) context.addIssue({ code: \"custom\", path: [\"grade\"], message: \"Ordinary grade differs from its terminal attempt summary.\" });\n});\nexport type ModelStarterAttemptResult = z.infer<typeof ModelStarterAttemptResultSchema>;\n\nexport class OpenPondModelStarterAttemptError extends Error {\n constructor(readonly status: number, readonly code: string, message: string) { super(message); this.name = \"OpenPondModelStarterAttemptError\"; }\n}\n\nexport class OpenPondModelStarterAttemptsClient {\n readonly #options: { baseUrl: string; apiKey: string; teamId: string; fetch?: typeof globalThis.fetch };\n constructor(options: { baseUrl: string; apiKey: string; teamId: string; fetch?: typeof globalThis.fetch }) {\n const url = new URL(options.baseUrl);\n if (!options.apiKey.trim() || !options.teamId.trim() || ![\"https:\", \"http:\"].includes(url.protocol) || url.username || url.password || url.search || url.hash) throw new Error(\"Starter attempts require an HTTP(S) endpoint and workspace credentials.\");\n this.#options = { ...options, baseUrl: url.toString().replace(/\\/+$/, \"\") };\n }\n async create(value: z.input<typeof ModelStarterAttemptRequestSchema>, options: { signal?: AbortSignal } = {}) {\n const request = ModelStarterAttemptRequestSchema.parse(value);\n if (request.teamId !== this.#options.teamId) throw new Error(\"Attempt belongs to another workspace.\");\n const result = this.#summary(await this.#request(\"\", \"POST\", request, options.signal));\n if (canonicalJson(result.request) !== canonicalJson(request)) throw new OpenPondModelStarterAttemptError(502, \"attempt_request_mismatch\", \"Attempt receipt differs from the submitted request.\");\n return result;\n }\n async get(id: string, options: { signal?: AbortSignal } = {}) { return this.#summary(await this.#request(`/${encodeURIComponent(IdSchema.parse(id))}`, \"GET\", undefined, options.signal), id); }\n async choices(value: z.input<typeof ModelStarterAttemptChoicesQuerySchema>, options: { signal?: AbortSignal } = {}) {\n const query = ModelStarterAttemptChoicesQuerySchema.parse(value);\n const params = new URLSearchParams({ ...(query.modelProjectId ? { modelProjectId: query.modelProjectId } : {}), tasksetId: query.taskset.id, revision: String(query.taskset.revision), contentHash: query.taskset.contentHash, limit: String(query.limit) });\n if (query.afterTaskId) params.set(\"afterTaskId\", query.afterTaskId);\n const result = ModelStarterAttemptChoicesSchema.parse(await this.#request(`/choices?${params}`, \"GET\", undefined, options.signal));\n if (result.modelProjectId !== query.modelProjectId || canonicalJson(result.taskset) !== canonicalJson(query.taskset) || result.tasks.length > query.limit || new Set(result.tasks.map(task => task.id)).size !== result.tasks.length) throw new OpenPondModelStarterAttemptError(502, \"attempt_choices_mismatch\", \"Attempt choices differ from the selected model or Taskset.\");\n return result;\n }\n async cancel(id: string, options: { signal?: AbortSignal } = {}) { return this.#summary(await this.#request(`/${encodeURIComponent(IdSchema.parse(id))}/cancel`, \"POST\", undefined, options.signal), id); }\n async result(id: string, options: { signal?: AbortSignal } = {}) {\n const value = ModelStarterAttemptResultSchema.parse(await this.#request(`/${encodeURIComponent(IdSchema.parse(id))}/result`, \"GET\", undefined, options.signal));\n this.#summary(value.attempt, id);\n const { contentHash, ...content } = value;\n if (!value.attempt.resultAvailable || await canonicalSha256(content) !== contentHash) throw new OpenPondModelStarterAttemptError(502, \"attempt_result_integrity\", \"Attempt result integrity failed.\");\n return value;\n }\n async list(value: z.input<typeof ModelStarterAttemptListQuerySchema>, options: { signal?: AbortSignal } = {}) {\n const query = ModelStarterAttemptListQuerySchema.parse(value);\n const params = new URLSearchParams({ modelProjectId: query.modelProjectId, limit: String(query.limit) });\n if (query.afterId) params.set(\"afterId\", query.afterId);\n const page = ModelStarterAttemptPageSchema.parse(await this.#request(`?${params}`, \"GET\", undefined, options.signal));\n if (page.items.length > query.limit || new Set(page.items.map(item => item.id)).size !== page.items.length || page.items.some(item => this.#summary(item).request.modelProjectId !== query.modelProjectId)) throw new OpenPondModelStarterAttemptError(502, \"attempt_page_mismatch\", \"Attempt page differs from the selected model.\");\n return page;\n }\n #summary(value: unknown, id?: string): ModelStarterAttemptSummary {\n const result = ModelStarterAttemptSummarySchema.parse(value);\n if (result.request.teamId !== this.#options.teamId || (id && result.id !== id)) throw new OpenPondModelStarterAttemptError(502, \"attempt_identity_mismatch\", \"Attempt receipt belongs to another identity or workspace.\");\n return result;\n }\n async #request(path: string, method: string, body: unknown, signal?: AbortSignal): Promise<unknown> {\n const response = await (this.#options.fetch ?? globalThis.fetch)(`${this.#options.baseUrl}/v1/model-starter-attempts${path}`, { method, headers: { Authorization: `Bearer ${this.#options.apiKey}`, \"X-OpenPond-Team-Id\": this.#options.teamId, \"Content-Type\": \"application/json\", Accept: \"application/json\" }, ...(body === undefined ? {} : { body: JSON.stringify(body) }), signal, redirect: \"error\" });\n const reader = response.body?.getReader();\n if (!reader) throw new OpenPondModelStarterAttemptError(response.status, \"attempt_empty_response\", \"Attempt response was empty.\");\n let bytes = 0; let text = \"\"; const decoder = new TextDecoder();\n try {\n while (true) {\n const chunk = await reader.read(); if (chunk.done) break;\n bytes += chunk.value.byteLength;\n if (bytes > 16_777_216) throw new OpenPondModelStarterAttemptError(502, \"attempt_response_too_large\", \"Attempt response exceeded its byte limit.\");\n text += decoder.decode(chunk.value, { stream: true });\n }\n text += decoder.decode();\n } finally { await reader.cancel(); reader.releaseLock(); }\n const value: unknown = JSON.parse(text);\n if (!response.ok) {\n const error = z.object({ code: IdSchema, message: z.string().max(2_000) }).safeParse(value);\n throw new OpenPondModelStarterAttemptError(response.status, error.success ? error.data.code : \"attempt_request_failed\", error.success ? error.data.message : \"Attempt request failed.\");\n }\n return value;\n }\n}\n", "import { z } from \"zod\";\n\n/** The selected Project revision is retained independently of model artifacts.\n * Hosts resolve and authorize this reference before admitting execution. */\nexport const EvaluationProjectContextSchema = z.object({\n id: z.string().trim().min(1).max(240),\n revision: z.number().int().positive(),\n contentHash: z.string().regex(/^[a-f0-9]{64}$/),\n targetId: z.string().trim().min(1).max(240).nullable(),\n}).strict();\nexport type EvaluationProjectContext = z.infer<typeof EvaluationProjectContextSchema>;\n\nexport const EvaluationMessagesSchema = z.array(z.object({\n role: z.enum([\"system\", \"user\", \"assistant\"]),\n content: z.string().max(100_000),\n}).strict()).max(100).superRefine((messages, context) => {\n if (messages.reduce((total, message) => total + message.content.length, 0) > 100_000)\n context.addIssue({ code: \"custom\", message: \"Evaluation prompt exceeds 100,000 characters.\" });\n});\n", "import { z } from \"zod\";\nimport { FailureClassSchema, contentHash } from \"@openpond/harness\";\nimport { TaskGradeSchema } from \"@openpond/evals/graders\";\n\nexport const ExperimentAttemptGradeSchema = z.object({\n schemaVersion: z.literal(\"openpond.experimentAttemptGrade.v1\"), selectionHash: z.string().regex(/^[a-f0-9]{64}$/),\n grades: z.array(TaskGradeSchema).min(1).max(100), score: z.number().min(0).max(1).nullable(),\n passed: z.boolean(), rewardEligible: z.boolean(), gradingStatus: z.enum([\"scored\", \"pending\", \"unscorable\", \"not_configured\"]),\n failureClass: FailureClassSchema.nullable(), contentHash: z.string().regex(/^[a-f0-9]{64}$/),\n}).strict().superRefine((grade, context) => {\n const { contentHash: actual, ...body } = grade;\n if (contentHash(body) !== actual) context.addIssue({ code: \"custom\", message: \"Experiment grading integrity failed.\" });\n const components = grade.grades.flatMap(value => value.components);\n if (components.length !== grade.grades.length || new Set(components.map(component => component.graderId)).size !== components.length)\n context.addIssue({ code: \"custom\", message: \"Each selected criterion requires exactly one distinct grader result.\" });\n for (const item of grade.grades) {\n const { contentHash: itemHash, ...itemBody } = item;\n if (contentHash(itemBody) !== itemHash) context.addIssue({ code: \"custom\", message: \"A retained criterion changed.\" });\n for (const component of item.components) {\n const { contentHash: componentHash, ...componentBody } = component;\n if (contentHash(componentBody) !== componentHash) context.addIssue({ code: \"custom\", message: \"A retained grader result changed.\" });\n }\n }\n});\nexport type ExperimentAttemptGrade = z.infer<typeof ExperimentAttemptGradeSchema>;\n"],
5
+ "mappings": "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",
6
+ "names": ["z", "z", "TaskGradeSchema", "z", "z", "z", "TaskGradeSchema", "contentHash"]
7
+ }
@@ -1,6 +1,7 @@
1
1
  import {
2
+ HarnessExperimentPolicySchema,
2
3
  ModelTasksetRunRequestSchema
3
- } from "./chunk-YYJ4T4U4.js";
4
+ } from "./chunk-WX22WN33.js";
4
5
  import {
5
6
  contentHash
6
7
  } from "./chunk-QUOW6URQ.js";
@@ -52,6 +53,7 @@ function prefix(left, right) {
52
53
  }
53
54
 
54
55
  // src/experiment-contracts.ts
56
+ import { ProfileExternalDatasetBindingSchema } from "@openpond/evals";
55
57
  import { FeedbackKeySchema } from "@openpond/evals/rewards";
56
58
  import { TasksetRunManifestSchema } from "@openpond/evals/metrics";
57
59
  import { z as z2 } from "zod";
@@ -66,6 +68,7 @@ var ExperimentGraderPinSchema = z2.object({
66
68
  id: Id,
67
69
  version: z2.string().min(1).max(200),
68
70
  contentHash: Hash,
71
+ name: z2.string().trim().min(1).max(500).optional(),
69
72
  feedbackKey: FeedbackKeySchema,
70
73
  release: ExperimentDefinitionRefSchema.nullable(),
71
74
  mappings: ExperimentFieldMappingsSchema.optional()
@@ -101,21 +104,31 @@ var ExperimentListQuerySchema = z2.object({
101
104
  projectId: Id.optional(),
102
105
  datasetHash: Hash.optional(),
103
106
  search: z2.string().trim().max(200).optional(),
107
+ status: z2.enum(["queued", "running", "cancelling", "completed", "failed", "cancelled"]).optional(),
104
108
  afterId: Id.optional(),
105
109
  limit: z2.number().int().min(1).max(100).default(30)
106
110
  }).strict();
107
111
  var ExperimentExecutionContextSchema = z2.object({
108
- definition: ExperimentDefinitionRefSchema,
112
+ /** Only historical runs retain a saved-definition reference. */
113
+ definition: ExperimentDefinitionRefSchema.nullable(),
114
+ configurationHash: Hash.optional(),
115
+ admissionRequestHash: Hash.optional(),
116
+ sourceExperimentId: Id.optional(),
109
117
  maximumCostUsd: z2.number().finite().positive().max(1e4),
110
118
  graders: z2.array(ExperimentGraderPinSchema).min(1).max(100)
111
- }).strict();
119
+ }).strict().superRefine((value, context) => {
120
+ if (value.definition === null && (!value.configurationHash || !value.admissionRequestHash))
121
+ context.addIssue({ code: "custom", path: ["configurationHash"], message: "A flat Experiment requires its sealed configuration hash." });
122
+ });
112
123
  var PrepareHarnessExperimentSchema = z2.object({
113
124
  operationId: Id,
114
125
  profileRepositoryId: Id,
115
126
  definitionId: Id,
116
127
  modelId: Id,
117
128
  reasoningEffort: z2.enum(["off", "low", "medium", "high", "xhigh", "max"]).optional(),
118
- maximumCostUsd: z2.number().finite().positive().max(1e4)
129
+ maximumCostUsd: z2.number().finite().positive().max(1e4),
130
+ externalDatasetBinding: ProfileExternalDatasetBindingSchema.optional(),
131
+ sourceCandidate: HarnessExperimentPolicySchema.shape.sourceCandidate
119
132
  }).strict();
120
133
  var PreparedHarnessExperimentSchema = z2.object({
121
134
  request: ModelTasksetRunRequestSchema,
@@ -155,4 +168,4 @@ export {
155
168
  verifyExperimentDefinition,
156
169
  experimentDefinitionRef
157
170
  };
158
- //# sourceMappingURL=chunk-4HZORGK3.js.map
171
+ //# sourceMappingURL=chunk-2NSNBED7.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/experiment-field-mappings.ts", "../src/experiment-contracts.ts"],
4
+ "sourcesContent": ["import { z } from \"zod\";\n\nconst Segment = z.string().min(1).max(200).refine(value => ![\"__proto__\", \"prototype\", \"constructor\"].includes(value), \"Use an ordinary field name.\");\nconst Path = z.array(Segment).min(1).max(20);\nconst Slot = z.enum([\"input\", \"output\", \"expectedOutput\", \"evaluatorContext\"]);\nexport const ExperimentFieldMappingSchema = z.object({\n destination: Slot, path: Path, source: Slot, sourcePath: z.array(Segment).max(20),\n}).strict();\nexport const ExperimentFieldMappingsSchema = z.array(ExperimentFieldMappingSchema).max(100).superRefine((mappings, context) => {\n for (const [index, mapping] of mappings.entries()) {\n if (mappings.slice(0, index).some(previous => previous.destination === mapping.destination\n && (prefix(previous.path, mapping.path) || prefix(mapping.path, previous.path))))\n context.addIssue({ code: \"custom\", path: [index, \"path\"], message: \"Mapped destination paths must not overlap.\" });\n }\n});\nexport type ExperimentFieldMapping = z.infer<typeof ExperimentFieldMappingSchema>;\nexport type ExperimentGradingFields = { input: Record<string, unknown>; output: Record<string, unknown>; expectedOutput: Record<string, unknown> | null; evaluatorContext: Record<string, unknown> | null };\n\n/** Map only grader evidence. The caller must never use this projection as a policy input. */\nexport function mapExperimentGradingFields(fields: ExperimentGradingFields, raw: readonly ExperimentFieldMapping[]): ExperimentGradingFields {\n const mappings = ExperimentFieldMappingsSchema.parse(raw);\n const mapped = structuredClone(fields);\n for (const mapping of mappings) {\n let value: unknown = fields[mapping.source];\n for (const segment of mapping.sourcePath) {\n if (!record(value) || !Object.hasOwn(value, segment)) throw new Error(\"The configured grader source field is unavailable.\");\n value = value[segment];\n }\n if (value === undefined) throw new Error(\"The configured grader source field is unavailable.\");\n let destination = mapped[mapping.destination];\n if (destination === null) mapped[mapping.destination] = destination = {};\n for (const segment of mapping.path.slice(0, -1)) {\n const existing: unknown = Object.hasOwn(destination, segment) ? destination[segment] : undefined;\n if (existing !== undefined && !record(existing)) throw new Error(\"A grader destination path crosses a scalar field.\");\n if (existing === undefined) destination[segment] = {};\n destination = destination[segment] as Record<string, unknown>;\n }\n destination[mapping.path.at(-1)!] = structuredClone(value);\n }\n return mapped;\n}\nfunction record(value: unknown): value is Record<string, unknown> { return value !== null && typeof value === \"object\" && !Array.isArray(value); }\nfunction prefix(left: string[], right: string[]) { return left.length <= right.length && left.every((segment, index) => segment === right[index]); }\n", "import { ProfileExternalDatasetBindingSchema } from \"@openpond/evals\";\nimport { contentHash } from \"@openpond/harness\";\nimport { FeedbackKeySchema } from \"@openpond/evals/rewards\";\nimport { ModelTasksetRunRequestSchema } from \"./model-taskset-runs-contracts.js\";\nimport { TasksetRunManifestSchema } from \"@openpond/evals/metrics\";\nimport { z } from \"zod\";\nimport { ExperimentFieldMappingsSchema } from \"./experiment-field-mappings.js\";\nimport {HarnessExperimentPolicySchema} from \"./harness-experiment-policy.js\";\n\nconst Id = z.string().trim().min(1).max(200);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const ExperimentDefinitionRefSchema = z.object({\n id: Id, revision: z.number().int().positive(), contentHash: Hash,\n}).strict();\nexport const ExperimentGraderPinSchema = z.object({\n id: Id, version: z.string().min(1).max(200), contentHash: Hash,\n name: z.string().trim().min(1).max(500).optional(),\n feedbackKey: FeedbackKeySchema,\n release: ExperimentDefinitionRefSchema.nullable(),\n mappings: ExperimentFieldMappingsSchema.optional(),\n}).strict();\nexport type ExperimentGraderPin = z.infer<typeof ExperimentGraderPinSchema>;\nexport const ExperimentGraderSelectionSchema = z.object({ id: Id, version: z.string().min(1).max(200), contentHash: Hash, mappings: ExperimentFieldMappingsSchema }).strict();\nexport const SaveExperimentSchema = z.object({\n operationId: Id,\n id: Id.optional(), expectedRevision: z.number().int().nonnegative(),\n request: ModelTasksetRunRequestSchema,\n maximumCostUsd: z.number().finite().positive().max(10_000),\n graders: z.array(ExperimentGraderSelectionSchema).min(1).max(100).optional(),\n}).strict().superRefine((value, ctx) => {\n if (!value.request.name) ctx.addIssue({ code: \"custom\", path: [\"request\", \"name\"], message: \"Name this Experiment before saving it.\" });\n if (Boolean(value.id) !== (value.expectedRevision > 0)) ctx.addIssue({ code: \"custom\", path: [\"expectedRevision\"], message: \"An update requires its saved definition revision.\" });\n if (Math.round(value.maximumCostUsd * 1_000_000) < 1) ctx.addIssue({ code: \"custom\", path: [\"maximumCostUsd\"], message: \"The budget must be at least $0.000001.\" });\n if (value.graders && new Set(value.graders.map(grader => grader.id)).size !== value.graders.length) ctx.addIssue({ code: \"custom\", path: [\"graders\"], message: \"Select each grader once.\" });\n});\nconst DefinitionContent = z.object({\n schemaVersion: z.literal(\"openpond.experimentDefinition.v1\"),\n id: Id, teamId: Id, revision: z.number().int().positive(),\n request: ModelTasksetRunRequestSchema,\n maximumCostUsd: z.number().finite().positive().max(10_000),\n graders: z.array(ExperimentGraderPinSchema).min(1).max(100),\n createdAt: z.iso.datetime(), updatedAt: z.iso.datetime(),\n}).strict();\nexport const ExperimentDefinitionSchema = DefinitionContent.extend({ contentHash: Hash });\nexport type ExperimentDefinition = z.infer<typeof ExperimentDefinitionSchema>;\nexport type ExperimentDefinitionRef = z.infer<typeof ExperimentDefinitionRefSchema>;\nexport const StartExperimentSchema = z.object({ operationId: Id, definition: ExperimentDefinitionRefSchema }).strict();\nexport const ExperimentListQuerySchema = z.object({\n projectId: Id.optional(), datasetHash: Hash.optional(), search: z.string().trim().max(200).optional(),\n status: z.enum([\"queued\", \"running\", \"cancelling\", \"completed\", \"failed\", \"cancelled\"]).optional(),\n afterId: Id.optional(), limit: z.number().int().min(1).max(100).default(30),\n}).strict();\nexport const ExperimentExecutionContextSchema = z.object({\n /** Only historical runs retain a saved-definition reference. */\n definition: ExperimentDefinitionRefSchema.nullable(),\n configurationHash: Hash.optional(), admissionRequestHash: Hash.optional(), sourceExperimentId: Id.optional(),\n maximumCostUsd: z.number().finite().positive().max(10_000),\n graders: z.array(ExperimentGraderPinSchema).min(1).max(100),\n}).strict().superRefine((value, context) => {\n if (value.definition === null && (!value.configurationHash || !value.admissionRequestHash))\n context.addIssue({code:\"custom\",path:[\"configurationHash\"],message:\"A flat Experiment requires its sealed configuration hash.\"});\n});\nexport type ExperimentExecutionContext = z.infer<typeof ExperimentExecutionContextSchema>;\n\nexport const PrepareHarnessExperimentSchema = z.object({\n operationId: Id, profileRepositoryId: Id, definitionId: Id, modelId: Id,\n reasoningEffort: z.enum([\"off\", \"low\", \"medium\", \"high\", \"xhigh\", \"max\"]).optional(),\n maximumCostUsd: z.number().finite().positive().max(10_000),\n externalDatasetBinding: ProfileExternalDatasetBindingSchema.optional(),\n sourceCandidate:HarnessExperimentPolicySchema.shape.sourceCandidate,\n}).strict();\nexport const PreparedHarnessExperimentSchema = z.object({\n request: ModelTasksetRunRequestSchema, manifest: TasksetRunManifestSchema,\n maximumCostUsd: z.number().finite().positive().max(10_000),\n graders: z.array(ExperimentGraderPinSchema).min(1).max(100),\n}).strict();\n\nexport function verifyExperimentDefinition(value: unknown): ExperimentDefinition {\n const parsed = ExperimentDefinitionSchema.parse(value);\n const { contentHash: actual, ...content } = parsed;\n if (actual !== contentHash(content) || parsed.request.teamId !== parsed.teamId || !parsed.request.name)\n throw new Error(\"Experiment definition differs from its immutable content.\");\n if (new Set(parsed.graders.map(item => item.feedbackKey)).size !== parsed.graders.length)\n throw new Error(\"Experiment feedback keys must be distinct.\");\n return parsed;\n}\n\nexport const experimentDefinitionRef = (value: ExperimentDefinition): ExperimentDefinitionRef => ({\n id: value.id, revision: value.revision, contentHash: value.contentHash,\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["z", "z"]
7
+ }