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,12 +1,12 @@
1
1
  import {
2
2
  TasksetDraftWorkspaceSchema
3
- } from "./chunk-BFR3VC25.js";
3
+ } from "./chunk-HOOHJCE7.js";
4
4
  import {
5
5
  TasksetCatalogReleaseRefSchema
6
- } from "./chunk-K3JCP4FO.js";
6
+ } from "./chunk-Z252BNAZ.js";
7
7
  import {
8
8
  contentHash
9
- } from "./chunk-COPVBJPL.js";
9
+ } from "./chunk-H3JZ3P5T.js";
10
10
 
11
11
  // src/connected-evidence-contracts.ts
12
12
  import { z } from "zod";
@@ -178,4 +178,4 @@ export {
178
178
  ConnectedStartingAssetsReceiptSchema,
179
179
  verifyConnectedStartingAssetsReceipt
180
180
  };
181
- //# sourceMappingURL=chunk-QEIT5VXJ.js.map
181
+ //# sourceMappingURL=chunk-F4GITADW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/connected-evidence-contracts.ts","../src/dataset-workspace-contracts.ts","../src/connected-starting-assets.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { ConnectedSourceKindSchema, ConnectedBoundarySchema, ConnectedUsageSummarySchema, CONNECTED_EVIDENCE_LIMITS } from \"@openpond/evals/connected-evidence\";\n\nconst Id = z.string().trim().min(1).max(500), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const ConnectedScopeSchema = z.object({ teamId: Id, ownerUserId: Id }).strict();\nexport const ConnectedCaseRefSchema = z.object({ id: Id, snapshotHash: Hash, boundaryId: Id, boundaryRevisionHash: Hash }).strict();\nexport type ConnectedCaseRef = z.infer<typeof ConnectedCaseRefSchema>;\nexport const ConnectedSourceSummarySchema = z.object({ sourceId: Id, source: ConnectedSourceKindSchema, sessionId: Id,\n snapshotHash: Hash, title: z.string().max(500), projectId: Id.nullable(), capturedAt: z.string().datetime(),\n boundaries: z.array(ConnectedBoundarySchema.omit({ start: true, end: true })).max(CONNECTED_EVIDENCE_LIMITS.boundaries) }).strict();\nexport const ConnectedCaptureRequestSchema = z.object({ operationId: Id, conversationId: Id.optional(),\n cursor: Id.optional(), limit: z.number().int().min(1).max(50).default(20) }).strict();\nexport const AgentImportUploadRefSchema = z.object({ hash: Hash, parts: z.number().int().min(1).max(1_500) }).strict();\nexport const AgentImportUploadPartSchema = AgentImportUploadRefSchema.extend({ index: z.number().int().nonnegative().max(1_499), base64: z.string().max(350_000) }).strict();\nexport const AgentImportFileSchema = z.object({ path: z.string().min(1).max(500), encoding: z.enum([\"utf8\", \"zstd\"]), base64: z.string() }).strict();\nexport const AgentImportPreviewRequestSchema = z.object({ upload: AgentImportUploadRefSchema,\n source: z.enum([\"codex\", \"claude_code\", \"hermes\", \"openclaw\", \"opencode\", \"grok_build\", \"pi\", \"oh_my_pi\"]), branchLeafId: Id.optional(), acquisition: z.object({ machineId: Id, sourceInstanceId: Id }).strict().optional(),\n destination: z.discriminatedUnion(\"kind\", [z.object({ kind: z.literal(\"existing\"), projectId: Id }).strict(),\n z.object({ kind: z.literal(\"new\"), name: z.string().trim().min(1).max(200) }).strict()]) }).strict();\nexport const AgentImportCommitRequestSchema = AgentImportPreviewRequestSchema.extend({ operationId: Id, previewHash: Hash,\n selection: z.array(z.object({ sessionHash: Hash, boundaryIds: z.array(Id).min(1).max(CONNECTED_EVIDENCE_LIMITS.boundaries) }).strict()).min(1).max(CONNECTED_EVIDENCE_LIMITS.sessions) }).strict();\nexport const ConnectedHomeQuerySchema = z.object({ from: z.string().datetime(), to: z.string().datetime(), projectId: Id.optional() }).strict();\nexport const ConnectedHomeSummarySchema = z.object({ teamId: Id, range: ConnectedHomeQuerySchema,\n activity: z.object({ conversations: z.number().int().nonnegative(), turns: z.number().int().nonnegative(), chatTurns: z.number().int().nonnegative(), workTurns: z.number().int().nonnegative() }).strict(),\n accounting: z.object({ contextSnapshots: z.number().int().nonnegative() }).strict(), usage: ConnectedUsageSummarySchema }).strict();\n","import { z } from \"zod\";\nimport { TasksetDraftWorkspaceSchema } from \"./taskset-draft-workspace.js\";\nimport { TasksetCatalogReleaseRefSchema } from \"./taskset-catalog.js\";\nexport { compileTasksetDraftWorkspace } from \"./taskset-draft-package-compiler.js\";\n\nconst Id = z.string().trim().min(1).max(240);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const DatasetWorkspaceListQuerySchema = z.object({ cursor: z.string().trim().min(1).max(2_000).optional(), projectId: Id.optional(), search: z.string().trim().max(100).optional(), sort: z.enum([\"id\", \"name\", \"updated\"]).default(\"id\"), limit: z.number().int().min(1).max(100).default(100) }).strict();\nexport const DatasetWorkspaceWriteSchema = z.object({\n operationId: Id, expectedRevision: z.number().int().nonnegative(), originProjectId: Id.optional(), workspace: TasksetDraftWorkspaceSchema,\n ownerScope: z.enum([\"workspace\", \"personal\"]).optional(),\n}).strict().superRefine((value, ctx) => {\n if (value.workspace.draft.modelScope !== null) ctx.addIssue({ code: \"custom\", message: \"Independent datasets cannot carry Model-owned draft preparation.\" });\n if (value.workspace.draft.status !== \"draft\") ctx.addIssue({ code: \"custom\", message: \"Only draft workspaces can be saved.\" });\n});\nexport const DatasetWorkspaceReceiptSchema = z.object({\n schemaVersion: z.literal(\"openpond.datasetWorkspaceReceipt.v1\"), teamId: Id, datasetId: Id,\n revision: z.number().int().positive(), originProjectId: Id.optional(), workspace: TasksetDraftWorkspaceSchema,\n ownerScope: z.enum([\"workspace\", \"personal\"]).optional(),\n publication: z.object({ tasksetId: Id, release: TasksetCatalogReleaseRefSchema, packageHash: Hash }).strict().nullable(),\n}).strict().superRefine((value, ctx) => {\n if (value.workspace.draft.id !== value.datasetId || value.workspace.draft.profileId !== value.teamId || value.workspace.draft.revision !== value.revision || value.workspace.draft.modelScope !== null) ctx.addIssue({ code: \"custom\", message: \"Dataset workspace scope/revision mismatch.\" });\n});\nexport const DatasetWorkspacePublishSchema = z.object({ operationId: Id, expectedRevision: z.number().int().positive(), workspaceHash: Hash, packageHash: Hash }).strict();\nexport const DatasetWorkspaceBeginVersionSchema = z.object({ operationId: Id, expectedRevision: z.number().int().positive() }).strict();\nexport const DatasetWorkspaceVersionsSchema = z.object({ teamId: Id, datasetId: Id, items: z.array(z.object({\n workspaceRevision: z.number().int().positive(), publication: DatasetWorkspaceReceiptSchema.shape.publication.unwrap(), publishedAt: z.iso.datetime(),\n}).strict()).max(25), nextBeforeRevision: z.number().int().positive().nullable() }).strict();\nexport type DatasetWorkspaceReceipt = z.infer<typeof DatasetWorkspaceReceiptSchema>;\n\nexport const DatasetWorkspaceListSchema = z.object({ teamId: Id, datasets: z.array(z.object({\n id: Id, revision: z.number().int().positive(), originProjectId: Id.optional(), name: z.string(), status: z.enum([\"draft\", \"published\"]),\n ownerScope: z.enum([\"workspace\", \"personal\"]).optional(),\n taskCount: z.number().int().nonnegative().optional(),\n publication: DatasetWorkspaceReceiptSchema.shape.publication, updatedAt: z.string().datetime(),\n}).strict()).max(100), nextCursor: z.string().trim().min(1).max(2_000).nullable() }).strict();\nexport const DatasetWorkspaceValidationSchema = z.object({ teamId: Id, datasetId: Id, revision: z.number().int().positive(), workspaceHash: Hash, packageHash: Hash, release: TasksetCatalogReleaseRefSchema }).strict();\n","import { z } from \"zod\";\nimport { contentHash } from \"@openpond/harness\";\nimport { ConnectedGitFileProofSchema } from \"@openpond/evals/connected-evidence\";\nimport { ConnectedCaseRefSchema } from \"./connected-evidence-contracts.js\";\n\nconst Id = z.string().trim().min(1).max(240);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const ConnectedStartingAssetsRequestSchema = z.object({\n operationId: Id, source: ConnectedCaseRefSchema,\n proofs: z.array(ConnectedGitFileProofSchema).min(1).max(100),\n}).strict().superRefine((value, ctx) => {\n if (new Set(value.proofs.map(proof => proof.path)).size !== value.proofs.length)\n ctx.addIssue({ code: \"custom\", message: \"Select each starting path once.\" });\n if (new TextEncoder().encode(JSON.stringify(value)).byteLength > 15 * 1024 * 1024)\n ctx.addIssue({ code: \"custom\", message: \"Starting assets exceed the retained upload allowance.\" });\n});\nexport const ConnectedStartingAssetSchema = z.object({\n path: ConnectedGitFileProofSchema.shape.path, commitHash: z.string().regex(/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/),\n gitObjectHash: z.string().regex(/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/),\n mode: z.enum([\"100644\", \"100755\"]), sizeBytes: z.number().int().nonnegative().max(2 * 1024 * 1024), sha256: Hash,\n}).strict();\nexport const ConnectedStartingAssetsReceiptSchema = z.object({\n schemaVersion: z.literal(\"openpond.connectedStartingAssetsReceipt.v1\"),\n id: Id, operationId: Id, teamId: Id, ownerUserId: Id, projectId: Id,\n requestHash: Hash, source: ConnectedCaseRefSchema, inputHash: Hash, observationHash: Hash,\n assets: z.array(ConnectedStartingAssetSchema).min(1).max(100),\n selectedPathsUnmodified: z.literal(true), dependencyClosureQualified: z.literal(false),\n createdAt: z.iso.datetime(), receiptHash: Hash,\n}).strict();\nexport type ConnectedStartingAssetsRequest = z.infer<typeof ConnectedStartingAssetsRequestSchema>;\nexport type ConnectedStartingAssetsReceipt = z.infer<typeof ConnectedStartingAssetsReceiptSchema>;\nexport function verifyConnectedStartingAssetsReceipt(raw: unknown) {\n const value = ConnectedStartingAssetsReceiptSchema.parse(raw);\n const { receiptHash, ...body } = value;\n if (contentHash(body) !== receiptHash || value.id !== `starting-assets-${contentHash(value.operationId).slice(0, 40)}`\n || new Set(value.assets.map(asset => asset.path)).size !== value.assets.length\n || value.assets.some(asset => asset.commitHash !== value.assets[0]!.commitHash))\n throw new Error(\"Connected starting assets receipt identity differs from its retained evidence.\");\n return value;\n}\n"],"mappings":"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","names":["z","Id","z","Hash","z","Id","z","Hash"]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  apiFetch,
3
3
  readApiJson
4
- } from "./chunk-CEZEVILU.js";
4
+ } from "./chunk-HJ2AIAKX.js";
5
5
 
6
6
  // src/workflows.ts
7
7
  import { randomUUID } from "node:crypto";
@@ -77,4 +77,4 @@ function requiredId(value, label) {
77
77
  export {
78
78
  OpenPondWorkflowsClient
79
79
  };
80
- //# sourceMappingURL=chunk-MEKWESBF.js.map
80
+ //# sourceMappingURL=chunk-FBZTDDRC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/workflows.ts"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\n\nimport { apiFetch, readApiJson } from \"@openpond/cloud/api/core\";\n\nexport type OpenPondWorkflowWeekday =\n | \"sunday\"\n | \"monday\"\n | \"tuesday\"\n | \"wednesday\"\n | \"thursday\"\n | \"friday\"\n | \"saturday\";\n\nexport type OpenPondWorkflowRecurrence = {\n version: 1;\n kind: \"once\" | \"daily\" | \"weekdays\" | \"weekly\" | \"monthly\";\n timeZone: string;\n startDate: string;\n localTime: string;\n weekdays?: OpenPondWorkflowWeekday[];\n dayOfMonth?: number;\n end:\n | { kind: \"never\" }\n | { kind: \"on_date\"; date: string }\n | { kind: \"after_occurrences\"; occurrences: number };\n};\n\nexport type OpenPondWorkflowSchedule = {\n id: string;\n expression: string | null;\n timeZone: string;\n recurrence: OpenPondWorkflowRecurrence | null;\n configurationVersion: number;\n enabled: boolean;\n nextRunAt: string | null;\n lastTriggeredAt: string | null;\n delivery: Record<string, unknown>;\n};\n\nexport type OpenPondWorkflowDefinition = {\n id: string;\n definitionKey: string;\n version: number;\n name: string;\n prompt: string;\n modelId: string;\n schedules: OpenPondWorkflowSchedule[];\n};\n\nexport type OpenPondWorkflowRun = {\n id: string;\n definitionId: string;\n scheduleId: string | null;\n definitionName: string;\n definitionVersion: number;\n conversationId: string;\n triggerKind: \"manual\" | \"schedule\" | \"webhook\" | \"retry\";\n status: string;\n notificationStatus: string;\n deliveryStatus: string;\n deliveryError: string | null;\n createdAt: string;\n};\n\nexport type OpenPondWorkflowCatalog = {\n definitions: OpenPondWorkflowDefinition[];\n runs: OpenPondWorkflowRun[];\n asOf: string;\n};\n\nexport type OpenPondWorkflowCreateInput = {\n clientRequestId?: string;\n sourceTurnId?: string | null;\n name: string;\n prompt: string;\n recurrence: OpenPondWorkflowRecurrence;\n modelId?: string;\n enabled?: boolean;\n target?:\n | { kind: \"prompt\" }\n | {\n kind: \"external_callback\";\n callbackUrl: string;\n externalReference: string;\n };\n};\n\nexport type OpenPondWorkflowCreateResult = {\n created: boolean;\n definitionId: string;\n scheduleId: string;\n name: string;\n enabled: boolean;\n nextRunAt: string | null;\n recurrence: OpenPondWorkflowRecurrence | null;\n timeZone: string;\n};\n\nexport type OpenPondWorkflowUpdateInput =\n | { enabled: boolean }\n | {\n name: string;\n prompt: string;\n recurrence: OpenPondWorkflowRecurrence;\n };\n\nexport type OpenPondWorkflowUpdateResult = {\n definitionId?: string;\n schedule: {\n id: string;\n enabled: boolean;\n nextRunAt: string | null;\n };\n};\n\nexport type OpenPondWorkflowDeleteResult = {\n schedule: {\n id: string;\n archived: true;\n };\n};\n\nexport type OpenPondWorkflowRunNowResult = {\n runId: string;\n conversationId: string;\n};\n\nexport type OpenPondWorkflowRequestOptions = {\n signal?: AbortSignal;\n};\n\ntype WorkflowsClientInput = {\n apiKey: string;\n apiBaseUrl: string;\n};\n\nexport class OpenPondWorkflowsClient {\n readonly #apiKey: string;\n readonly #apiBaseUrl: string;\n\n constructor(input: WorkflowsClientInput) {\n this.#apiKey = input.apiKey;\n this.#apiBaseUrl = input.apiBaseUrl.replace(/\\/+$/, \"\");\n }\n\n async list(\n options: OpenPondWorkflowRequestOptions = {},\n ): Promise<OpenPondWorkflowCatalog> {\n return this.#request<OpenPondWorkflowCatalog>(\"\", \"List Workflows\", {\n signal: options.signal,\n });\n }\n\n async create(\n input: OpenPondWorkflowCreateInput,\n options: OpenPondWorkflowRequestOptions = {},\n ): Promise<OpenPondWorkflowCreateResult> {\n return this.#request<OpenPondWorkflowCreateResult>(\"\", \"Create Workflow\", {\n method: \"POST\",\n body: JSON.stringify({\n ...input,\n clientRequestId: input.clientRequestId?.trim() || randomUUID(),\n }),\n signal: options.signal,\n });\n }\n\n async update(\n scheduleId: string,\n input: OpenPondWorkflowUpdateInput,\n options: OpenPondWorkflowRequestOptions = {},\n ): Promise<OpenPondWorkflowUpdateResult> {\n return this.#request<OpenPondWorkflowUpdateResult>(\n `/schedules/${encodeURIComponent(requiredId(scheduleId, \"scheduleId\"))}`,\n \"Update Workflow\",\n {\n method: \"PATCH\",\n body: JSON.stringify(input),\n signal: options.signal,\n },\n );\n }\n\n async delete(\n scheduleId: string,\n options: OpenPondWorkflowRequestOptions = {},\n ): Promise<OpenPondWorkflowDeleteResult> {\n return this.#request<OpenPondWorkflowDeleteResult>(\n `/schedules/${encodeURIComponent(requiredId(scheduleId, \"scheduleId\"))}`,\n \"Delete Workflow\",\n { method: \"DELETE\", signal: options.signal },\n );\n }\n\n async runNow(\n scheduleId: string,\n input: { clientRequestId?: string } = {},\n options: OpenPondWorkflowRequestOptions = {},\n ): Promise<OpenPondWorkflowRunNowResult> {\n return this.#request<OpenPondWorkflowRunNowResult>(\n `/schedules/${encodeURIComponent(requiredId(scheduleId, \"scheduleId\"))}/run`,\n \"Run Workflow\",\n {\n method: \"POST\",\n body: JSON.stringify({\n clientRequestId: input.clientRequestId?.trim() || randomUUID(),\n }),\n signal: options.signal,\n },\n );\n }\n\n async #request<T>(\n suffix: string,\n label: string,\n options: RequestInit = {},\n ): Promise<T> {\n const response = await apiFetch(\n this.#apiBaseUrl,\n this.#apiKey,\n `/v1/saved-work${suffix}`,\n options,\n );\n return readApiJson<T>(response, label);\n }\n}\n\nfunction requiredId(value: string, label: string): string {\n const normalized = value.trim();\n if (!normalized) throw new Error(`${label} is required`);\n return normalized;\n}\n"],"mappings":";;;;;;AAAA,SAAS,kBAAkB;AAwIpB,IAAM,0BAAN,MAA8B;AAAA,EAC1B;AAAA,EACA;AAAA,EAET,YAAY,OAA6B;AACvC,SAAK,UAAU,MAAM;AACrB,SAAK,cAAc,MAAM,WAAW,QAAQ,QAAQ,EAAE;AAAA,EACxD;AAAA,EAEA,MAAM,KACJ,UAA0C,CAAC,GACT;AAClC,WAAO,KAAK,SAAkC,IAAI,kBAAkB;AAAA,MAClE,QAAQ,QAAQ;AAAA,IAClB,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,OACJ,OACA,UAA0C,CAAC,GACJ;AACvC,WAAO,KAAK,SAAuC,IAAI,mBAAmB;AAAA,MACxE,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU;AAAA,QACnB,GAAG;AAAA,QACH,iBAAiB,MAAM,iBAAiB,KAAK,KAAK,WAAW;AAAA,MAC/D,CAAC;AAAA,MACD,QAAQ,QAAQ;AAAA,IAClB,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,OACJ,YACA,OACA,UAA0C,CAAC,GACJ;AACvC,WAAO,KAAK;AAAA,MACV,cAAc,mBAAmB,WAAW,YAAY,YAAY,CAAC,CAAC;AAAA,MACtE;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,MAAM,KAAK,UAAU,KAAK;AAAA,QAC1B,QAAQ,QAAQ;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,OACJ,YACA,UAA0C,CAAC,GACJ;AACvC,WAAO,KAAK;AAAA,MACV,cAAc,mBAAmB,WAAW,YAAY,YAAY,CAAC,CAAC;AAAA,MACtE;AAAA,MACA,EAAE,QAAQ,UAAU,QAAQ,QAAQ,OAAO;AAAA,IAC7C;AAAA,EACF;AAAA,EAEA,MAAM,OACJ,YACA,QAAsC,CAAC,GACvC,UAA0C,CAAC,GACJ;AACvC,WAAO,KAAK;AAAA,MACV,cAAc,mBAAmB,WAAW,YAAY,YAAY,CAAC,CAAC;AAAA,MACtE;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,MAAM,KAAK,UAAU;AAAA,UACnB,iBAAiB,MAAM,iBAAiB,KAAK,KAAK,WAAW;AAAA,QAC/D,CAAC;AAAA,QACD,QAAQ,QAAQ;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,SACJ,QACA,OACA,UAAuB,CAAC,GACZ;AACZ,UAAM,WAAW,MAAM;AAAA,MACrB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,iBAAiB,MAAM;AAAA,MACvB;AAAA,IACF;AACA,WAAO,YAAe,UAAU,KAAK;AAAA,EACvC;AACF;AAEA,SAAS,WAAW,OAAe,OAAuB;AACxD,QAAM,aAAa,MAAM,KAAK;AAC9B,MAAI,CAAC,WAAY,OAAM,IAAI,MAAM,GAAG,KAAK,cAAc;AACvD,SAAO;AACT;","names":[]}
@@ -2,7 +2,7 @@ import {
2
2
  TasksetSchema,
3
3
  computeTasksetHash,
4
4
  createTasksetDraft
5
- } from "./chunk-CWXM57QR.js";
5
+ } from "./chunk-ZFYI4P6C.js";
6
6
  import {
7
7
  GraderFixtureSchema,
8
8
  GraderSpecSchema,
@@ -11,10 +11,10 @@ import {
11
11
  decodeTasksetPackageFile,
12
12
  resolveTasksetPackageInstructions,
13
13
  validateTasksetPackage
14
- } from "./chunk-FHCSDXIA.js";
14
+ } from "./chunk-EJZ7HOIS.js";
15
15
  import {
16
16
  contentHash
17
- } from "./chunk-COPVBJPL.js";
17
+ } from "./chunk-H3JZ3P5T.js";
18
18
 
19
19
  // src/taskset-package-grader-projection.ts
20
20
  import { compileBoundGraders, resolveBoundRewards } from "@openpond/evals/rewards";
@@ -184,7 +184,7 @@ function prepareImportedTasksetPackage(input) {
184
184
  ...task,
185
185
  schemaVersion: "openpond.taskData.v1",
186
186
  sourceRefs: [source.id],
187
- assets: task.artifactRefs.map((asset) => ({
187
+ assets: [...new Map([...task.artifactRefs, ...(task.requiredOutputs ?? []).flatMap((output) => output.submissionMode === "structured_json" && output.schemaRef ? [output.schemaRef] : [])].map((asset) => [asset.id, asset])).values()].map((asset) => ({
188
188
  id: asset.id,
189
189
  sourceRefId: source.id,
190
190
  artifactRef: asset.path,
@@ -252,4 +252,4 @@ export {
252
252
  prepareImportedTasksetPackage,
253
253
  tasksetPackageSourceId
254
254
  };
255
- //# sourceMappingURL=chunk-FY7NHCEH.js.map
255
+ //# sourceMappingURL=chunk-FLNWE5ZA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/taskset-package-grader-projection.ts","../src/taskset-package-projection.ts"],"sourcesContent":["import { compileBoundGraders, resolveBoundRewards, type RewardBinding, type RewardRelease } from \"@openpond/evals/rewards\";\nimport { learningRef, verifyLearningTextAsset, RewardFixtureAuthoringFieldsSchema, type LearningTextAsset } from \"@openpond/evals/learning\";\nimport type { GraderSpec } from \"./taskset-draft-core.js\";\nimport { GraderSpecSchema } from \"./taskset-draft-core.js\";\nimport { decodeTasksetPackageFile, type TasksetPackage } from \"./taskset-package-contracts.js\";\nimport { z } from \"zod\";\n\n/** Project an ordinary portable package without inventing a Reward binding. */\nexport function importedPackageGraders(value: TasksetPackage) {\n const authoring = value.taskset.metadata.ordinaryAuthoring as { judgeCalibrationFixtures?: unknown } | undefined;\n const calibrationFixtures = z.record(z.string(), z.array(z.string().min(1)).max(100_000)).parse(authoring?.judgeCalibrationFixtures ?? {});\n return value.taskset.graders.map(grader => {\n const base = { ...grader, label: grader.id, metadata: { portableGrader: grader } };\n if (grader.kind === \"custom_verifier\") return GraderSpecSchema.parse({ ...base,\n module: grader.verifierRef.path, exportName: grader.exportName ?? \"verify\",\n metadata: { ...base.metadata, portableVerifierRef: grader.verifierRef } });\n if (grader.kind === \"human\" || grader.kind === \"model_judge\") {\n const file = value.files.find(file => file.asset.id === grader.rubricRef.id);\n if (!file) throw new Error(`Imported rubric is missing: ${grader.id}.`);\n const rubric = new TextDecoder(\"utf-8\", { fatal: true }).decode(decodeTasksetPackageFile(file));\n const metadata = { ...base.metadata, portableRubricRef: grader.rubricRef };\n if (grader.kind === \"human\") return GraderSpecSchema.parse({ ...base, rubric, metadata });\n if (!grader.model) throw new Error(`Imported judge ${grader.id} requires its declared model before local preparation.`);\n return GraderSpecSchema.parse({ ...base, rubric, metadata, judge: grader.model, temperature: grader.temperature ?? 0,\n calibrationStatus: \"pending\", calibrationFixtureRefs: calibrationFixtures[grader.id] ?? [] });\n }\n return GraderSpecSchema.parse({ ...base, kind: grader.kind === \"artifact\" ? \"file\" : grader.kind,\n config: grader.kind === \"artifact\" ? { ...grader.config, ...(grader.config.refIncludes === undefined ? {} : { pathIncludes: grader.config.refIncludes }) } : grader.config });\n });\n}\n\nexport function projectLearningBatchGraders(binding: RewardBinding, rewards: RewardRelease[], assets: LearningTextAsset[] = []): GraderSpec[] {\n const resolved = resolveBoundRewards(binding, rewards);\n return compileBoundGraders(binding, rewards).map((grader) => {\n const reward = resolved.find(({ source }) => source.graderId === grader.id)!.reward;\n const base = { ...grader, label: reward.name, metadata: { rewardBinding: learningRef(binding) } };\n if (grader.kind === \"model_judge\") {\n if (!grader.model || grader.calibrationStatus !== \"passed\" || !reward.calibrationCheckRef || !reward.fixtureSetRef) throw new Error(`Reward ${grader.id} needs a retained passing calibration check before preparation.`);\n const rubric = assets.find(asset => asset.id === grader.rubricRef.id);\n const fixtures = assets.find(asset => asset.id === reward.fixtureSetRef!.id);\n if (!rubric || !fixtures) throw new Error(`Reward ${grader.id} is missing its immutable rubric or calibration fixtures.`);\n const fields = RewardFixtureAuthoringFieldsSchema.array().min(1).max(50).parse(JSON.parse(verifyLearningTextAsset(fixtures, reward.fixtureSetRef)));\n return GraderSpecSchema.parse({ ...base, rubric: verifyLearningTextAsset(rubric, grader.rubricRef), judge: grader.model,\n temperature: grader.temperature ?? 0, calibrationFixtureRefs: fields.map(fixture => fixture.id),\n metadata: { ...base.metadata, portableGrader: grader, portableRubricRef: grader.rubricRef,\n calibrationEvidenceHash: reward.calibrationCheckRef.contentHash, calibrationCheckRef: reward.calibrationCheckRef },\n });\n }\n if (grader.kind === \"custom_verifier\") return GraderSpecSchema.parse({ ...base,\n module: grader.verifierRef.path, exportName: grader.exportName ?? \"verify\",\n metadata: { ...base.metadata, portableVerifierRef: grader.verifierRef },\n });\n if (grader.kind === \"human\") {\n const asset = assets.find((asset) => asset.id === grader.rubricRef.id);\n if (!asset) throw new Error(`Reward ${grader.id} is missing its immutable rubric.`);\n return GraderSpecSchema.parse({ ...base, rubric: verifyLearningTextAsset(asset, grader.rubricRef),\n metadata: { ...base.metadata, portableGrader: grader, portableRubricRef: grader.rubricRef },\n });\n }\n return GraderSpecSchema.parse({ ...base, kind: grader.kind === \"artifact\" ? \"file\" : grader.kind });\n });\n}\n\nexport function learningVerifierModule(hash: string) { return `graders/reward-${hash}.js`; }\n","import { GraderFixtureSchema, TasksetEnvironmentResourceSchema, TasksetSourceRefSchema } from \"./taskset-draft-core.js\";\nimport { TasksetSchema, type GeneratedTaskFile } from \"./taskset-authored-contracts.js\";\nimport { contentHash } from \"@openpond/harness\";\nimport { z } from \"zod\";\nimport { learningRef, taskBatchPackageMetadata, verifyLearningTextAsset } from \"@openpond/evals/learning\";\nimport { computeTasksetHash } from \"./taskset-authored-validation.js\";\nimport { createTasksetDraft } from \"./taskset-draft-authoring.js\";\nimport { projectLearningBatchGraders, importedPackageGraders } from \"./taskset-package-grader-projection.js\";\nimport { decodeTasksetPackageFile, resolveTasksetPackageInstructions, validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\n\n/** Local identity includes Profile and provenance; portable identity stays in\n * the receipt. Downloading does not approve targets, privacy or licensing. */\nexport function prepareImportedTasksetPackage(input: {\n package: TasksetPackage; profileId: string; name: string; createdAt: string;\n}) {\n const value = validateTasksetPackage(input.package);\n const release = value.taskset;\n const resources = value.modelResources;\n const learning = value.learningResources ? taskBatchPackageMetadata(release) : undefined;\n const source = TasksetSourceRefSchema.parse({\n schemaVersion: \"openpond.uploadedFileDatasetSource.v1\", kind: \"uploaded_file\",\n id: `package-source-${contentHash({ profileId: input.profileId, packageHash: value.contentHash })}`,\n profileId: input.profileId, title: input.name, sourceHash: value.contentHash, occurredAt: input.createdAt,\n licensingStatus: \"pending\", secretScanStatus: \"pending\", piiScanStatus: \"pending\",\n originalFileNames: [\"taskset-package.json\"], mediaTypes: [\"application/json\"], sourceFileHashes: [value.contentHash],\n totalBytes: new TextEncoder().encode(JSON.stringify(value)).byteLength, parserVersion: \"openpond.tasksetPackage.v1\", metadata: {},\n });\n const draft = createTasksetDraft({ profileId: input.profileId, id: `${release.id}-import`, name: input.name, now: input.createdAt });\n const files: GeneratedTaskFile[] = [];\n for (const grader of release.graders) if (grader.kind === \"custom_verifier\") {\n const asset = resources?.assets.find(asset => asset.id === grader.verifierRef.id);\n const file = value.files.find(file => file.asset.id === grader.verifierRef.id);\n if (!file) throw new Error(`Imported verifier source is missing: ${grader.id}.`);\n const name = grader.verifierRef.path;\n if (!files.some(file => file.path === name)) files.push({ path: name, role: \"verifier\", content: asset ? verifyLearningTextAsset(asset, grader.verifierRef) : new TextDecoder(\"utf-8\", { fatal: true }).decode(decodeTasksetPackageFile(file)) });\n }\n const authoring = (release.metadata.ordinaryAuthoring ?? release.metadata.starterAuthoring) as { graderFixtures?: unknown } | undefined;\n const fixtures = GraderFixtureSchema.array().max(100_000).parse(authoring?.graderFixtures ?? []);\n const kind = release.environment.kind === \"text\" ? \"chat\" : release.environment.kind === \"custom_program\" ? \"program\" : release.environment.kind;\n const stagingPaths = z.record(z.string(), z.record(z.string(), z.string())).parse(release.metadata.workAssetStagingPaths ?? {});\n const projected = TasksetSchema.parse({\n schemaVersion: \"openpond.taskset.v1\", id: release.id, revision: release.revision,\n profileId: input.profileId, profileRelease: null, createImproveRunId: null,\n name: input.name, objective: resolveTasksetPackageInstructions(value), status: \"needs_review\",\n sourceRefs: [source], datasetArtifact: null, policy: release.policy,\n environment: { ...draft.environment, kind, entrypoint: release.environment.entrypoint,\n resources: TasksetEnvironmentResourceSchema.array().max(10_000).parse(release.metadata.environmentResources ?? []),\n stateful: release.environment.stateful, deterministicSeeds: release.environment.deterministicSeeds,\n toolNames: release.tools.map(tool => tool.name), defaultTimeoutMs: release.environment.defaultTimeoutMs,\n networkPolicy: release.environment.networkPolicy, metadata: {\n runtimeSourceTasksetId: tasksetPackageSourceId(input.profileId, value.contentHash),\n portableEnvironment: release.environment, portableTools: release.tools,\n portableExecutionResources: { environment: value.environment, verifierSet: value.verifierSet },\n } },\n capabilities: { ...draft.capabilities, taskKind: kind === \"chat\" ? \"chat\" : kind === \"program\" ? \"custom_program\" : \"single_agent\",\n compatibleMethods: [\"none\"], requiresTools: release.tools.length > 0, requiresState: release.environment.stateful,\n rewardKinds: [...new Set(release.graders.map(grader => grader.kind === \"human\" ? \"human\" : grader.kind === \"model_judge\" ? \"model_judge\" : \"deterministic\"))],\n },\n tasks: release.tasks.map(task => ({ ...task, schemaVersion: \"openpond.taskData.v1\", sourceRefs: [source.id],\n assets: [...new Map([...task.artifactRefs, ...(task.requiredOutputs ?? []).flatMap(output => output.submissionMode === \"structured_json\" && output.schemaRef ? [output.schemaRef] : [])].map(asset => [asset.id, asset])).values()].map(asset => ({ id: asset.id, sourceRefId: source.id, artifactRef: asset.path,\n fileName: asset.path.split(\"/\").at(-1)!, ...(stagingPaths[task.id]?.[asset.id] ? { stagingPath: stagingPaths[task.id]![asset.id] } : {}),\n mediaType: asset.mediaType, sha256: asset.contentHash,\n sizeBytes: asset.sizeBytes, split: task.split, metadata: { portableAsset: asset } })),\n ...(task.requiredOutputs ? { requiredOutputs: task.requiredOutputs.map(output => ({ ...output,\n schemaRef: output.schemaRef?.id ?? null, maxBytes: output.maxBytes ?? undefined })) } : {}),\n metadata: { portableTaskRecord: task, exampleOrigin: \"imported\" },\n })),\n graders: resources ? projectLearningBatchGraders(resources.rewardBinding, resources.rewards, resources.assets)\n : learning ? projectLearningBatchGraders(learning.binding, learning.rewards, value.learningResources!.assets) : importedPackageGraders(value),\n graderFixtures: fixtures, learningSignals: draft.learningSignals,\n ...(release.metrics ? { metrics: release.metrics } : {}),\n authoringProvenance: { schemaVersion: \"openpond.taskAuthoringProvenance.v1\", model: null, modelConfig: {},\n skillHash: contentHash(\"openpond-package-import-v1\"), promptTemplateVersion: \"package-import-v1\", buildIntent: \"discovery\",\n buildSpecification: null, evidenceHashes: [value.contentHash], tasksetSdkVersion: \"package-import-v1\",\n sourceCommit: null, repairHistory: [], createdAt: input.createdAt },\n readiness: null, contentHash: \"00000000\", createdAt: input.createdAt, updatedAt: input.createdAt,\n metadata: { importedPackageHash: value.contentHash,\n tasksetOutputContract: release.metadata.tasksetOutputContract ?? null,\n ...(learning ? { learning } : {}),\n portableFileInventory: value.files.map(file => ({ asset: file.asset, sourcePath: file.asset.path })),\n ...(resources ? { taskDefinition: learningRef(resources.taskDefinition),\n rewardBinding: learningRef(resources.rewardBinding), rewardExecution: { binding: resources.rewardBinding, rewards: resources.rewards } } : {}),\n portableCapabilities: release.capabilities, derivedPortableMetadata: release.metadata,\n ...(release.metadata.modelTasksetDerivation ? { modelTasksetDerivation: release.metadata.modelTasksetDerivation } : {}),\n },\n });\n return { package: value, taskset: TasksetSchema.parse({ ...projected, contentHash: computeTasksetHash(projected) }), generatedFiles: files };\n}\n\nexport type PreparedImportedTasksetPackage = ReturnType<typeof prepareImportedTasksetPackage> & { reuseExisting?: boolean };\n\n/** Stable source identity; it is never an authorization or object-store pointer. */\nexport function tasksetPackageSourceId(profileId: string, packageHash: string): string {\n return `package-${contentHash({ profileId, packageHash })}`;\n}\n"],"mappings":"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","names":["file","asset","z","learningRef","verifyLearningTextAsset","asset","file","verifyLearningTextAsset","z","learningRef"]}
@@ -47,4 +47,4 @@ export {
47
47
  ModelBatchReviewRequestSchema,
48
48
  ModelBatchReviewReceiptSchema
49
49
  };
50
- //# sourceMappingURL=chunk-YVUIHH6Z.js.map
50
+ //# sourceMappingURL=chunk-GPQLBVQC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/model-batch-review-contracts.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { LearningJsonObjectSchema, LearningRevisionRefSchema, LearningSourceSchema, TaskEvidenceSchema, TaskFeedbackSchema, TaskDefinitionSchema, TaskAdmissionDecisionSchema } from \"@openpond/evals/learning\";\nimport { RewardBindingSchema } from \"@openpond/evals/rewards\";\n// Reuse the canonical release ID already exposed by Evals without bundling a\n// second copy of Harness's schema graph into the browser contract entrypoint.\nconst ReleaseIdSchema = LearningRevisionRefSchema.shape.id;\n\n/** Editor data from a server-validated package; excludes portable file bytes. */\nexport const ModelBatchReviewInspectionSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelBatchReviewInspection.v1\"),\n packageHash: z.string().regex(/^[a-f0-9]{64}$/),\n definition: TaskDefinitionSchema,\n binding: RewardBindingSchema,\n evidence: z.array(TaskEvidenceSchema).min(1).max(10_000),\n decisions: z.array(TaskAdmissionDecisionSchema).min(1).max(10_000),\n}).strict();\nexport type ModelBatchReviewInspection = z.infer<typeof ModelBatchReviewInspectionSchema>;\n\nexport const ModelBatchReviewRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelBatchReviewRequest.v1\"),\n operationId: ReleaseIdSchema,\n modelId: ReleaseIdSchema,\n expectedModelRevision: z.number().int().positive(),\n tasksetRef: LearningRevisionRefSchema,\n rewardBindingRef: LearningRevisionRefSchema.nullable(),\n definition: z.object({\n name: z.string().trim().min(1).max(500).optional(),\n instructions: z.string().trim().min(1).max(20_000).optional(),\n inputSchema: LearningJsonObjectSchema.optional(),\n outputSchema: LearningJsonObjectSchema.optional(),\n requiredOutputs: TaskDefinitionSchema.shape.requiredOutputs,\n }).strict(),\n examples: z.array(z.object({\n evidence: LearningRevisionRefSchema,\n input: LearningJsonObjectSchema.optional(),\n expected: LearningJsonObjectSchema.nullable().optional(),\n evaluatorContext: LearningJsonObjectSchema.nullable().optional(),\n proposedTarget: LearningJsonObjectSchema.nullable().optional(),\n }).strict()).max(10_000),\n}).strict();\nexport type ModelBatchReviewRequest = z.infer<typeof ModelBatchReviewRequestSchema>;\n\n/** These are editable evidence and unapproved proposals, never admissions. */\nexport const ModelBatchReviewReceiptSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelBatchReviewReceipt.v1\"),\n operationId: ReleaseIdSchema,\n modelId: ReleaseIdSchema,\n source: LearningSourceSchema,\n evidence: z.array(TaskEvidenceSchema).min(1).max(10_000),\n proposals: z.array(TaskFeedbackSchema).max(10_000),\n}).strict();\nexport type ModelBatchReviewReceipt = z.infer<typeof ModelBatchReviewReceiptSchema>;\n"],"mappings":";AAAA,SAAS,SAAS;AAClB,SAAS,0BAA0B,2BAA2B,sBAAsB,oBAAoB,oBAAoB,sBAAsB,mCAAmC;AACrL,SAAS,2BAA2B;AAGpC,IAAM,kBAAkB,0BAA0B,MAAM;AAGjD,IAAM,mCAAmC,EAAE,OAAO;AAAA,EACvD,eAAe,EAAE,QAAQ,wCAAwC;AAAA,EACjE,aAAa,EAAE,OAAO,EAAE,MAAM,gBAAgB;AAAA,EAC9C,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,UAAU,EAAE,MAAM,kBAAkB,EAAE,IAAI,CAAC,EAAE,IAAI,GAAM;AAAA,EACvD,WAAW,EAAE,MAAM,2BAA2B,EAAE,IAAI,CAAC,EAAE,IAAI,GAAM;AACnE,CAAC,EAAE,OAAO;AAGH,IAAM,gCAAgC,EAAE,OAAO;AAAA,EACpD,eAAe,EAAE,QAAQ,qCAAqC;AAAA,EAC9D,aAAa;AAAA,EACb,SAAS;AAAA,EACT,uBAAuB,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACjD,YAAY;AAAA,EACZ,kBAAkB,0BAA0B,SAAS;AAAA,EACrD,YAAY,EAAE,OAAO;AAAA,IACnB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,IACjD,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAM,EAAE,SAAS;AAAA,IAC5D,aAAa,yBAAyB,SAAS;AAAA,IAC/C,cAAc,yBAAyB,SAAS;AAAA,IAChD,iBAAiB,qBAAqB,MAAM;AAAA,EAC9C,CAAC,EAAE,OAAO;AAAA,EACV,UAAU,EAAE,MAAM,EAAE,OAAO;AAAA,IACzB,UAAU;AAAA,IACV,OAAO,yBAAyB,SAAS;AAAA,IACzC,UAAU,yBAAyB,SAAS,EAAE,SAAS;AAAA,IACvD,kBAAkB,yBAAyB,SAAS,EAAE,SAAS;AAAA,IAC/D,gBAAgB,yBAAyB,SAAS,EAAE,SAAS;AAAA,EAC/D,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,GAAM;AACzB,CAAC,EAAE,OAAO;AAIH,IAAM,gCAAgC,EAAE,OAAO;AAAA,EACpD,eAAe,EAAE,QAAQ,qCAAqC;AAAA,EAC9D,aAAa;AAAA,EACb,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU,EAAE,MAAM,kBAAkB,EAAE,IAAI,CAAC,EAAE,IAAI,GAAM;AAAA,EACvD,WAAW,EAAE,MAAM,kBAAkB,EAAE,IAAI,GAAM;AACnD,CAAC,EAAE,OAAO;","names":[]}
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  ExperimentImprovementOptionsSchema
3
- } from "./chunk-TSMGMA6R.js";
3
+ } from "./chunk-KKL6OICH.js";
4
4
  import {
5
5
  EvaluationCoordinationTransport
6
- } from "./chunk-YCQVVFE5.js";
6
+ } from "./chunk-3B5KSH3V.js";
7
7
  import {
8
8
  ChatModelRefSchema
9
- } from "./chunk-KAE7AMYE.js";
9
+ } from "./chunk-H3367ISL.js";
10
10
  import {
11
11
  ImmutableReleaseRefSchema,
12
12
  contentHash
13
- } from "./chunk-COPVBJPL.js";
13
+ } from "./chunk-H3JZ3P5T.js";
14
14
 
15
15
  // src/advanced-refiner-evaluations.ts
16
16
  import { z } from "zod";
@@ -264,4 +264,4 @@ export {
264
264
  AdvancedRefinerEvaluationAccountingSchema,
265
265
  OpenPondAdvancedRefinerEvaluationClient
266
266
  };
267
- //# sourceMappingURL=chunk-YUKV7RCD.js.map
267
+ //# sourceMappingURL=chunk-GWGDWZVN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/advanced-refiner-evaluations.ts"],"sourcesContent":["import {EvaluationCoordinationTransport,type EvaluationCoordinationAccess} from \"./evaluation-coordination-http.js\";\nimport { z } from \"zod\";\nimport { ExperimentImprovementOptionsSchema } from \"./experiment-improvement-contracts.js\";\nimport { ChatModelRefSchema } from \"@openpond/harness/models\";\nimport { ImmutableReleaseRefSchema, contentHash } from \"@openpond/harness\";\nimport {\n ProfileExternalDatasetBindingSchema,\n verifyProfileExternalDatasetBinding,\n} from \"@openpond/evals\";\nconst Id = z.string().trim().min(1).max(240),\n Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const AdvancedRefinerEvaluationPinSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.advancedRefinerEvaluation.v1\"),\n operationId: Id,\n actorId: Id,\n teamId: Id,\n projectId: Id.nullable(),\n mode: z.enum([\"review_quality\", \"downstream_adaptation\"]),\n profileRef: z\n .object({\n source: z.enum([\"local\", \"github\", \"openpond_git\"]),\n repositoryId: Id,\n profileId: Id,\n })\n .strict(),\n sourceRevision: z.string().min(1).max(500),\n baselineRelease: ImmutableReleaseRefSchema,\n refinerRelease: ImmutableReleaseRefSchema,\n evidence: ImmutableReleaseRefSchema,\n externalDatasetBinding: ProfileExternalDatasetBindingSchema,\n adaptationDatasetBinding: ProfileExternalDatasetBindingSchema,\n privateClosureHash: Hash,\n adaptationTaskIds: z.array(Id).min(1).max(10000),\n holdoutTaskIds: z.array(Id).min(1).max(10000),\n adaptationSplit: z.enum([\"train\", \"validation\", \"test\", \"frozen_eval\"]),\n holdoutSplit: z.enum([\"train\", \"validation\", \"test\", \"frozen_eval\"]),\n environmentPolicy: z.discriminatedUnion(\"kind\", [\n z\n .object({ kind: z.literal(\"resettable\"), environmentHash: Hash })\n .strict(),\n z\n .object({\n kind: z.literal(\"frozen_observations\"),\n environmentHash: Hash,\n })\n .strict(),\n ]),\n maximumCostUsd: z.number().finite().positive().max(10000),\n maximumDurationMs: z.number().int().min(1000).max(86400000),\n maximumModelSteps: z.number().int().min(1).max(1000),\n contentHash: Hash,\n })\n .strict();\nexport type AdvancedRefinerEvaluationPin = z.infer<\n typeof AdvancedRefinerEvaluationPinSchema\n>;\nexport function verifyAdvancedRefinerEvaluationPin(raw: unknown) {\n const value = AdvancedRefinerEvaluationPinSchema.parse(raw),\n { contentHash: hash, ...body } = value;\n if (contentHash(body) !== hash)\n throw new Error(\"Advanced Refiner evaluation admission changed.\");\n const binding = verifyProfileExternalDatasetBinding(\n value.externalDatasetBinding,\n );\n if (\n binding.profileId !== value.profileRef.profileId ||\n binding.protectedProfileClosureHash !== value.privateClosureHash\n )\n throw new Error(\n \"Advanced evaluation changed its Profile or protected evaluator closure.\",\n );\n if (\n value.adaptationSplit === value.holdoutSplit ||\n new Set([...value.adaptationTaskIds, ...value.holdoutTaskIds]).size !==\n value.adaptationTaskIds.length + value.holdoutTaskIds.length\n )\n throw new Error(\n \"Adaptation and private holdout must be disjoint ordered cases.\",\n );\n const adaptation = verifyProfileExternalDatasetBinding(\n value.adaptationDatasetBinding,\n );\n if (\n adaptation.profileId !== binding.profileId ||\n adaptation.packageHash !== binding.packageHash ||\n contentHash(adaptation.dataset) !== contentHash(binding.dataset) ||\n contentHash(adaptation.target) !== contentHash(binding.target) ||\n adaptation.protectedProfileClosureHash !==\n binding.protectedProfileClosureHash\n )\n throw new Error(\n \"This native advanced adapter needs separate adaptation and holdout recipes from the same exact released package and target.\",\n );\n if (\n adaptation.split !== value.adaptationSplit ||\n binding.split !== value.holdoutSplit\n )\n throw new Error(\n \"Advanced split policies differ from their exact admitted recipes.\",\n );\n const population = new Set(binding.population.map((item) => item.taskId));\n const adapted = new Set(adaptation.population.map((item) => item.taskId));\n if (\n value.holdoutTaskIds.some((id) => !population.has(id)) ||\n value.adaptationTaskIds.some((id) => !adapted.has(id))\n )\n throw new Error(\n \"Advanced evaluation selected cases outside its exact Dataset recipe.\",\n );\n return value;\n}\nexport function sealAdvancedRefinerEvaluationPin(\n body: Omit<AdvancedRefinerEvaluationPin, \"contentHash\">,\n) {\n return verifyAdvancedRefinerEvaluationPin({\n ...body,\n contentHash: contentHash(body),\n });\n}\nexport const AdvancedRefinerEvaluationStartSchema = z\n .object({\n pin: AdvancedRefinerEvaluationPinSchema,\n modelId: Id,\n profileId: Id,\n model: ChatModelRefSchema,\n seed: z.number().int(),\n reasoningEffort: z\n .enum([\"none\", \"off\", \"low\", \"medium\", \"high\", \"xhigh\", \"max\"])\n .nullable(),\n })\n .strict();\nexport const AdvancedRefinerEvaluationCommandSchema = z.discriminatedUnion(\n \"operation\",\n [\n z\n .object({\n operation: z.literal(\"start\"),\n request: AdvancedRefinerEvaluationStartSchema,\n })\n .strict(),\n z\n .object({ operation: z.enum([\"read\", \"cancel\", \"resume\"]), id: Id })\n .strict(),\n z.object({ operation: z.literal(\"list\") }).strict(),\n ],\n);\nexport const AdvancedRefinerReviewCaseReceiptSchema = z\n .object({\n taskId: Id,\n sourceCaseHash: Hash,\n reviewSessionId: Id,\n reviewTurnId: Id,\n inputHarness: ImmutableReleaseRefSchema,\n trigger: ImmutableReleaseRefSchema,\n decision: z.enum([\"no_action\", \"route_deterministically\", \"queue_refiner\"]),\n outcome: ImmutableReleaseRefSchema.nullable(),\n proposal: ImmutableReleaseRefSchema.nullable(),\n validations: z.array(ImmutableReleaseRefSchema).max(100),\n grade: z\n .object({\n id: Id,\n contentHash: Hash,\n score: z.number().min(0).max(1).nullable(),\n passed: z.boolean(),\n failureClass: z.string().nullable(),\n })\n .strict(),\n resetComplete: z.boolean(),\n })\n .strict();\nexport const AdvancedRefinerReviewReceiptSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.advancedRefinerReviewReceipt.v1\"),\n id: Id,\n runId: Id,\n pinHash: Hash,\n ownerActorId: Id,\n teamId: Id,\n privateClosureHash: Hash,\n refinerRelease: ImmutableReleaseRefSchema,\n cases: z.array(AdvancedRefinerReviewCaseReceiptSchema).min(1).max(10000),\n reviewScore: z.number().min(0).max(1).nullable(),\n completedCases: z.number().int().nonnegative(),\n noActionCases: z.number().int().nonnegative(),\n routedCases: z.number().int().nonnegative(),\n proposalCases: z.number().int().nonnegative(),\n costUsd: z.number().finite().nonnegative().nullable(),\n cleanupComplete: z.boolean(),\n createdAt: z.string().datetime(),\n contentHash: Hash,\n })\n .strict();\nexport type AdvancedRefinerReviewReceipt = z.infer<\n typeof AdvancedRefinerReviewReceiptSchema\n>;\nexport function sealAdvancedRefinerReviewReceipt(\n body: Omit<AdvancedRefinerReviewReceipt, \"contentHash\">,\n) {\n return AdvancedRefinerReviewReceiptSchema.parse({\n ...body,\n contentHash: contentHash(body),\n });\n}\n\nconst AdvancedProfile =\n ExperimentImprovementOptionsSchema.shape.profiles.element;\nexport const AdvancedRefinerEvaluationOptionsSchema =\n ExperimentImprovementOptionsSchema.extend({\n profiles: z.array(\n AdvancedProfile.extend({\n components: z.array(\n AdvancedProfile.shape.components.element.extend({\n adaptationSplits: z.array(\n z.object({\n split: z.enum([\"train\", \"validation\", \"test\", \"frozen_eval\"]),\n taskIds: z.array(Id),\n }),\n ),\n environmentHash: Hash,\n resettable: z.boolean(),\n reviewQuality: z.boolean(),\n }),\n ),\n }),\n ),\n refinerReleases: z.array(ImmutableReleaseRefSchema),\n activeRefiner: ImmutableReleaseRefSchema.nullable(),\n models: z.array(z.object({ id: Id, profileId: Id, name: z.string(), location:z.enum([\"local\",\"hosted\"]) })),\n });\nexport const AdvancedRefinerEvaluationPrepareSchema = z\n .object({\n operation: z.literal(\"prepare\"),\n evidence: ImmutableReleaseRefSchema,\n profileOptionId: Id,\n componentLabel: Id,\n mode: z.enum([\"review_quality\", \"downstream_adaptation\"]),\n adaptationSplit: z.enum([\"train\", \"validation\", \"test\", \"frozen_eval\"]),\n operationId: Id,\n refinerRelease: ImmutableReleaseRefSchema,\n maximumCostUsd: z.number().positive(),\n maximumDurationMs: z.number().int().positive(),\n maximumModelSteps: z.number().int().positive(),\n })\n .strict();\nexport const AdvancedRefinerEvaluationSetupCommandSchema = z.union([\n AdvancedRefinerEvaluationCommandSchema,\n AdvancedRefinerEvaluationPrepareSchema,\n z\n .object({\n operation: z.literal(\"options\"),\n evidence: ImmutableReleaseRefSchema,\n })\n .strict(),\n]);\nexport type AdvancedRefinerEvaluationOptions = z.infer<\n typeof AdvancedRefinerEvaluationOptionsSchema\n>;\n\nexport const AdvancedRefinerEvaluationAccountingSchema = z\n .object({\n modelRequests: z.number().int().nonnegative(),\n knownSpendUsd: z.number().nonnegative(),\n totalSpendUsd: z.number().nonnegative().nullable(),\n heldUsd: z.number().nonnegative(),\n uncertainRequests: z.number().int().nonnegative(),\n })\n .strict();\n\n/** The owner's canonical ModelRun remains intact in readback. This boundary\n * validates its retained advanced pin rather than manufacturing results. */\nexport class OpenPondAdvancedRefinerEvaluationClient {\n private readonly transport:EvaluationCoordinationTransport;\n constructor(access:EvaluationCoordinationAccess){this.transport=new EvaluationCoordinationTransport(access);}\n async command(raw:z.input<typeof AdvancedRefinerEvaluationSetupCommandSchema>,signal?:AbortSignal){\n const request=AdvancedRefinerEvaluationSetupCommandSchema.parse(raw),access=this.transport.access;\n const assertPin=(raw:unknown)=>{const pin=verifyAdvancedRefinerEvaluationPin(raw);if(pin.actorId!==access.actorId||pin.teamId!==access.teamId||pin.projectId!==access.projectId)throw new Error(\"The advanced pin belongs to another evaluation owner.\");return pin;};\n if(request.operation===\"start\")assertPin(request.request.pin);\n const value=await this.transport.post(\"advanced-refiner-evaluations\",request,signal);\n if(request.operation===\"options\"){const result=AdvancedRefinerEvaluationOptionsSchema.parse(value);if(result.teamId!==access.teamId||contentHash(result.evidence)!==contentHash(request.evidence))throw new Error(\"Advanced options changed their reviewed evidence.\");return result;}\n if(request.operation===\"prepare\"){const result=z.object({pin:AdvancedRefinerEvaluationPinSchema}).strict().parse(value);const pin=assertPin(result.pin);if(pin.operationId!==request.operationId||contentHash(pin.profileRef)!==request.profileOptionId||contentHash(pin.evidence)!==contentHash(request.evidence)||pin.mode!==request.mode||contentHash(pin.refinerRelease)!==contentHash(request.refinerRelease)||pin.adaptationSplit!==request.adaptationSplit||pin.maximumCostUsd!==request.maximumCostUsd||pin.maximumDurationMs!==request.maximumDurationMs||pin.maximumModelSteps!==request.maximumModelSteps)throw new Error(\"Advanced preparation changed its reviewed command.\");return {pin};}\n if(request.operation===\"list\")return z.object({items:z.array(z.object({id:Id,status:z.enum([\"prepared\",\"running\",\"succeeded\",\"failed\",\"cancelled\"]),mode:z.enum([\"review_quality\",\"downstream_adaptation\"]),startedAt:z.string().datetime().nullable(),completedAt:z.string().datetime().nullable(),failure:z.string().nullable()}).strict()).max(10000)}).strict().parse(value);\n if(request.operation===\"cancel\"){const result=z.object({id:Id,status:z.enum([\"prepared\",\"running\",\"succeeded\",\"failed\",\"cancelled\"])}).strict().parse(value);if(result.id!==request.id)throw new Error(\"Advanced cancellation returned another Run.\");return result;}\n const result=z.object({schemaVersion:z.literal(\"openpond.modelRun.v1\"),id:Id,kind:z.literal(\"evaluation\"),modelId:Id,profileId:Id,evaluation:z.object({benchmarkId:z.literal(\"harness-refiner\"),advancedEvaluation:AdvancedRefinerEvaluationPinSchema}).passthrough()}).passthrough().parse(value);\n const pin=assertPin(result.evaluation.advancedEvaluation);\n if(request.operation===\"start\"?(pin.contentHash!==request.request.pin.contentHash||result.modelId!==request.request.modelId||result.profileId!==request.request.profileId):result.id!==request.id)throw new Error(\"The advanced Run differs from its exact retained request.\");\n return result;\n }\n}\n"],"mappings":"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","names":["raw","pin","result"]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ReleaseHashSchema,
3
3
  ReleaseIdSchema
4
- } from "./chunk-COPVBJPL.js";
4
+ } from "./chunk-H3JZ3P5T.js";
5
5
 
6
6
  // ../harness/dist/models.js
7
7
  import { z } from "zod";
@@ -41,4 +41,4 @@ var ChatModelRefSchema = z.object({
41
41
  export {
42
42
  ChatModelRefSchema
43
43
  };
44
- //# sourceMappingURL=chunk-KAE7AMYE.js.map
44
+ //# sourceMappingURL=chunk-H3367ISL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../harness/dist/models.js"],"sourcesContent":["import { z } from \"zod\";\nimport { ReleaseHashSchema, ReleaseIdSchema } from \"./common.js\";\nexport const ModelRefSchema = z.object({\n provider: ReleaseIdSchema,\n model: ReleaseIdSchema,\n revision: z.string().trim().min(1).max(500).nullable().default(null),\n artifactHash: ReleaseHashSchema.nullable().default(null),\n tokenizerRevision: z.string().trim().min(1).max(500).nullable().default(null),\n chatTemplateHash: ReleaseHashSchema.nullable().default(null),\n}).strict();\nexport const PROVIDER_IDS = [\n \"openpond\",\n \"codex\",\n \"claude-code\",\n \"grok-build\",\n \"opencode\",\n \"anthropic\",\n \"openai\",\n \"xai\",\n \"google\",\n \"openrouter\",\n \"deepseek\",\n \"zai\",\n \"moonshot\",\n \"together\",\n \"groq\",\n \"custom-openai-compatible\",\n];\nexport const AcpProviderIdSchema = z.templateLiteral([\"acp:\", z.string().regex(/^[a-z0-9][a-z0-9-]{0,100}$/)]);\nexport const ProviderIdSchema = z.union([z.enum(PROVIDER_IDS), AcpProviderIdSchema]);\nexport function isRegisteredAcpProvider(value) {\n return /^acp:[a-z0-9][a-z0-9-]{0,100}$/.test(value);\n}\nexport const ChatModelRefSchema = z.object({\n providerId: ProviderIdSchema,\n modelId: z.string().trim().min(1).max(300),\n});\n"],"mappings":";;;;;;AAAA,SAAS,SAAS;AAEX,IAAM,iBAAiB,EAAE,OAAO;AAAA,EACnC,UAAU;AAAA,EACV,OAAO;AAAA,EACP,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA,EACnE,cAAc,kBAAkB,SAAS,EAAE,QAAQ,IAAI;AAAA,EACvD,mBAAmB,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA,EAC5E,kBAAkB,kBAAkB,SAAS,EAAE,QAAQ,IAAI;AAC/D,CAAC,EAAE,OAAO;AACH,IAAM,eAAe;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AACO,IAAM,sBAAsB,EAAE,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC,CAAC;AACtG,IAAM,mBAAmB,EAAE,MAAM,CAAC,EAAE,KAAK,YAAY,GAAG,mBAAmB,CAAC;AAI5E,IAAM,qBAAqB,EAAE,OAAO;AAAA,EACvC,YAAY;AAAA,EACZ,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAC7C,CAAC;","names":[]}
@@ -255,6 +255,7 @@ function sortValue(value) {
255
255
  }
256
256
 
257
257
  export {
258
+ sha256Hex,
258
259
  ReleaseIdSchema,
259
260
  ReleaseHashSchema,
260
261
  ReleaseTimestampSchema,
@@ -269,4 +270,4 @@ export {
269
270
  contentHash,
270
271
  assertContentHash
271
272
  };
272
- //# sourceMappingURL=chunk-COPVBJPL.js.map
273
+ //# sourceMappingURL=chunk-H3JZ3P5T.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../harness/dist/common.js","../../harness/dist/sha256.js"],"sourcesContent":["import { z } from \"zod\";\nimport { sha256Hex } from \"./sha256.js\";\nexport const MAX_PORTABLE_PATH_BYTES = 2_000;\nexport const MAX_PORTABLE_ASSET_BYTES = 250_000_000;\nexport const ReleaseIdSchema = z.string().trim().min(1).max(240);\nexport const ReleaseHashSchema = z.string().regex(/^[a-f0-9]{64}$/);\nexport const ReleaseTimestampSchema = z.string().datetime({ offset: true });\nexport const MetadataSchema = z.record(z.string(), z.unknown()).default({});\nexport const ImmutableReleaseRefSchema = z.object({\n id: ReleaseIdSchema,\n contentHash: ReleaseHashSchema,\n}).strict();\nexport const VersionedReleaseRefSchema = ImmutableReleaseRefSchema.extend({\n revision: z.number().int().positive(),\n}).strict();\nexport const ImmutableAssetRefSchema = z.object({\n id: ReleaseIdSchema,\n path: z.string().trim().min(1).max(MAX_PORTABLE_PATH_BYTES).refine(safeRelativePath),\n contentHash: ReleaseHashSchema,\n sizeBytes: z.number().int().nonnegative().max(MAX_PORTABLE_ASSET_BYTES),\n mediaType: z.string().trim().min(1).max(200),\n visibility: z.enum([\"policy\", \"verifier\", \"host_private\"]),\n}).strict();\nexport const ImmutableArtifactRefSchema = z.object({\n id: ReleaseIdSchema,\n contentHash: ReleaseHashSchema,\n mediaType: z.string().trim().min(1).max(200).nullable().default(null),\n sizeBytes: z.number().int().nonnegative().max(MAX_PORTABLE_ASSET_BYTES).nullable().default(null),\n}).strict();\nexport const FailureClassSchema = z.enum([\n \"policy_failure\",\n \"grader_failure\",\n \"environment_failure\",\n \"infrastructure_failure\",\n \"timeout\",\n \"cancelled\",\n]);\nexport function canonicalJson(value) {\n return `${JSON.stringify(sortValue(value), null, 2)}\\n`;\n}\nexport function sha256(value) {\n return sha256Hex(value);\n}\nexport function contentHash(value) {\n return sha256(canonicalJson(value));\n}\nexport function withContentHash(value) {\n return { ...value, contentHash: contentHash(value) };\n}\nexport function assertContentHash(value, label) {\n const { contentHash: actual, ...hashable } = value;\n const expected = contentHash(hashable);\n if (actual !== expected)\n throw new Error(`${label} contentHash is ${actual}; expected ${expected}.`);\n}\nfunction safeRelativePath(value) {\n const normalized = value.replaceAll(\"\\\\\", \"/\");\n if (!normalized || normalized.startsWith(\"/\") || normalized.includes(\"\\0\"))\n return false;\n return !normalized.split(\"/\").some((part) => !part || part === \".\" || part === \"..\");\n}\nfunction sortValue(value) {\n if (Array.isArray(value))\n return value.map(sortValue);\n if (!value || typeof value !== \"object\")\n return value;\n return Object.fromEntries(Object.entries(value)\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([key, child]) => [key, sortValue(child)]));\n}\n","// FIPS 180-4 SHA-256 implemented over platform-neutral typed arrays so the\n// portable contracts keep the same synchronous content-hash API in any host.\nconst INITIAL_STATE = new Uint32Array([\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n]);\nconst ROUND_CONSTANTS = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,\n]);\n/** Cloneable byte-stream state; digest leaves the state available for further updates. */\nexport class Sha256State {\n state = new Uint32Array(INITIAL_STATE);\n pending = new Uint8Array(64);\n pendingLength = 0;\n byteLength = 0;\n words = new Uint32Array(64);\n /** Strings are independently UTF-8 encoded chunks. Use bytes when a text\n * stream may split a surrogate pair between updates. */\n update(value) {\n const bytes = typeof value === \"string\" ? new TextEncoder().encode(value) : value;\n if (!Number.isSafeInteger(this.byteLength + bytes.length))\n throw new RangeError(\"SHA-256 input is too large\");\n this.byteLength += bytes.length;\n let offset = 0;\n if (this.pendingLength) {\n const count = Math.min(64 - this.pendingLength, bytes.length);\n this.pending.set(bytes.subarray(0, count), this.pendingLength);\n this.pendingLength += count;\n offset += count;\n if (this.pendingLength === 64) {\n this.compress(this.pending);\n this.pendingLength = 0;\n }\n }\n while (offset + 64 <= bytes.length) {\n this.compress(bytes.subarray(offset, offset + 64));\n offset += 64;\n }\n if (offset < bytes.length) {\n this.pending.set(bytes.subarray(offset));\n this.pendingLength = bytes.length - offset;\n }\n return this;\n }\n clone() {\n const copy = new Sha256State();\n copy.state.set(this.state);\n copy.pending.set(this.pending);\n copy.pendingLength = this.pendingLength;\n copy.byteLength = this.byteLength;\n return copy;\n }\n digestHex() {\n const copy = this.clone();\n const padding = new Uint8Array(copy.pendingLength < 56 ? 64 : 128);\n padding.set(copy.pending.subarray(0, copy.pendingLength));\n padding[copy.pendingLength] = 0x80;\n const bitLength = copy.byteLength * 8;\n const view = new DataView(padding.buffer);\n view.setUint32(padding.length - 8, Math.floor(bitLength / 0x1_0000_0000), false);\n view.setUint32(padding.length - 4, bitLength >>> 0, false);\n copy.compress(padding.subarray(0, 64));\n if (padding.length === 128)\n copy.compress(padding.subarray(64));\n return Array.from(copy.state, (word) => word.toString(16).padStart(8, \"0\")).join(\"\");\n }\n compress(bytes) {\n const view = new DataView(bytes.buffer, bytes.byteOffset, 64);\n const state = this.state, words = this.words;\n for (let index = 0; index < 16; index += 1) {\n words[index] = view.getUint32(index * 4, false);\n }\n for (let index = 16; index < 64; index += 1) {\n const previous = words[index - 15];\n const recent = words[index - 2];\n const sigma0 = rotateRight(previous, 7) ^ rotateRight(previous, 18) ^ (previous >>> 3);\n const sigma1 = rotateRight(recent, 17) ^ rotateRight(recent, 19) ^ (recent >>> 10);\n words[index] = (words[index - 16] + sigma0 + words[index - 7] + sigma1) >>> 0;\n }\n let a = state[0];\n let b = state[1];\n let c = state[2];\n let d = state[3];\n let e = state[4];\n let f = state[5];\n let g = state[6];\n let h = state[7];\n for (let index = 0; index < 64; index += 1) {\n const choice = (e & f) ^ (~e & g);\n const majority = (a & b) ^ (a & c) ^ (b & c);\n const sum0 = rotateRight(a, 2) ^ rotateRight(a, 13) ^ rotateRight(a, 22);\n const sum1 = rotateRight(e, 6) ^ rotateRight(e, 11) ^ rotateRight(e, 25);\n const first = (h + sum1 + choice + ROUND_CONSTANTS[index] + words[index]) >>> 0;\n const second = (sum0 + majority) >>> 0;\n h = g;\n g = f;\n f = e;\n e = (d + first) >>> 0;\n d = c;\n c = b;\n b = a;\n a = (first + second) >>> 0;\n }\n state[0] = (state[0] + a) >>> 0;\n state[1] = (state[1] + b) >>> 0;\n state[2] = (state[2] + c) >>> 0;\n state[3] = (state[3] + d) >>> 0;\n state[4] = (state[4] + e) >>> 0;\n state[5] = (state[5] + f) >>> 0;\n state[6] = (state[6] + g) >>> 0;\n state[7] = (state[7] + h) >>> 0;\n }\n}\nexport function sha256Hex(value) {\n return new Sha256State().update(value).digestHex();\n}\nfunction rotateRight(value, bits) {\n return (value >>> bits) | (value << (32 - bits));\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ReleaseIdSchema
3
- } from "./chunk-COPVBJPL.js";
3
+ } from "./chunk-H3JZ3P5T.js";
4
4
 
5
5
  // src/learning-credentials.ts
6
6
  import { z } from "zod";
@@ -233,4 +233,4 @@ export {
233
233
  OpenPondLearningError,
234
234
  OpenPondLearningClient
235
235
  };
236
- //# sourceMappingURL=chunk-3LP7DNLQ.js.map
236
+ //# sourceMappingURL=chunk-H4NTJFEE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/learning-credentials.ts","../src/learning-client.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { ReleaseIdSchema } from \"@openpond/harness\";\nimport { LearningRevisionRefSchema } from \"@openpond/evals/learning\";\nimport { TaskSplitSchema } from \"@openpond/evals/tasksets\";\n\n/** Source credentials can submit evidence and feedback for one source only. */\nexport const LearningSourceCredentialSchema = z.object({\n id: ReleaseIdSchema,\n scope: ReleaseIdSchema,\n sourceId: ReleaseIdSchema,\n name: z.string().trim().min(1).max(100),\n keyPrefix: z.string().min(1).max(100),\n createdAt: z.iso.datetime(),\n expiresAt: z.iso.datetime(),\n revokedAt: z.iso.datetime().nullable(),\n}).strict();\nexport type LearningSourceCredential = z.infer<typeof LearningSourceCredentialSchema>;\nexport const LearningSourceCredentialSecretSchema = z.string().regex(/^opk_key_[A-Za-z0-9]{16}_[A-Za-z0-9]{48}$/);\n\nexport const LearningSourceCredentialRequestSchema = z.discriminatedUnion(\"action\", [\n z.object({ action: z.literal(\"create\"), scope: ReleaseIdSchema, sourceId: ReleaseIdSchema, name: z.string().trim().min(1).max(100), expiresAt: z.iso.datetime(), operationId: ReleaseIdSchema, apiKey: LearningSourceCredentialSecretSchema }).strict(),\n z.object({ action: z.literal(\"list\"), scope: ReleaseIdSchema, sourceId: ReleaseIdSchema, afterId: ReleaseIdSchema.optional(), limit: z.number().int().min(1).max(100).default(30) }).strict(),\n z.object({ action: z.literal(\"revoke\"), scope: ReleaseIdSchema, sourceId: ReleaseIdSchema, id: ReleaseIdSchema }).strict(),\n]);\nexport type LearningSourceCredentialRequest = z.infer<typeof LearningSourceCredentialRequestSchema>;\nexport const LearningSourceCredentialCreatedSchema = z.object({ credential: LearningSourceCredentialSchema, apiKey: LearningSourceCredentialSecretSchema }).strict();\nexport const LearningSourceCredentialPageSchema = z.object({ items: z.array(LearningSourceCredentialSchema).max(100), nextCursor: ReleaseIdSchema.nullable() }).strict();\nexport const LearningSourceConfigurationRequestSchema = z.object({ scope: ReleaseIdSchema, sourceId: ReleaseIdSchema }).strict();\nexport const LearningSourceConfigurationSchema = z.object({\n scope: ReleaseIdSchema, source: LearningRevisionRefSchema, taskDefinition: LearningRevisionRefSchema,\n enabled: z.boolean(), allowedSplits: z.array(TaskSplitSchema).min(1).max(4),\n}).strict();\n\n/** Keep this request in memory for retries. Hosts persist hashes, never its secret. */\nexport function createSourceCredentialRequest(input: { sourceId: string; name: string; expiresAt: string }) {\n return { ...input, operationId: crypto.randomUUID(), apiKey: `opk_key_${randomToken(16)}_${randomToken(48)}` };\n}\n\nfunction randomToken(length: number): string {\n const alphabet = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n let value = \"\";\n while (value.length < length) {\n for (const byte of crypto.getRandomValues(new Uint8Array(64))) {\n // Rejection sampling avoids modulo bias in the 62-character alphabet.\n if (byte < 248) value += alphabet[byte % 62];\n if (value.length === length) return value;\n }\n }\n return value;\n}\n\n/** Hosts enforce expiry when issuing and authenticating; tokens are never permanent. */\nexport function assertLearningCredentialExpiry(expiresAt: string, now: Date): void {\n const expires = Date.parse(z.iso.datetime().parse(expiresAt));\n if (expires <= now.getTime() || expires > now.getTime() + 90 * 24 * 60 * 60 * 1_000) throw new Error(\"Source credentials must expire within 90 days.\");\n}\n","import { z } from \"zod\";\nimport {\n LearningCommandRequestSchema, LearningOperationResultSchema, LearningReadRequestSchema,\n TaskEvidenceInspectionResultSchema, sameLearningRef, type LearningRevisionRef,\n LearningPolicyInspectionResultSchema,\n LearningTaskQueueInspectionSchema,\n assertLearningRequestJson,\n learningResourceSchemas, type LearningCommand, type LearningOperationResult,\n type LearningResourceFor, type LearningResourceKind, type LearningResourcePage,\n type LearningResourceQuery, type TaskExampleSubmission, type TaskFeedbackSubmission,\n} from \"@openpond/evals/learning\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\nimport { LearningSourceCredentialSchema, LearningSourceCredentialRequestSchema, LearningSourceCredentialCreatedSchema, LearningSourceCredentialPageSchema, LearningSourceConfigurationRequestSchema, LearningSourceConfigurationSchema, type LearningSourceCredentialRequest } from \"./learning-credentials.js\";\n\nexport interface OpenPondLearningClientOptions {\n apiKey: string;\n baseUrl: string;\n /** Local profile or hosted team scope. The server checks the credential's ownership. */\n scope: string;\n fetch?: typeof globalThis.fetch;\n}\nexport interface LearningRequestOptions { signal?: AbortSignal }\nexport const LearningBatchPublicationSchema = z.object({\n batchId: z.string().trim().min(1).max(500), modelProjectId: z.string().trim().min(1).max(500),\n}).strict();\nexport const LearningBatchPublicationResultSchema = z.object({\n batchId: z.string().min(1), projectId: z.string().min(1), tasksetId: z.string().min(1),\n releaseId: z.string().min(1), revision: z.number().int().positive(), contentHash: z.string().regex(/^[a-f0-9]{64}$/),\n}).strict();\nexport class OpenPondLearningError extends Error {\n constructor(readonly status: number, readonly code: string, message: string, readonly details: unknown) {\n super(message);\n this.name = \"OpenPondLearningError\";\n }\n}\n\n/** The same portable commands are sent to the local and hosted execution owner. */\nexport class OpenPondLearningClient {\n readonly #options: OpenPondLearningClientOptions;\n constructor(options: OpenPondLearningClientOptions) {\n if (!options.apiKey.trim() || !options.scope.trim()) throw new Error(\"Learning API key and scope are required.\");\n const url = new URL(options.baseUrl);\n if (![\"http:\", \"https:\"].includes(url.protocol) || url.username || url.password || url.search || url.hash) throw new Error(\"Learning base URL must be an HTTP(S) endpoint without credentials, query, or fragment.\");\n this.#options = { ...options, baseUrl: url.toString().replace(/\\/+$/, \"\") };\n }\n\n async command(command: LearningCommand, options: LearningRequestOptions = {}): Promise<LearningOperationResult> {\n assertLearningRequestJson(command);\n const request = LearningCommandRequestSchema.parse({ scope: this.#options.scope, command });\n const result = LearningOperationResultSchema.parse(await this.#request(\"commands\", request, options));\n if (result.operationId !== command.operationId) throw new OpenPondLearningError(502, \"operation_identity_mismatch\", \"Learning response did not match the submitted operation.\", null);\n return result;\n }\n\n submitExample(example: TaskExampleSubmission, options: LearningRequestOptions = {}) {\n return this.command({ action: \"submit_example\", operationId: example.idempotencyKey, example }, options);\n }\n\n submitFeedback(feedback: TaskFeedbackSubmission, options: LearningRequestOptions = {}) {\n return this.command({ action: \"submit_feedback\", operationId: feedback.idempotencyKey, feedback }, options);\n }\n\n async get<K extends LearningResourceKind>(kind: K, id: string, revision?: number, options: LearningRequestOptions = {}): Promise<LearningResourceFor<K>> {\n const request = LearningReadRequestSchema.parse({ action: \"get\", scope: this.#options.scope, kind, id, ...(revision === undefined ? {} : { revision }) });\n return learningResourceSchemas[kind].parse(await this.#request(\"read\", request, options)) as LearningResourceFor<K>;\n }\n\n async inspectEvidence(evidence: LearningRevisionRef, options: LearningRequestOptions = {}) {\n const request = LearningReadRequestSchema.parse({ action: \"inspect_evidence\", scope: this.#options.scope, evidence });\n const result = TaskEvidenceInspectionResultSchema.parse(await this.#request(\"read\", request, options));\n if (!sameLearningRef(result.evidence, evidence)) throw new OpenPondLearningError(502, \"evidence_identity_mismatch\", \"Inspection did not match the requested evidence release.\", null);\n return result;\n }\n\n /** Read current shared eligibility and budget without reserving or launching work. */\n async inspectTaskQueue(modelProjectId: string | null = null, options: LearningRequestOptions = {}) {\n const request = LearningReadRequestSchema.parse({ action: \"inspect_task_queue\", scope: this.#options.scope, modelProjectId });\n const result = LearningTaskQueueInspectionSchema.parse(await this.#request(\"read\", request, options));\n if (result.modelProjectId !== modelProjectId) throw new OpenPondLearningError(502, \"model_identity_mismatch\", \"Task queue did not match the requested Model.\", null);\n return result;\n }\n\n /** Read current shared eligibility and budget without reserving or launching work. */\n async inspectPolicy(policy: LearningRevisionRef, options: LearningRequestOptions = {}) {\n const request = LearningReadRequestSchema.parse({ action: \"inspect_policy\", scope: this.#options.scope, policy });\n const result = LearningPolicyInspectionResultSchema.parse(await this.#request(\"read\", request, options));\n if (!sameLearningRef(result.policy, policy)) throw new OpenPondLearningError(502, \"policy_identity_mismatch\", \"Inspection did not match the requested policy release.\", null);\n return result;\n }\n\n /** Prepare once with createSourceCredentialRequest and reuse it for retries. */\n async createSourceCredential(input: Omit<Extract<LearningSourceCredentialRequest, { action: \"create\" }>, \"action\" | \"scope\">, options: LearningRequestOptions = {}) {\n const request = LearningSourceCredentialRequestSchema.parse({ ...input, action: \"create\", scope: this.#options.scope });\n const result = LearningSourceCredentialCreatedSchema.parse(await this.#request(\"credentials\", request, options));\n this.#assertCredentialScope(result.credential, input.sourceId);\n if (result.apiKey !== input.apiKey || !input.apiKey.startsWith(`${result.credential.keyPrefix}_`)) throw new OpenPondLearningError(502, \"credential_identity_mismatch\", \"Credential response did not match the prepared credential.\", null);\n return result;\n }\n\n async listSourceCredentials(sourceId: string, query: { afterId?: string; limit?: number } = {}, options: LearningRequestOptions = {}) {\n const request = LearningSourceCredentialRequestSchema.parse({ ...query, action: \"list\", scope: this.#options.scope, sourceId });\n const result = LearningSourceCredentialPageSchema.parse(await this.#request(\"credentials\", request, options));\n if (result.items.length > (query.limit ?? 30)) throw new OpenPondLearningError(502, \"credential_page_invalid\", \"Credential response exceeded the requested page size.\", null);\n for (const item of result.items) this.#assertCredentialScope(item, sourceId);\n return result;\n }\n\n async revokeSourceCredential(sourceId: string, id: string, options: LearningRequestOptions = {}) {\n const request = LearningSourceCredentialRequestSchema.parse({ action: \"revoke\", scope: this.#options.scope, sourceId, id });\n const result = LearningSourceCredentialSchema.parse(await this.#request(\"credentials\", request, options));\n this.#assertCredentialScope(result, sourceId);\n if (result.id !== id || result.revokedAt === null) throw new OpenPondLearningError(502, \"credential_revocation_mismatch\", \"Credential revocation did not match the requested credential.\", null);\n return result;\n }\n\n async sourceConfiguration(sourceId: string, options: LearningRequestOptions = {}) {\n const request = LearningSourceConfigurationRequestSchema.parse({ scope: this.#options.scope, sourceId });\n const result = LearningSourceConfigurationSchema.parse(await this.#request(\"source-config\", request, options));\n if (result.scope !== this.#options.scope || result.source.id !== sourceId) throw new OpenPondLearningError(502, \"source_identity_mismatch\", \"Source configuration did not match the requested source.\", null);\n return result;\n }\n\n #assertCredentialScope(value: { scope: string; sourceId: string }, sourceId: string) {\n if (value.scope !== this.#options.scope || value.sourceId !== sourceId) throw new OpenPondLearningError(502, \"credential_scope_mismatch\", \"Credential response did not match the requested source.\", null);\n }\n\n async list<K extends LearningResourceKind>(kind: K, query: Partial<LearningResourceQuery> = {}, options: LearningRequestOptions = {}): Promise<LearningResourcePage<K>> {\n const request = LearningReadRequestSchema.parse({ action: \"list\", scope: this.#options.scope, kind, ...query });\n return z.object({ items: z.array(learningResourceSchemas[kind]).max(100), nextCursor: z.string().nullable() }).strict().parse(await this.#request(\"read\", request, options)) as LearningResourcePage<K>;\n }\n\n /** Hosted publication only: stores an immutable package and attaches it, without starting training. */\n async publishBatch(input: z.infer<typeof LearningBatchPublicationSchema>, options: LearningRequestOptions = {}) {\n const request = LearningBatchPublicationSchema.parse(input);\n const result = LearningBatchPublicationResultSchema.parse(await this.#request(\"publish-batch\", { ...request, scope: this.#options.scope }, options));\n if (result.batchId !== request.batchId) throw new OpenPondLearningError(502, \"batch_identity_mismatch\", \"Published batch response did not match the requested batch.\", null);\n return result;\n }\n\n async #request(endpoint: \"commands\" | \"read\" | \"publish-batch\" | \"credentials\" | \"source-config\", body: unknown, options: LearningRequestOptions): Promise<unknown> {\n assertBoundedTaskJson(body, 16_777_216);\n const response = await (this.#options.fetch ?? globalThis.fetch)(`${this.#options.baseUrl}/v1/learning/${endpoint}`, {\n method: \"POST\", headers: { Authorization: `Bearer ${this.#options.apiKey}`, \"Content-Type\": \"application/json\", Accept: \"application/json\", \"X-OpenPond-Team-Id\": this.#options.scope }, body: JSON.stringify(body), signal: options.signal,\n redirect: \"error\",\n });\n const payload = await readBoundedLearningResponse(response);\n if (!response.ok) {\n const error = z.object({ code: z.string().optional(), error: z.string().optional() }).passthrough().safeParse(payload);\n throw new OpenPondLearningError(response.status, error.success ? error.data.code ?? \"learning_request_failed\" : \"learning_request_failed\", error.success ? error.data.error ?? `Learning request failed (${response.status}).` : `Learning request failed (${response.status}).`, payload);\n }\n return payload;\n }\n}\n\nasync function readBoundedLearningResponse(response: Response): Promise<unknown> {\n const maximumBytes = 16_777_216;\n const reader = response.body?.getReader();\n if (!reader) throw new OpenPondLearningError(response.status, \"empty_response\", \"Learning response was empty.\", null);\n const decoder = new TextDecoder();\n let bytes = 0;\n let text = \"\";\n try {\n while (true) {\n const next = await reader.read();\n if (next.done) break;\n bytes += next.value.byteLength;\n if (bytes > maximumBytes) throw new OpenPondLearningError(response.status, \"response_too_large\", \"Learning response exceeded 16 MiB; request a smaller page.\", null);\n text += decoder.decode(next.value, { stream: true });\n }\n text += decoder.decode();\n const value: unknown = JSON.parse(text);\n assertBoundedTaskJson(value, maximumBytes);\n return value;\n } finally {\n await reader.cancel();\n reader.releaseLock();\n }\n}\n"],"mappings":";;;;;AAAA,SAAS,SAAS;AAElB,SAAS,iCAAiC;AAC1C,SAAS,uBAAuB;AAGzB,IAAM,iCAAiC,EAAE,OAAO;AAAA,EACrD,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,UAAU;AAAA,EACV,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACtC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACpC,WAAW,EAAE,IAAI,SAAS;AAAA,EAC1B,WAAW,EAAE,IAAI,SAAS;AAAA,EAC1B,WAAW,EAAE,IAAI,SAAS,EAAE,SAAS;AACvC,CAAC,EAAE,OAAO;AAEH,IAAM,uCAAuC,EAAE,OAAO,EAAE,MAAM,2CAA2C;AAEzG,IAAM,wCAAwC,EAAE,mBAAmB,UAAU;AAAA,EAClF,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,QAAQ,GAAG,OAAO,iBAAiB,UAAU,iBAAiB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,GAAG,WAAW,EAAE,IAAI,SAAS,GAAG,aAAa,iBAAiB,QAAQ,qCAAqC,CAAC,EAAE,OAAO;AAAA,EACtP,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,MAAM,GAAG,OAAO,iBAAiB,UAAU,iBAAiB,SAAS,gBAAgB,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,OAAO;AAAA,EAC5L,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,QAAQ,GAAG,OAAO,iBAAiB,UAAU,iBAAiB,IAAI,gBAAgB,CAAC,EAAE,OAAO;AAC3H,CAAC;AAEM,IAAM,wCAAwC,EAAE,OAAO,EAAE,YAAY,gCAAgC,QAAQ,qCAAqC,CAAC,EAAE,OAAO;AAC5J,IAAM,qCAAqC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,EAAE,IAAI,GAAG,GAAG,YAAY,gBAAgB,SAAS,EAAE,CAAC,EAAE,OAAO;AAChK,IAAM,2CAA2C,EAAE,OAAO,EAAE,OAAO,iBAAiB,UAAU,gBAAgB,CAAC,EAAE,OAAO;AACxH,IAAM,oCAAoC,EAAE,OAAO;AAAA,EACxD,OAAO;AAAA,EAAiB,QAAQ;AAAA,EAA2B,gBAAgB;AAAA,EAC3E,SAAS,EAAE,QAAQ;AAAA,EAAG,eAAe,EAAE,MAAM,eAAe,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC;AAC5E,CAAC,EAAE,OAAO;AAGH,SAAS,8BAA8B,OAA8D;AAC1G,SAAO,EAAE,GAAG,OAAO,aAAa,OAAO,WAAW,GAAG,QAAQ,WAAW,YAAY,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC,GAAG;AAC/G;AAEA,SAAS,YAAY,QAAwB;AAC3C,QAAM,WAAW;AACjB,MAAI,QAAQ;AACZ,SAAO,MAAM,SAAS,QAAQ;AAC5B,eAAW,QAAQ,OAAO,gBAAgB,IAAI,WAAW,EAAE,CAAC,GAAG;AAE7D,UAAI,OAAO,IAAK,UAAS,SAAS,OAAO,EAAE;AAC3C,UAAI,MAAM,WAAW,OAAQ,QAAO;AAAA,IACtC;AAAA,EACF;AACA,SAAO;AACT;AAGO,SAAS,+BAA+B,WAAmB,KAAiB;AACjF,QAAM,UAAU,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,MAAM,SAAS,CAAC;AAC5D,MAAI,WAAW,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,IAAI,KAAK,KAAK,KAAK,KAAK,IAAO,OAAM,IAAI,MAAM,gDAAgD;AACvJ;;;ACvDA,SAAS,KAAAA,UAAS;AAClB;AAAA,EACE;AAAA,EAA8B;AAAA,EAA+B;AAAA,EAC7D;AAAA,EAAoC;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AACP,SAAS,6BAA6B;AAW/B,IAAM,iCAAiCC,GAAE,OAAO;AAAA,EACrD,SAASA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAAG,gBAAgBA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAC9F,CAAC,EAAE,OAAO;AACH,IAAM,uCAAuCA,GAAE,OAAO;AAAA,EAC3D,SAASA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAAG,WAAWA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAAG,WAAWA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACrF,WAAWA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAAG,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAAG,aAAaA,GAAE,OAAO,EAAE,MAAM,gBAAgB;AACrH,CAAC,EAAE,OAAO;AACH,IAAM,wBAAN,cAAoC,MAAM;AAAA,EAC/C,YAAqB,QAAyB,MAAc,SAA0B,SAAkB;AACtG,UAAM,OAAO;AADM;AAAyB;AAAwC;AAEpF,SAAK,OAAO;AAAA,EACd;AAAA,EAHqB;AAAA,EAAyB;AAAA,EAAwC;AAIxF;AAGO,IAAM,yBAAN,MAA6B;AAAA,EACzB;AAAA,EACT,YAAY,SAAwC;AAClD,QAAI,CAAC,QAAQ,OAAO,KAAK,KAAK,CAAC,QAAQ,MAAM,KAAK,EAAG,OAAM,IAAI,MAAM,0CAA0C;AAC/G,UAAM,MAAM,IAAI,IAAI,QAAQ,OAAO;AACnC,QAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,SAAS,IAAI,QAAQ,KAAK,IAAI,YAAY,IAAI,YAAY,IAAI,UAAU,IAAI,KAAM,OAAM,IAAI,MAAM,wFAAwF;AACnN,SAAK,WAAW,EAAE,GAAG,SAAS,SAAS,IAAI,SAAS,EAAE,QAAQ,QAAQ,EAAE,EAAE;AAAA,EAC5E;AAAA,EAEA,MAAM,QAAQ,SAA0B,UAAkC,CAAC,GAAqC;AAC9G,8BAA0B,OAAO;AACjC,UAAM,UAAU,6BAA6B,MAAM,EAAE,OAAO,KAAK,SAAS,OAAO,QAAQ,CAAC;AAC1F,UAAM,SAAS,8BAA8B,MAAM,MAAM,KAAK,SAAS,YAAY,SAAS,OAAO,CAAC;AACpG,QAAI,OAAO,gBAAgB,QAAQ,YAAa,OAAM,IAAI,sBAAsB,KAAK,+BAA+B,4DAA4D,IAAI;AACpL,WAAO;AAAA,EACT;AAAA,EAEA,cAAc,SAAgC,UAAkC,CAAC,GAAG;AAClF,WAAO,KAAK,QAAQ,EAAE,QAAQ,kBAAkB,aAAa,QAAQ,gBAAgB,QAAQ,GAAG,OAAO;AAAA,EACzG;AAAA,EAEA,eAAe,UAAkC,UAAkC,CAAC,GAAG;AACrF,WAAO,KAAK,QAAQ,EAAE,QAAQ,mBAAmB,aAAa,SAAS,gBAAgB,SAAS,GAAG,OAAO;AAAA,EAC5G;AAAA,EAEA,MAAM,IAAoC,MAAS,IAAY,UAAmB,UAAkC,CAAC,GAAoC;AACvJ,UAAM,UAAU,0BAA0B,MAAM,EAAE,QAAQ,OAAO,OAAO,KAAK,SAAS,OAAO,MAAM,IAAI,GAAI,aAAa,SAAY,CAAC,IAAI,EAAE,SAAS,EAAG,CAAC;AACxJ,WAAO,wBAAwB,IAAI,EAAE,MAAM,MAAM,KAAK,SAAS,QAAQ,SAAS,OAAO,CAAC;AAAA,EAC1F;AAAA,EAEA,MAAM,gBAAgB,UAA+B,UAAkC,CAAC,GAAG;AACzF,UAAM,UAAU,0BAA0B,MAAM,EAAE,QAAQ,oBAAoB,OAAO,KAAK,SAAS,OAAO,SAAS,CAAC;AACpH,UAAM,SAAS,mCAAmC,MAAM,MAAM,KAAK,SAAS,QAAQ,SAAS,OAAO,CAAC;AACrG,QAAI,CAAC,gBAAgB,OAAO,UAAU,QAAQ,EAAG,OAAM,IAAI,sBAAsB,KAAK,8BAA8B,4DAA4D,IAAI;AACpL,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAM,iBAAiB,iBAAgC,MAAM,UAAkC,CAAC,GAAG;AACjG,UAAM,UAAU,0BAA0B,MAAM,EAAE,QAAQ,sBAAsB,OAAO,KAAK,SAAS,OAAO,eAAe,CAAC;AAC5H,UAAM,SAAS,kCAAkC,MAAM,MAAM,KAAK,SAAS,QAAQ,SAAS,OAAO,CAAC;AACpG,QAAI,OAAO,mBAAmB,eAAgB,OAAM,IAAI,sBAAsB,KAAK,2BAA2B,iDAAiD,IAAI;AACnK,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAM,cAAc,QAA6B,UAAkC,CAAC,GAAG;AACrF,UAAM,UAAU,0BAA0B,MAAM,EAAE,QAAQ,kBAAkB,OAAO,KAAK,SAAS,OAAO,OAAO,CAAC;AAChH,UAAM,SAAS,qCAAqC,MAAM,MAAM,KAAK,SAAS,QAAQ,SAAS,OAAO,CAAC;AACvG,QAAI,CAAC,gBAAgB,OAAO,QAAQ,MAAM,EAAG,OAAM,IAAI,sBAAsB,KAAK,4BAA4B,0DAA0D,IAAI;AAC5K,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAM,uBAAuB,OAAiG,UAAkC,CAAC,GAAG;AAClK,UAAM,UAAU,sCAAsC,MAAM,EAAE,GAAG,OAAO,QAAQ,UAAU,OAAO,KAAK,SAAS,MAAM,CAAC;AACtH,UAAM,SAAS,sCAAsC,MAAM,MAAM,KAAK,SAAS,eAAe,SAAS,OAAO,CAAC;AAC/G,SAAK,uBAAuB,OAAO,YAAY,MAAM,QAAQ;AAC7D,QAAI,OAAO,WAAW,MAAM,UAAU,CAAC,MAAM,OAAO,WAAW,GAAG,OAAO,WAAW,SAAS,GAAG,EAAG,OAAM,IAAI,sBAAsB,KAAK,gCAAgC,8DAA8D,IAAI;AAC1O,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,sBAAsB,UAAkB,QAA8C,CAAC,GAAG,UAAkC,CAAC,GAAG;AACpI,UAAM,UAAU,sCAAsC,MAAM,EAAE,GAAG,OAAO,QAAQ,QAAQ,OAAO,KAAK,SAAS,OAAO,SAAS,CAAC;AAC9H,UAAM,SAAS,mCAAmC,MAAM,MAAM,KAAK,SAAS,eAAe,SAAS,OAAO,CAAC;AAC5G,QAAI,OAAO,MAAM,UAAU,MAAM,SAAS,IAAK,OAAM,IAAI,sBAAsB,KAAK,2BAA2B,yDAAyD,IAAI;AAC5K,eAAW,QAAQ,OAAO,MAAO,MAAK,uBAAuB,MAAM,QAAQ;AAC3E,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,uBAAuB,UAAkB,IAAY,UAAkC,CAAC,GAAG;AAC/F,UAAM,UAAU,sCAAsC,MAAM,EAAE,QAAQ,UAAU,OAAO,KAAK,SAAS,OAAO,UAAU,GAAG,CAAC;AAC1H,UAAM,SAAS,+BAA+B,MAAM,MAAM,KAAK,SAAS,eAAe,SAAS,OAAO,CAAC;AACxG,SAAK,uBAAuB,QAAQ,QAAQ;AAC5C,QAAI,OAAO,OAAO,MAAM,OAAO,cAAc,KAAM,OAAM,IAAI,sBAAsB,KAAK,kCAAkC,iEAAiE,IAAI;AAC/L,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,oBAAoB,UAAkB,UAAkC,CAAC,GAAG;AAChF,UAAM,UAAU,yCAAyC,MAAM,EAAE,OAAO,KAAK,SAAS,OAAO,SAAS,CAAC;AACvG,UAAM,SAAS,kCAAkC,MAAM,MAAM,KAAK,SAAS,iBAAiB,SAAS,OAAO,CAAC;AAC7G,QAAI,OAAO,UAAU,KAAK,SAAS,SAAS,OAAO,OAAO,OAAO,SAAU,OAAM,IAAI,sBAAsB,KAAK,4BAA4B,4DAA4D,IAAI;AAC5M,WAAO;AAAA,EACT;AAAA,EAEA,uBAAuB,OAA4C,UAAkB;AACnF,QAAI,MAAM,UAAU,KAAK,SAAS,SAAS,MAAM,aAAa,SAAU,OAAM,IAAI,sBAAsB,KAAK,6BAA6B,2DAA2D,IAAI;AAAA,EAC3M;AAAA,EAEA,MAAM,KAAqC,MAAS,QAAwC,CAAC,GAAG,UAAkC,CAAC,GAAqC;AACtK,UAAM,UAAU,0BAA0B,MAAM,EAAE,QAAQ,QAAQ,OAAO,KAAK,SAAS,OAAO,MAAM,GAAG,MAAM,CAAC;AAC9G,WAAOA,GAAE,OAAO,EAAE,OAAOA,GAAE,MAAM,wBAAwB,IAAI,CAAC,EAAE,IAAI,GAAG,GAAG,YAAYA,GAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,MAAM,KAAK,SAAS,QAAQ,SAAS,OAAO,CAAC;AAAA,EAC7K;AAAA;AAAA,EAGA,MAAM,aAAa,OAAuD,UAAkC,CAAC,GAAG;AAC9G,UAAM,UAAU,+BAA+B,MAAM,KAAK;AAC1D,UAAM,SAAS,qCAAqC,MAAM,MAAM,KAAK,SAAS,iBAAiB,EAAE,GAAG,SAAS,OAAO,KAAK,SAAS,MAAM,GAAG,OAAO,CAAC;AACnJ,QAAI,OAAO,YAAY,QAAQ,QAAS,OAAM,IAAI,sBAAsB,KAAK,2BAA2B,+DAA+D,IAAI;AAC3K,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,SAAS,UAAmF,MAAe,SAAmD;AAClK,0BAAsB,MAAM,QAAU;AACtC,UAAM,WAAW,OAAO,KAAK,SAAS,SAAS,WAAW,OAAO,GAAG,KAAK,SAAS,OAAO,gBAAgB,QAAQ,IAAI;AAAA,MACnH,QAAQ;AAAA,MAAQ,SAAS,EAAE,eAAe,UAAU,KAAK,SAAS,MAAM,IAAI,gBAAgB,oBAAoB,QAAQ,oBAAoB,sBAAsB,KAAK,SAAS,MAAM;AAAA,MAAG,MAAM,KAAK,UAAU,IAAI;AAAA,MAAG,QAAQ,QAAQ;AAAA,MACrO,UAAU;AAAA,IACZ,CAAC;AACD,UAAM,UAAU,MAAM,4BAA4B,QAAQ;AAC1D,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,QAAQA,GAAE,OAAO,EAAE,MAAMA,GAAE,OAAO,EAAE,SAAS,GAAG,OAAOA,GAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,UAAU,OAAO;AACrH,YAAM,IAAI,sBAAsB,SAAS,QAAQ,MAAM,UAAU,MAAM,KAAK,QAAQ,4BAA4B,2BAA2B,MAAM,UAAU,MAAM,KAAK,SAAS,4BAA4B,SAAS,MAAM,OAAO,4BAA4B,SAAS,MAAM,MAAM,OAAO;AAAA,IAC3R;AACA,WAAO;AAAA,EACT;AACF;AAEA,eAAe,4BAA4B,UAAsC;AAC/E,QAAM,eAAe;AACrB,QAAM,SAAS,SAAS,MAAM,UAAU;AACxC,MAAI,CAAC,OAAQ,OAAM,IAAI,sBAAsB,SAAS,QAAQ,kBAAkB,gCAAgC,IAAI;AACpH,QAAM,UAAU,IAAI,YAAY;AAChC,MAAI,QAAQ;AACZ,MAAI,OAAO;AACX,MAAI;AACF,WAAO,MAAM;AACX,YAAM,OAAO,MAAM,OAAO,KAAK;AAC/B,UAAI,KAAK,KAAM;AACf,eAAS,KAAK,MAAM;AACpB,UAAI,QAAQ,aAAc,OAAM,IAAI,sBAAsB,SAAS,QAAQ,sBAAsB,8DAA8D,IAAI;AACnK,cAAQ,QAAQ,OAAO,KAAK,OAAO,EAAE,QAAQ,KAAK,CAAC;AAAA,IACrD;AACA,YAAQ,QAAQ,OAAO;AACvB,UAAM,QAAiB,KAAK,MAAM,IAAI;AACtC,0BAAsB,OAAO,YAAY;AACzC,WAAO;AAAA,EACT,UAAE;AACA,UAAM,OAAO,OAAO;AACpB,WAAO,YAAY;AAAA,EACrB;AACF;","names":["z","z"]}
@@ -152,4 +152,4 @@ export {
152
152
  apiFetch,
153
153
  readApiJson
154
154
  };
155
- //# sourceMappingURL=chunk-CEZEVILU.js.map
155
+ //# sourceMappingURL=chunk-HJ2AIAKX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../cloud/src/api/core.ts"],"sourcesContent":["const DEFAULT_API_TIMEOUT_MS = 30_000;\nconst DEFAULT_API_RESPONSE_BYTES = 8 * 1024 * 1024;\nexport const LONG_STREAM_API_OPTIONS = { timeoutMs: 15 * 60 * 1000, maxResponseBytes: 64 * 1024 * 1024 } as const;\n\nexport type ApiFetchOptions = RequestInit & {\n /** Generic services always use their explicit bearer token, regardless of prefix. */\n explicitBearerAuth?: boolean;\n timeoutMs?: number;\n maxResponseBytes?: number;\n};\n\nexport class ApiTimeoutError extends Error {\n readonly code = \"OPENPOND_API_TIMEOUT\";\n\n constructor(readonly timeoutMs: number, readonly requestUrl: string) {\n super(`API request timed out after ${timeoutMs}ms: ${requestUrl}`);\n this.name = \"ApiTimeoutError\";\n }\n}\n\nexport class ApiResponseTooLargeError extends Error {\n readonly code = \"OPENPOND_API_RESPONSE_TOO_LARGE\";\n\n constructor(readonly maximumBytes: number, readonly requestUrl: string) {\n super(`API response exceeded ${maximumBytes} bytes: ${requestUrl}`);\n this.name = \"ApiResponseTooLargeError\";\n }\n}\n\nexport class OpenPondApiError extends Error {\n readonly code: string;\n\n constructor(\n readonly status: number,\n errorCode: string | null,\n label: string,\n readonly apiMessage: string | null = null,\n ) {\n const detail = apiMessage || errorCode;\n super(`${label} failed: ${status}${detail ? ` ${detail}` : \"\"}`);\n this.name = \"OpenPondApiError\";\n this.code = errorCode || \"OPENPOND_API_ERROR\";\n }\n}\n\nexport async function apiFetch(\n baseUrl: string,\n token: string | null,\n requestPath: string,\n options: ApiFetchOptions = {},\n): Promise<Response> {\n const { timeoutMs = DEFAULT_API_TIMEOUT_MS, maxResponseBytes = DEFAULT_API_RESPONSE_BYTES, explicitBearerAuth = false, ...init } = options;\n const requestUrl = `${baseUrl}${requestPath}`;\n const headers = new Headers(init.headers);\n headers.set(\"Content-Type\", \"application/json\");\n const apiKey = !explicitBearerAuth ? process.env.OPENPOND_API_KEY : undefined;\n const trimmedToken = token?.trim() || \"\";\n const tokenIsApiKey = !explicitBearerAuth && trimmedToken.startsWith(\"opk_\");\n const effectiveApiKey = apiKey || (tokenIsApiKey ? trimmedToken : null);\n if (effectiveApiKey && !headers.has(\"openpond-api-key\")) headers.set(\"openpond-api-key\", effectiveApiKey);\n if (token) {\n headers.set(\"Authorization\", tokenIsApiKey ? `ApiKey ${trimmedToken}` : `Bearer ${token}`);\n } else if (apiKey && !headers.has(\"Authorization\")) {\n headers.set(\"Authorization\", `ApiKey ${apiKey}`);\n }\n\n const timeoutController = new AbortController();\n const timeoutError = new ApiTimeoutError(timeoutMs, requestUrl);\n const timer = timeoutMs > 0\n ? setTimeout(() => timeoutController.abort(timeoutError), timeoutMs)\n : null;\n timer?.unref?.();\n const signal = composedSignal(init.signal, timeoutController.signal, timeoutMs);\n const cleanup = () => {\n if (timer) clearTimeout(timer);\n };\n\n try {\n const response = await fetch(requestUrl, { ...init, headers, signal });\n return boundedResponse(response, {\n cleanup,\n maximumBytes: maxResponseBytes,\n requestUrl,\n timeoutController,\n timeoutError,\n });\n } catch (error) {\n cleanup();\n if (timeoutController.signal.aborted) throw timeoutError;\n throw error;\n }\n}\n\nexport async function readApiJson<T>(response: Response, label: string): Promise<T> {\n let payload: T & { error?: unknown; message?: unknown };\n try {\n const text = await response.text();\n payload = (text ? JSON.parse(text) : {}) as T & { error?: unknown; message?: unknown };\n } catch (error) {\n if (error instanceof ApiTimeoutError || error instanceof ApiResponseTooLargeError) throw error;\n payload = {} as T & { error?: unknown; message?: unknown };\n }\n if (!response.ok) {\n const errorCode = typeof payload.error === \"string\" ? payload.error : null;\n const apiMessage =\n typeof payload.message === \"string\" ? payload.message : null;\n throw new OpenPondApiError(response.status, errorCode, label, apiMessage);\n }\n return payload as T;\n}\n\nfunction boundedResponse(\n response: Response,\n input: {\n cleanup: () => void;\n maximumBytes: number;\n requestUrl: string;\n timeoutController: AbortController;\n timeoutError: ApiTimeoutError;\n },\n): Response {\n if (!response.body) {\n input.cleanup();\n return response;\n }\n const contentLength = Number(response.headers.get(\"content-length\"));\n if (input.maximumBytes > 0 && Number.isFinite(contentLength) && contentLength > input.maximumBytes) {\n input.cleanup();\n void response.body.cancel();\n throw new ApiResponseTooLargeError(input.maximumBytes, input.requestUrl);\n }\n\n const reader = response.body.getReader();\n let receivedBytes = 0;\n const body = new ReadableStream<Uint8Array>({\n async pull(controller) {\n try {\n const result = await reader.read();\n if (result.done) {\n input.cleanup();\n controller.close();\n return;\n }\n receivedBytes += result.value.byteLength;\n if (input.maximumBytes > 0 && receivedBytes > input.maximumBytes) {\n input.cleanup();\n await reader.cancel();\n controller.error(new ApiResponseTooLargeError(input.maximumBytes, input.requestUrl));\n return;\n }\n controller.enqueue(result.value);\n } catch (error) {\n input.cleanup();\n controller.error(input.timeoutController.signal.aborted ? input.timeoutError : error);\n }\n },\n async cancel(reason) {\n input.cleanup();\n await reader.cancel(reason);\n },\n });\n return new Response(body, {\n headers: response.headers,\n status: response.status,\n statusText: response.statusText,\n });\n}\n\nfunction composedSignal(\n callerSignal: AbortSignal | null | undefined,\n timeoutSignal: AbortSignal,\n timeoutMs: number,\n): AbortSignal | undefined {\n if (timeoutMs <= 0) return callerSignal ?? undefined;\n return callerSignal ? AbortSignal.any([callerSignal, timeoutSignal]) : timeoutSignal;\n}\n"],"mappings":"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","names":[]}
@@ -5,20 +5,20 @@ import {
5
5
  computeTasksetHash,
6
6
  draftPublishIssues,
7
7
  validateTaskset
8
- } from "./chunk-CWXM57QR.js";
8
+ } from "./chunk-ZFYI4P6C.js";
9
9
  import {
10
10
  TaskDataRecordSchema
11
- } from "./chunk-FHCSDXIA.js";
11
+ } from "./chunk-EJZ7HOIS.js";
12
12
  import {
13
13
  TasksetDraftFileContentSchema,
14
14
  TasksetDraftFileMutationSchema,
15
15
  TasksetDraftFilePathSchema
16
- } from "./chunk-2U54EOXJ.js";
16
+ } from "./chunk-TK3DXH7A.js";
17
17
  import {
18
18
  canonicalJson,
19
19
  contentHash,
20
20
  sha256
21
- } from "./chunk-COPVBJPL.js";
21
+ } from "./chunk-H3JZ3P5T.js";
22
22
 
23
23
  // src/taskset-draft-files.ts
24
24
  var MAX_TASKSET_DRAFT_EDIT_FILE_BYTES = 6e6;
@@ -140,8 +140,8 @@ var HashSchema = z.string().regex(/^[a-f0-9]{64}$/);
140
140
  var TasksetDraftWorkspaceFileSchema = z.object({
141
141
  path: TasksetDraftFilePathSchema,
142
142
  contentHash: HashSchema,
143
- sizeBytes: z.number().int().nonnegative().max(MAX_TASKSET_DRAFT_WORKSPACE_BYTES),
144
- base64: z.string().max(MAX_TASKSET_DRAFT_WORKSPACE_BYTES)
143
+ sizeBytes: z.number().int().nonnegative(),
144
+ base64: z.string()
145
145
  }).strict();
146
146
  var WorkspaceContentSchema = z.object({
147
147
  schemaVersion: z.literal("openpond.tasksetDraftWorkspace.v1"),
@@ -149,14 +149,14 @@ var WorkspaceContentSchema = z.object({
149
149
  files: z.array(TasksetDraftWorkspaceFileSchema).max(1e4)
150
150
  }).strict();
151
151
  var TasksetDraftWorkspaceSchema = WorkspaceContentSchema.extend({ contentHash: HashSchema }).strict();
152
- function createTasksetDraftWorkspace(input) {
153
- assertBoundedTaskJson(input, MAX_TASKSET_DRAFT_WORKSPACE_BYTES);
152
+ function createTasksetDraftWorkspace(input, maximumBytes = MAX_TASKSET_DRAFT_WORKSPACE_BYTES) {
153
+ assertBoundedTaskJson(input, maximumBytes);
154
154
  const content = WorkspaceContentSchema.parse(input);
155
155
  content.files.sort((left, right) => left.path < right.path ? -1 : left.path > right.path ? 1 : 0);
156
- return validateTasksetDraftWorkspace({ ...content, contentHash: contentHash(content) });
156
+ return validateTasksetDraftWorkspace({ ...content, contentHash: contentHash(content) }, maximumBytes);
157
157
  }
158
- function validateTasksetDraftWorkspace(input) {
159
- assertBoundedTaskJson(input, MAX_TASKSET_DRAFT_WORKSPACE_BYTES);
158
+ function validateTasksetDraftWorkspace(input, maximumBytes = MAX_TASKSET_DRAFT_WORKSPACE_BYTES) {
159
+ assertBoundedTaskJson(input, maximumBytes);
160
160
  const workspace = TasksetDraftWorkspaceSchema.parse(input);
161
161
  const { contentHash: expectedHash, ...content } = workspace;
162
162
  if (contentHash(content) !== expectedHash) throw new Error("Taskset draft workspace differs from its retained bytes.");
@@ -193,7 +193,7 @@ function listTasksetDraftWorkspaceFiles(input) {
193
193
  return { draftRevision: workspace.draft.revision, files: files.sort((left, right) => left.path < right.path ? -1 : left.path > right.path ? 1 : 0) };
194
194
  }
195
195
  function saveTasksetDraftWorkspaceDocument(input) {
196
- const workspace = editableWorkspace(input.workspace, input.expectedDraftRevision);
196
+ const workspace = editableWorkspace(input.workspace, input.expectedDraftRevision, input.maximumBytes);
197
197
  const draft = TasksetDraftSchema.parse(input.draft);
198
198
  const current = workspace.draft;
199
199
  if (draft.id !== current.id || draft.profileId !== current.profileId || contentHash(draft.modelScope) !== contentHash(current.modelScope)) throw new Error("Taskset draft Model ownership cannot change.");
@@ -215,11 +215,11 @@ function saveTasksetDraftWorkspaceDocument(input) {
215
215
  updatedAt: input.now,
216
216
  ...aggregator && module ? { metrics: { ...draft.metrics, customAggregator: { ...aggregator, contentHash: module.contentHash } } } : {}
217
217
  }
218
- });
218
+ }, input.maximumBytes);
219
219
  }
220
220
  function saveTasksetDraftWorkspaceFile(input) {
221
221
  const mutation = TasksetDraftFileMutationSchema.parse(input.mutation);
222
- const workspace = editableWorkspace(input.workspace, mutation.expectedDraftRevision);
222
+ const workspace = editableWorkspace(input.workspace, mutation.expectedDraftRevision, input.maximumBytes);
223
223
  if (workspace.draft.id !== mutation.draftId) throw new Error("Taskset draft file belongs to another draft.");
224
224
  if (!isWritableTasksetDraftFilePath(mutation.path)) throw new Error("This file is managed by the Taskset forms or retained source history.");
225
225
  const previous = workspace.files.find((file) => file.path === mutation.path);
@@ -234,10 +234,10 @@ function saveTasksetDraftWorkspaceFile(input) {
234
234
  schemaVersion: workspace.schemaVersion,
235
235
  files,
236
236
  draft: { ...workspace.draft, revision: workspace.draft.revision + 1, status: "draft", updatedAt: input.now }
237
- });
237
+ }, input.maximumBytes);
238
238
  }
239
- function editableWorkspace(input, expectedRevision) {
240
- const workspace = validateTasksetDraftWorkspace(input);
239
+ function editableWorkspace(input, expectedRevision, maximumBytes) {
240
+ const workspace = validateTasksetDraftWorkspace(input, maximumBytes);
241
241
  if (workspace.draft.status === "published") throw new Error("Published Taskset drafts are immutable.");
242
242
  if (workspace.draft.revision !== expectedRevision) throw new Error("Taskset draft changed. Reload before saving.");
243
243
  return workspace;
@@ -487,4 +487,4 @@ export {
487
487
  tasksetDraftFromTaskset,
488
488
  publishTasksetDraft
489
489
  };
490
- //# sourceMappingURL=chunk-BFR3VC25.js.map
490
+ //# sourceMappingURL=chunk-HOOHJCE7.js.map