openpond-sdk 0.12.2 → 0.12.4

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 (384) hide show
  1. package/dist/actions-local.js +2 -1
  2. package/dist/actions-local.js.map +1 -7
  3. package/dist/actions.js +2 -1
  4. package/dist/actions.js.map +1 -7
  5. package/dist/advanced-refiner-evaluations.js +13 -12
  6. package/dist/advanced-refiner-evaluations.js.map +1 -7
  7. package/dist/candidate-evaluations.js +9 -8
  8. package/dist/candidate-evaluations.js.map +1 -7
  9. package/dist/{chunk-MLFKQ7E7.js → chunk-24N6A6SF.js} +4 -4
  10. package/dist/chunk-24N6A6SF.js.map +1 -0
  11. package/dist/{chunk-YCQVVFE5.js → chunk-3B5KSH3V.js} +2 -2
  12. package/dist/chunk-3B5KSH3V.js.map +1 -0
  13. package/dist/{chunk-2DMYAJLS.js → chunk-3DWPLYFJ.js} +2 -2
  14. package/dist/chunk-3DWPLYFJ.js.map +1 -0
  15. package/dist/{chunk-B7VYE7YQ.js → chunk-53LLNDXF.js} +3 -3
  16. package/dist/chunk-53LLNDXF.js.map +1 -0
  17. package/dist/{chunk-VSRTJDVB.js → chunk-B5XTGEBE.js} +25 -13
  18. package/dist/chunk-B5XTGEBE.js.map +1 -0
  19. package/dist/{chunk-HKWX624G.js → chunk-BVMR5OFW.js} +5 -5
  20. package/dist/chunk-BVMR5OFW.js.map +1 -0
  21. package/dist/{chunk-3KXDH6OB.js → chunk-CL3IOOVL.js} +1 -1
  22. package/dist/chunk-CL3IOOVL.js.map +1 -0
  23. package/dist/chunk-CMWZZZGW.js +255 -0
  24. package/dist/chunk-CMWZZZGW.js.map +1 -0
  25. package/dist/{chunk-VOL3WES2.js → chunk-DF2QXVZ3.js} +14 -169
  26. package/dist/chunk-DF2QXVZ3.js.map +1 -0
  27. package/dist/{chunk-AG5DDL7T.js → chunk-DH6O4JFB.js} +2 -2
  28. package/dist/chunk-DH6O4JFB.js.map +1 -0
  29. package/dist/{chunk-7GYXC2AI.js → chunk-EFUT3XKW.js} +4 -4
  30. package/dist/chunk-EFUT3XKW.js.map +1 -0
  31. package/dist/{chunk-DBRRQASP.js → chunk-ETX25FTB.js} +3 -3
  32. package/dist/chunk-ETX25FTB.js.map +1 -0
  33. package/dist/{chunk-MEKWESBF.js → chunk-FBZTDDRC.js} +2 -2
  34. package/dist/chunk-FBZTDDRC.js.map +1 -0
  35. package/dist/{chunk-7AZDNZP6.js → chunk-GAIDBPFY.js} +353 -90
  36. package/dist/chunk-GAIDBPFY.js.map +1 -0
  37. package/dist/{chunk-YVUIHH6Z.js → chunk-GPQLBVQC.js} +1 -1
  38. package/dist/chunk-GPQLBVQC.js.map +1 -0
  39. package/dist/{chunk-KAE7AMYE.js → chunk-H3367ISL.js} +2 -2
  40. package/dist/chunk-H3367ISL.js.map +1 -0
  41. package/dist/{chunk-COPVBJPL.js → chunk-H3JZ3P5T.js} +2 -1
  42. package/dist/chunk-H3JZ3P5T.js.map +1 -0
  43. package/dist/{chunk-3LP7DNLQ.js → chunk-H4NTJFEE.js} +2 -2
  44. package/dist/chunk-H4NTJFEE.js.map +1 -0
  45. package/dist/{chunk-TCHAWJMB.js → chunk-HGXVOFCL.js} +2 -2
  46. package/dist/chunk-HGXVOFCL.js.map +1 -0
  47. package/dist/{chunk-CEZEVILU.js → chunk-HJ2AIAKX.js} +1 -1
  48. package/dist/chunk-HJ2AIAKX.js.map +1 -0
  49. package/dist/{chunk-ENLQCKY6.js → chunk-I54WQBXL.js} +8 -8
  50. package/dist/chunk-I54WQBXL.js.map +1 -0
  51. package/dist/{chunk-AV5JV26B.js → chunk-K5LWSWV7.js} +4 -4
  52. package/dist/chunk-K5LWSWV7.js.map +1 -0
  53. package/dist/{chunk-IWT6JUZD.js → chunk-L6EJX2VQ.js} +2 -2
  54. package/dist/chunk-L6EJX2VQ.js.map +1 -0
  55. package/dist/{chunk-WVISXXIL.js → chunk-LHX7ENKZ.js} +3 -3
  56. package/dist/chunk-LHX7ENKZ.js.map +1 -0
  57. package/dist/{chunk-WNH4DOEC.js → chunk-LR5CTOC5.js} +30 -299
  58. package/dist/chunk-LR5CTOC5.js.map +1 -0
  59. package/dist/chunk-MO4HAJZG.js +8709 -0
  60. package/dist/chunk-MO4HAJZG.js.map +1 -0
  61. package/dist/{chunk-T4APHDES.js → chunk-O6FKHAWN.js} +1 -1
  62. package/dist/chunk-O6FKHAWN.js.map +1 -0
  63. package/dist/{chunk-O5ARJVT5.js → chunk-OR3TMIJN.js} +5 -5
  64. package/dist/chunk-OR3TMIJN.js.map +1 -0
  65. package/dist/{chunk-P27DQ65Z.js → chunk-OVGDDKO2.js} +1 -1
  66. package/dist/chunk-OVGDDKO2.js.map +1 -0
  67. package/dist/{chunk-O4GE6VTR.js → chunk-PWW5QKZS.js} +2 -2
  68. package/dist/chunk-PWW5QKZS.js.map +1 -0
  69. package/dist/{chunk-DUKW3R7O.js → chunk-Q4TKI2MV.js} +2 -2
  70. package/dist/chunk-Q4TKI2MV.js.map +1 -0
  71. package/dist/{chunk-L5PQPAU6.js → chunk-QRS7Y3EM.js} +7 -3
  72. package/dist/chunk-QRS7Y3EM.js.map +1 -0
  73. package/dist/{chunk-YVFERCUC.js → chunk-RRKRA237.js} +83 -5
  74. package/dist/chunk-RRKRA237.js.map +1 -0
  75. package/dist/{chunk-2U54EOXJ.js → chunk-TK3DXH7A.js} +1 -1
  76. package/dist/chunk-TK3DXH7A.js.map +1 -0
  77. package/dist/{chunk-CK3ONRRC.js → chunk-U7XWIOSB.js} +3 -3
  78. package/dist/chunk-U7XWIOSB.js.map +1 -0
  79. package/dist/{chunk-DG5CRENU.js → chunk-VHGC44HA.js} +5 -5
  80. package/dist/chunk-VHGC44HA.js.map +1 -0
  81. package/dist/{chunk-7WUJBFCH.js → chunk-VN5V2E2S.js} +24 -5
  82. package/dist/chunk-VN5V2E2S.js.map +1 -0
  83. package/dist/{chunk-YSKUXQ2N.js → chunk-WMIKJGXW.js} +3 -3
  84. package/dist/chunk-WMIKJGXW.js.map +1 -0
  85. package/dist/{chunk-ROBAX5TN.js → chunk-WQFU635Q.js} +8 -6
  86. package/dist/chunk-WQFU635Q.js.map +1 -0
  87. package/dist/{chunk-D4WTE6ZA.js → chunk-XON75UFN.js} +3 -3
  88. package/dist/chunk-XON75UFN.js.map +1 -0
  89. package/dist/chunk-YLJ4XMA6.js +35 -0
  90. package/dist/chunk-YLJ4XMA6.js.map +1 -0
  91. package/dist/{chunk-K3JCP4FO.js → chunk-Z252BNAZ.js} +1 -1
  92. package/dist/chunk-Z252BNAZ.js.map +1 -0
  93. package/dist/{chunk-OEPYLZXK.js → chunk-ZHQK3MOM.js} +4 -4
  94. package/dist/chunk-ZHQK3MOM.js.map +1 -0
  95. package/dist/{chunk-6Q4I33CH.js → chunk-ZIFZFP5I.js} +5 -5
  96. package/dist/chunk-ZIFZFP5I.js.map +1 -0
  97. package/dist/connected-evidence.js +22 -21
  98. package/dist/connected-evidence.js.map +1 -7
  99. package/dist/dataset-commerce.js +2 -0
  100. package/dist/dataset-commerce.js.map +1 -7
  101. package/dist/dataset-marketplace.js +2 -0
  102. package/dist/dataset-marketplace.js.map +1 -7
  103. package/dist/dataset-workspaces.js +25 -23
  104. package/dist/dataset-workspaces.js.map +1 -7
  105. package/dist/experiment-evaluation-schedules.js +28 -27
  106. package/dist/experiment-evaluation-schedules.js.map +1 -7
  107. package/dist/experiment-improvements.js +12 -11
  108. package/dist/experiment-improvements.js.map +1 -7
  109. package/dist/experiments.js +31 -26
  110. package/dist/experiments.js.map +1 -7
  111. package/dist/human-review.js +3 -2
  112. package/dist/human-review.js.map +1 -7
  113. package/dist/index.js +98 -50
  114. package/dist/index.js.map +1 -7
  115. package/dist/learning.js +4 -3
  116. package/dist/learning.js.map +1 -7
  117. package/dist/model-batch-review.js +2 -1
  118. package/dist/model-batch-review.js.map +1 -7
  119. package/dist/model-projects.js +3 -2
  120. package/dist/model-projects.js.map +1 -7
  121. package/dist/model-starter-attempts.js +5 -4
  122. package/dist/model-starter-attempts.js.map +1 -7
  123. package/dist/model-starter-catalog.js +15 -14
  124. package/dist/model-starter-catalog.js.map +1 -7
  125. package/dist/model-starters.js +15 -14
  126. package/dist/model-starters.js.map +1 -7
  127. package/dist/model-taskset-authoring.js +2 -1
  128. package/dist/model-taskset-authoring.js.map +1 -7
  129. package/dist/model-taskset-runs.js +6 -5
  130. package/dist/model-taskset-runs.js.map +1 -7
  131. package/dist/post-training.js +9 -8
  132. package/dist/post-training.js.map +1 -7
  133. package/dist/profile-actions.js +3 -2
  134. package/dist/profile-actions.js.map +1 -7
  135. package/dist/project-actions.js +3 -2
  136. package/dist/project-actions.js.map +1 -7
  137. package/dist/refiner.js +3 -2
  138. package/dist/refiner.js.map +1 -7
  139. package/dist/taskset-catalog.js +2 -1
  140. package/dist/taskset-catalog.js.map +1 -7
  141. package/dist/taskset-drafts.js +27 -26
  142. package/dist/taskset-drafts.js.map +1 -7
  143. package/dist/taskset-packages.js +29 -26
  144. package/dist/taskset-packages.js.map +1 -7
  145. package/dist/training-bundle.js +195 -34
  146. package/dist/training-bundle.js.map +1 -7
  147. package/dist/training-projects.js +2 -1
  148. package/dist/training-projects.js.map +1 -7
  149. package/dist/training.js +17 -10
  150. package/dist/training.js.map +1 -7
  151. package/dist/types/packages/cloud/src/api/core.d.ts.map +1 -1
  152. package/dist/types/packages/cloud/src/sandbox/client-handles.d.ts.map +1 -1
  153. package/dist/types/packages/cloud/src/sandbox/client.d.ts.map +1 -1
  154. package/dist/types/packages/cloud/src/sandbox/sandbox-instance-client.d.ts.map +1 -1
  155. package/dist/types/packages/cloud/src/sandbox/types/runtime-profiles.d.ts.map +1 -1
  156. package/dist/types/packages/sdk/src/advanced-refiner-evaluations.d.ts +487 -487
  157. package/dist/types/packages/sdk/src/advanced-refiner-evaluations.d.ts.map +1 -1
  158. package/dist/types/packages/sdk/src/candidate-evaluation-client.d.ts +381 -348
  159. package/dist/types/packages/sdk/src/candidate-evaluation-client.d.ts.map +1 -1
  160. package/dist/types/packages/sdk/src/candidate-evaluations.d.ts +86 -54
  161. package/dist/types/packages/sdk/src/candidate-evaluations.d.ts.map +1 -1
  162. package/dist/types/packages/sdk/src/connected-collection-status.d.ts +5 -5
  163. package/dist/types/packages/sdk/src/connected-dataset-source.d.ts +10 -10
  164. package/dist/types/packages/sdk/src/connected-evidence-client.d.ts +464 -460
  165. package/dist/types/packages/sdk/src/connected-evidence-client.d.ts.map +1 -1
  166. package/dist/types/packages/sdk/src/connected-evidence-contracts.d.ts +23 -23
  167. package/dist/types/packages/sdk/src/connected-recorded-execution.d.ts +77 -74
  168. package/dist/types/packages/sdk/src/connected-recorded-execution.d.ts.map +1 -1
  169. package/dist/types/packages/sdk/src/connected-sync.d.ts +30 -30
  170. package/dist/types/packages/sdk/src/connected-sync.d.ts.map +1 -1
  171. package/dist/types/packages/sdk/src/dataset-commerce-contracts.d.ts +14 -14
  172. package/dist/types/packages/sdk/src/dataset-commerce-files.d.ts +5 -5
  173. package/dist/types/packages/sdk/src/dataset-commerce-files.d.ts.map +1 -1
  174. package/dist/types/packages/sdk/src/dataset-commerce-responses.d.ts +82 -82
  175. package/dist/types/packages/sdk/src/dataset-commerce.d.ts +58 -58
  176. package/dist/types/packages/sdk/src/dataset-commerce.d.ts.map +1 -1
  177. package/dist/types/packages/sdk/src/dataset-marketplace.d.ts +4 -4
  178. package/dist/types/packages/sdk/src/dataset-marketplace.d.ts.map +1 -1
  179. package/dist/types/packages/sdk/src/dataset-population.d.ts +10 -10
  180. package/dist/types/packages/sdk/src/dataset-population.d.ts.map +1 -1
  181. package/dist/types/packages/sdk/src/dataset-preparation-authoring-contracts.d.ts +172 -172
  182. package/dist/types/packages/sdk/src/dataset-preparation-client.d.ts +47 -47
  183. package/dist/types/packages/sdk/src/dataset-preparation-client.d.ts.map +1 -1
  184. package/dist/types/packages/sdk/src/dataset-preparation-contracts.d.ts +90 -90
  185. package/dist/types/packages/sdk/src/dataset-preparation-qualification-contracts.d.ts +7 -7
  186. package/dist/types/packages/sdk/src/dataset-preparation-research-contracts.d.ts +26 -26
  187. package/dist/types/packages/sdk/src/dataset-preparation-starting-state.d.ts +8 -8
  188. package/dist/types/packages/sdk/src/dataset-preparation-workspace.d.ts +111 -110
  189. package/dist/types/packages/sdk/src/dataset-preparation-workspace.d.ts.map +1 -1
  190. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts +896 -889
  191. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts.map +1 -1
  192. package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts +225 -223
  193. package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts.map +1 -1
  194. package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts +226 -224
  195. package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts.map +1 -1
  196. package/dist/types/packages/sdk/src/evaluation-coordination-http.d.ts.map +1 -1
  197. package/dist/types/packages/sdk/src/evaluation-project-context.d.ts +1 -1
  198. package/dist/types/packages/sdk/src/experiment-client.d.ts +2090 -1969
  199. package/dist/types/packages/sdk/src/experiment-client.d.ts.map +1 -1
  200. package/dist/types/packages/sdk/src/experiment-contracts.d.ts +177 -113
  201. package/dist/types/packages/sdk/src/experiment-contracts.d.ts.map +1 -1
  202. package/dist/types/packages/sdk/src/experiment-evaluation-schedules.d.ts +597 -505
  203. package/dist/types/packages/sdk/src/experiment-evaluation-schedules.d.ts.map +1 -1
  204. package/dist/types/packages/sdk/src/experiment-execution-selection.d.ts +5 -5
  205. package/dist/types/packages/sdk/src/experiment-execution-selection.d.ts.map +1 -1
  206. package/dist/types/packages/sdk/src/experiment-field-mappings.d.ts +8 -8
  207. package/dist/types/packages/sdk/src/experiment-grading-contracts.d.ts +16 -16
  208. package/dist/types/packages/sdk/src/experiment-improvement-client.d.ts +2524 -2524
  209. package/dist/types/packages/sdk/src/experiment-improvement-client.d.ts.map +1 -1
  210. package/dist/types/packages/sdk/src/experiment-improvement-contracts.d.ts +1557 -1557
  211. package/dist/types/packages/sdk/src/experiment-improvement-hosted-adoption.d.ts +150 -150
  212. package/dist/types/packages/sdk/src/experiment-inspection.d.ts.map +1 -1
  213. package/dist/types/packages/sdk/src/experiment-run-contracts.d.ts +41 -25
  214. package/dist/types/packages/sdk/src/experiment-run-contracts.d.ts.map +1 -1
  215. package/dist/types/packages/sdk/src/experiment-run-details.d.ts +315 -240
  216. package/dist/types/packages/sdk/src/experiment-run-details.d.ts.map +1 -1
  217. package/dist/types/packages/sdk/src/experiment-scoring-contracts.d.ts +21 -21
  218. package/dist/types/packages/sdk/src/grader-inspection.d.ts +104 -104
  219. package/dist/types/packages/sdk/src/grader-inspection.d.ts.map +1 -1
  220. package/dist/types/packages/sdk/src/harness-experiment-policy.d.ts +50 -20
  221. package/dist/types/packages/sdk/src/harness-experiment-policy.d.ts.map +1 -1
  222. package/dist/types/packages/sdk/src/human-review-client.d.ts +288 -288
  223. package/dist/types/packages/sdk/src/human-review-client.d.ts.map +1 -1
  224. package/dist/types/packages/sdk/src/index.d.ts.map +1 -1
  225. package/dist/types/packages/sdk/src/learning-batch-assets.d.ts +15 -13
  226. package/dist/types/packages/sdk/src/learning-batch-assets.d.ts.map +1 -1
  227. package/dist/types/packages/sdk/src/learning-client.d.ts +5 -5
  228. package/dist/types/packages/sdk/src/learning-client.d.ts.map +1 -1
  229. package/dist/types/packages/sdk/src/learning-credentials.d.ts +4 -4
  230. package/dist/types/packages/sdk/src/learning-credentials.d.ts.map +1 -1
  231. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts +71 -69
  232. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts.map +1 -1
  233. package/dist/types/packages/sdk/src/model-batch-review-contracts.d.ts +65 -61
  234. package/dist/types/packages/sdk/src/model-batch-review-contracts.d.ts.map +1 -1
  235. package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts +74 -72
  236. package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts.map +1 -1
  237. package/dist/types/packages/sdk/src/model-batch-review.d.ts +96 -92
  238. package/dist/types/packages/sdk/src/model-batch-review.d.ts.map +1 -1
  239. package/dist/types/packages/sdk/src/model-learning-intent.d.ts +1 -1
  240. package/dist/types/packages/sdk/src/model-learning-policy.d.ts +247 -247
  241. package/dist/types/packages/sdk/src/model-learning-policy.d.ts.map +1 -1
  242. package/dist/types/packages/sdk/src/model-projects.d.ts +324 -324
  243. package/dist/types/packages/sdk/src/model-projects.d.ts.map +1 -1
  244. package/dist/types/packages/sdk/src/model-starter-attempts.d.ts +187 -187
  245. package/dist/types/packages/sdk/src/model-starter-attempts.d.ts.map +1 -1
  246. package/dist/types/packages/sdk/src/model-starter-catalog.d.ts +181 -179
  247. package/dist/types/packages/sdk/src/model-starter-catalog.d.ts.map +1 -1
  248. package/dist/types/packages/sdk/src/model-starter-execution.d.ts +40 -40
  249. package/dist/types/packages/sdk/src/model-starters.d.ts +291 -287
  250. package/dist/types/packages/sdk/src/model-starters.d.ts.map +1 -1
  251. package/dist/types/packages/sdk/src/model-taskset-authoring-contracts.d.ts +3 -3
  252. package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts +114 -112
  253. package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts.map +1 -1
  254. package/dist/types/packages/sdk/src/model-taskset-resources.d.ts +18 -18
  255. package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts +191 -127
  256. package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts.map +1 -1
  257. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts +868 -824
  258. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts.map +1 -1
  259. package/dist/types/packages/sdk/src/post-training.d.ts +448 -372
  260. package/dist/types/packages/sdk/src/post-training.d.ts.map +1 -1
  261. package/dist/types/packages/sdk/src/profile-actions.d.ts.map +1 -1
  262. package/dist/types/packages/sdk/src/profile-evaluation-discovery.d.ts +150 -150
  263. package/dist/types/packages/sdk/src/profile-evaluation-discovery.d.ts.map +1 -1
  264. package/dist/types/packages/sdk/src/profile-external-dataset-package.d.ts +254 -251
  265. package/dist/types/packages/sdk/src/profile-external-dataset-package.d.ts.map +1 -1
  266. package/dist/types/packages/sdk/src/project-actions.d.ts.map +1 -1
  267. package/dist/types/packages/sdk/src/protocol.d.ts.map +1 -1
  268. package/dist/types/packages/sdk/src/run-diagnostics.d.ts +3 -3
  269. package/dist/types/packages/sdk/src/task-design-contracts.d.ts +50 -50
  270. package/dist/types/packages/sdk/src/task-inventory.d.ts +4 -4
  271. package/dist/types/packages/sdk/src/task-inventory.d.ts.map +1 -1
  272. package/dist/types/packages/sdk/src/taskset-authored-contracts.d.ts +190 -189
  273. package/dist/types/packages/sdk/src/taskset-authored-contracts.d.ts.map +1 -1
  274. package/dist/types/packages/sdk/src/taskset-authored-files.d.ts +149 -148
  275. package/dist/types/packages/sdk/src/taskset-authored-files.d.ts.map +1 -1
  276. package/dist/types/packages/sdk/src/taskset-authored-portable-release.d.ts +15 -6
  277. package/dist/types/packages/sdk/src/taskset-authored-portable-release.d.ts.map +1 -1
  278. package/dist/types/packages/sdk/src/taskset-calibration-fixtures.d.ts +64 -63
  279. package/dist/types/packages/sdk/src/taskset-calibration-fixtures.d.ts.map +1 -1
  280. package/dist/types/packages/sdk/src/taskset-catalog.d.ts.map +1 -1
  281. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts +245 -243
  282. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts.map +1 -1
  283. package/dist/types/packages/sdk/src/taskset-draft-authoring.d.ts.map +1 -1
  284. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts +744 -738
  285. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts.map +1 -1
  286. package/dist/types/packages/sdk/src/taskset-draft-core.d.ts +133 -131
  287. package/dist/types/packages/sdk/src/taskset-draft-core.d.ts.map +1 -1
  288. package/dist/types/packages/sdk/src/taskset-draft-dataset-artifacts.d.ts +80 -80
  289. package/dist/types/packages/sdk/src/taskset-draft-dataset-sources.d.ts +34 -34
  290. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts +119 -117
  291. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts.map +1 -1
  292. package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts +500 -492
  293. package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts.map +1 -1
  294. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts +236 -234
  295. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts.map +1 -1
  296. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts +228 -224
  297. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts.map +1 -1
  298. package/dist/types/packages/sdk/src/taskset-intake.d.ts +1 -1
  299. package/dist/types/packages/sdk/src/taskset-package-client.d.ts +4589 -4577
  300. package/dist/types/packages/sdk/src/taskset-package-client.d.ts.map +1 -1
  301. package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts +2068 -2054
  302. package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts.map +1 -1
  303. package/dist/types/packages/sdk/src/taskset-package-files.d.ts +1 -1
  304. package/dist/types/packages/sdk/src/taskset-package-grader-projection.d.ts +21 -21
  305. package/dist/types/packages/sdk/src/taskset-package-learning.d.ts +88 -86
  306. package/dist/types/packages/sdk/src/taskset-package-learning.d.ts.map +1 -1
  307. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts +387 -383
  308. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts.map +1 -1
  309. package/dist/types/packages/sdk/src/training-acceptance.d.ts +26 -26
  310. package/dist/types/packages/sdk/src/training-acceptance.d.ts.map +1 -1
  311. package/dist/types/packages/sdk/src/training-bundle-contracts.d.ts +18 -10
  312. package/dist/types/packages/sdk/src/training-bundle-contracts.d.ts.map +1 -1
  313. package/dist/types/packages/sdk/src/training-bundle.d.ts +6 -0
  314. package/dist/types/packages/sdk/src/training-bundle.d.ts.map +1 -1
  315. package/dist/types/packages/sdk/src/training-candidate-decisions.d.ts +2 -2
  316. package/dist/types/packages/sdk/src/training-candidate-decisions.d.ts.map +1 -1
  317. package/dist/types/packages/sdk/src/training-evaluation-results.d.ts +3 -3
  318. package/dist/types/packages/sdk/src/training-evaluation-source.d.ts +1 -1
  319. package/dist/types/packages/sdk/src/training-evaluation-source.d.ts.map +1 -1
  320. package/dist/types/packages/sdk/src/training-grading-plan.d.ts.map +1 -1
  321. package/dist/types/packages/sdk/src/training-harness-sources.d.ts +14 -14
  322. package/dist/types/packages/sdk/src/training-harness-sources.d.ts.map +1 -1
  323. package/dist/types/packages/sdk/src/training-learning-batch.d.ts +344 -340
  324. package/dist/types/packages/sdk/src/training-learning-batch.d.ts.map +1 -1
  325. package/dist/types/packages/sdk/src/training-preparations.d.ts +700 -700
  326. package/dist/types/packages/sdk/src/training-preparations.d.ts.map +1 -1
  327. package/dist/types/packages/sdk/src/training-project-client.d.ts +272 -272
  328. package/dist/types/packages/sdk/src/training-project-client.d.ts.map +1 -1
  329. package/dist/types/packages/sdk/src/training-project-contracts.d.ts +161 -161
  330. package/dist/types/packages/sdk/src/training-qualification-preparation.d.ts +368 -0
  331. package/dist/types/packages/sdk/src/training-qualification-preparation.d.ts.map +1 -0
  332. package/dist/types/packages/sdk/src/training.d.ts +1574 -1387
  333. package/dist/types/packages/sdk/src/training.d.ts.map +1 -1
  334. package/dist/types/packages/sdk/src/work.d.ts +4 -0
  335. package/dist/types/packages/sdk/src/work.d.ts.map +1 -1
  336. package/dist/types/packages/sdk/src/workflows.d.ts.map +1 -1
  337. package/dist/workflows.js +3 -2
  338. package/dist/workflows.js.map +1 -7
  339. package/package.json +3 -3
  340. package/dist/chunk-2DMYAJLS.js.map +0 -7
  341. package/dist/chunk-2U54EOXJ.js.map +0 -7
  342. package/dist/chunk-3KXDH6OB.js.map +0 -7
  343. package/dist/chunk-3LP7DNLQ.js.map +0 -7
  344. package/dist/chunk-6Q4I33CH.js.map +0 -7
  345. package/dist/chunk-7AZDNZP6.js.map +0 -7
  346. package/dist/chunk-7GYXC2AI.js.map +0 -7
  347. package/dist/chunk-7WUJBFCH.js.map +0 -7
  348. package/dist/chunk-AG5DDL7T.js.map +0 -7
  349. package/dist/chunk-AV5JV26B.js.map +0 -7
  350. package/dist/chunk-B7VYE7YQ.js.map +0 -7
  351. package/dist/chunk-CEZEVILU.js.map +0 -7
  352. package/dist/chunk-CK3ONRRC.js.map +0 -7
  353. package/dist/chunk-COPVBJPL.js.map +0 -7
  354. package/dist/chunk-D4WTE6ZA.js.map +0 -7
  355. package/dist/chunk-DBRRQASP.js.map +0 -7
  356. package/dist/chunk-DG5CRENU.js.map +0 -7
  357. package/dist/chunk-DUKW3R7O.js.map +0 -7
  358. package/dist/chunk-ENLQCKY6.js.map +0 -7
  359. package/dist/chunk-FHCSDXIA.js +0 -1417
  360. package/dist/chunk-FHCSDXIA.js.map +0 -7
  361. package/dist/chunk-HKWX624G.js.map +0 -7
  362. package/dist/chunk-IWT6JUZD.js.map +0 -7
  363. package/dist/chunk-K3JCP4FO.js.map +0 -7
  364. package/dist/chunk-KAE7AMYE.js.map +0 -7
  365. package/dist/chunk-L5PQPAU6.js.map +0 -7
  366. package/dist/chunk-MEKWESBF.js.map +0 -7
  367. package/dist/chunk-MLFKQ7E7.js.map +0 -7
  368. package/dist/chunk-O4GE6VTR.js.map +0 -7
  369. package/dist/chunk-O5ARJVT5.js.map +0 -7
  370. package/dist/chunk-OEPYLZXK.js.map +0 -7
  371. package/dist/chunk-P27DQ65Z.js.map +0 -7
  372. package/dist/chunk-PGBFI5HC.js +0 -98
  373. package/dist/chunk-PGBFI5HC.js.map +0 -7
  374. package/dist/chunk-ROBAX5TN.js.map +0 -7
  375. package/dist/chunk-T4APHDES.js.map +0 -7
  376. package/dist/chunk-TCHAWJMB.js.map +0 -7
  377. package/dist/chunk-VOL3WES2.js.map +0 -7
  378. package/dist/chunk-VSRTJDVB.js.map +0 -7
  379. package/dist/chunk-WNH4DOEC.js.map +0 -7
  380. package/dist/chunk-WVISXXIL.js.map +0 -7
  381. package/dist/chunk-YCQVVFE5.js.map +0 -7
  382. package/dist/chunk-YSKUXQ2N.js.map +0 -7
  383. package/dist/chunk-YVFERCUC.js.map +0 -7
  384. package/dist/chunk-YVUIHH6Z.js.map +0 -7
@@ -1,45 +1,51 @@
1
1
  import {
2
+ prepareImportedTasksetPackage,
2
3
  projectLearningBatchGraders
3
- } from "./chunk-PGBFI5HC.js";
4
+ } from "./chunk-CMWZZZGW.js";
4
5
  import {
6
+ projectPortableTaskRecord,
5
7
  resolvePortableTasksetRewardExecution
6
- } from "./chunk-ROBAX5TN.js";
8
+ } from "./chunk-WQFU635Q.js";
7
9
  import {
8
10
  TasksetSchema,
9
11
  computeTasksetHash
10
- } from "./chunk-7AZDNZP6.js";
12
+ } from "./chunk-GAIDBPFY.js";
11
13
  import {
12
14
  LearningBatchDatasetSourceRefSchema,
13
- MAX_TASKSET_PACKAGE_BYTES
14
- } from "./chunk-FHCSDXIA.js";
15
- import "./chunk-2U54EOXJ.js";
15
+ MAX_TASKSET_PACKAGE_BYTES,
16
+ decodeTasksetPackageFile,
17
+ validateTasksetPackage
18
+ } from "./chunk-MO4HAJZG.js";
19
+ import "./chunk-TK3DXH7A.js";
16
20
  import {
17
21
  TRAINING_EVALUATION_SOURCE_PATH,
22
+ TrainingCapabilitiesSchema,
18
23
  TrainingEvaluationSourceSchema,
19
24
  assertTrainingEvaluationIsolation,
25
+ deterministicTrainingRewardSource,
20
26
  parseAndVerifyTrainingInputArtifactUpload,
21
27
  parseAndVerifyTrainingJobSubmission,
22
28
  trainingEvaluationSourceRef,
23
29
  trainingInputArtifactUploadHash,
24
30
  trainingJobSubmissionHash
25
- } from "./chunk-YVFERCUC.js";
31
+ } from "./chunk-RRKRA237.js";
26
32
  import {
27
33
  TrainingHandoffOriginSchema
28
- } from "./chunk-OEPYLZXK.js";
29
- import "./chunk-YSKUXQ2N.js";
34
+ } from "./chunk-ZHQK3MOM.js";
35
+ import "./chunk-WMIKJGXW.js";
30
36
  import {
31
37
  HarnessSourceSelectionSchema,
32
38
  createAgentSnapshot,
33
39
  createHarnessRelease,
34
40
  validateHarnessPolicySourcePackage,
35
41
  validateHarnessSourcePackage
36
- } from "./chunk-DUKW3R7O.js";
37
- import "./chunk-KAE7AMYE.js";
38
- import "./chunk-L5PQPAU6.js";
39
- import "./chunk-7WUJBFCH.js";
40
- import "./chunk-CK3ONRRC.js";
41
- import "./chunk-TCHAWJMB.js";
42
- import "./chunk-3KXDH6OB.js";
42
+ } from "./chunk-Q4TKI2MV.js";
43
+ import "./chunk-H3367ISL.js";
44
+ import "./chunk-QRS7Y3EM.js";
45
+ import "./chunk-VN5V2E2S.js";
46
+ import "./chunk-U7XWIOSB.js";
47
+ import "./chunk-HGXVOFCL.js";
48
+ import "./chunk-CL3IOOVL.js";
43
49
  import {
44
50
  ImmutableReleaseRefSchema,
45
51
  ReleaseHashSchema,
@@ -48,10 +54,12 @@ import {
48
54
  canonicalJson,
49
55
  contentHash,
50
56
  sha256
51
- } from "./chunk-COPVBJPL.js";
57
+ } from "./chunk-H3JZ3P5T.js";
58
+ import "./chunk-YLJ4XMA6.js";
52
59
 
53
60
  // src/training-bundle.ts
54
- import { compileBoundGraders } from "@openpond/evals/rewards";
61
+ import { z as z4 } from "zod";
62
+ import { compileBoundGraders as compileBoundGraders2 } from "@openpond/evals/rewards";
55
63
  import { verifyLearningTextAsset as verifyLearningTextAsset3 } from "@openpond/evals/learning";
56
64
 
57
65
  // src/training-bundle-contracts.ts
@@ -106,6 +114,8 @@ var TrainingEngineBindingSchema = z.object({
106
114
  }).strict();
107
115
  var HarnessRunManifestContentSchema = z.object({
108
116
  schemaVersion: z.literal("openpond.harnessRunManifest.v1"),
117
+ executionMode: z.literal("qualification").optional(),
118
+ qualificationSamples: z.number().int().min(1).max(32).optional(),
109
119
  id: ReleaseIdSchema,
110
120
  harnessRelease: ImmutableReleaseRefSchema,
111
121
  datasetRelease: ImmutableReleaseRefSchema,
@@ -139,6 +149,8 @@ var HarnessRunManifestSchema = HarnessRunManifestContentSchema.extend({
139
149
  }).strict();
140
150
  var ResolvedTrainingBundleContentSchema = z.object({
141
151
  schemaVersion: z.literal("openpond.resolvedTrainingBundle.v1"),
152
+ executionMode: z.literal("qualification").optional(),
153
+ qualificationSamples: z.number().int().min(1).max(32).optional(),
142
154
  projection: z.literal("trainer"),
143
155
  harnessRelease: ImmutableReleaseRefSchema,
144
156
  datasetRelease: ImmutableReleaseRefSchema,
@@ -354,6 +366,17 @@ async function prepareManagedTrainingSubmission(raw) {
354
366
  const { project, recipe, taskset, approval } = input;
355
367
  const manifest = HarnessRunManifestSchema.parse(input.manifest);
356
368
  const bundle = ResolvedTrainingBundleManifestSchema.parse(input.bundleManifest);
369
+ const qualification = input.executionMode === "qualification";
370
+ const qualificationGroupSize = manifest.qualificationSamples === void 0 ? null : z2.object({ rollout: z2.object({ groupSize: z2.number().int().min(2).max(32) }).passthrough() }).passthrough().parse(recipe).rollout.groupSize;
371
+ if (manifest.qualificationSamples !== bundle.qualificationSamples || manifest.qualificationSamples !== void 0 && (!qualification || manifest.qualificationSamples > qualificationGroupSize)) {
372
+ throw new Error("Qualification samples must be within the pinned rollout group and cannot be used for training.");
373
+ }
374
+ if (manifest.executionMode !== input.executionMode || bundle.executionMode !== input.executionMode) {
375
+ throw new Error("Managed submission execution mode differs from its immutable bundle.");
376
+ }
377
+ if (qualification && (input.evaluationSource || input.resumeFrom || input.rewardSource.kind !== "deterministic")) {
378
+ throw new Error("Qualification requires the original learner, deterministic rewards, and no evaluation source.");
379
+ }
357
380
  const { contentHash: manifestHash, ...manifestContent } = manifest;
358
381
  const { contentHash: bundleHash, ...bundleContent } = bundle;
359
382
  if (contentHash(manifestContent) !== manifestHash || contentHash(bundleContent) !== bundleHash || manifest.resolvedBundleHash !== bundleHash || contentHash(manifest.harnessRelease) !== contentHash(bundle.harnessRelease) || contentHash(manifest.datasetRelease) !== contentHash(bundle.datasetRelease) || contentHash(manifest.evidenceSets) !== contentHash(bundle.evidenceSetRelease ? [bundle.evidenceSetRelease] : [])) {
@@ -372,14 +395,21 @@ async function prepareManagedTrainingSubmission(raw) {
372
395
  if (input.idempotencyKey !== void 0)
373
396
  z2.string().trim().min(16).max(191).parse(input.idempotencyKey);
374
397
  const files = verifyFiles(bundle, input.files);
375
- const evaluationSource = TrainingEvaluationSourceSchema.parse(input.evaluationSource);
398
+ const evaluationSource = qualification ? null : TrainingEvaluationSourceSchema.parse(input.evaluationSource);
376
399
  const evaluationFile = files.find((file) => file.path === TRAINING_EVALUATION_SOURCE_PATH);
377
- if (!evaluationFile || contentHash(JSON.parse(Buffer.from(evaluationFile.content, "base64").toString("utf8"))) !== contentHash(evaluationSource)) {
400
+ if (evaluationSource && (!evaluationFile || contentHash(JSON.parse(Buffer.from(evaluationFile.content, "base64").toString("utf8"))) !== contentHash(evaluationSource))) {
378
401
  throw new Error("The evaluation source differs from the immutable training bundle.");
379
402
  }
380
- const evaluation = await trainingEvaluationSourceRef(evaluationSource);
403
+ if (qualification && (evaluationFile || files.some((file) => file.path === "dataset/train.json") || !files.some((file) => file.path === "dataset/qualification.json") || !files.some((file) => file.path === "qualification-source.json"))) {
404
+ throw new Error("Qualification requires its dedicated dataset and no training/evaluation datasets.");
405
+ }
406
+ if (!qualification && files.some((file) => file.path === "dataset/qualification.json" || file.path === "qualification-source.json")) {
407
+ throw new Error("Qualification datasets cannot be prepared as training.");
408
+ }
409
+ const evaluation = evaluationSource ? await trainingEvaluationSourceRef(evaluationSource) : null;
381
410
  const payload = {
382
411
  schemaVersion: "openpond.managedRlPortableSubmission.v1",
412
+ ...qualification ? { executionMode: "qualification" } : {},
383
413
  ...input.origin ? { origin: TrainingHandoffOriginSchema.parse(input.origin) } : {},
384
414
  sourceRunRef: `openpond:model-run:${manifest.id}`,
385
415
  name: `OpenPond Managed \xB7 ${project.id}`.slice(0, 191),
@@ -393,8 +423,8 @@ async function prepareManagedTrainingSubmission(raw) {
393
423
  modelImprovementQualification: input.modelImprovementQualification ?? null,
394
424
  recipe,
395
425
  resolvedBundle: { manifest: bundle, files },
396
- validationTasks: evaluationSource.tasks,
397
- validationAssets: evaluationSource.assets
426
+ validationTasks: evaluationSource?.tasks ?? [],
427
+ validationAssets: evaluationSource?.assets ?? []
398
428
  };
399
429
  const artifactContent = {
400
430
  schemaVersion: "openpond.trainingInputArtifactUpload.v2",
@@ -424,18 +454,19 @@ async function prepareManagedTrainingSubmission(raw) {
424
454
  taskset,
425
455
  tasksetRelease: { id: taskset.id, contentHash: taskset.contentHash },
426
456
  dataset: bundle.datasetRelease,
427
- evaluation,
457
+ ...evaluation ? { evaluation } : {},
428
458
  evidenceSets: bundle.evidenceSetRelease ? [bundle.evidenceSetRelease] : []
429
459
  },
430
460
  job: {
431
461
  kind: "policy_optimize",
462
+ ...qualification ? { executionMode: "qualification" } : {},
432
463
  baseModel,
433
464
  recipe,
434
465
  rewardSource: input.rewardSource,
435
466
  resumeFrom: input.resumeFrom
436
467
  },
437
468
  requestedCapabilities: [
438
- { id: "managed_rl.policy.grpo", version: "1", required: true },
469
+ { id: qualification ? "managed_rl.policy.qualification" : "managed_rl.policy.grpo", version: "1", required: true },
439
470
  {
440
471
  id: `managed_rl.rollouts.${manifest.runtimeTarget.placement}`,
441
472
  version: "1",
@@ -734,10 +765,128 @@ function asset(input) {
734
765
  };
735
766
  }
736
767
 
768
+ // src/training-qualification-preparation.ts
769
+ import { createRewardBinding, createRewardRelease, compileBoundGraders } from "@openpond/evals/rewards";
770
+ import { LearningTextAssetSchema, sealLearningContent } from "@openpond/evals/learning";
771
+ async function prepareOrdinaryTasksetQualification(input) {
772
+ const source = validateTasksetPackage(input.package);
773
+ if (source.taskset.tasks.some((task) => task.requiredOutputs?.some((output) => output.submissionMode === "structured_json"))) {
774
+ const capabilities = input.runtimeCapabilities && TrainingCapabilitiesSchema.parse(input.runtimeCapabilities);
775
+ if (!capabilities?.structuredOutputs || Date.parse(capabilities.expiresAt) <= Date.now()) {
776
+ throw new Error("Structured qualification requires a current work.structured-output.v1 runtime capability receipt.");
777
+ }
778
+ }
779
+ if (source.modelResources || source.learningResources || !source.taskset.tasks.length) {
780
+ throw new Error("Qualification requires a nonempty ordinary Taskset package.");
781
+ }
782
+ if (source.taskset.tasks.some((task) => task.privilegedContextRef !== null || task.artifactRefs.some((asset2) => asset2.visibility !== "policy"))) {
783
+ throw new Error("Qualification runtime requires private targets in expectedOutput and policy-only task assets.");
784
+ }
785
+ const rewards = source.taskset.graders.map((grader) => {
786
+ const { id, version, weight: _weight, hardGate: _gate, rewardEligible: _eligible, privileged: _private, taskIds: _tasks, ...implementation } = grader;
787
+ const revision = Number(version);
788
+ if (!Number.isSafeInteger(revision) || revision < 1 || String(revision) !== version || implementation.kind === "model_judge" || implementation.kind === "human") {
789
+ throw new Error("Qualification requires deterministic graders with canonical integer versions.");
790
+ }
791
+ return createRewardRelease({
792
+ schemaVersion: "openpond.rewardRelease.v1",
793
+ id: `qualification-${contentHash({ source: source.contentHash, id }).slice(0, 40)}`,
794
+ revision,
795
+ name: id,
796
+ description: "Exact ordinary package grader for no-update qualification.",
797
+ implementation,
798
+ rawScore: { minimum: 0, maximum: 1 },
799
+ assets: implementation.kind === "custom_verifier" ? [implementation.verifierRef] : []
800
+ });
801
+ });
802
+ const binding = createRewardBinding({
803
+ schemaVersion: "openpond.rewardBinding.v1",
804
+ id: `qualification-${source.contentHash.slice(0, 40)}`,
805
+ revision: 1,
806
+ sources: source.taskset.graders.map((grader, index) => ({
807
+ graderId: grader.id,
808
+ ...grader.taskIds ? { taskIds: grader.taskIds } : {},
809
+ reward: { id: rewards[index].id, revision: rewards[index].revision, contentHash: rewards[index].contentHash },
810
+ role: grader.rewardEligible ? "training" : "evaluation",
811
+ normalization: { kind: "identity" },
812
+ weight: grader.weight,
813
+ required: true,
814
+ hardGate: grader.hardGate,
815
+ privileged: grader.privileged,
816
+ fixtureRefs: []
817
+ })),
818
+ aggregation: "weighted_mean",
819
+ unscorable: "exclude_optional_require_all_required"
820
+ }, rewards);
821
+ if (!binding.sources.some((item) => item.role === "training" && item.weight > 0) || contentHash(compileBoundGraders(binding, rewards)) !== contentHash(source.taskset.graders)) {
822
+ throw new Error("Qualification must preserve an executable positively weighted source grader set.");
823
+ }
824
+ const verifierIds = new Set(rewards.flatMap((reward) => reward.assets.map((asset2) => asset2.id)));
825
+ const verifierAssets = source.files.filter((file) => verifierIds.has(file.asset.id)).map((file) => LearningTextAssetSchema.parse(sealLearningContent({
826
+ schemaVersion: "openpond.learningTextAsset.v1",
827
+ id: file.asset.id,
828
+ revision: 1,
829
+ asset: file.asset,
830
+ text: new TextDecoder("utf-8", { fatal: true }).decode(decodeTasksetPackageFile(file))
831
+ })));
832
+ const { taskset } = prepareImportedTasksetPackage({
833
+ package: source,
834
+ profileId: input.modelProject.id,
835
+ name: source.taskset.id,
836
+ createdAt: input.modelProject.updatedAt
837
+ });
838
+ const taskAssets = new Set(taskset.tasks.filter((task) => task.id === input.qualificationTaskId).flatMap((task) => (task.assets ?? []).map((asset2) => asset2.artifactRef)));
839
+ const tasksetAssetBytes = new Map(source.files.filter((file) => taskAssets.has(file.asset.path)).map((file) => [file.asset.path, decodeTasksetPackageFile(file)]));
840
+ const tasksetRef = { id: source.taskset.id, revision: source.taskset.revision, contentHash: source.taskset.contentHash };
841
+ const rewardExecution = { binding, rewards };
842
+ const bundle = buildTasksetTrainingBundle({
843
+ ...input,
844
+ taskset,
845
+ executionMode: "qualification",
846
+ qualificationSource: source,
847
+ tasksetRelease: { id: tasksetRef.id, contentHash: tasksetRef.contentHash },
848
+ rewardExecution,
849
+ verifierAssets,
850
+ tasksetAssetBytes,
851
+ approval: { approvalHash: input.approval.approvalHash, approvedAt: input.approval.approvedAt, maximumSpendUsd: input.approval.maximumSpendUsd }
852
+ });
853
+ const recipe = input.modelProject.trainingSetup.recipe;
854
+ if (!recipe || recipe.method !== "grpo") throw new Error("Qualification requires a pinned GRPO rollout recipe.");
855
+ const prepared = await prepareManagedTrainingSubmission({
856
+ executionMode: "qualification",
857
+ project: input.modelProject,
858
+ manifest: bundle.manifest,
859
+ bundleManifest: bundle.resolvedBundleManifest,
860
+ taskset: tasksetRef,
861
+ recipe,
862
+ files: [...bundle.assets].map(([path, bytes2]) => ({ ...bundle.resolvedBundleManifest.files.find((file) => file.path === path), encoding: "base64", content: Buffer.from(bytes2).toString("base64") })),
863
+ rewardSource: await deterministicTrainingRewardSource({ graders: source.taskset.graders, rewardExecution }),
864
+ resumeFrom: null,
865
+ approval: { approvalHash: input.approval.approvalHash, maximumSpendUsd: input.approval.maximumSpendUsd, retentionDays: input.approval.retentionDays, region: input.approval.region },
866
+ ...input.idempotencyKey ? { idempotencyKey: input.idempotencyKey } : {}
867
+ });
868
+ return { ...prepared, bundle };
869
+ }
870
+
737
871
  // src/training-bundle.ts
738
872
  function buildTasksetTrainingBundle(input) {
739
873
  const { taskset, modelProject, harnessRelease, tasksetRelease } = input;
740
874
  const setup = modelProject.trainingSetup;
875
+ const qualification = input.executionMode === "qualification";
876
+ const qualificationGroupSize = input.qualificationSamples === void 0 ? null : z4.object({ rollout: z4.object({ groupSize: z4.number().int().min(2).max(32) }).passthrough() }).passthrough().parse(input.modelProject.trainingSetup.recipe).rollout.groupSize;
877
+ if (input.qualificationSamples !== void 0 && (!qualification || !Number.isInteger(input.qualificationSamples) || input.qualificationSamples < 1 || input.qualificationSamples > qualificationGroupSize)) {
878
+ throw new Error("Qualification samples must be within the pinned rollout group and cannot be used for training.");
879
+ }
880
+ if (qualification && input.evaluationSource) throw new Error("Qualification does not consume an independent evaluation source.");
881
+ const qualificationSource = qualification ? validateTasksetPackage(input.qualificationSource) : null;
882
+ if (!qualification && input.qualificationSource) throw new Error("Qualification sources cannot be used for training.");
883
+ if (!qualification && input.qualificationTaskId !== void 0) throw new Error("Qualification selection cannot be used for training.");
884
+ if (qualification && (!input.qualificationTaskId || !taskset.tasks.some((task) => task.id === input.qualificationTaskId))) {
885
+ throw new Error("Qualification requires one explicit task ID from its published source.");
886
+ }
887
+ if (qualificationSource && (qualificationSource.modelResources || qualificationSource.learningResources || contentHash(taskset.tasks.map(projectPortableTaskRecord)) !== contentHash(qualificationSource.taskset.tasks) || releasedRefHash(input.tasksetRelease) !== releasedRefHash(qualificationSource.taskset))) {
888
+ throw new Error("Qualification must preserve its ordinary source release and complete task population.");
889
+ }
741
890
  const releasedHarness = ImmutableReleaseRefSchema.parse(harnessRelease);
742
891
  const releasedTaskset = ImmutableReleaseRefSchema.parse(tasksetRelease);
743
892
  void input.openpondRelease;
@@ -748,7 +897,7 @@ function buildTasksetTrainingBundle(input) {
748
897
  "Taskset authoring state changed after its release was selected."
749
898
  );
750
899
  }
751
- if (!setup.baseModel?.revision || !setup.baseModel.tokenizerRevision || !setup.baseModel.chatTemplateHash || !setup.recipe || !setup.tasksetRef || setup.tasksetRef.id !== taskset.id || setup.tasksetRef.contentHash !== taskset.contentHash) {
900
+ if (!setup.baseModel?.revision || !setup.baseModel.tokenizerRevision || !setup.baseModel.chatTemplateHash || !setup.recipe || !setup.tasksetRef || setup.tasksetRef.id !== (qualification ? tasksetRelease.id : taskset.id) || setup.tasksetRef.contentHash !== (qualification ? tasksetRelease.contentHash : taskset.contentHash)) {
752
901
  throw new Error(
753
902
  "Model Run must bind an exact Taskset, Model revision, tokenizer, chat template, and Recipe."
754
903
  );
@@ -763,6 +912,7 @@ function buildTasksetTrainingBundle(input) {
763
912
  })
764
913
  };
765
914
  const assets = /* @__PURE__ */ new Map();
915
+ if (qualificationSource) addJsonAsset(assets, "qualification-source.json", qualificationSource);
766
916
  if (input.evaluationSource) {
767
917
  const evaluation = TrainingEvaluationSourceSchema.parse(input.evaluationSource);
768
918
  if (contentHash(evaluation.taskset) !== contentHash(setup.evaluationTasksetRef)) {
@@ -770,7 +920,7 @@ function buildTasksetTrainingBundle(input) {
770
920
  }
771
921
  assertTrainingEvaluationIsolation(taskset.tasks.filter((task) => task.split === "train"), evaluation.tasks);
772
922
  assets.set(TRAINING_EVALUATION_SOURCE_PATH, new TextEncoder().encode(canonicalJson(evaluation)));
773
- } else if (setup.evaluationTasksetRef) {
923
+ } else if (!qualification && setup.evaluationTasksetRef) {
774
924
  throw new Error("The prepared Model requires its pinned evaluation source bytes.");
775
925
  }
776
926
  const harnessSource = input.harnessSource ? input.harnessSource.schemaVersion === "openpond.harnessPolicySourcePackage.v1" ? validateHarnessPolicySourcePackage(input.harnessSource, releasedHarness) : validateHarnessSourcePackage(input.harnessSource, releasedHarness) : null;
@@ -794,11 +944,14 @@ function buildTasksetTrainingBundle(input) {
794
944
  sourcePackageHash: harnessSource?.contentHash ?? null
795
945
  }));
796
946
  const rewardExecution = resolvePortableTasksetRewardExecution(taskset, input.rewardExecution);
947
+ if (qualificationSource && (!rewardExecution || contentHash(compileBoundGraders2(rewardExecution.binding, rewardExecution.rewards)) !== contentHash(qualificationSource.taskset.graders) || qualificationSource.taskset.graders.some((grader) => grader.kind === "model_judge" || grader.kind === "human"))) {
948
+ throw new Error("Qualification requires the source package's exact deterministic graders.");
949
+ }
797
950
  if (rewardExecution) {
798
951
  const verifierAssets = input.verifierAssets ?? [];
799
952
  const references = [
800
953
  ...rewardExecution.rewards.flatMap((reward) => reward.assets),
801
- ...compileBoundGraders(rewardExecution.binding, rewardExecution.rewards).flatMap((grader) => grader.kind === "custom_verifier" ? [grader.verifierRef] : grader.kind === "model_judge" ? [grader.rubricRef] : [])
954
+ ...compileBoundGraders2(rewardExecution.binding, rewardExecution.rewards).flatMap((grader) => grader.kind === "custom_verifier" ? [grader.verifierRef] : grader.kind === "model_judge" ? [grader.rubricRef] : [])
802
955
  ];
803
956
  const expected = new Set(references.map((reference) => reference.id));
804
957
  if (new Set(verifierAssets.map((asset2) => asset2.id)).size !== verifierAssets.length || new Set(verifierAssets.map((asset2) => asset2.asset.path)).size !== verifierAssets.length || verifierAssets.some((asset2) => !expected.has(asset2.id))) throw new Error("Unexpected or duplicate private verifier asset.");
@@ -813,7 +966,7 @@ function buildTasksetTrainingBundle(input) {
813
966
  }
814
967
  addJsonAsset(assets, "environment.json", {
815
968
  schemaVersion: "openpond.harnessEnvironment.v1",
816
- environment: taskset.environment,
969
+ environment: qualification ? { ...taskset.environment, metadata: { ...taskset.environment.metadata, policySystemPrompt: taskset.objective } } : taskset.environment,
817
970
  capabilities: taskset.capabilities,
818
971
  policy: taskset.policy,
819
972
  outputContract: taskset.metadata.tasksetOutputContract?.mode === "text" ? null : taskset.metadata.tasksetOutputContract ?? null
@@ -830,11 +983,11 @@ function buildTasksetTrainingBundle(input) {
830
983
  capabilities: taskset.capabilities,
831
984
  connectedAppScopes: taskset.policy.connectedAppScopes
832
985
  });
833
- const trainTasks = taskset.tasks.filter((task) => task.split === "train");
986
+ const trainTasks = qualification ? taskset.tasks.filter((task) => task.id === input.qualificationTaskId) : taskset.tasks.filter((task) => task.split === "train");
834
987
  if (trainTasks.length > 0) {
835
- addJsonAsset(assets, "dataset/train.json", {
836
- schemaVersion: "openpond.datasetSplit.v1",
837
- split: "train",
988
+ addJsonAsset(assets, qualification ? "dataset/qualification.json" : "dataset/train.json", {
989
+ schemaVersion: qualification ? "openpond.qualificationDataset.v1" : "openpond.datasetSplit.v1",
990
+ ...qualification ? { selectedTaskId: input.qualificationTaskId } : { split: "train" },
838
991
  tasks: trainTasks
839
992
  });
840
993
  addTasksetAssets({
@@ -858,7 +1011,7 @@ function buildTasksetTrainingBundle(input) {
858
1011
  taskset: releasedTaskset,
859
1012
  sourceRefs: taskset.sourceRefs,
860
1013
  datasetArtifact: taskset.datasetArtifact ?? null,
861
- trainTasks
1014
+ ...qualification ? { executionMode: "qualification", tasks: trainTasks } : { trainTasks }
862
1015
  })
863
1016
  };
864
1017
  const evidenceSetRelease = approvedSignals.length > 0 ? {
@@ -873,6 +1026,8 @@ function buildTasksetTrainingBundle(input) {
873
1026
  } : null;
874
1027
  const bundleContent = ResolvedTrainingBundleContentSchema.parse({
875
1028
  schemaVersion: "openpond.resolvedTrainingBundle.v1",
1029
+ ...qualification ? { executionMode: "qualification" } : {},
1030
+ ...input.qualificationSamples !== void 0 ? { qualificationSamples: input.qualificationSamples } : {},
876
1031
  projection: "trainer",
877
1032
  harnessRelease: releasedHarness,
878
1033
  datasetRelease,
@@ -889,6 +1044,8 @@ function buildTasksetTrainingBundle(input) {
889
1044
  });
890
1045
  const manifestContent = HarnessRunManifestContentSchema.parse({
891
1046
  schemaVersion: "openpond.harnessRunManifest.v1",
1047
+ ...qualification ? { executionMode: "qualification" } : {},
1048
+ ...input.qualificationSamples !== void 0 ? { qualificationSamples: input.qualificationSamples } : {},
892
1049
  id: `manifest_${input.modelRunId}_${input.approval.approvalHash.slice(0, 16)}`,
893
1050
  harnessRelease,
894
1051
  datasetRelease,
@@ -961,6 +1118,9 @@ function addJsonAsset(assets, assetPath, value) {
961
1118
  function bytes(value) {
962
1119
  return Buffer.from(canonicalJson(value), "utf8");
963
1120
  }
1121
+ function releasedRefHash(value) {
1122
+ return contentHash({ id: value.id, contentHash: value.contentHash });
1123
+ }
964
1124
  export {
965
1125
  AdamwOptimizerConfigSchema,
966
1126
  ComputeTargetBindingSchema,
@@ -976,6 +1136,7 @@ export {
976
1136
  createPolicyHarnessContext,
977
1137
  materializeLearningBatchTaskset,
978
1138
  prepareManagedTrainingSubmission,
1139
+ prepareOrdinaryTasksetQualification,
979
1140
  prepareReviewedLearningBatch,
980
1141
  scanAndRedactEvidence,
981
1142
  withAuthoritativeRecipeHashes