openpond-sdk 0.12.3 → 0.12.5

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 (386) 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-77N3QEIL.js → chunk-25L5IXHA.js} +5 -5
  10. package/dist/chunk-25L5IXHA.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-ZJ3H3VS7.js → chunk-6GQ3GIAP.js} +7 -5
  16. package/dist/chunk-6GQ3GIAP.js.map +1 -0
  17. package/dist/{chunk-36WJTS5V.js → chunk-6KKM2XRR.js} +75 -15
  18. package/dist/chunk-6KKM2XRR.js.map +1 -0
  19. package/dist/{chunk-BSK3VLM3.js → chunk-6MFFKAU6.js} +3 -3
  20. package/dist/chunk-6MFFKAU6.js.map +1 -0
  21. package/dist/{chunk-UPS52OPZ.js → chunk-6Y67YHVH.js} +8 -8
  22. package/dist/chunk-6Y67YHVH.js.map +1 -0
  23. package/dist/{chunk-G6Y6CQYV.js → chunk-AUNNXJQE.js} +4 -4
  24. package/dist/chunk-AUNNXJQE.js.map +1 -0
  25. package/dist/{chunk-XYQD4LDI.js → chunk-BGNPKYBJ.js} +3 -3
  26. package/dist/chunk-BGNPKYBJ.js.map +1 -0
  27. package/dist/{chunk-K5WRVSOL.js → chunk-BJ5MKLWH.js} +8 -8
  28. package/dist/chunk-BJ5MKLWH.js.map +1 -0
  29. package/dist/{chunk-VY5AFE7A.js → chunk-BYNVSWIQ.js} +4 -4
  30. package/dist/chunk-BYNVSWIQ.js.map +1 -0
  31. package/dist/{chunk-TCHAWJMB.js → chunk-CAMLCKSF.js} +3 -3
  32. package/dist/chunk-CAMLCKSF.js.map +1 -0
  33. package/dist/{chunk-3KXDH6OB.js → chunk-CL3IOOVL.js} +1 -1
  34. package/dist/chunk-CL3IOOVL.js.map +1 -0
  35. package/dist/{chunk-CTVKI3BV.js → chunk-DBKCSQVH.js} +3 -3
  36. package/dist/chunk-DBKCSQVH.js.map +1 -0
  37. package/dist/{chunk-AG5DDL7T.js → chunk-DH6O4JFB.js} +2 -2
  38. package/dist/chunk-DH6O4JFB.js.map +1 -0
  39. package/dist/chunk-EJZ7HOIS.js +8709 -0
  40. package/dist/chunk-EJZ7HOIS.js.map +1 -0
  41. package/dist/{chunk-QEIT5VXJ.js → chunk-F4GITADW.js} +4 -4
  42. package/dist/chunk-F4GITADW.js.map +1 -0
  43. package/dist/{chunk-MEKWESBF.js → chunk-FBZTDDRC.js} +2 -2
  44. package/dist/chunk-FBZTDDRC.js.map +1 -0
  45. package/dist/{chunk-FY7NHCEH.js → chunk-FLNWE5ZA.js} +5 -5
  46. package/dist/chunk-FLNWE5ZA.js.map +1 -0
  47. package/dist/{chunk-YVUIHH6Z.js → chunk-GPQLBVQC.js} +1 -1
  48. package/dist/chunk-GPQLBVQC.js.map +1 -0
  49. package/dist/{chunk-YUKV7RCD.js → chunk-GWGDWZVN.js} +5 -5
  50. package/dist/chunk-GWGDWZVN.js.map +1 -0
  51. package/dist/{chunk-KAE7AMYE.js → chunk-H3367ISL.js} +2 -2
  52. package/dist/chunk-H3367ISL.js.map +1 -0
  53. package/dist/{chunk-COPVBJPL.js → chunk-H3JZ3P5T.js} +2 -1
  54. package/dist/chunk-H3JZ3P5T.js.map +1 -0
  55. package/dist/{chunk-3LP7DNLQ.js → chunk-H4NTJFEE.js} +2 -2
  56. package/dist/chunk-H4NTJFEE.js.map +1 -0
  57. package/dist/{chunk-CEZEVILU.js → chunk-HJ2AIAKX.js} +1 -1
  58. package/dist/chunk-HJ2AIAKX.js.map +1 -0
  59. package/dist/{chunk-BFR3VC25.js → chunk-HOOHJCE7.js} +18 -18
  60. package/dist/chunk-HOOHJCE7.js.map +1 -0
  61. package/dist/{chunk-TSMGMA6R.js → chunk-KKL6OICH.js} +3 -3
  62. package/dist/chunk-KKL6OICH.js.map +1 -0
  63. package/dist/{chunk-IWT6JUZD.js → chunk-L6EJX2VQ.js} +2 -2
  64. package/dist/chunk-L6EJX2VQ.js.map +1 -0
  65. package/dist/{chunk-QTJQIHDZ.js → chunk-MJELLVQP.js} +4 -3
  66. package/dist/chunk-MJELLVQP.js.map +1 -0
  67. package/dist/{chunk-CK3ONRRC.js → chunk-O54KGALH.js} +3 -3
  68. package/dist/chunk-O54KGALH.js.map +1 -0
  69. package/dist/{chunk-T4APHDES.js → chunk-O6FKHAWN.js} +1 -1
  70. package/dist/chunk-O6FKHAWN.js.map +1 -0
  71. package/dist/{chunk-P27DQ65Z.js → chunk-OVGDDKO2.js} +1 -1
  72. package/dist/chunk-OVGDDKO2.js.map +1 -0
  73. package/dist/{chunk-O4GE6VTR.js → chunk-PWW5QKZS.js} +2 -2
  74. package/dist/chunk-PWW5QKZS.js.map +1 -0
  75. package/dist/{chunk-DUKW3R7O.js → chunk-Q4TKI2MV.js} +2 -2
  76. package/dist/chunk-Q4TKI2MV.js.map +1 -0
  77. package/dist/{chunk-HKWX624G.js → chunk-QFBSNSUL.js} +5 -5
  78. package/dist/chunk-QFBSNSUL.js.map +1 -0
  79. package/dist/{chunk-MLPPSCDQ.js → chunk-RE426Q7Y.js} +4 -4
  80. package/dist/chunk-RE426Q7Y.js.map +1 -0
  81. package/dist/{chunk-G53MA5XX.js → chunk-T3MFWGMX.js} +3 -3
  82. package/dist/chunk-T3MFWGMX.js.map +1 -0
  83. package/dist/{chunk-2U54EOXJ.js → chunk-TK3DXH7A.js} +1 -1
  84. package/dist/chunk-TK3DXH7A.js.map +1 -0
  85. package/dist/{chunk-6Q4I33CH.js → chunk-VZPNRPXL.js} +5 -5
  86. package/dist/chunk-VZPNRPXL.js.map +1 -0
  87. package/dist/{chunk-ROBAX5TN.js → chunk-WQFU635Q.js} +8 -6
  88. package/dist/chunk-WQFU635Q.js.map +1 -0
  89. package/dist/{chunk-TMUAKJWX.js → chunk-XACJ63U4.js} +14 -5
  90. package/dist/chunk-XACJ63U4.js.map +1 -0
  91. package/dist/chunk-YLJ4XMA6.js +35 -0
  92. package/dist/chunk-YLJ4XMA6.js.map +1 -0
  93. package/dist/{chunk-K3JCP4FO.js → chunk-Z252BNAZ.js} +1 -1
  94. package/dist/chunk-Z252BNAZ.js.map +1 -0
  95. package/dist/{chunk-CWXM57QR.js → chunk-ZFYI4P6C.js} +5 -5
  96. package/dist/chunk-ZFYI4P6C.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 +22 -21
  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 +26 -25
  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 +154 -62
  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 +19 -18
  142. package/dist/taskset-drafts.js.map +1 -7
  143. package/dist/taskset-packages.js +25 -22
  144. package/dist/taskset-packages.js.map +1 -7
  145. package/dist/training-bundle.js +44 -19
  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 +11 -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/hosted-chat.d.ts +28 -0
  153. package/dist/types/packages/cloud/src/hosted-chat.d.ts.map +1 -1
  154. package/dist/types/packages/cloud/src/sandbox/client-handles.d.ts.map +1 -1
  155. package/dist/types/packages/cloud/src/sandbox/client.d.ts.map +1 -1
  156. package/dist/types/packages/cloud/src/sandbox/sandbox-instance-client.d.ts.map +1 -1
  157. package/dist/types/packages/cloud/src/sandbox/types/runtime-profiles.d.ts.map +1 -1
  158. package/dist/types/packages/sdk/src/advanced-refiner-evaluations.d.ts +487 -487
  159. package/dist/types/packages/sdk/src/advanced-refiner-evaluations.d.ts.map +1 -1
  160. package/dist/types/packages/sdk/src/candidate-evaluation-client.d.ts +375 -351
  161. package/dist/types/packages/sdk/src/candidate-evaluation-client.d.ts.map +1 -1
  162. package/dist/types/packages/sdk/src/candidate-evaluations.d.ts +80 -54
  163. package/dist/types/packages/sdk/src/candidate-evaluations.d.ts.map +1 -1
  164. package/dist/types/packages/sdk/src/connected-collection-status.d.ts +5 -5
  165. package/dist/types/packages/sdk/src/connected-dataset-source.d.ts +10 -10
  166. package/dist/types/packages/sdk/src/connected-evidence-client.d.ts +464 -460
  167. package/dist/types/packages/sdk/src/connected-evidence-client.d.ts.map +1 -1
  168. package/dist/types/packages/sdk/src/connected-evidence-contracts.d.ts +23 -23
  169. package/dist/types/packages/sdk/src/connected-recorded-execution.d.ts +77 -74
  170. package/dist/types/packages/sdk/src/connected-recorded-execution.d.ts.map +1 -1
  171. package/dist/types/packages/sdk/src/connected-sync.d.ts +30 -30
  172. package/dist/types/packages/sdk/src/connected-sync.d.ts.map +1 -1
  173. package/dist/types/packages/sdk/src/dataset-commerce-contracts.d.ts +14 -14
  174. package/dist/types/packages/sdk/src/dataset-commerce-files.d.ts +5 -5
  175. package/dist/types/packages/sdk/src/dataset-commerce-files.d.ts.map +1 -1
  176. package/dist/types/packages/sdk/src/dataset-commerce-responses.d.ts +82 -82
  177. package/dist/types/packages/sdk/src/dataset-commerce.d.ts +58 -58
  178. package/dist/types/packages/sdk/src/dataset-commerce.d.ts.map +1 -1
  179. package/dist/types/packages/sdk/src/dataset-marketplace.d.ts +4 -4
  180. package/dist/types/packages/sdk/src/dataset-marketplace.d.ts.map +1 -1
  181. package/dist/types/packages/sdk/src/dataset-population.d.ts +10 -10
  182. package/dist/types/packages/sdk/src/dataset-population.d.ts.map +1 -1
  183. package/dist/types/packages/sdk/src/dataset-preparation-authoring-contracts.d.ts +172 -172
  184. package/dist/types/packages/sdk/src/dataset-preparation-client.d.ts +47 -47
  185. package/dist/types/packages/sdk/src/dataset-preparation-client.d.ts.map +1 -1
  186. package/dist/types/packages/sdk/src/dataset-preparation-contracts.d.ts +90 -90
  187. package/dist/types/packages/sdk/src/dataset-preparation-qualification-contracts.d.ts +7 -7
  188. package/dist/types/packages/sdk/src/dataset-preparation-research-contracts.d.ts +26 -26
  189. package/dist/types/packages/sdk/src/dataset-preparation-starting-state.d.ts +8 -8
  190. package/dist/types/packages/sdk/src/dataset-preparation-workspace.d.ts +111 -110
  191. package/dist/types/packages/sdk/src/dataset-preparation-workspace.d.ts.map +1 -1
  192. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts +896 -889
  193. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts.map +1 -1
  194. package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts +225 -223
  195. package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts.map +1 -1
  196. package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts +226 -224
  197. package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts.map +1 -1
  198. package/dist/types/packages/sdk/src/evaluation-coordination-http.d.ts.map +1 -1
  199. package/dist/types/packages/sdk/src/evaluation-project-context.d.ts +1 -1
  200. package/dist/types/packages/sdk/src/experiment-client.d.ts +2102 -2014
  201. package/dist/types/packages/sdk/src/experiment-client.d.ts.map +1 -1
  202. package/dist/types/packages/sdk/src/experiment-contracts.d.ts +165 -113
  203. package/dist/types/packages/sdk/src/experiment-contracts.d.ts.map +1 -1
  204. package/dist/types/packages/sdk/src/experiment-evaluation-schedules.d.ts +587 -516
  205. package/dist/types/packages/sdk/src/experiment-evaluation-schedules.d.ts.map +1 -1
  206. package/dist/types/packages/sdk/src/experiment-execution-selection.d.ts +5 -5
  207. package/dist/types/packages/sdk/src/experiment-execution-selection.d.ts.map +1 -1
  208. package/dist/types/packages/sdk/src/experiment-field-mappings.d.ts +8 -8
  209. package/dist/types/packages/sdk/src/experiment-grading-contracts.d.ts +16 -16
  210. package/dist/types/packages/sdk/src/experiment-improvement-client.d.ts +2524 -2524
  211. package/dist/types/packages/sdk/src/experiment-improvement-client.d.ts.map +1 -1
  212. package/dist/types/packages/sdk/src/experiment-improvement-contracts.d.ts +1557 -1557
  213. package/dist/types/packages/sdk/src/experiment-improvement-hosted-adoption.d.ts +150 -150
  214. package/dist/types/packages/sdk/src/experiment-inspection.d.ts.map +1 -1
  215. package/dist/types/packages/sdk/src/experiment-run-contracts.d.ts +38 -25
  216. package/dist/types/packages/sdk/src/experiment-run-contracts.d.ts.map +1 -1
  217. package/dist/types/packages/sdk/src/experiment-run-details.d.ts +303 -243
  218. package/dist/types/packages/sdk/src/experiment-run-details.d.ts.map +1 -1
  219. package/dist/types/packages/sdk/src/experiment-scoring-contracts.d.ts +21 -21
  220. package/dist/types/packages/sdk/src/grader-inspection.d.ts +104 -104
  221. package/dist/types/packages/sdk/src/grader-inspection.d.ts.map +1 -1
  222. package/dist/types/packages/sdk/src/harness-experiment-policy.d.ts +33 -20
  223. package/dist/types/packages/sdk/src/harness-experiment-policy.d.ts.map +1 -1
  224. package/dist/types/packages/sdk/src/human-review-client.d.ts +288 -288
  225. package/dist/types/packages/sdk/src/human-review-client.d.ts.map +1 -1
  226. package/dist/types/packages/sdk/src/index.d.ts.map +1 -1
  227. package/dist/types/packages/sdk/src/learning-batch-assets.d.ts +15 -13
  228. package/dist/types/packages/sdk/src/learning-batch-assets.d.ts.map +1 -1
  229. package/dist/types/packages/sdk/src/learning-client.d.ts +5 -5
  230. package/dist/types/packages/sdk/src/learning-client.d.ts.map +1 -1
  231. package/dist/types/packages/sdk/src/learning-credentials.d.ts +4 -4
  232. package/dist/types/packages/sdk/src/learning-credentials.d.ts.map +1 -1
  233. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts +69 -69
  234. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts.map +1 -1
  235. package/dist/types/packages/sdk/src/model-batch-review-contracts.d.ts +65 -61
  236. package/dist/types/packages/sdk/src/model-batch-review-contracts.d.ts.map +1 -1
  237. package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts +74 -72
  238. package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts.map +1 -1
  239. package/dist/types/packages/sdk/src/model-batch-review.d.ts +96 -92
  240. package/dist/types/packages/sdk/src/model-batch-review.d.ts.map +1 -1
  241. package/dist/types/packages/sdk/src/model-bound-taskset-authoring.d.ts.map +1 -1
  242. package/dist/types/packages/sdk/src/model-learning-intent.d.ts +1 -1
  243. package/dist/types/packages/sdk/src/model-learning-policy.d.ts +247 -247
  244. package/dist/types/packages/sdk/src/model-learning-policy.d.ts.map +1 -1
  245. package/dist/types/packages/sdk/src/model-projects.d.ts +342 -322
  246. package/dist/types/packages/sdk/src/model-projects.d.ts.map +1 -1
  247. package/dist/types/packages/sdk/src/model-starter-attempts.d.ts +187 -187
  248. package/dist/types/packages/sdk/src/model-starter-attempts.d.ts.map +1 -1
  249. package/dist/types/packages/sdk/src/model-starter-catalog.d.ts +181 -179
  250. package/dist/types/packages/sdk/src/model-starter-catalog.d.ts.map +1 -1
  251. package/dist/types/packages/sdk/src/model-starter-execution.d.ts +40 -40
  252. package/dist/types/packages/sdk/src/model-starters.d.ts +291 -287
  253. package/dist/types/packages/sdk/src/model-starters.d.ts.map +1 -1
  254. package/dist/types/packages/sdk/src/model-taskset-authoring-contracts.d.ts +3 -3
  255. package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts +114 -112
  256. package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts.map +1 -1
  257. package/dist/types/packages/sdk/src/model-taskset-resources.d.ts +18 -18
  258. package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts +179 -127
  259. package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts.map +1 -1
  260. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts +865 -833
  261. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts.map +1 -1
  262. package/dist/types/packages/sdk/src/post-training.d.ts +444 -375
  263. package/dist/types/packages/sdk/src/post-training.d.ts.map +1 -1
  264. package/dist/types/packages/sdk/src/profile-actions.d.ts.map +1 -1
  265. package/dist/types/packages/sdk/src/profile-evaluation-discovery.d.ts +150 -150
  266. package/dist/types/packages/sdk/src/profile-evaluation-discovery.d.ts.map +1 -1
  267. package/dist/types/packages/sdk/src/profile-external-dataset-package.d.ts +254 -251
  268. package/dist/types/packages/sdk/src/profile-external-dataset-package.d.ts.map +1 -1
  269. package/dist/types/packages/sdk/src/project-actions.d.ts.map +1 -1
  270. package/dist/types/packages/sdk/src/protocol.d.ts.map +1 -1
  271. package/dist/types/packages/sdk/src/run-diagnostics.d.ts +3 -3
  272. package/dist/types/packages/sdk/src/task-design-contracts.d.ts +50 -50
  273. package/dist/types/packages/sdk/src/task-inventory.d.ts +4 -4
  274. package/dist/types/packages/sdk/src/task-inventory.d.ts.map +1 -1
  275. package/dist/types/packages/sdk/src/taskset-authored-contracts.d.ts +190 -189
  276. package/dist/types/packages/sdk/src/taskset-authored-contracts.d.ts.map +1 -1
  277. package/dist/types/packages/sdk/src/taskset-authored-files.d.ts +149 -148
  278. package/dist/types/packages/sdk/src/taskset-authored-files.d.ts.map +1 -1
  279. package/dist/types/packages/sdk/src/taskset-authored-portable-release.d.ts +15 -6
  280. package/dist/types/packages/sdk/src/taskset-authored-portable-release.d.ts.map +1 -1
  281. package/dist/types/packages/sdk/src/taskset-calibration-fixtures.d.ts +64 -63
  282. package/dist/types/packages/sdk/src/taskset-calibration-fixtures.d.ts.map +1 -1
  283. package/dist/types/packages/sdk/src/taskset-catalog.d.ts.map +1 -1
  284. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts +245 -243
  285. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts.map +1 -1
  286. package/dist/types/packages/sdk/src/taskset-draft-authoring.d.ts.map +1 -1
  287. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts +745 -738
  288. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts.map +1 -1
  289. package/dist/types/packages/sdk/src/taskset-draft-core.d.ts +133 -131
  290. package/dist/types/packages/sdk/src/taskset-draft-core.d.ts.map +1 -1
  291. package/dist/types/packages/sdk/src/taskset-draft-dataset-artifacts.d.ts +80 -80
  292. package/dist/types/packages/sdk/src/taskset-draft-dataset-sources.d.ts +34 -34
  293. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts +119 -117
  294. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts.map +1 -1
  295. package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts +500 -492
  296. package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts.map +1 -1
  297. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts +236 -234
  298. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts.map +1 -1
  299. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts +228 -224
  300. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts.map +1 -1
  301. package/dist/types/packages/sdk/src/taskset-intake.d.ts +1 -1
  302. package/dist/types/packages/sdk/src/taskset-package-client.d.ts +4600 -4576
  303. package/dist/types/packages/sdk/src/taskset-package-client.d.ts.map +1 -1
  304. package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts +2068 -2054
  305. package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts.map +1 -1
  306. package/dist/types/packages/sdk/src/taskset-package-files.d.ts +1 -1
  307. package/dist/types/packages/sdk/src/taskset-package-grader-projection.d.ts +21 -21
  308. package/dist/types/packages/sdk/src/taskset-package-learning.d.ts +88 -86
  309. package/dist/types/packages/sdk/src/taskset-package-learning.d.ts.map +1 -1
  310. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts +387 -383
  311. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts.map +1 -1
  312. package/dist/types/packages/sdk/src/training-acceptance.d.ts +26 -26
  313. package/dist/types/packages/sdk/src/training-acceptance.d.ts.map +1 -1
  314. package/dist/types/packages/sdk/src/training-bundle-contracts.d.ts +14 -10
  315. package/dist/types/packages/sdk/src/training-bundle-contracts.d.ts.map +1 -1
  316. package/dist/types/packages/sdk/src/training-bundle.d.ts +2 -0
  317. package/dist/types/packages/sdk/src/training-bundle.d.ts.map +1 -1
  318. package/dist/types/packages/sdk/src/training-candidate-decisions.d.ts +2 -2
  319. package/dist/types/packages/sdk/src/training-candidate-decisions.d.ts.map +1 -1
  320. package/dist/types/packages/sdk/src/training-evaluation-results.d.ts +3 -3
  321. package/dist/types/packages/sdk/src/training-evaluation-source.d.ts +1 -1
  322. package/dist/types/packages/sdk/src/training-evaluation-source.d.ts.map +1 -1
  323. package/dist/types/packages/sdk/src/training-grading-plan.d.ts.map +1 -1
  324. package/dist/types/packages/sdk/src/training-harness-sources.d.ts +14 -14
  325. package/dist/types/packages/sdk/src/training-harness-sources.d.ts.map +1 -1
  326. package/dist/types/packages/sdk/src/training-learning-batch.d.ts +344 -340
  327. package/dist/types/packages/sdk/src/training-learning-batch.d.ts.map +1 -1
  328. package/dist/types/packages/sdk/src/training-preparations.d.ts +700 -700
  329. package/dist/types/packages/sdk/src/training-preparations.d.ts.map +1 -1
  330. package/dist/types/packages/sdk/src/training-project-client.d.ts +272 -272
  331. package/dist/types/packages/sdk/src/training-project-client.d.ts.map +1 -1
  332. package/dist/types/packages/sdk/src/training-project-contracts.d.ts +161 -161
  333. package/dist/types/packages/sdk/src/training-qualification-preparation.d.ts +75 -71
  334. package/dist/types/packages/sdk/src/training-qualification-preparation.d.ts.map +1 -1
  335. package/dist/types/packages/sdk/src/training.d.ts +1442 -1416
  336. package/dist/types/packages/sdk/src/training.d.ts.map +1 -1
  337. package/dist/types/packages/sdk/src/work.d.ts +4 -0
  338. package/dist/types/packages/sdk/src/work.d.ts.map +1 -1
  339. package/dist/types/packages/sdk/src/workflows.d.ts.map +1 -1
  340. package/dist/workflows.js +3 -2
  341. package/dist/workflows.js.map +1 -7
  342. package/package.json +3 -3
  343. package/dist/chunk-2DMYAJLS.js.map +0 -7
  344. package/dist/chunk-2U54EOXJ.js.map +0 -7
  345. package/dist/chunk-36WJTS5V.js.map +0 -7
  346. package/dist/chunk-3KXDH6OB.js.map +0 -7
  347. package/dist/chunk-3LP7DNLQ.js.map +0 -7
  348. package/dist/chunk-6Q4I33CH.js.map +0 -7
  349. package/dist/chunk-77N3QEIL.js.map +0 -7
  350. package/dist/chunk-AG5DDL7T.js.map +0 -7
  351. package/dist/chunk-BFR3VC25.js.map +0 -7
  352. package/dist/chunk-BSK3VLM3.js.map +0 -7
  353. package/dist/chunk-CEZEVILU.js.map +0 -7
  354. package/dist/chunk-CK3ONRRC.js.map +0 -7
  355. package/dist/chunk-COPVBJPL.js.map +0 -7
  356. package/dist/chunk-CTVKI3BV.js.map +0 -7
  357. package/dist/chunk-CWXM57QR.js.map +0 -7
  358. package/dist/chunk-DUKW3R7O.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-FY7NHCEH.js.map +0 -7
  362. package/dist/chunk-G53MA5XX.js.map +0 -7
  363. package/dist/chunk-G6Y6CQYV.js.map +0 -7
  364. package/dist/chunk-HKWX624G.js.map +0 -7
  365. package/dist/chunk-IWT6JUZD.js.map +0 -7
  366. package/dist/chunk-K3JCP4FO.js.map +0 -7
  367. package/dist/chunk-K5WRVSOL.js.map +0 -7
  368. package/dist/chunk-KAE7AMYE.js.map +0 -7
  369. package/dist/chunk-MEKWESBF.js.map +0 -7
  370. package/dist/chunk-MLPPSCDQ.js.map +0 -7
  371. package/dist/chunk-O4GE6VTR.js.map +0 -7
  372. package/dist/chunk-P27DQ65Z.js.map +0 -7
  373. package/dist/chunk-QEIT5VXJ.js.map +0 -7
  374. package/dist/chunk-QTJQIHDZ.js.map +0 -7
  375. package/dist/chunk-ROBAX5TN.js.map +0 -7
  376. package/dist/chunk-T4APHDES.js.map +0 -7
  377. package/dist/chunk-TCHAWJMB.js.map +0 -7
  378. package/dist/chunk-TMUAKJWX.js.map +0 -7
  379. package/dist/chunk-TSMGMA6R.js.map +0 -7
  380. package/dist/chunk-UPS52OPZ.js.map +0 -7
  381. package/dist/chunk-VY5AFE7A.js.map +0 -7
  382. package/dist/chunk-XYQD4LDI.js.map +0 -7
  383. package/dist/chunk-YCQVVFE5.js.map +0 -7
  384. package/dist/chunk-YUKV7RCD.js.map +0 -7
  385. package/dist/chunk-YVUIHH6Z.js.map +0 -7
  386. package/dist/chunk-ZJ3H3VS7.js.map +0 -7
@@ -1,18 +1,19 @@
1
1
  import {
2
2
  decodeTasksetDraftWorkspaceFile,
3
+ isManagedTasksetDraftFilePath,
3
4
  publishTasksetDraft,
4
5
  renderTasksetDraftManifests,
5
6
  validateTasksetDraftWorkspace
6
- } from "./chunk-BFR3VC25.js";
7
+ } from "./chunk-HOOHJCE7.js";
7
8
  import {
8
9
  materializePortableTasksetRelease,
9
10
  portableTasksetEnvironment,
10
11
  projectPortableTaskRecord
11
- } from "./chunk-ROBAX5TN.js";
12
+ } from "./chunk-WQFU635Q.js";
12
13
  import {
13
14
  TasksetSchema,
14
15
  computeTasksetHash
15
- } from "./chunk-CWXM57QR.js";
16
+ } from "./chunk-ZFYI4P6C.js";
16
17
  import {
17
18
  MAX_TASKSET_PACKAGE_BYTES,
18
19
  ModelStarterExecutionSchema,
@@ -25,21 +26,22 @@ import {
25
26
  deriveModelTaskset,
26
27
  modelAuthoredTasksetId,
27
28
  modelStarterExecutionAssetId,
29
+ resolveStructuredOutput,
28
30
  resolveTasksetPackageExecution,
29
31
  resolveTasksetPackageInstructions,
30
32
  validateTasksetPackage
31
- } from "./chunk-FHCSDXIA.js";
33
+ } from "./chunk-EJZ7HOIS.js";
32
34
  import {
33
35
  ModelTasksetAuthoringOwnerSchema,
34
36
  ModelTasksetDraftPreparationSchema,
35
37
  ModelTasksetDraftRequestSchema,
36
38
  TasksetDraftFilePathSchema
37
- } from "./chunk-2U54EOXJ.js";
39
+ } from "./chunk-TK3DXH7A.js";
38
40
  import {
39
41
  ImmutableAssetRefSchema,
40
42
  contentHash,
41
43
  sha256
42
- } from "./chunk-COPVBJPL.js";
44
+ } from "./chunk-H3JZ3P5T.js";
43
45
 
44
46
  // src/model-taskset-authoring.ts
45
47
  import { createVerifierSetRelease } from "@openpond/evals";
@@ -80,8 +82,13 @@ function publishBoundModelTasksetDraftPackage(input) {
80
82
  ...[edited.environment.actionSchemaRef, edited.environment.observationSchemaRef, edited.environment.stateSchemaRef].flatMap((ref) => ref ? [ref.id] : []),
81
83
  ...execution?.assets.map((asset) => asset.id) ?? []
82
84
  ]);
85
+ const referencedIds = /* @__PURE__ */ new Set([...requiredIds, ...edited.taskset.tasks.flatMap((task) => [
86
+ ...task.artifactRefs.map((asset) => asset.id),
87
+ ...(task.requiredOutputs ?? []).flatMap((output) => output.schemaRef ? [output.schemaRef.id] : [])
88
+ ])]);
89
+ const files = retainSourceFileIdentities(source, edited, referencedIds);
83
90
  for (const id of requiredIds) {
84
- const file = edited.files.find((file2) => file2.asset.id === id);
91
+ const file = files.find((file2) => file2.asset.id === id);
85
92
  if (!file) throw new Error(`Bound Taskset asset is missing: ${id}.`);
86
93
  const text = new TextDecoder("utf-8", { fatal: true }).decode(decodeTasksetPackageFile(file));
87
94
  assets.set(id, LearningTextAssetSchema.parse(sealLearningContent({ schemaVersion: "openpond.learningTextAsset.v1", id, revision: 1, asset: file.asset, text })));
@@ -107,7 +114,49 @@ function publishBoundModelTasksetDraftPackage(input) {
107
114
  const lineage = ModelTasksetDerivationSchema.parse(derived.taskset.metadata.modelTasksetDerivation);
108
115
  if (derived.taskset.id !== prepared.tasksetId || derived.taskset.revision !== prepared.tasksetRevision || contentHash({ ...lineage, schemaVersion: prepared.lineage.schemaVersion }) !== contentHash(prepared.lineage)) throw new Error("Bound draft differs from its retained ownership lineage.");
109
116
  const { taskset: published, executionResources, ...modelResources } = derived;
110
- return createTasksetPackage({ schemaVersion: "openpond.tasksetPackage.v1", taskset: published, ...executionResources, modelResources, files: edited.files });
117
+ return createTasksetPackage({ schemaVersion: "openpond.tasksetPackage.v1", taskset: published, ...executionResources, modelResources, files });
118
+ }
119
+ function retainSourceFileIdentities(source, edited, referencedIds) {
120
+ let files = edited.files;
121
+ const sourceById = new Map(source.files.map((file) => [file.asset.id, { file, assetHash: contentHash(file.asset) }]));
122
+ const isSourceFile = (file) => {
123
+ const previous = sourceById.get(file.asset.id);
124
+ return previous !== void 0 && previous.file.base64 === file.base64 && previous.assetHash === contentHash(file.asset);
125
+ };
126
+ const knownAliases = source.files.filter((file) => isManagedTasksetDraftFilePath(file.asset.path)).map((original) => {
127
+ const id = `source-artifact-${contentHash({ packageHash: source.contentHash, assetId: original.asset.id })}`;
128
+ return { original, asset: {
129
+ ...original.asset,
130
+ id,
131
+ path: `source-artifacts/${source.contentHash}/${contentHash(original.asset.path)}/${original.asset.path.split("/").at(-1)}`
132
+ } };
133
+ });
134
+ for (const { original, asset } of knownAliases) {
135
+ const candidates = knownAliases.filter((candidate) => contentHash({ ...candidate.original.asset, id: original.asset.id }) === contentHash(original.asset));
136
+ const own = edited.files.find((file) => file.asset.id === asset.id);
137
+ const alias = own ?? candidates.flatMap((candidate) => edited.files.filter((file) => contentHash(file.asset) === contentHash(candidate.asset)))[0];
138
+ if (!alias || alias.base64 !== original.base64 || !candidates.some((candidate) => contentHash(candidate.asset) === contentHash(alias.asset))) {
139
+ throw new Error(`Retained Taskset source artifact differs from its original bytes: ${original.asset.id}.`);
140
+ }
141
+ const collisions = files.filter((file) => file.asset.path === original.asset.path || file.asset.id === original.asset.id);
142
+ if (collisions.some((file) => file.asset.path !== original.asset.path || file.asset.id !== original.asset.id && file.asset.id !== `taskset-file-${contentHash(original.asset.path)}` && !isSourceFile(file))) {
143
+ throw new Error(`Retained Taskset source artifact conflicts with an authored file: ${original.asset.id}.`);
144
+ }
145
+ files = [...files.filter((file) => file.asset.id !== asset.id && file.asset.id !== original.asset.id && (!collisions.includes(file) || isSourceFile(file))), original];
146
+ }
147
+ for (const original of source.files.filter((file) => !files.some((current) => current.asset.id === file.asset.id))) {
148
+ if (original.asset.path === "environment/execution.json") {
149
+ const execution = ModelStarterExecutionSchema.safeParse(JSON.parse(new TextDecoder("utf-8", { fatal: true }).decode(decodeTasksetPackageFile(original))));
150
+ if (execution.success && contentHash(createTasksetPackageExecutionFile(execution.data)) === contentHash(original)) continue;
151
+ }
152
+ const candidates = files.filter((file) => file.asset.path === original.asset.path);
153
+ const sameEnvelope = (file) => contentHash({ ...file.asset, id: original.asset.id }) === contentHash(original.asset) && file.base64 === original.base64;
154
+ if (referencedIds.has(original.asset.id) || !candidates.length || candidates.some((file) => !sameEnvelope(file))) {
155
+ throw new Error(`Retained Taskset source alias differs from its original bytes: ${original.asset.id}.`);
156
+ }
157
+ files = [...files, original];
158
+ }
159
+ return files;
111
160
  }
112
161
 
113
162
  // src/model-taskset-authoring.ts
@@ -257,7 +306,7 @@ var GENERATED_MANIFESTS = /* @__PURE__ */ new Set(["taskset.json", "capabilities
257
306
  function isGeneratedTasksetPublicationFilePath(path) {
258
307
  return GENERATED_MANIFESTS.has(path);
259
308
  }
260
- function prepareAuthoredTasksetSource(tasksetInput, sourceFiles, adapterId) {
309
+ function prepareAuthoredTasksetSource(tasksetInput, sourceFiles, adapterId, maximumBytes = MAX_TASKSET_PACKAGE_BYTES) {
261
310
  const taskset = TasksetSchema.parse(tasksetInput);
262
311
  if (taskset.metadata.taskDefinition !== void 0 || taskset.metadata.rewardBinding !== void 0) return { taskset, generatedFiles: [] };
263
312
  const bytes = /* @__PURE__ */ new Map();
@@ -265,7 +314,7 @@ function prepareAuthoredTasksetSource(tasksetInput, sourceFiles, adapterId) {
265
314
  for (const [name, data] of sourceFiles) {
266
315
  TasksetDraftFilePathSchema.parse(name);
267
316
  total += data.byteLength;
268
- if (bytes.size >= 1e4 || total > MAX_TASKSET_PACKAGE_BYTES * 3 / 4) throw new Error("Taskset source exceeds the package byte limit.");
317
+ if (bytes.size >= 1e4 || total > maximumBytes * 3 / 4) throw new Error("Taskset source exceeds the package byte limit.");
269
318
  bytes.set(name, data.slice());
270
319
  }
271
320
  const aggregator = taskset.metrics?.customAggregator;
@@ -289,6 +338,17 @@ function prepareAuthoredTasksetSource(tasksetInput, sourceFiles, adapterId) {
289
338
  declaredPaths.add(sourcePath);
290
339
  };
291
340
  for (const task of taskset.tasks) {
341
+ const outputSchemaRefs = {};
342
+ for (const output of task.requiredOutputs ?? []) if (output.submissionMode === "structured_json") {
343
+ if (!output.schemaRef || output.mediaType !== "application/json") throw new Error("Structured outputs require a JSON schemaRef and application/json.");
344
+ const prior = task.metadata.portableTaskRecord?.requiredOutputs?.find((item) => item.path === output.path)?.schemaRef;
345
+ const sourcePath = prior?.id === output.schemaRef ? prior.path : output.schemaRef;
346
+ const schema = ref(output.schemaRef, sourcePath, "application/schema+json", "policy");
347
+ if (prior && prior.id === output.schemaRef && prior.visibility !== "policy") throw new Error("Structured output schema must be policy-visible.");
348
+ resolveStructuredOutput(bytes.get(sourcePath), schema.contentHash);
349
+ outputSchemaRefs[output.schemaRef] = schema;
350
+ }
351
+ if (Object.keys(outputSchemaRefs).length) task.metadata = { ...task.metadata, outputSchemaRefs };
292
352
  const portable = projectPortableTaskRecord(task);
293
353
  for (const asset of portable.artifactRefs) add(asset, task.assets?.find((candidate) => candidate.id === asset.id)?.artifactRef ?? asset.path);
294
354
  for (const output of portable.requiredOutputs ?? []) if (output.schemaRef) add(output.schemaRef);
@@ -345,13 +405,13 @@ function prepareAuthoredTasksetSource(tasksetInput, sourceFiles, adapterId) {
345
405
 
346
406
  // src/taskset-draft-package-compiler.ts
347
407
  function compileTasksetDraftWorkspace(input) {
348
- const workspace = validateTasksetDraftWorkspace(input.workspace);
408
+ const workspace = validateTasksetDraftWorkspace(input.workspace, input.maximumBytes);
349
409
  const preparation = input.preparation === null ? null : ModelTasksetDraftPreparationSchema.parse(input.preparation);
350
410
  if (preparation ? workspace.draft.id !== preparation.draftId || workspace.draft.modelScope?.modelId !== preparation.lineage.owner.modelId || workspace.draft.profileId !== preparation.lineage.owner.scopeId || contentHash(workspace.draft.modelScope?.source ?? null) !== contentHash(preparation) : workspace.draft.modelScope?.source !== void 0) throw new Error("Taskset draft differs from its retained source preparation.");
351
- const taskset = publishTasksetDraft({ draft: workspace.draft, now: workspace.draft.updatedAt, sourcePackageHash: workspace.contentHash });
411
+ const taskset = publishTasksetDraft({ draft: workspace.draft, now: workspace.draft.updatedAt, sourcePackageHash: input.sourceWorkspaceHash ?? workspace.contentHash });
352
412
  const files = new Map(workspace.files.map((file) => [file.path, decodeTasksetDraftWorkspaceFile(file)]));
353
413
  for (const [path, source] of renderTasksetDraftManifests(workspace.draft)) if (!isGeneratedTasksetPublicationFilePath(path)) files.set(path, new TextEncoder().encode(source));
354
- const authored = prepareAuthoredTasksetSource(taskset, files, input.adapterId);
414
+ const authored = prepareAuthoredTasksetSource(taskset, files, input.adapterId, input.maximumBytes);
355
415
  for (const file of authored.generatedFiles) files.set(file.path, new TextEncoder().encode(file.content));
356
416
  const releases = materializePortableTasksetRelease({ taskset: authored.taskset, adapterId: input.adapterId });
357
417
  const inventory = AuthoredTasksetFileInventorySchema.parse(authored.taskset.metadata.portableFileInventory);
@@ -365,7 +425,7 @@ function compileTasksetDraftWorkspace(input) {
365
425
  if (!bytes) throw new Error(`Captured Taskset file is missing: ${entry.sourcePath}.`);
366
426
  return { asset: entry.asset, base64: Buffer.from(bytes).toString("base64") };
367
427
  })
368
- });
428
+ }, input.maximumBytes);
369
429
  return preparation ? publishModelTasksetDraftPackage({ preparation, edited, source: input.source }) : edited;
370
430
  }
371
431
  function compileModelTasksetDraftWorkspace(input) {
@@ -382,4 +442,4 @@ export {
382
442
  compileTasksetDraftWorkspace,
383
443
  compileModelTasksetDraftWorkspace
384
444
  };
385
- //# sourceMappingURL=chunk-36WJTS5V.js.map
445
+ //# sourceMappingURL=chunk-6KKM2XRR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/model-taskset-authoring.ts","../src/model-bound-taskset-authoring.ts","../src/taskset-authored-files.ts","../src/taskset-authored-tool-environment.ts","../src/taskset-draft-package-compiler.ts"],"sourcesContent":["import { contentHash } from \"@openpond/harness\";\nimport { createVerifierSetRelease } from \"@openpond/evals\";\nimport { learningRef, sameLearningRef, sealLearningContent } from \"@openpond/evals/learning\";\nimport { TasksetReleaseSchema } from \"@openpond/evals/tasksets\";\nimport { ModelTasksetAuthoringOwnerSchema, ModelTasksetDraftPreparationSchema, ModelTasksetDraftRequestSchema, type ModelTasksetDraftPreparation, type ModelTasksetDraftRequest } from \"./model-taskset-authoring-contracts.js\";\nimport { assertModelTasksetAuthoring, modelAuthoredTasksetId } from \"./model-taskset-authoring-lineage.js\";\nimport { createTasksetPackage, validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\nimport { createTasksetPackageExecutionFile, resolveTasksetPackageExecution } from \"./taskset-package-execution.js\";\nimport { modelStarterExecutionAssetId } from \"./model-starter-execution.js\";\nimport { deriveModelTaskset } from \"./model-taskset-derivation.js\";\nimport { publishBoundModelTasksetDraftPackage } from \"./model-bound-taskset-authoring.js\";\n\nexport * from \"./model-taskset-authoring-contracts.js\";\n\n/** Resolve under an authorized Model CAS. The host retains requestHash and the\n * preparation so retrying cannot choose newer source bytes or another draft. */\nexport function prepareModelTasksetDraft(input: { request: ModelTasksetDraftRequest; owner: { scopeId: string; modelId: string }; source: TasksetPackage }): ModelTasksetDraftPreparation {\n const request = ModelTasksetDraftRequestSchema.parse(input.request);\n const owner = ModelTasksetAuthoringOwnerSchema.parse(input.owner);\n const source = validateTasksetPackage(input.source);\n if (source.learningResources) throw new Error(\"Reviewed Tasksets require their reviewed authoring workflow.\");\n if (source.contentHash !== request.sourcePackageHash) throw new Error(\"Taskset draft source package changed.\");\n if (source.modelResources) {\n const derived = deriveModelTaskset({ owner, source: { ...source.modelResources, taskset: source.taskset, executionResources: { environment: source.environment, verifierSet: source.verifierSet } },\n rewardBinding: source.modelResources.rewardBinding, rewards: source.modelResources.rewards, assets: source.modelResources.assets });\n const lineage = derived.taskset.metadata.modelTasksetDerivation as { owner: typeof owner; root: ReturnType<typeof learningRef>; parent: ReturnType<typeof learningRef> };\n return ModelTasksetDraftPreparationSchema.parse({ schemaVersion: \"openpond.modelTasksetDraftPreparation.v1\",\n draftId: `model-taskset-draft-${contentHash({ owner, operationId: request.operationId })}`, requestHash: contentHash(request),\n sourcePackageHash: source.contentHash, sourceTasksetRef: learningRef(source.taskset), tasksetId: derived.taskset.id,\n tasksetRevision: derived.taskset.revision, lineage: { ...lineage, schemaVersion: \"openpond.modelTasksetAuthoring.v1\" }, authoringGraph: \"bound\",\n });\n }\n const previous = assertModelTasksetAuthoring(source.taskset);\n const owned = previous && contentHash(previous.owner) === contentHash(owner);\n const root = owned ? previous.root : learningRef(source.taskset);\n const lineage = { schemaVersion: \"openpond.modelTasksetAuthoring.v1\" as const, owner, root, parent: learningRef(source.taskset) };\n return ModelTasksetDraftPreparationSchema.parse({\n schemaVersion: \"openpond.modelTasksetDraftPreparation.v1\",\n draftId: `model-taskset-draft-${contentHash({ owner, operationId: request.operationId })}`,\n requestHash: contentHash(request), sourcePackageHash: source.contentHash, sourceTasksetRef: learningRef(source.taskset),\n tasksetId: modelAuthoredTasksetId(lineage), tasksetRevision: owned ? source.taskset.revision + 1 : 1, lineage,\n });\n}\n\n/** The edited package already carries exact file bytes and execution releases.\n * Seal the owned revision without copying qualification for different bytes. */\nexport function publishModelTasksetDraftPackage(input: { preparation: ModelTasksetDraftPreparation; edited: TasksetPackage; source?: TasksetPackage }): TasksetPackage {\n const prepared = ModelTasksetDraftPreparationSchema.parse(input.preparation);\n if (!sameLearningRef(prepared.sourceTasksetRef, prepared.lineage.parent)) throw new Error(\"Taskset draft preparation differs from its source lineage.\");\n if (prepared.authoringGraph === \"bound\") {\n if (!input.source) throw new Error(\"Bound Taskset authoring requires its retained source package.\");\n return publishBoundModelTasksetDraftPackage({ preparation: prepared, source: input.source, edited: input.edited });\n }\n const edited = requireOrdinaryPackage(input.edited);\n const { contentHash: _verifierHash, ...verifierContent } = edited.verifierSet;\n const verifierSet = createVerifierSetRelease({ ...verifierContent, id: `${prepared.tasksetId}-verifiers`, revision: prepared.tasksetRevision,\n calibrationReceiptRefs: [], metadata: { sourceVerifierSet: learningRef(edited.verifierSet) } });\n const { contentHash: _hash, ...content } = edited.taskset;\n const taskset = TasksetReleaseSchema.parse(sealLearningContent({ ...content, id: prepared.tasksetId, revision: prepared.tasksetRevision,\n verifierSetRelease: { id: verifierSet.id, contentHash: verifierSet.contentHash },\n metadata: {\n modelTasksetAuthoring: prepared.lineage,\n ...(edited.taskset.metadata.environmentResources === undefined ? {} : { environmentResources: edited.taskset.metadata.environmentResources }),\n ...(edited.taskset.metadata.ordinaryAuthoring === undefined ? {} : { ordinaryAuthoring: edited.taskset.metadata.ordinaryAuthoring }),\n },\n }));\n const resolved = resolveTasksetPackageExecution(edited);\n const files = resolved ? [\n ...edited.files.filter(file => file.asset.id !== modelStarterExecutionAssetId(edited.taskset)),\n createTasksetPackageExecutionFile({ ...resolved.execution, verifierSet }),\n ] : edited.files;\n return createTasksetPackage({ schemaVersion: \"openpond.tasksetPackage.v1\", taskset, environment: edited.environment, verifierSet, files });\n}\n\nfunction requireOrdinaryPackage(value: unknown) {\n const result = validateTasksetPackage(value);\n if (result.modelResources || result.learningResources) throw new Error(\"This Taskset requires its bound or reviewed authoring workflow.\");\n return result;\n}\n","import { contentHash } from \"@openpond/harness\";\nimport { LearningTextAssetSchema, TaskDefinitionSchema, learningRef, sameLearningRef, sealLearningContent } from \"@openpond/evals/learning\";\nimport { TasksetReleaseSchema } from \"@openpond/evals/tasksets\";\nimport { ModelTasksetDerivationSchema, compileModelTasksetReward } from \"./model-taskset-derivation.js\";\nimport type { ModelTasksetDraftPreparation } from \"./model-taskset-authoring-contracts.js\";\nimport { createTasksetPackage, decodeTasksetPackageFile, resolveTasksetPackageInstructions, validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\nimport { createTasksetPackageExecutionFile, resolveTasksetPackageExecution } from \"./taskset-package-execution.js\";\nimport { isManagedTasksetDraftFilePath } from \"./taskset-draft-files.js\";\nimport { ModelStarterExecutionSchema } from \"./model-starter-execution.js\";\n\n/** Task edits retain the exact saved Reward. Changing its implementation or\n * grading policy goes through Reward publication and Model selection. */\nexport function publishBoundModelTasksetDraftPackage(input: {\n preparation: ModelTasksetDraftPreparation; source: TasksetPackage; edited: TasksetPackage;\n}): TasksetPackage {\n const source = validateTasksetPackage(input.source);\n const edited = validateTasksetPackage(input.edited);\n const prepared = input.preparation;\n if (prepared.authoringGraph !== \"bound\" || !source.modelResources || source.learningResources || edited.modelResources || edited.learningResources) throw new Error(\"Bound task editing requires its source Reward and an ordinary edited workspace.\");\n if (source.contentHash !== prepared.sourcePackageHash || !sameLearningRef(learningRef(source.taskset), prepared.sourceTasksetRef)) throw new Error(\"Bound draft differs from its retained source package.\");\n const normalizedGraders = (value: TasksetPackage) => value.taskset.graders.map(grader => grader.kind === \"custom_verifier\" ? { ...grader, exportName: grader.exportName ?? \"verify\" } : grader);\n if (contentHash(normalizedGraders(source)) !== contentHash(normalizedGraders(edited))) throw new Error(\"Edit the saved Reward in Rewards before changing this Taskset's graders.\");\n const resources = source.modelResources;\n const assets = new Map(resources.assets.map(asset => [asset.id, asset]));\n const execution = resolveTasksetPackageExecution(edited);\n const sourceExecution = resolveTasksetPackageExecution(source);\n const environmentContent = (value: TasksetPackage[\"environment\"]) => {\n const { id: _id, revision: _revision, contentHash: _hash, metadata, ...contract } = value;\n const { javascriptEnvironment: _javascript, ...retained } = metadata;\n return { ...contract, metadata: { ...retained, resources: retained.resources ?? [] } };\n };\n const javascriptContent = (value: typeof execution) => {\n if (!value) return null;\n const { id: _id, revision: _revision, contentHash: _hash, ...contract } = value.execution.javascript;\n return contract;\n };\n const unchangedEnvironment = contentHash(environmentContent(source.environment)) === contentHash(environmentContent(edited.environment))\n && contentHash(javascriptContent(sourceExecution)) === contentHash(javascriptContent(execution));\n const selectedEnvironment = unchangedEnvironment ? source.environment : edited.environment;\n const selectedExecution = unchangedEnvironment ? sourceExecution : execution;\n const requiredIds = new Set([\n ...resources.assets.map(asset => asset.id),\n ...edited.taskset.tasks.flatMap(task => task.privilegedContextRef ? [task.privilegedContextRef] : []),\n ...[edited.environment.actionSchemaRef, edited.environment.observationSchemaRef, edited.environment.stateSchemaRef].flatMap(ref => ref ? [ref.id] : []),\n ...(execution?.assets.map(asset => asset.id) ?? []),\n ]);\n const referencedIds = new Set([...requiredIds, ...edited.taskset.tasks.flatMap(task => [\n ...task.artifactRefs.map(asset => asset.id), ...(task.requiredOutputs ?? []).flatMap(output => output.schemaRef ? [output.schemaRef.id] : []),\n ])]);\n const files = retainSourceFileIdentities(source, edited, referencedIds);\n for (const id of requiredIds) {\n const file = files.find(file => file.asset.id === id);\n if (!file) throw new Error(`Bound Taskset asset is missing: ${id}.`);\n const text = new TextDecoder(\"utf-8\", { fatal: true }).decode(decodeTasksetPackageFile(file));\n assets.set(id, LearningTextAssetSchema.parse(sealLearningContent({ schemaVersion: \"openpond.learningTextAsset.v1\", id, revision: 1, asset: file.asset, text })));\n }\n const instructions = resolveTasksetPackageInstructions(edited);\n const { contentHash: _definitionHash, ...definitionContent } = resources.taskDefinition;\n const { policy, environment, environmentRelease, tools, capabilities, verifierSetRelease } = edited.taskset;\n const taskDefinition = TaskDefinitionSchema.parse(sealLearningContent({ ...definitionContent, instructions,\n execution: { policy, environment, environmentRelease, tools, capabilities, verifierSetRelease },\n }));\n const { contentHash: _taskHash, ...taskContent } = edited.taskset;\n const taskset = TasksetReleaseSchema.parse(sealLearningContent({ ...taskContent, tasks: edited.taskset.tasks.map(task => resources.instructionMode === \"per_task\" ? task\n : { ...task, policyVisibleContext: { ...task.policyVisibleContext, instructions } }) }));\n const derived = compileModelTasksetReward({ owner: prepared.lineage.owner,\n source: { ...resources, taskset: source.taskset, executionResources: { environment: source.environment, verifierSet: source.verifierSet } },\n rewardBinding: resources.rewardBinding, rewards: resources.rewards, assets: [...assets.values()],\n edits: { taskset, taskDefinition, executionResources: { environment: selectedEnvironment, verifierSet: edited.verifierSet }, ...(selectedExecution ? { execution: selectedExecution.execution } : {}) },\n });\n const lineage = ModelTasksetDerivationSchema.parse(derived.taskset.metadata.modelTasksetDerivation);\n if (derived.taskset.id !== prepared.tasksetId || derived.taskset.revision !== prepared.tasksetRevision\n || contentHash({ ...lineage, schemaVersion: prepared.lineage.schemaVersion }) !== contentHash(prepared.lineage)) throw new Error(\"Bound draft differs from its retained ownership lineage.\");\n const { taskset: published, executionResources, ...modelResources } = derived;\n return createTasksetPackage({ schemaVersion: \"openpond.tasksetPackage.v1\", taskset: published, ...executionResources!, modelResources, files });\n}\n\nfunction retainSourceFileIdentities(source: TasksetPackage, edited: TasksetPackage, referencedIds: Set<string>) {\n let files = edited.files;\n const sourceById = new Map(source.files.map(file => [file.asset.id, { file, assetHash: contentHash(file.asset) }]));\n const isSourceFile = (file: TasksetPackage[\"files\"][number]) => {\n const previous = sourceById.get(file.asset.id);\n return previous !== undefined && previous.file.base64 === file.base64 && previous.assetHash === contentHash(file.asset);\n };\n // Reserved authoring manifests describe the edited document. Historical\n // source files at those paths live in read-only aliases, and must keep their\n // original immutable identity rather than inherit generated manifest bytes.\n const knownAliases = source.files.filter(file => isManagedTasksetDraftFilePath(file.asset.path)).map(original => {\n const id = `source-artifact-${contentHash({ packageHash: source.contentHash, assetId: original.asset.id })}`;\n return { original, asset: { ...original.asset, id,\n path: `source-artifacts/${source.contentHash}/${contentHash(original.asset.path)}/${original.asset.path.split(\"/\").at(-1)!}` } };\n });\n for (const { original, asset } of knownAliases) {\n const candidates = knownAliases.filter(candidate => contentHash({ ...candidate.original.asset, id: original.asset.id }) === contentHash(original.asset));\n const own = edited.files.find(file => file.asset.id === asset.id);\n const alias = own ?? candidates.flatMap(candidate => edited.files.filter(file => contentHash(file.asset) === contentHash(candidate.asset)))[0];\n if (!alias || alias.base64 !== original.base64 || !candidates.some(candidate => contentHash(candidate.asset) === contentHash(alias.asset))) {\n throw new Error(`Retained Taskset source artifact differs from its original bytes: ${original.asset.id}.`);\n }\n const collisions = files.filter(file => file.asset.path === original.asset.path || file.asset.id === original.asset.id);\n if (collisions.some(file => file.asset.path !== original.asset.path || file.asset.id !== original.asset.id\n && file.asset.id !== `taskset-file-${contentHash(original.asset.path)}`\n && !isSourceFile(file))) {\n throw new Error(`Retained Taskset source artifact conflicts with an authored file: ${original.asset.id}.`);\n }\n files = [...files.filter(file => file.asset.id !== asset.id && file.asset.id !== original.asset.id\n && (!collisions.includes(file) || isSourceFile(file))), original];\n }\n // One on-disk file may have multiple historical immutable identities. The\n // authored inventory can collapse those aliases, but cannot change their\n // bytes or resurrect a missing asset used by current execution.\n for (const original of source.files.filter(file => !files.some(current => current.asset.id === file.asset.id))) {\n // The execution owner regenerates its declaration for the new release.\n // Only its exact canonical envelope qualifies for this exception.\n if (original.asset.path === \"environment/execution.json\") {\n const execution = ModelStarterExecutionSchema.safeParse(JSON.parse(new TextDecoder(\"utf-8\", { fatal: true }).decode(decodeTasksetPackageFile(original))));\n if (execution.success && contentHash(createTasksetPackageExecutionFile(execution.data)) === contentHash(original)) continue;\n }\n const candidates = files.filter(file => file.asset.path === original.asset.path);\n const sameEnvelope = (file: typeof original) => contentHash({ ...file.asset, id: original.asset.id }) === contentHash(original.asset)\n && file.base64 === original.base64;\n if (referencedIds.has(original.asset.id) || !candidates.length || candidates.some(file => !sameEnvelope(file))) {\n throw new Error(`Retained Taskset source alias differs from its original bytes: ${original.asset.id}.`);\n }\n files = [...files, original];\n }\n return files;\n}\n","import { z } from \"zod\";\nimport { resolveStructuredOutput, contentHash, ImmutableAssetRefSchema, sha256, type ImmutableAssetRef } from \"@openpond/harness\";\nimport { TasksetSchema, type GeneratedTaskFile, type Taskset } from \"./taskset-authored-contracts.js\";\nimport { computeTasksetHash } from \"./taskset-authored-validation.js\";\nimport { projectPortableTaskRecord } from \"./taskset-authored-portable-release.js\";\nimport { TasksetDraftFilePathSchema } from \"./model-taskset-authoring-contracts.js\";\nimport { MAX_TASKSET_PACKAGE_BYTES } from \"./taskset-package-files.js\";\nimport { prepareAuthoredToolEnvironment } from \"./taskset-authored-tool-environment.js\";\n\nexport const AuthoredTasksetFileInventorySchema = z.array(z.object({\n asset: ImmutableAssetRefSchema, sourcePath: z.string().min(1),\n}).strict()).max(10_000);\n\nconst GENERATED_MANIFESTS = new Set([\"taskset.json\", \"capabilities.json\", \"data/tasks.jsonl\", \"graders/graders.json\", \"fixtures/grader-fixtures.json\", \"environment/taskset.ts\"]);\nexport function isGeneratedTasksetPublicationFilePath(path: string): boolean { return GENERATED_MANIFESTS.has(path); }\n\n/** Seal one captured file population; hosts own filesystem or object-store capture. */\nexport function prepareAuthoredTasksetSource(tasksetInput: Taskset, sourceFiles: ReadonlyMap<string, Uint8Array>, adapterId: string, maximumBytes = MAX_TASKSET_PACKAGE_BYTES) {\n const taskset = TasksetSchema.parse(tasksetInput);\n if (taskset.metadata.taskDefinition !== undefined || taskset.metadata.rewardBinding !== undefined) return { taskset, generatedFiles: [] as GeneratedTaskFile[] };\n const bytes = new Map<string, Uint8Array>();\n let total = 0;\n for (const [name, data] of sourceFiles) {\n TasksetDraftFilePathSchema.parse(name);\n total += data.byteLength;\n if (bytes.size >= 10_000 || total > maximumBytes * 3 / 4) throw new Error(\"Taskset source exceeds the package byte limit.\");\n bytes.set(name, data.slice());\n }\n const aggregator = taskset.metrics?.customAggregator;\n const aggregatorBytes = aggregator ? bytes.get(aggregator.module) : undefined;\n if (aggregator && !aggregatorBytes) throw new Error(\"Declared Taskset metric module is missing.\");\n const metrics = aggregator && aggregatorBytes ? { ...taskset.metrics!, customAggregator: { ...aggregator, contentHash: sha256(aggregatorBytes) } } : taskset.metrics;\n const inventory = new Map<string, { asset: ImmutableAssetRef; sourcePath: string }>();\n const declaredPaths = new Set<string>();\n const generatedFiles: GeneratedTaskFile[] = [];\n const ref = (id: string, sourcePath: string, mediaType: string, visibility: ImmutableAssetRef[\"visibility\"]): ImmutableAssetRef => {\n const source = bytes.get(sourcePath);\n if (!source) throw new Error(`Declared Taskset file is missing: ${sourcePath}.`);\n return { id, path: sourcePath, contentHash: sha256(source), sizeBytes: source.byteLength, mediaType, visibility };\n };\n const add = (asset: ImmutableAssetRef, sourcePath = asset.path) => {\n const previous = inventory.get(asset.id);\n if (previous && contentHash(previous) !== contentHash({ asset, sourcePath })) throw new Error(`Conflicting Taskset file identity: ${asset.id}.`);\n const source = bytes.get(sourcePath);\n if (!source || source.length !== asset.sizeBytes || sha256(source) !== asset.contentHash) throw new Error(`Taskset file differs from its declared bytes: ${asset.id}.`);\n inventory.set(asset.id, { asset, sourcePath });\n declaredPaths.add(sourcePath);\n };\n for (const task of taskset.tasks) {\n const outputSchemaRefs: Record<string, ImmutableAssetRef> = {};\n for (const output of task.requiredOutputs ?? []) if (output.submissionMode === \"structured_json\") {\n if (!output.schemaRef || output.mediaType !== \"application/json\") throw new Error(\"Structured outputs require a JSON schemaRef and application/json.\");\n const prior = (task.metadata.portableTaskRecord as { requiredOutputs?: { path: string; schemaRef?: ImmutableAssetRef | null }[] } | undefined)?.requiredOutputs?.find(item => item.path === output.path)?.schemaRef;\n const sourcePath = prior?.id === output.schemaRef ? prior.path : output.schemaRef;\n const schema = ref(output.schemaRef, sourcePath, \"application/schema+json\", \"policy\");\n if (prior && prior.id === output.schemaRef && prior.visibility !== \"policy\") throw new Error(\"Structured output schema must be policy-visible.\");\n resolveStructuredOutput(bytes.get(sourcePath)!, schema.contentHash);\n outputSchemaRefs[output.schemaRef] = schema;\n }\n if (Object.keys(outputSchemaRefs).length) task.metadata = { ...task.metadata, outputSchemaRefs };\n const portable = projectPortableTaskRecord(task);\n for (const asset of portable.artifactRefs) add(asset, task.assets?.find(candidate => candidate.id === asset.id)?.artifactRef ?? asset.path);\n for (const output of portable.requiredOutputs ?? []) if (output.schemaRef) add(output.schemaRef);\n }\n for (const resource of taskset.environment.resources ?? []) add(ref(resource.id, resource.path, resource.mediaType ?? \"application/octet-stream\", resource.visibility === \"policy_visible\" ? \"policy\" : \"host_private\"));\n const graders = taskset.graders.map(grader => {\n if (grader.kind === \"custom_verifier\") {\n let asset = ref(`verifier-${grader.id}`, grader.module, \"application/javascript\", \"host_private\");\n const previous = ImmutableAssetRefSchema.safeParse(grader.metadata.portableVerifierRef);\n if (previous.success && previous.data.contentHash === asset.contentHash && previous.data.sizeBytes === asset.sizeBytes) asset = previous.data;\n add(asset, grader.module);\n return { ...grader, metadata: { ...grader.metadata, portableVerifierRef: asset } };\n }\n if (grader.kind === \"human\" || grader.kind === \"model_judge\") {\n const content = new TextEncoder().encode(grader.rubric);\n const sourcePath = `graders/rubric-${sha256(content)}.md`;\n bytes.set(sourcePath, content);\n let asset = ref(`rubric-${grader.id}`, sourcePath, \"text/markdown\", \"verifier\");\n const previous = ImmutableAssetRefSchema.safeParse(grader.metadata.portableRubricRef);\n if (previous.success && previous.data.contentHash === asset.contentHash && previous.data.sizeBytes === asset.sizeBytes) {\n if (previous.data.visibility === \"policy\") throw new Error(\"A grader rubric cannot become policy-visible.\");\n asset = previous.data;\n }\n add(asset, sourcePath);\n generatedFiles.push({ path: sourcePath, role: \"verifier\", content: grader.rubric });\n return { ...grader, metadata: { ...grader.metadata, portableRubricRef: asset } };\n }\n return grader;\n });\n if (aggregator && ![...inventory.values()].some(file => file.asset.path === aggregator.module && file.sourcePath === aggregator.module && file.asset.visibility !== \"policy\")) {\n add(ref(`metric-${contentHash(aggregator.module)}`, aggregator.module, \"application/javascript\", \"host_private\"));\n }\n // Unreferenced source files are retained privately. Only explicit task or\n // environment declarations can make bytes visible to the policy.\n const previousInventory = AuthoredTasksetFileInventorySchema.parse(taskset.metadata.portableFileInventory ?? []);\n for (const name of [...bytes.keys()].sort()) if (!declaredPaths.has(name)) {\n const previous = previousInventory.find(file => file.sourcePath === name && !inventory.has(file.asset.id));\n add(previous\n ? { ...ref(previous.asset.id, name, previous.asset.mediaType, previous.asset.visibility), path: previous.asset.path }\n : ref(`taskset-file-${contentHash(name)}`, name, \"application/octet-stream\", \"host_private\"), name);\n }\n // Publication creates a new release; imported cache and execution identities\n // describe the source revision, not the newly edited graders.\n const { importedPackageHash, derivedPortableMetadata: _derived, ...metadata } = taskset.metadata;\n const environmentMetadata = { ...taskset.environment.metadata };\n if (environmentMetadata.portableExecutionResources !== undefined) {\n const resources = z.object({ environment: z.unknown(), verifierSet: z.unknown().optional() }).parse(environmentMetadata.portableExecutionResources);\n environmentMetadata.portableExecutionResources = { environment: resources.environment };\n }\n const prepared = TasksetSchema.parse({ ...taskset, graders, metrics,\n environment: { ...taskset.environment, metadata: environmentMetadata },\n metadata: { ...metadata, ...(importedPackageHash === undefined ? {} : { sourceImportedPackageHash: importedPackageHash }), portableFileInventory: AuthoredTasksetFileInventorySchema.parse([...inventory.values()].sort((left, right) => left.asset.id.localeCompare(right.asset.id))) } });\n const executable = prepareAuthoredToolEnvironment(prepared, bytes, [...inventory.values()], adapterId);\n return { taskset: TasksetSchema.parse({ ...executable.taskset, contentHash: computeTasksetHash(executable.taskset) }), generatedFiles: [...generatedFiles, ...executable.generatedFiles] };\n}\n","import { TasksetSchema, type GeneratedTaskFile, type Taskset } from \"./taskset-authored-contracts.js\";\nimport { createEnvironmentRelease } from \"@openpond/evals\";\nimport { JavaScriptEnvironmentDefinitionSchema } from \"@openpond/evals/javascript-environment/contracts\";\nimport { learningRef, sealLearningContent } from \"@openpond/evals/learning\";\nimport { contentHash, type ImmutableAssetRef } from \"@openpond/harness\";\nimport { computeTasksetHash } from \"./taskset-authored-validation.js\";\nimport { materializePortableTasksetRelease, portableTasksetEnvironment } from \"./taskset-authored-portable-release.js\";\nimport { ModelStarterExecutionSchema } from \"./model-starter-execution.js\";\nimport { createTasksetPackageExecutionFile } from \"./taskset-package-execution.js\";\nimport { decodeTasksetPackageFile } from \"./taskset-package-files.js\";\n\ntype Inventory = Array<{ asset: ImmutableAssetRef; sourcePath: string }>;\n\n/** Source bytes change in the draft; publication owns all executable hashes.\n * The private declaration is regenerated with the newly compiled verifiers. */\nexport function prepareAuthoredToolEnvironment(taskset: Taskset, bytes: Map<string, Uint8Array>, inventory: Inventory, adapterId: string): { taskset: Taskset; inventory: Inventory; generatedFiles: GeneratedTaskFile[] } {\n if (taskset.environment.entrypoint !== \"openpond.javascript-environment.v1\") return { taskset, inventory, generatedFiles: [] };\n const declarationPath = \"environment/execution.json\";\n const declaration = bytes.get(declarationPath);\n if (!declaration || declaration.length > 524_288) throw new Error(\"Authored tool environment requires its bounded private execution declaration.\");\n const previous = ModelStarterExecutionSchema.parse(JSON.parse(new TextDecoder(\"utf-8\", { fatal: true }).decode(declaration)));\n const repin = (ref: ImmutableAssetRef | null): ImmutableAssetRef | null => {\n if (!ref) return null;\n const file = inventory.find(file => file.asset.id === ref.id && file.asset.path === ref.path);\n if (!file) throw new Error(`Authored environment dependency is missing: ${ref.id}.`);\n return file.asset;\n };\n const { contentHash: _javascriptHash, ...javascriptContent } = previous.javascript;\n const javascript = JavaScriptEnvironmentDefinitionSchema.parse(sealLearningContent({ ...javascriptContent,\n id: `javascript-${taskset.id}`, revision: taskset.revision, module: repin(previous.javascript.module),\n }));\n if (contentHash(javascript.tools) !== contentHash(taskset.environment.metadata.portableTools)\n || contentHash(javascript.tools.map(tool => tool.name)) !== contentHash(taskset.environment.toolNames)) throw new Error(\"Authored environment tools differ from the Taskset's declared tools.\");\n const environment = createEnvironmentRelease({ schemaVersion: \"openpond.environmentRelease.v1\", id: `environment-${taskset.id}`, revision: taskset.revision,\n contract: portableTasksetEnvironment(taskset), actionSchemaRef: repin(previous.environment.actionSchemaRef), observationSchemaRef: repin(previous.environment.observationSchemaRef), stateSchemaRef: repin(previous.environment.stateSchemaRef),\n artifactCollection: previous.environment.artifactCollection, adapterConformanceHashes: {},\n metadata: { javascriptEnvironment: learningRef(javascript), resources: taskset.environment.resources ?? [] },\n });\n const prepared = TasksetSchema.parse({ ...taskset, environment: { ...taskset.environment,\n metadata: { ...taskset.environment.metadata, portableExecutionResources: { environment } },\n } });\n const releases = materializePortableTasksetRelease({ taskset: prepared, adapterId: adapterId });\n const file = createTasksetPackageExecutionFile({ javascript, environment, verifierSet: releases.verifierSetRelease });\n const nextInventory = [...inventory.filter(entry => entry.sourcePath !== declarationPath), { asset: file.asset, sourcePath: declarationPath }];\n const finalized = TasksetSchema.parse({ ...prepared, metadata: { ...prepared.metadata, portableFileInventory: nextInventory } });\n return { taskset: TasksetSchema.parse({ ...finalized, contentHash: computeTasksetHash(finalized) }), inventory: nextInventory,\n generatedFiles: [{ path: declarationPath, role: \"environment\", content: new TextDecoder().decode(decodeTasksetPackageFile(file)) }],\n };\n}\n","import { contentHash } from \"@openpond/harness\";\nimport { ModelTasksetDraftPreparationSchema, type ModelTasksetDraftPreparation } from \"./model-taskset-authoring-contracts.js\";\nimport { publishModelTasksetDraftPackage } from \"./model-taskset-authoring.js\";\nimport { publishTasksetDraft } from \"./taskset-draft-publication.js\";\nimport { validateTasksetDraftWorkspace, decodeTasksetDraftWorkspaceFile, type TasksetDraftWorkspace } from \"./taskset-draft-workspace.js\";\nimport { renderTasksetDraftManifests } from \"./taskset-draft-manifests.js\";\nimport { AuthoredTasksetFileInventorySchema, isGeneratedTasksetPublicationFilePath, prepareAuthoredTasksetSource } from \"./taskset-authored-files.js\";\nimport { materializePortableTasksetRelease } from \"./taskset-authored-portable-release.js\";\nimport { createTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\n\n/** Use the same validation, file pinning and release projection as Desktop.\n * Compilation neither executes models/graders nor selects the resulting release.\n * The host supplies its retained preparation and later commits Model/draft CAS. */\nexport function compileTasksetDraftWorkspace(input: {\n workspace: TasksetDraftWorkspace;\n preparation: ModelTasksetDraftPreparation | null;\n adapterId: string;\n now: string;\n source?: TasksetPackage;\n maximumBytes?: number;\n sourceWorkspaceHash?: string;\n}) {\n const workspace = validateTasksetDraftWorkspace(input.workspace, input.maximumBytes);\n const preparation = input.preparation === null ? null : ModelTasksetDraftPreparationSchema.parse(input.preparation);\n if (preparation ? workspace.draft.id !== preparation.draftId || workspace.draft.modelScope?.modelId !== preparation.lineage.owner.modelId\n || workspace.draft.profileId !== preparation.lineage.owner.scopeId\n || contentHash(workspace.draft.modelScope?.source ?? null) !== contentHash(preparation)\n : workspace.draft.modelScope?.source !== undefined) throw new Error(\"Taskset draft differs from its retained source preparation.\");\n // Validation and publication may happen in different requests. Package\n // identity depends on saved bytes, including their timestamp, not wall time.\n const taskset = publishTasksetDraft({ draft: workspace.draft, now: workspace.draft.updatedAt, sourcePackageHash: input.sourceWorkspaceHash ?? workspace.contentHash });\n const files = new Map(workspace.files.map(file => [file.path, decodeTasksetDraftWorkspaceFile(file)]));\n for (const [path, source] of renderTasksetDraftManifests(workspace.draft)) if (!isGeneratedTasksetPublicationFilePath(path)) files.set(path, new TextEncoder().encode(source));\n const authored = prepareAuthoredTasksetSource(taskset, files, input.adapterId, input.maximumBytes);\n for (const file of authored.generatedFiles) files.set(file.path, new TextEncoder().encode(file.content));\n const releases = materializePortableTasksetRelease({ taskset: authored.taskset, adapterId: input.adapterId });\n const inventory = AuthoredTasksetFileInventorySchema.parse(authored.taskset.metadata.portableFileInventory);\n const edited = createTasksetPackage({ schemaVersion: \"openpond.tasksetPackage.v1\", taskset: releases.tasksetRelease,\n environment: releases.environmentRelease, verifierSet: releases.verifierSetRelease,\n files: inventory.map(entry => {\n const bytes = files.get(entry.sourcePath);\n if (!bytes) throw new Error(`Captured Taskset file is missing: ${entry.sourcePath}.`);\n return { asset: entry.asset, base64: Buffer.from(bytes).toString(\"base64\") };\n }),\n }, input.maximumBytes);\n return preparation ? publishModelTasksetDraftPackage({ preparation, edited, source: input.source }) : edited;\n}\n\n/** Model-derived authoring retains its stronger owner/source contract. */\nexport function compileModelTasksetDraftWorkspace(input: Parameters<typeof compileTasksetDraftWorkspace>[0]) {\n if (!input.workspace.draft.modelScope) throw new Error(\"Taskset draft requires a Model owner.\");\n return compileTasksetDraftWorkspace(input);\n}\n"],"mappings":"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","names":["learningRef","sameLearningRef","sealLearningContent","TasksetReleaseSchema","file","lineage","learningRef","sameLearningRef","TasksetReleaseSchema","sealLearningContent","learningRef","sealLearningContent","file","sealLearningContent","learningRef"]}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  RunExperimentSchema
3
- } from "./chunk-G53MA5XX.js";
3
+ } from "./chunk-T3MFWGMX.js";
4
4
  import {
5
5
  contentHash
6
- } from "./chunk-COPVBJPL.js";
6
+ } from "./chunk-H3JZ3P5T.js";
7
7
 
8
8
  // src/candidate-evaluations.ts
9
9
  import { z } from "zod";
@@ -136,4 +136,4 @@ export {
136
136
  CandidateEvaluationPreparationSchema,
137
137
  CandidateEvaluationControlSchema
138
138
  };
139
- //# sourceMappingURL=chunk-BSK3VLM3.js.map
139
+ //# sourceMappingURL=chunk-6MFFKAU6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/candidate-evaluations.ts","../src/candidate-evaluation-client.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { contentHash } from \"@openpond/harness\";\nimport { RunExperimentSchema } from \"./experiment-run-contracts.js\";\nconst Id = z.string().trim().min(1).max(200),\n Hash = z.string().regex(/^[a-f0-9]{64}$/),\n Ref = z.object({ id: Id, contentHash: Hash }).strict();\nexport const CandidateEvaluationOptionSchema = z\n .object({\n artifact: Ref,\n trainingJobId: Id,\n configurationId: Id,\n baseProfileId: Id,\n ready: z.boolean(),\n reason: z.string().max(1000).nullable(),\n })\n .strict();\nexport const CandidateEvaluationOptionsSchema = z\n .object({\n teamId: Id,\n ownerUserId: Id,\n items: z.array(CandidateEvaluationOptionSchema).max(100),\n nextCursor: Id.nullable(),\n })\n .strict();\nexport const CandidateEvaluationRequestSchema = z\n .object({ teamId: Id, operationId: Id, artifact: Ref, configuration: RunExperimentSchema })\n .strict()\n .superRefine((value, ctx) => {\n if (\n value.configuration.request.teamId !== value.teamId ||\n value.configuration.request.policy.kind === \"fixture\" ||\n value.configuration.request.policy.candidate\n )\n ctx.addIssue({\n code: \"custom\",\n message: \"Choose one exact model-backed evaluation before preparing the trained version.\",\n });\n });\nexport const CandidateEvaluationPreparationSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.candidateEvaluationPreparation.v1\"),\n teamId: Id,\n ownerUserId: Id,\n id: Id,\n revision: z.number().int().positive(),\n requestHash: Hash,\n request: CandidateEvaluationRequestSchema,\n trainingJobId: Id,\n dispatchId: Id,\n lastOperationId: Id.nullable(),\n runtime: z\n .object({\n poolId: Id,\n endpointId: Id.nullable(),\n baseProfileId: Id,\n workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n modelId: Id.nullable(),\n })\n .strict()\n .nullable(),\n state: z.enum([\n \"configured\",\n \"preparing\",\n \"ready\",\n \"dispatching\",\n \"submitted\",\n \"cleaning\",\n \"completed\",\n \"failed\",\n \"cancelled\",\n ]),\n experimentId: Id.nullable(),\n authorizedAt: z.iso.datetime().nullable(),\n cancelledAt: z.iso.datetime().nullable(),\n reason: z.string().max(1000).nullable(),\n createdAt: z.iso.datetime(),\n updatedAt: z.iso.datetime(),\n })\n .strict()\n .superRefine((value, ctx) => {\n if (\n value.requestHash !== contentHash(value.request) ||\n (!value.runtime && [\"ready\", \"dispatching\", \"submitted\", \"completed\"].includes(value.state))\n )\n ctx.addIssue({\n code: \"custom\",\n message: \"The exact candidate preparation request or runtime changed.\",\n });\n });\nexport const CandidateEvaluationControlSchema = z\n .object({ operationId: Id, expectedRevision: z.number().int().positive(), requestHash: Hash })\n .strict();\nexport type CandidateEvaluationPreparation = z.infer<typeof CandidateEvaluationPreparationSchema>;\nexport type CandidateEvaluationRequest = z.infer<typeof CandidateEvaluationRequestSchema>;\nexport type CandidateEvaluationOption = z.infer<typeof CandidateEvaluationOptionSchema>;\nexport { createCandidateEvaluationClient } from \"./candidate-evaluation-client.js\";\n","import { contentHash } from \"@openpond/harness\";\nimport {\n CandidateEvaluationOptionsSchema,\n CandidateEvaluationRequestSchema,\n CandidateEvaluationPreparationSchema,\n CandidateEvaluationControlSchema,\n type CandidateEvaluationRequest,\n} from \"./candidate-evaluations.js\";\nexport function createCandidateEvaluationClient(\n request: (path: string, init?: RequestInit) => Promise<unknown>,\n) {\n const path = (id: string) => `/v1/training/candidate-evaluations/${encodeURIComponent(id)}`;\n function read(raw: unknown, teamId: string, id?: string) {\n const value = CandidateEvaluationPreparationSchema.parse(raw);\n if (value.teamId !== teamId || (id && value.id !== id))\n throw new Error(\"The preparation belongs to another workspace or candidate operation.\");\n return value;\n }\n return {\n async options(teamId: string, query: { afterId?: string; projectId?: string } = {}) {\n const params = new URLSearchParams({ teamId, ...query }),\n value = CandidateEvaluationOptionsSchema.parse(\n await request(`/v1/training/candidates?${params}`),\n );\n if (value.teamId !== teamId)\n throw new Error(\"The candidate catalog belongs to another workspace.\");\n return value;\n },\n async save(raw: CandidateEvaluationRequest) {\n const body = CandidateEvaluationRequestSchema.parse(raw),\n value = read(\n await request(\n `/v1/training/candidate-evaluations?teamId=${encodeURIComponent(body.teamId)}`,\n { method: \"POST\", body: JSON.stringify(body) },\n ),\n body.teamId,\n );\n if (value.requestHash !== contentHash(body))\n throw new Error(\n \"The saved preparation differs from the selected candidate or frozen evaluation.\",\n );\n return value;\n },\n async get(teamId: string, id: string) {\n return read(await request(`${path(id)}?teamId=${encodeURIComponent(teamId)}`), teamId, id);\n },\n async control(teamId: string, id: string, action: \"prepare\" | \"run\" | \"cancel\", raw: unknown) {\n const body = CandidateEvaluationControlSchema.parse(raw),\n value = read(\n await request(`${path(id)}/${action}?teamId=${encodeURIComponent(teamId)}`, {\n method: \"POST\",\n body: JSON.stringify(body),\n }),\n teamId,\n id,\n );\n if (value.requestHash !== body.requestHash)\n throw new Error(\"The command returned a different frozen evaluation.\");\n return value;\n },\n };\n}\n"],"mappings":"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","names":[]}
@@ -2,19 +2,19 @@ import {
2
2
  ModelBatchReviewInspectionSchema,
3
3
  ModelBatchReviewReceiptSchema,
4
4
  ModelBatchReviewRequestSchema
5
- } from "./chunk-YVUIHH6Z.js";
5
+ } from "./chunk-GPQLBVQC.js";
6
6
  import {
7
7
  AuthoredTasksetFileInventorySchema
8
- } from "./chunk-36WJTS5V.js";
8
+ } from "./chunk-6KKM2XRR.js";
9
9
  import {
10
10
  configuredTasksetDraftFiles,
11
11
  createTasksetDraftWorkspace,
12
12
  decodeTasksetDraftWorkspaceFile,
13
13
  isManagedTasksetDraftFilePath
14
- } from "./chunk-BFR3VC25.js";
14
+ } from "./chunk-HOOHJCE7.js";
15
15
  import {
16
16
  TasksetDraftSchema
17
- } from "./chunk-CWXM57QR.js";
17
+ } from "./chunk-ZFYI4P6C.js";
18
18
  import {
19
19
  compileModelTasksetReward,
20
20
  createTasksetPackage,
@@ -22,15 +22,15 @@ import {
22
22
  resolveTasksetPackageExecution,
23
23
  resolveTasksetPackageInstructions,
24
24
  validateTasksetPackage
25
- } from "./chunk-FHCSDXIA.js";
25
+ } from "./chunk-EJZ7HOIS.js";
26
26
  import {
27
27
  ModelTasksetDraftPreparationSchema,
28
28
  TasksetDraftFilePathSchema
29
- } from "./chunk-2U54EOXJ.js";
29
+ } from "./chunk-TK3DXH7A.js";
30
30
  import {
31
31
  contentHash,
32
32
  sha256
33
- } from "./chunk-COPVBJPL.js";
33
+ } from "./chunk-H3JZ3P5T.js";
34
34
 
35
35
  // src/model-ordinary-taskset-reward.ts
36
36
  import { LearningTextAssetSchema, TaskDefinitionSchema, learningRef, sealLearningContent } from "@openpond/evals/learning";
@@ -432,4 +432,4 @@ export {
432
432
  prepareTasksetDraftSource,
433
433
  materializeTasksetDraftWorkspace
434
434
  };
435
- //# sourceMappingURL=chunk-UPS52OPZ.js.map
435
+ //# sourceMappingURL=chunk-6Y67YHVH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/model-ordinary-taskset-reward.ts","../src/model-batch-review.ts","../src/model-batch-review-preparation.ts","../src/taskset-draft-source.ts"],"sourcesContent":["import { LearningTextAssetSchema, TaskDefinitionSchema, learningRef, sealLearningContent, type LearningTextAsset } from \"@openpond/evals/learning\";\nimport type { RewardBinding, RewardRelease } from \"@openpond/evals/rewards\";\nimport { compileModelTasksetReward } from \"./model-taskset-derivation.js\";\nimport { createTasksetPackage, resolveTasksetPackageInstructions, validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\nimport { decodeTasksetPackageFile } from \"./taskset-package-files.js\";\nimport { resolveTasksetPackageExecution } from \"./taskset-package-execution.js\";\n\n/** Bind a saved Reward without rewriting task envelopes, private context, tools\n * or arbitrary binary files. Compatibility is admission, not qualification. */\nexport function bindOrdinaryModelTasksetReward(input: {\n owner: { scopeId: string; modelId: string };\n source: TasksetPackage;\n rewardBinding: RewardBinding;\n rewards: RewardRelease[];\n assets: LearningTextAsset[];\n}): TasksetPackage {\n const source = validateTasksetPackage(input.source);\n if (source.modelResources || source.learningResources) throw new Error(\"Binding an ordinary Reward requires an ordinary source package.\");\n const instructions = resolveTasksetPackageInstructions(source);\n if (!instructions.trim()) throw new Error(\"Add collection instructions before selecting a saved Reward.\");\n const assets = new Map<string, LearningTextAsset>();\n const execution = resolveTasksetPackageExecution(source);\n for (const asset of execution?.assets ?? []) assets.set(asset.id, asset);\n const contextIds = new Set([\n ...source.taskset.tasks.flatMap(task => task.privilegedContextRef ? [task.privilegedContextRef] : []),\n ...[source.environment.actionSchemaRef, source.environment.observationSchemaRef, source.environment.stateSchemaRef].flatMap(ref => ref ? [ref.id] : []),\n ]);\n for (const id of contextIds) {\n if (assets.has(id)) continue;\n const file = source.files.find(file => file.asset.id === id);\n if (!file) throw new Error(`Source Taskset context is missing: ${id}.`);\n const text = new TextDecoder(\"utf-8\", { fatal: true }).decode(decodeTasksetPackageFile(file));\n assets.set(id, LearningTextAssetSchema.parse(sealLearningContent({ schemaVersion: \"openpond.learningTextAsset.v1\", id, revision: 1, asset: file.asset, text })));\n }\n for (const asset of input.assets) {\n const original = source.files.find(file => file.asset.id === asset.id);\n if (original && sealLearningContent({ asset: original.asset }).contentHash !== sealLearningContent({ asset: asset.asset }).contentHash) throw new Error(`Selected Reward conflicts with a source asset: ${asset.id}.`);\n assets.set(asset.id, asset);\n }\n const { policy, environment, environmentRelease, tools, capabilities, verifierSetRelease } = source.taskset;\n const taskDefinition = TaskDefinitionSchema.parse(sealLearningContent({\n schemaVersion: \"openpond.taskDefinition.v1\", id: `${source.taskset.id}-definition`, revision: 1,\n name: source.taskset.id, description: \"\", instructions, category: \"custom\", familyNamespace: source.taskset.id,\n inputSchema: { type: \"object\" }, outputSchema: { type: \"object\" },\n rewardBinding: learningRef(input.rewardBinding), harness: null,\n execution: { policy, environment, environmentRelease, tools, capabilities, verifierSetRelease },\n }));\n const derived = compileModelTasksetReward({ ...input, assets: [...assets.values()], source: {\n taskset: source.taskset, taskDefinition, instructionMode: \"per_task\",\n executionResources: { environment: source.environment, verifierSet: source.verifierSet },\n ...(execution ? { execution: execution.execution } : {}),\n } });\n const files = new Map(source.files.map(file => [file.asset.id, file]));\n for (const asset of derived.assets) {\n let raw = \"\";\n for (const byte of new TextEncoder().encode(asset.text)) raw += String.fromCharCode(byte);\n files.set(asset.id, { asset: asset.asset, base64: btoa(raw) });\n }\n const { taskset, executionResources, ...modelResources } = derived;\n return createTasksetPackage({ schemaVersion: \"openpond.tasksetPackage.v1\", taskset, ...executionResources!, modelResources, files: [...files.values()] });\n}\n","import { contentHash } from \"@openpond/harness\";\nimport { LearningDomainError, learningRef, sameLearningRef, requireLearningRelease, requireLearningResource, taskBatchPackageMetadata,\n type LearningResourcePointer, type LearningTransaction } from \"@openpond/evals/learning\";\nimport { validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\nimport { ModelBatchReviewInspectionSchema, ModelBatchReviewReceiptSchema, ModelBatchReviewRequestSchema, type ModelBatchReviewRequest } from \"./model-batch-review-contracts.js\";\nimport { prepareModelBatchReview } from \"./model-batch-review-preparation.js\";\n\nexport * from \"./model-batch-review-contracts.js\";\nexport { LearningDomainError as ModelBatchReviewError } from \"@openpond/evals/learning\";\n\nconst operation = (request: ModelBatchReviewRequest) => `model-batch-review-${contentHash([request.modelId, request.operationId])}`;\n\nexport function inspectModelBatchPackage(raw: unknown) {\n const value = validateTasksetPackage(raw);\n if (!value.learningResources) throw new LearningDomainError(\"model_review_batch_required\", 422);\n const metadata = taskBatchPackageMetadata(value.taskset);\n return ModelBatchReviewInspectionSchema.parse({ schemaVersion: \"openpond.modelBatchReviewInspection.v1\", packageHash: value.contentHash,\n definition: metadata.definition, binding: metadata.binding, evidence: value.learningResources.evidence, decisions: value.learningResources.decisions });\n}\n\nexport async function findModelBatchReview(transaction: LearningTransaction, raw: ModelBatchReviewRequest) {\n const request = ModelBatchReviewRequestSchema.parse(raw);\n const prior = await transaction.operation(operation(request));\n if (!prior) return null;\n if (prior.requestHash !== contentHash(request)) throw new LearningDomainError(\"learning_idempotency_conflict\", 409);\n return readReceipt(transaction, request, prior.resources);\n}\n\n/** Run inside the host's scope/Model revision transaction after verifying the\n * selected source package. This publishes new editable evidence, never a Model\n * attachment, admission, source credential, grade, or training job. */\nexport async function beginModelBatchReview(transaction: LearningTransaction, input: {\n scope: string; request: ModelBatchReviewRequest; package: TasksetPackage; now: string;\n}) {\n const request = ModelBatchReviewRequestSchema.parse(input.request);\n const prior = await findModelBatchReview(transaction, request);\n if (prior) return prior;\n const value = validateTasksetPackage(input.package);\n if (!value.learningResources) throw new LearningDomainError(\"model_review_batch_required\", 422);\n const metadata = taskBatchPackageMetadata(value.taskset);\n const selected = request.rewardBindingRef;\n const retained = !selected || sameLearningRef(selected, learningRef(metadata.binding));\n const binding = retained ? metadata.binding : await requireLearningRelease(transaction, \"binding\", selected);\n const rewards = retained ? metadata.rewards : await Promise.all(binding.sources.map(source => requireLearningRelease(transaction, \"reward\", source.reward)));\n const assetIds = new Set(rewards.flatMap(reward => [...reward.assets,\n ...(\"verifierRef\" in reward.implementation ? [reward.implementation.verifierRef] : []),\n ...(\"rubricRef\" in reward.implementation ? [reward.implementation.rubricRef] : []),\n ...(\"inputContract\" in reward.implementation ? [reward.implementation.inputContract] : []),\n ]).map(asset => asset.id));\n const assets = retained ? value.learningResources.assets : await Promise.all([...assetIds].map(id => requireLearningResource(transaction, \"asset\", id, 1)));\n const prepared = prepareModelBatchReview({ ...input, request, package: value, binding, rewards, assets });\n const pointers: LearningResourcePointer[] = [];\n for (const asset of prepared.assets) {\n const existing = await transaction.get(\"asset\", asset.id, 1);\n if (existing && existing.contentHash !== asset.contentHash) throw new LearningDomainError(\"model_review_asset_conflict\", 409);\n if (!existing) await transaction.put(\"asset\", asset, 0);\n }\n for (const reward of prepared.rewards) await transaction.put(\"reward\", reward, 0);\n await transaction.put(\"binding\", prepared.binding, 0);\n await transaction.put(\"definition\", prepared.definition, 0);\n await transaction.put(\"source\", prepared.source, 0, { parentId: request.modelId });\n pointers.push({ kind: \"source\", id: prepared.source.id, revision: 1 });\n for (const evidence of prepared.evidence) {\n await transaction.put(\"evidence\", evidence, 0, { parentId: prepared.source.id });\n pointers.push({ kind: \"evidence\", id: evidence.id, revision: 1 });\n }\n for (const proposal of prepared.proposals) {\n await transaction.put(\"feedback\", proposal, 0, { parentId: proposal.evidence!.id, status: proposal.status });\n pointers.push({ kind: \"feedback\", id: proposal.id, revision: 1 });\n }\n await transaction.saveOperation(operation(request), { requestHash: contentHash(request), resources: pointers });\n return readReceipt(transaction, request, pointers);\n}\n\nasync function readReceipt(transaction: LearningTransaction, request: ModelBatchReviewRequest, pointers: LearningResourcePointer[]) {\n const resources = await Promise.all(pointers.map(pointer => requireLearningResource(transaction, pointer.kind, pointer.id, pointer.revision)));\n return ModelBatchReviewReceiptSchema.parse({ schemaVersion: \"openpond.modelBatchReviewReceipt.v1\", operationId: request.operationId,\n modelId: request.modelId, source: resources.find(resource => resource.schemaVersion === \"openpond.learningSource.v1\"),\n evidence: resources.filter(resource => resource.schemaVersion === \"openpond.taskEvidence.v1\"),\n proposals: resources.filter(resource => resource.schemaVersion === \"openpond.taskFeedbackRecord.v1\"),\n });\n}\n","import { contentHash } from \"@openpond/harness\";\nimport { LearningDomainError, LearningSourceSchema, TaskDefinitionSchema, TaskEvidenceSchema, TaskFeedbackSchema,\n assertLearningContentHash, learningEvidenceId, learningRef, sameLearningRef, sealLearningContent,\n taskBatchPackageMetadata, verifyLearningTextAsset, type LearningTextAsset } from \"@openpond/evals/learning\";\nimport { compileBoundGraders, createRewardBinding, createRewardRelease, resolveBoundRewards, type RewardBinding, type RewardRelease } from \"@openpond/evals/rewards\";\nimport type { TasksetPackage } from \"./taskset-package-contracts.js\";\nimport type { ModelBatchReviewRequest } from \"./model-batch-review-contracts.js\";\n\n/** Hosts supply the authorized package and selected Reward graph. Only this\n * new namespace becomes editable; parent sources and decisions are not copied. */\nexport function prepareModelBatchReview(input: {\n scope: string; request: ModelBatchReviewRequest; package: TasksetPackage; now: string;\n binding: RewardBinding; rewards: RewardRelease[]; assets: LearningTextAsset[];\n}) {\n const { request, package: value } = input;\n const learning = value.learningResources;\n if (!learning) throw new LearningDomainError(\"model_review_batch_required\", 422);\n const metadata = taskBatchPackageMetadata(value.taskset);\n const id = `model-review-${contentHash([input.scope, request.modelId, request.operationId])}`;\n const edits = new Map(request.examples.map(edit => [contentHash(edit.evidence), edit]));\n const parentRefs = new Set(learning.evidence.map(evidence => contentHash(learningRef(evidence))));\n const decisions = new Map(learning.decisions.map(decision => [contentHash(decision.evidence), decision]));\n if (edits.size !== request.examples.length || request.examples.some(edit => !parentRefs.has(contentHash(edit.evidence)))) {\n throw new LearningDomainError(\"model_review_evidence_mismatch\", 409);\n }\n for (const resource of [input.binding, ...input.rewards, ...input.assets]) assertLearningContentHash(resource);\n resolveBoundRewards(input.binding, input.rewards);\n const rewardByHash = new Map<string, RewardRelease>();\n for (const source of input.binding.sources) {\n const original = input.rewards.find(reward => sameLearningRef(learningRef(reward), source.reward))!;\n const { contentHash: _hash, ...content } = original;\n rewardByHash.set(original.contentHash, createRewardRelease({ ...content, id: `${id}-reward-${original.contentHash}`, revision: 1 }));\n }\n const rewards = [...rewardByHash.values()];\n const { contentHash: _bindingHash, recipeRef: _recipe, ...bindingContent } = input.binding;\n const binding = createRewardBinding({ ...bindingContent, id: `${id}-binding`, revision: 1,\n sources: input.binding.sources.map(source => ({ ...source, reward: learningRef(rewardByHash.get(source.reward.contentHash)!) })),\n }, rewards);\n const assetRefs = rewards.flatMap(reward => [...reward.assets,\n ...(\"verifierRef\" in reward.implementation ? [reward.implementation.verifierRef] : []),\n ...(\"rubricRef\" in reward.implementation ? [reward.implementation.rubricRef] : []),\n ...(\"inputContract\" in reward.implementation ? [reward.implementation.inputContract] : []),\n ]);\n const assets = [...new Map(assetRefs.map(ref => {\n const asset = input.assets.find(asset => asset.id === ref.id);\n if (!asset) throw new LearningDomainError(\"model_review_reward_asset_missing\", 422);\n verifyLearningTextAsset(asset, ref);\n if (ref.visibility === \"policy\") throw new LearningDomainError(\"reward_asset_visibility_invalid\", 422);\n return [asset.id, asset] as const;\n })).values()];\n // New graders invalidate the parent's verifier-set identity. Preparation of\n // the newly sealed batch will bind its own exact execution releases.\n const { environmentRelease: _environment, verifierSetRelease: _verifiers, ...execution } = metadata.definition.execution;\n const { contentHash: _definitionHash, ...definitionContent } = metadata.definition;\n const definition = TaskDefinitionSchema.parse(sealLearningContent({ ...definitionContent, ...request.definition,\n id: `${id}-definition`, revision: 1, rewardBinding: learningRef(binding), execution: { ...execution,\n policy: { ...execution.policy, hiddenGraderRefs: compileBoundGraders(binding, rewards).filter(grader => grader.privileged).map(grader => grader.id) },\n },\n }));\n const source = LearningSourceSchema.parse(sealLearningContent({\n schemaVersion: \"openpond.learningSource.v1\", id, revision: 1, name: `${definition.name} review`, kind: \"direct\",\n taskDefinition: learningRef(definition), enabled: true, allowedSplits: [...new Set(learning.evidence.map(item => item.submission.split))],\n mapping: null, adapterVersion: null, reviewOrigin: { modelId: request.modelId, packageHash: value.contentHash,\n taskset: learningRef(value.taskset), batch: learningRef(learning.batch), rewardBinding: learningRef(input.binding) },\n }));\n const evidence = learning.evidence.map(parent => {\n const edit = edits.get(contentHash(learningRef(parent)));\n // Example/attempt IDs are unique within the original source, not across\n // all sources in a batch. Preserve both parents when merging namespaces.\n const attemptId = `review-${parent.contentHash}`;\n const policyChanged = contentHash({ instructions: definition.instructions, inputSchema: definition.inputSchema, outputSchema: definition.outputSchema, requiredOutputs: definition.requiredOutputs ?? [],\n input: edit?.input ?? parent.submission.input }) !== contentHash({ instructions: metadata.definition.instructions,\n inputSchema: metadata.definition.inputSchema, outputSchema: metadata.definition.outputSchema, requiredOutputs: metadata.definition.requiredOutputs ?? [], input: parent.submission.input });\n return TaskEvidenceSchema.parse(sealLearningContent({\n schemaVersion: \"openpond.taskEvidence.v1\", id: learningEvidenceId(source.id, parent.submission.exampleId, attemptId), revision: 1,\n source: learningRef(source), submission: { ...parent.submission, sourceId: source.id, taskDefinition: learningRef(definition),\n attemptId,\n // The old response was observed under the old policy-visible task. Its\n // parent snapshot remains available, but it is not a run of new inputs.\n observedOutput: policyChanged ? null : parent.submission.observedOutput,\n idempotencyKey: `${id}-${parent.contentHash}`, ...(edit?.input === undefined ? {} : { input: edit.input }),\n ...(edit?.expected === undefined ? {} : { expected: edit.expected }),\n ...(edit?.evaluatorContext === undefined ? {} : { evaluatorContext: edit.evaluatorContext }),\n }, supersedes: learningRef(parent), correctionFeedbackId: null, receivedAt: input.now,\n }));\n });\n const proposals = evidence.flatMap(item => {\n const edit = edits.get(contentHash(item.supersedes));\n const decision = decisions.get(contentHash(item.supersedes))!;\n const target = edit?.proposedTarget === undefined ? decision.approvedTarget : edit.proposedTarget;\n return target === null ? [] : [TaskFeedbackSchema.parse({\n schemaVersion: \"openpond.taskFeedbackRecord.v1\", id: `feedback-${contentHash([id, item.id])}`, revision: 1,\n submission: { schemaVersion: \"openpond.taskFeedback.v1\", sourceId: source.id, idempotencyKey: `${id}-${item.id}`,\n exampleId: item.submission.exampleId, attemptId: item.submission.attemptId, expectedEvidenceHash: item.contentHash,\n occurredAt: input.now, kind: \"target_correction\", value: target, note: \"Proposed target for the revised task. Grade and review before admission.\" },\n status: \"pending_review\", evidence: learningRef(item), createdAt: input.now, review: null,\n })];\n });\n return { source, definition, binding, rewards, assets, evidence, proposals };\n}\n","import { z } from \"zod\";\nimport { contentHash, sha256 } from \"@openpond/harness\";\nimport { learningRef, sameLearningRef } from \"@openpond/evals/learning\";\nimport { ModelTasksetDraftPreparationSchema, TasksetDraftFilePathSchema, type ModelTasksetDraftPreparation } from \"./model-taskset-authoring-contracts.js\";\nimport { TasksetDraftSchema, type TasksetDraft } from \"./taskset-draft-document.js\";\nimport { AuthoredTasksetFileInventorySchema } from \"./taskset-authored-files.js\";\nimport { validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\nimport { isManagedTasksetDraftFilePath } from \"./taskset-draft-files.js\";\nimport { configuredTasksetDraftFiles } from \"./taskset-draft-manifests.js\";\nimport { createTasksetDraftWorkspace, decodeTasksetDraftWorkspaceFile, type TasksetDraftWorkspaceFile } from \"./taskset-draft-workspace.js\";\n\nexport const TasksetDraftSourceInitializationSchema = z.object({\n draft: TasksetDraftSchema,\n filePaths: z.array(z.object({ assetId: z.string().min(1), paths: z.array(TasksetDraftFilePathSchema).min(1).max(10_000) }).strict()).max(10_000),\n}).strict();\nexport type TasksetDraftSourceInitialization = z.infer<typeof TasksetDraftSourceInitializationSchema>;\n\n/** Hosts authorize the source projection and retain this result before writes.\n * Ownership comes from preparation, never from editable projection metadata. */\nexport function prepareTasksetDraftSource(input: { sourceDraft: TasksetDraft; source: TasksetPackage; preparation: ModelTasksetDraftPreparation; expectedModelRevision: number }): TasksetDraftSourceInitialization {\n const source = validateTasksetPackage(input.source);\n const original = TasksetDraftSchema.parse(input.sourceDraft);\n const preparation = ModelTasksetDraftPreparationSchema.parse(input.preparation);\n if (source.contentHash !== preparation.sourcePackageHash || !sameLearningRef(learningRef(source.taskset), preparation.sourceTasksetRef)) throw new Error(\"Taskset draft preparation differs from its source package.\");\n if (source.learningResources) throw new Error(\"Reviewed Tasksets require their reviewed authoring workflow.\");\n if (Boolean(source.modelResources) !== (preparation.authoringGraph === \"bound\")) throw new Error(\"Taskset draft authoring graph differs from its source.\");\n const inventory = AuthoredTasksetFileInventorySchema.parse(original.metadata.portableFileInventory ?? []);\n const sourcePath = (relative: string) => isManagedTasksetDraftFilePath(relative)\n ? `source-artifacts/${source.contentHash}/${contentHash(relative)}/${relative.split(\"/\").at(-1)!}` : relative;\n const references = [...original.tasks.flatMap(task => (task.assets ?? []).map(asset => asset.artifactRef)),\n ...(original.environment.resources ?? []).map(resource => resource.path),\n ...source.taskset.tasks.flatMap(task => (task.requiredOutputs ?? []).flatMap(output => output.schemaRef ? [output.schemaRef.path] : [])),\n ...(original.metrics.customAggregator ? [original.metrics.customAggregator.module] : []),\n ...original.graders.flatMap(grader => grader.kind === \"custom_verifier\" ? [grader.module] : [])];\n if (references.some(isManagedTasksetDraftFilePath)) throw new Error(\"A referenced source asset occupies a reserved Taskset authoring path.\");\n const filePaths = source.files.map(file => {\n const paths = new Set([file.asset.path]);\n for (const entry of inventory) if (entry.asset.id === file.asset.id) paths.add(entry.sourcePath);\n for (const task of original.tasks) for (const asset of task.assets ?? []) if (asset.id === file.asset.id) paths.add(asset.artifactRef);\n for (const grader of source.taskset.graders) if (grader.kind === \"custom_verifier\" && grader.verifierRef.id === file.asset.id) {\n const projected = original.graders.find(candidate => candidate.id === grader.id);\n if (projected?.kind === \"custom_verifier\") paths.add(projected.module);\n }\n return { assetId: file.asset.id, paths: [...paths].map(sourcePath) };\n });\n const metadata = { ...original.metadata };\n if (source.modelResources) for (const key of [\"taskDefinition\", \"rewardBinding\", \"rewardExecution\", \"derivedPortableMetadata\", \"modelTasksetDerivation\", \"importedPackageHash\"]) delete metadata[key];\n const draft = TasksetDraftSchema.parse({ ...original, id: preparation.draftId, revision: 1, status: \"draft\",\n graders: original.graders.map(grader => ({ ...grader, metadata: { ...grader.metadata,\n portableGrader: source.taskset.graders.find(candidate => candidate.id === grader.id) } })),\n environment: { ...original.environment, metadata: { ...original.environment.metadata, portableExecutionResources: { environment: source.environment } } },\n modelScope: { modelId: preparation.lineage.owner.modelId, expectedModelRevision: input.expectedModelRevision, source: preparation },\n publishedTasksetRef: preparation.tasksetRevision > 1 ? preparation.sourceTasksetRef : null,\n metadata: { ...metadata, modelTasksetAuthoring: preparation.lineage,\n portableFileInventory: inventory.map(entry => ({ ...entry, sourcePath: sourcePath(entry.sourcePath), asset: { ...entry.asset,\n id: isManagedTasksetDraftFilePath(entry.sourcePath) ? `source-artifact-${contentHash({ packageHash: source.contentHash, assetId: entry.asset.id })}` : entry.asset.id,\n path: sourcePath(entry.asset.path) } })) },\n });\n return TasksetDraftSourceInitializationSchema.parse({ draft, filePaths });\n}\n\n/** Materialize the retained source into an immutable draft snapshot. Callers\n * must never replace a newer saved snapshot with this initial population. */\nexport function materializeTasksetDraftWorkspace(input: { initialized: TasksetDraftSourceInitialization; source: TasksetPackage }) {\n const initialized = TasksetDraftSourceInitializationSchema.parse(input.initialized);\n const source = validateTasksetPackage(input.source);\n if (initialized.draft.modelScope?.source?.sourcePackageHash !== source.contentHash) throw new Error(\"Taskset draft lost its source preparation.\");\n const files = new Map<string, TasksetDraftWorkspaceFile>();\n for (const mapping of initialized.filePaths) {\n const file = source.files.find(candidate => candidate.asset.id === mapping.assetId);\n if (!file) throw new Error(\"Taskset draft source asset is missing.\");\n for (const path of mapping.paths) {\n const previous = files.get(path);\n if (previous && previous.contentHash !== file.asset.contentHash) throw new Error(\"Taskset draft source paths conflict.\");\n files.set(path, { path, contentHash: file.asset.contentHash, sizeBytes: file.asset.sizeBytes, base64: file.base64 });\n }\n }\n for (const configured of configuredTasksetDraftFiles(initialized.draft)) if (!files.has(configured.relativePath)) {\n const bytes = new TextEncoder().encode(configured.source);\n files.set(configured.relativePath, { path: configured.relativePath, contentHash: sha256(bytes), sizeBytes: bytes.byteLength, base64: Buffer.from(bytes).toString(\"base64\") });\n }\n let draft = initialized.draft;\n if (draft.metrics.customAggregator) {\n const file = files.get(draft.metrics.customAggregator.module);\n if (!file) throw new Error(\"Declared Taskset metric module is missing.\");\n decodeTasksetDraftWorkspaceFile(file);\n draft = TasksetDraftSchema.parse({ ...draft, metrics: { ...draft.metrics, customAggregator: { ...draft.metrics.customAggregator, contentHash: file.contentHash } } });\n }\n return createTasksetDraftWorkspace({ schemaVersion: \"openpond.tasksetDraftWorkspace.v1\", draft, files: [...files.values()] });\n}\n"],"mappings":"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","names":["file","LearningDomainError","learningRef","sameLearningRef","taskBatchPackageMetadata","TaskDefinitionSchema","learningRef","sealLearningContent","evidence","source","asset","LearningDomainError","taskBatchPackageMetadata","sameLearningRef","learningRef","learningRef","sameLearningRef","sameLearningRef","learningRef"]}
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  EvaluationCoordinationTransport
3
- } from "./chunk-YCQVVFE5.js";
3
+ } from "./chunk-3B5KSH3V.js";
4
4
  import {
5
5
  RunExperimentSchema
6
- } from "./chunk-G53MA5XX.js";
6
+ } from "./chunk-T3MFWGMX.js";
7
7
  import {
8
8
  ImmutableReleaseRefSchema,
9
9
  assertContentHash,
10
10
  contentHash
11
- } from "./chunk-COPVBJPL.js";
11
+ } from "./chunk-H3JZ3P5T.js";
12
12
 
13
13
  // src/experiment-evaluation-schedules.ts
14
14
  import { z } from "zod";
@@ -171,4 +171,4 @@ export {
171
171
  ExperimentEvaluationScheduleCommandSchema,
172
172
  OpenPondExperimentEvaluationScheduleClient
173
173
  };
174
- //# sourceMappingURL=chunk-G6Y6CQYV.js.map
174
+ //# sourceMappingURL=chunk-AUNNXJQE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/experiment-evaluation-schedules.ts"],"sourcesContent":["import {EvaluationCoordinationTransport,type EvaluationCoordinationAccess} from \"./evaluation-coordination-http.js\";\nimport { z } from \"zod\";\nimport {\n contentHash,\n assertContentHash,\n ImmutableReleaseRefSchema,\n} from \"@openpond/harness\";\nimport { NightlyScheduleSchema } from \"@openpond/evals/learning\";\nimport { RunExperimentSchema } from \"./experiments.js\";\nconst Id = z.string().trim().min(1).max(200),\n Hash = z.string().regex(/^[a-f0-9]{64}$/),\n Time = z.string().datetime();\nexport const ExperimentEvaluationScheduleInputSchema = z\n .object({\n operationId: Id,\n id: Id.optional(),\n expectedRevision: z.number().int().nonnegative(),\n teamId: Id,\n projectId: Id.nullable(),\n enabled: z.boolean(),\n configuration: RunExperimentSchema,\n cadence: z.discriminatedUnion(\"kind\", [\n z\n .object({\n kind: z.literal(\"interval\"),\n seconds: z.number().int().min(60).max(31536000),\n })\n .strict(),\n z\n .object({ kind: z.literal(\"nightly\"), calendar: NightlyScheduleSchema })\n .strict(),\n ]),\n maximumTotalSpendUsd: z.number().finite().positive().max(10000),\n maximumAttempts: z.number().int().min(1).max(20),\n })\n .strict()\n .superRefine((v, c) => {\n if (\n v.configuration.request.teamId !== v.teamId ||\n (v.configuration.request.project?.id ?? null) !== v.projectId\n )\n c.addIssue({\n code: \"custom\",\n message:\n \"The scheduled Experiment must retain its actual workspace and Project.\",\n });\n if (v.configuration.maximumCostUsd > v.maximumTotalSpendUsd)\n c.addIssue({\n code: \"custom\",\n message:\n \"The run ceiling exceeds the approved cumulative schedule ceiling.\",\n });\n });\nexport const ExperimentEvaluationFireSchema = z\n .object({\n id: Id,\n scheduledAt: Time,\n coalescedThroughAt: Time,\n coalescedCount: z.number().int().nonnegative(),\n configurationHash: Hash,\n operationId: Id,\n state: z.enum([\n \"reserved\",\n \"dispatching\",\n \"running\",\n \"cleaning\",\n \"completed\",\n \"failed\",\n \"cancelled\",\n \"uncertain\",\n ]),\n executionId: Id.nullable(),\n attempt: z.number().int().positive(),\n maximumCostUsd: z.number().finite().positive(),\n actualSpendUsd: z.number().finite().nonnegative().nullable(),\n cleanupComplete: z.boolean(),\n error: z.string().max(4000).nullable(),\n })\n .strict();\nexport const ExperimentEvaluationScheduleSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.experimentEvaluationSchedule.v1\"),\n id: Id,\n revision: z.number().int().positive(),\n actorId: Id,\n teamId: Id,\n projectId: Id.nullable(),\n operationId: Id,\n requestHash: Hash,\n configuration: RunExperimentSchema,\n configurationHash: Hash,\n cadence: ExperimentEvaluationScheduleInputSchema.shape.cadence,\n state: z.enum([\"scheduled\", \"disabled\", \"blocked\"]),\n nextRunAt: Time.nullable(),\n maximumTotalSpendUsd: z.number().finite().positive(),\n maximumAttempts: z.number().int().positive(),\n lastEvaluatedConfigurationHash: Hash.nullable(),\n newerUnevaluatedRelease: ImmutableReleaseRefSchema.nullable(),\n fires: z.array(ExperimentEvaluationFireSchema).max(10000),\n reason: z.string().max(4000).nullable(),\n createdAt: Time,\n updatedAt: Time,\n contentHash: Hash,\n })\n .strict();\nexport type ExperimentEvaluationSchedule = z.infer<\n typeof ExperimentEvaluationScheduleSchema\n>;\nexport type ExperimentEvaluationScheduleInput = z.infer<\n typeof ExperimentEvaluationScheduleInputSchema\n>;\nexport type ExperimentEvaluationFire = z.infer<\n typeof ExperimentEvaluationFireSchema\n>;\nexport function scheduledExperimentHash(\n value: z.infer<typeof RunExperimentSchema>,\n) {\n const { operationId: _operation, request, ...rest } = value;\n const { operationId: _requestOperation, ...body } = request;\n void _operation;\n void _requestOperation;\n return contentHash({ ...rest, request: body });\n}\nexport function verifyExperimentEvaluationSchedule(raw: unknown) {\n const v = ExperimentEvaluationScheduleSchema.parse(raw);\n assertContentHash(v, \"Scheduled Experiment\");\n if (\n v.configurationHash !== scheduledExperimentHash(v.configuration) ||\n v.configuration.request.teamId !== v.teamId ||\n (v.configuration.request.project?.id ?? null) !== v.projectId\n )\n throw new Error(\n \"Scheduled Experiment immutable authority differs from its recipe.\",\n );\n return v;\n}\nexport function sealExperimentEvaluationSchedule(\n value: Omit<ExperimentEvaluationSchedule, \"contentHash\">,\n) {\n return verifyExperimentEvaluationSchedule({\n ...value,\n contentHash: contentHash(value),\n });\n}\nexport const ExperimentEvaluationScheduleControlSchema = z\n .object({\n teamId: Id,\n id: Id,\n operationId: Id,\n expectedRevision: z.number().int().positive(),\n action: z.enum([\"cancel_active\", \"retry_active\", \"pause\"]),\n })\n .strict();\n\nexport const ExperimentEvaluationScheduleCommandSchema = z.discriminatedUnion(\n \"operation\",\n [\n z\n .object({\n operation: z.literal(\"publish\"),\n request: ExperimentEvaluationScheduleInputSchema,\n })\n .strict(),\n z\n .object({\n operation: z.literal(\"control\"),\n request: ExperimentEvaluationScheduleControlSchema,\n })\n .strict(),\n z.object({ operation: z.literal(\"read\"), id: Id }).strict(),\n z\n .object({\n operation: z.literal(\"list\"),\n cursor: Id.optional(),\n limit: z.number().int().min(1).max(100).default(50),\n })\n .strict(),\n ],\n);\n\nexport class OpenPondExperimentEvaluationScheduleClient {\n private readonly transport:EvaluationCoordinationTransport;\n constructor(access:EvaluationCoordinationAccess){this.transport=new EvaluationCoordinationTransport(access);}\n async command(raw:z.input<typeof ExperimentEvaluationScheduleCommandSchema>,signal?:AbortSignal){\n const request=ExperimentEvaluationScheduleCommandSchema.parse(raw),access=this.transport.access;\n if((request.operation===\"publish\"&&(request.request.teamId!==access.teamId||request.request.projectId!==access.projectId))||(request.operation===\"control\"&&request.request.teamId!==access.teamId))throw new Error(\"The schedule command belongs to another workspace or Project.\");\n const value=await this.transport.post(\"experiment-evaluation-schedules\",request,signal);\n const page=request.operation===\"list\"?z.object({items:z.array(z.unknown()).max(request.limit),nextCursor:z.string().nullable()}).strict().parse(value):null;\n const items=(page?.items??[value]).map(raw=>{const schedule=verifyExperimentEvaluationSchedule(raw);if(schedule.actorId!==access.actorId||schedule.teamId!==access.teamId||schedule.projectId!==access.projectId||request.operation===\"read\"&&schedule.id!==request.id||request.operation===\"control\"&&schedule.id!==request.request.id||request.operation===\"publish\"&&(schedule.requestHash!==contentHash(request.request)||Boolean(request.request.id&&schedule.id!==request.request.id)))throw new Error(\"Schedule readback differs from its exact owner command.\");return schedule;});\n return page?{items,nextCursor:page.nextCursor}:items[0]!;\n }\n}\n"],"mappings":"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","names":["raw"]}
@@ -2,14 +2,14 @@ import {
2
2
  GeneratedTaskFileSchema,
3
3
  TasksetReadinessReportSchema,
4
4
  TrainingPathRecommendationSchema
5
- } from "./chunk-CWXM57QR.js";
5
+ } from "./chunk-ZFYI4P6C.js";
6
6
  import {
7
7
  GraderFixtureLabelSchema,
8
8
  GraderSpecSchema,
9
9
  TaskPolicyBoundarySchema,
10
10
  TasksetCapabilityManifestSchema,
11
11
  TasksetSplitSchema
12
- } from "./chunk-FHCSDXIA.js";
12
+ } from "./chunk-EJZ7HOIS.js";
13
13
 
14
14
  // src/task-design-contracts.ts
15
15
  import { z } from "zod";
@@ -97,4 +97,4 @@ export {
97
97
  TaskExampleProposalSchema,
98
98
  TaskDesignProposalSchema
99
99
  };
100
- //# sourceMappingURL=chunk-XYQD4LDI.js.map
100
+ //# sourceMappingURL=chunk-BGNPKYBJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/task-design-contracts.ts"],"sourcesContent":["import { z } from \"zod\";\nimport {\n TasksetSplitSchema,\n TasksetCapabilityManifestSchema,\n TaskPolicyBoundarySchema,\n GraderSpecSchema,\n GraderFixtureLabelSchema,\n} from \"./taskset-draft-core.js\";\nimport {\n GeneratedTaskFileSchema,\n TasksetReadinessReportSchema,\n TrainingPathRecommendationSchema,\n} from \"./taskset-authored-contracts.js\";\n\nconst Id = z.string().trim().min(1).max(240);\nconst Text = z.string().trim().min(1).max(5_000);\nexport const TrainingTacticSchema = z.enum([\n \"no_training\",\n \"prompting\",\n \"retrieval\",\n \"sft\",\n \"preference\",\n \"grpo_rft\",\n \"sdft_opsd\",\n \"sdpo\",\n \"agentic_rl\",\n]);\nexport const TaskDesignFixtureTemplateSchema = z.object({\n id: Id,\n taskIndex: z.number().int().nonnegative(),\n label: GraderFixtureLabelSchema,\n output: z.record(z.string(), z.unknown()),\n infrastructureError: z.string().trim().min(1).max(10_000).nullable(),\n expectedPassed: z.boolean(),\n expectedRewardEligible: z.boolean(),\n metadata: z.record(z.string(), z.unknown()).default({}),\n});\nexport const CapabilityDiagnosisSchema = z.object({\n schemaVersion: z.literal(\"openpond.capabilityDiagnosis.v1\"),\n summary: z.string().trim().min(1).max(10_000),\n stableBehavior: z.array(Text).max(100).default([]),\n changingKnowledge: z.array(Text).max(100).default([]),\n requiredContext: z.array(Text).max(100).default([]),\n requiredTools: z.array(Id).max(100).default([]),\n intervention: TrainingTacticSchema,\n trainingEligible: z.boolean(),\n rationale: z.array(Text).min(1).max(100),\n confidence: z.number().min(0).max(1),\n});\nexport const TaskExampleProposalSchema = z.object({\n id: Id,\n sourceId: Id,\n sourceTurnId: Id.nullable(),\n split: TasksetSplitSchema,\n origin: z.enum([\"extracted\", \"corrected\", \"synthetic\", \"expert_authored\"]),\n inputPrompt: z.string().trim().min(1).max(100_000),\n expectedOutputText: z.string().trim().min(1).max(200_000).nullable(),\n rationale: Text,\n});\nexport const TaskDesignProposalSchema = z.object({\n schemaVersion: z.literal(\"openpond.taskDesignProposal.v1\"),\n id: Id,\n name: z.string().trim().min(1).max(500),\n objective: z.string().trim().min(1).max(20_000),\n diagnosis: CapabilityDiagnosisSchema.default({\n schemaVersion: \"openpond.capabilityDiagnosis.v1\",\n summary: \"Reproduce the selected approved behavior.\",\n stableBehavior: [],\n changingKnowledge: [],\n requiredContext: [],\n requiredTools: [],\n intervention: \"sft\",\n trainingEligible: true,\n rationale: [\"The selected examples were supplied as demonstrations.\"],\n confidence: 0.5,\n }),\n taskKind: TasksetCapabilityManifestSchema.shape.taskKind,\n sourceIds: z.array(Id).min(1).max(100_000),\n assumptions: z.array(Text).max(1_000),\n successCriteria: z.array(Text).min(1).max(1_000),\n proposedGraders: z.array(GraderSpecSchema).max(1_000).default([]),\n graderFixtures: z.array(TaskDesignFixtureTemplateSchema).max(100_000).default([]),\n generatedFiles: z.array(GeneratedTaskFileSchema).max(1_000).default([]),\n proposedExamples: z.array(TaskExampleProposalSchema).max(100_000).default([]),\n proposedMethod: TasksetReadinessReportSchema.shape.recommendedMethod,\n trainingPath: TrainingPathRecommendationSchema.nullable().default(null),\n policy: TaskPolicyBoundarySchema,\n warnings: z.array(z.string().trim().min(1)).default([]),\n createdAt: z.string().trim().min(1),\n});\nexport type TaskDesignFixtureTemplate = z.infer<typeof TaskDesignFixtureTemplateSchema>;\nexport type CapabilityDiagnosis = z.infer<typeof CapabilityDiagnosisSchema>;\nexport type TaskExampleProposal = z.infer<typeof TaskExampleProposalSchema>;\nexport type TaskDesignProposal = z.infer<typeof TaskDesignProposalSchema>;\nexport type TrainingTactic = z.infer<typeof TrainingTacticSchema>;\n"],"mappings":"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","names":[]}