openpond-sdk 0.12.25 → 0.12.27

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 (297) hide show
  1. package/LEARNING.md +5 -7
  2. package/OPENTELEMETRY.md +1 -1
  3. package/PRODUCT_INTEGRATION.md +18 -16
  4. package/README.md +5 -14
  5. package/SERVERLESS_SERVING.md +54 -0
  6. package/TASKSETS.md +1 -2
  7. package/TASK_INGESTION.md +3 -8
  8. package/TRAINING_PROTOCOL.md +1 -1
  9. package/TRAINING_WORKFLOWS.md +11 -6
  10. package/dist/advanced-refiner-evaluations.js +9 -8
  11. package/dist/ai-sdk.js +21 -83
  12. package/dist/ai-sdk.js.map +1 -1
  13. package/dist/candidate-evaluations.js +7 -6
  14. package/dist/{chunk-IXFUYPGV.js → chunk-3HOGOWKU.js} +10 -8
  15. package/dist/chunk-3HOGOWKU.js.map +1 -0
  16. package/dist/{chunk-YV6PPDXZ.js → chunk-3Z5IK2UK.js} +27 -2
  17. package/dist/chunk-3Z5IK2UK.js.map +1 -0
  18. package/dist/{chunk-3B5KSH3V.js → chunk-456F3BXD.js} +5 -2
  19. package/dist/chunk-456F3BXD.js.map +1 -0
  20. package/dist/{chunk-GS5HEE4M.js → chunk-4D4QSQC3.js} +2 -2
  21. package/dist/{chunk-3VUF5H3B.js → chunk-534W2O2S.js} +2 -2
  22. package/dist/{chunk-47THZRUM.js → chunk-54BJJL7G.js} +8 -5
  23. package/dist/chunk-54BJJL7G.js.map +1 -0
  24. package/dist/{chunk-ZRTNR4U7.js → chunk-5KJY44FB.js} +3 -3
  25. package/dist/{chunk-GX6KMHW2.js → chunk-7MLFWVDI.js} +33 -11
  26. package/dist/chunk-7MLFWVDI.js.map +1 -0
  27. package/dist/{chunk-RTLJV4OS.js → chunk-7ZV626YS.js} +2 -2
  28. package/dist/{chunk-YS7DF76T.js → chunk-ABOZV47D.js} +3 -3
  29. package/dist/{chunk-DDCR4KB5.js → chunk-BIQ5TG3T.js} +4 -4
  30. package/dist/{chunk-JOMZJXGC.js → chunk-BT6CC6QB.js} +3 -3
  31. package/dist/{chunk-QOX57Y27.js → chunk-CNFN6GHY.js} +6 -3
  32. package/dist/chunk-CNFN6GHY.js.map +1 -0
  33. package/dist/{chunk-RN5MK7NH.js → chunk-CVYGJUWM.js} +3 -3
  34. package/dist/{chunk-QNOCM5JX.js → chunk-CX7ETU2F.js} +2 -2
  35. package/dist/{chunk-EZME7DV4.js → chunk-D7LV3USE.js} +2 -2
  36. package/dist/{chunk-7F43U2NC.js → chunk-GA7OSSEA.js} +3 -3
  37. package/dist/{chunk-T67LNKAK.js → chunk-GFWXDWEE.js} +3 -3
  38. package/dist/{chunk-Z5APNTZE.js → chunk-JYWIKBGD.js} +122 -112
  39. package/dist/chunk-JYWIKBGD.js.map +1 -0
  40. package/dist/{chunk-GV6DEDBU.js → chunk-K4WU4JOP.js} +2 -2
  41. package/dist/{chunk-DH6O4JFB.js → chunk-KJTX4A27.js} +5 -2
  42. package/dist/chunk-KJTX4A27.js.map +1 -0
  43. package/dist/{chunk-JMFYNIYZ.js → chunk-L7MVGGBH.js} +6 -3
  44. package/dist/chunk-L7MVGGBH.js.map +1 -0
  45. package/dist/{chunk-3G3HUA32.js → chunk-LRFVISLA.js} +3 -3
  46. package/dist/{chunk-ZQFROKKS.js → chunk-MJHQMQEW.js} +3 -3
  47. package/dist/{chunk-2OVNKPBZ.js → chunk-MUG4OQKL.js} +5 -2
  48. package/dist/chunk-MUG4OQKL.js.map +1 -0
  49. package/dist/{chunk-C3TS766N.js → chunk-N6LGT7NT.js} +5 -2
  50. package/dist/chunk-N6LGT7NT.js.map +1 -0
  51. package/dist/chunk-ON3KSXWR.js +639 -0
  52. package/dist/chunk-ON3KSXWR.js.map +1 -0
  53. package/dist/chunk-QYWPNNP3.js +9 -0
  54. package/dist/chunk-QYWPNNP3.js.map +1 -0
  55. package/dist/{chunk-PMVSO23F.js → chunk-RMXZISHK.js} +10 -1
  56. package/dist/chunk-RMXZISHK.js.map +1 -0
  57. package/dist/{chunk-626JLH4D.js → chunk-TMNEDWA7.js} +10 -3
  58. package/dist/chunk-TMNEDWA7.js.map +1 -0
  59. package/dist/{chunk-BJMENXR4.js → chunk-TX552FQG.js} +3 -3
  60. package/dist/{chunk-Z252BNAZ.js → chunk-VE5JD5FN.js} +6 -2
  61. package/dist/chunk-VE5JD5FN.js.map +1 -0
  62. package/dist/{chunk-XBFOFTK3.js → chunk-VIDRZCPQ.js} +6 -6
  63. package/dist/{chunk-QRYEXPG7.js → chunk-VRUAIMM3.js} +14 -11
  64. package/dist/chunk-VRUAIMM3.js.map +1 -0
  65. package/dist/{chunk-MVAEE5EI.js → chunk-WJZHSIGD.js} +10 -9
  66. package/dist/chunk-WJZHSIGD.js.map +1 -0
  67. package/dist/{chunk-3MWFN7BA.js → chunk-WPTFJZ4L.js} +8 -5
  68. package/dist/chunk-WPTFJZ4L.js.map +1 -0
  69. package/dist/connected-evidence.js +9 -8
  70. package/dist/dataset-commerce.js +4 -1
  71. package/dist/dataset-commerce.js.map +1 -1
  72. package/dist/dataset-marketplace.js +4 -1
  73. package/dist/dataset-marketplace.js.map +1 -1
  74. package/dist/dataset-workspaces.js +18 -15
  75. package/dist/dataset-workspaces.js.map +1 -1
  76. package/dist/errors.js +2 -1
  77. package/dist/experiment-evaluation-schedules.js +19 -18
  78. package/dist/experiment-improvements.js +8 -7
  79. package/dist/experiments.js +17 -16
  80. package/dist/human-review.js +2 -1
  81. package/dist/index.js +33 -29
  82. package/dist/index.js.map +1 -1
  83. package/dist/learning.js +21 -7
  84. package/dist/learning.js.map +1 -1
  85. package/dist/model-projects.js +2 -1
  86. package/dist/model-starter-attempts.js +3 -2
  87. package/dist/model-starter-catalog.js +8 -5
  88. package/dist/model-starter-catalog.js.map +1 -1
  89. package/dist/model-starters.js +5 -4
  90. package/dist/model-taskset-runs.js +7 -4
  91. package/dist/model-taskset-runs.js.map +1 -1
  92. package/dist/post-training.js +7 -6
  93. package/dist/taskset-catalog.js +2 -1
  94. package/dist/taskset-drafts.js +11 -8
  95. package/dist/taskset-drafts.js.map +1 -1
  96. package/dist/taskset-packages.js +14 -11
  97. package/dist/tool-learning.js +4 -1
  98. package/dist/tool-learning.js.map +1 -1
  99. package/dist/training-bundle.js +47 -20
  100. package/dist/training-bundle.js.map +1 -1
  101. package/dist/training-hardware.js +3 -2
  102. package/dist/training-projects.js +4 -1
  103. package/dist/training-projects.js.map +1 -1
  104. package/dist/training.js +5718 -4337
  105. package/dist/training.js.map +1 -1
  106. package/dist/types/packages/sdk/src/ai-sdk.d.ts.map +1 -1
  107. package/dist/types/packages/sdk/src/alphaedit-model-serving.d.ts +8 -4
  108. package/dist/types/packages/sdk/src/alphaedit-model-serving.d.ts.map +1 -1
  109. package/dist/types/packages/sdk/src/candidate-evaluation-client.d.ts +162 -162
  110. package/dist/types/packages/sdk/src/connected-evidence-client.d.ts +1 -1
  111. package/dist/types/packages/sdk/src/connected-evidence-client.d.ts.map +1 -1
  112. package/dist/types/packages/sdk/src/connected-sync.d.ts +1 -1
  113. package/dist/types/packages/sdk/src/connected-sync.d.ts.map +1 -1
  114. package/dist/types/packages/sdk/src/dataset-commerce.d.ts +1 -1
  115. package/dist/types/packages/sdk/src/dataset-commerce.d.ts.map +1 -1
  116. package/dist/types/packages/sdk/src/dataset-marketplace.d.ts +1 -1
  117. package/dist/types/packages/sdk/src/dataset-marketplace.d.ts.map +1 -1
  118. package/dist/types/packages/sdk/src/dataset-population.d.ts +1 -1
  119. package/dist/types/packages/sdk/src/dataset-population.d.ts.map +1 -1
  120. package/dist/types/packages/sdk/src/dataset-preparation-client.d.ts +1 -1
  121. package/dist/types/packages/sdk/src/dataset-preparation-client.d.ts.map +1 -1
  122. package/dist/types/packages/sdk/src/dataset-task-ingestion.d.ts +1 -1
  123. package/dist/types/packages/sdk/src/dataset-task-ingestion.d.ts.map +1 -1
  124. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts +1 -1
  125. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts.map +1 -1
  126. package/dist/types/packages/sdk/src/decision-model-serving.d.ts +4 -2
  127. package/dist/types/packages/sdk/src/decision-model-serving.d.ts.map +1 -1
  128. package/dist/types/packages/sdk/src/endpoints.d.ts +4 -0
  129. package/dist/types/packages/sdk/src/endpoints.d.ts.map +1 -0
  130. package/dist/types/packages/sdk/src/engram-model-serving.d.ts +3 -1
  131. package/dist/types/packages/sdk/src/engram-model-serving.d.ts.map +1 -1
  132. package/dist/types/packages/sdk/src/evaluation-coordination-http.d.ts +1 -1
  133. package/dist/types/packages/sdk/src/evaluation-coordination-http.d.ts.map +1 -1
  134. package/dist/types/packages/sdk/src/experiment-client.d.ts +700 -692
  135. package/dist/types/packages/sdk/src/experiment-client.d.ts.map +1 -1
  136. package/dist/types/packages/sdk/src/experiment-draft-storage.d.ts +34 -28
  137. package/dist/types/packages/sdk/src/experiment-draft-storage.d.ts.map +1 -1
  138. package/dist/types/packages/sdk/src/experiment-improvement-client.d.ts +1890 -1890
  139. package/dist/types/packages/sdk/src/experiment-improvement-client.d.ts.map +1 -1
  140. package/dist/types/packages/sdk/src/experiment-inspection.d.ts +1 -1
  141. package/dist/types/packages/sdk/src/experiment-inspection.d.ts.map +1 -1
  142. package/dist/types/packages/sdk/src/experiment-run-details.d.ts +7 -7
  143. package/dist/types/packages/sdk/src/experiment-scoring-contracts.d.ts +21 -3
  144. package/dist/types/packages/sdk/src/experiment-scoring-contracts.d.ts.map +1 -1
  145. package/dist/types/packages/sdk/src/grader-inspection.d.ts +1 -1
  146. package/dist/types/packages/sdk/src/grader-inspection.d.ts.map +1 -1
  147. package/dist/types/packages/sdk/src/human-review-client.d.ts +1 -1
  148. package/dist/types/packages/sdk/src/human-review-client.d.ts.map +1 -1
  149. package/dist/types/packages/sdk/src/index.d.ts.map +1 -1
  150. package/dist/types/packages/sdk/src/learning-client.d.ts +1 -1
  151. package/dist/types/packages/sdk/src/learning-client.d.ts.map +1 -1
  152. package/dist/types/packages/sdk/src/learning-correction-metrics.d.ts +1 -1
  153. package/dist/types/packages/sdk/src/learning-correction-metrics.d.ts.map +1 -1
  154. package/dist/types/packages/sdk/src/learning.d.ts +1 -0
  155. package/dist/types/packages/sdk/src/learning.d.ts.map +1 -1
  156. package/dist/types/packages/sdk/src/managed-alphaedit-executions.d.ts +272 -16
  157. package/dist/types/packages/sdk/src/managed-alphaedit-executions.d.ts.map +1 -1
  158. package/dist/types/packages/sdk/src/managed-compute-price.d.ts +53 -1
  159. package/dist/types/packages/sdk/src/managed-compute-price.d.ts.map +1 -1
  160. package/dist/types/packages/sdk/src/managed-decision-executions.d.ts +612 -356
  161. package/dist/types/packages/sdk/src/managed-decision-executions.d.ts.map +1 -1
  162. package/dist/types/packages/sdk/src/managed-engram-executions.d.ts +272 -16
  163. package/dist/types/packages/sdk/src/managed-engram-executions.d.ts.map +1 -1
  164. package/dist/types/packages/sdk/src/managed-modification-executions.d.ts +208 -16
  165. package/dist/types/packages/sdk/src/managed-modification-executions.d.ts.map +1 -1
  166. package/dist/types/packages/sdk/src/managed-neuron-training-executions.d.ts +272 -16
  167. package/dist/types/packages/sdk/src/managed-neuron-training-executions.d.ts.map +1 -1
  168. package/dist/types/packages/sdk/src/managed-serving-usage.d.ts +3 -0
  169. package/dist/types/packages/sdk/src/managed-serving-usage.d.ts.map +1 -1
  170. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts +25 -25
  171. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts.map +1 -1
  172. package/dist/types/packages/sdk/src/model-learning-capabilities.d.ts +4 -0
  173. package/dist/types/packages/sdk/src/model-learning-capabilities.d.ts.map +1 -0
  174. package/dist/types/packages/sdk/src/model-learning-policy.d.ts.map +1 -1
  175. package/dist/types/packages/sdk/src/model-projects.d.ts +1 -1
  176. package/dist/types/packages/sdk/src/model-projects.d.ts.map +1 -1
  177. package/dist/types/packages/sdk/src/model-starter-attempts.d.ts +1 -1
  178. package/dist/types/packages/sdk/src/model-starter-attempts.d.ts.map +1 -1
  179. package/dist/types/packages/sdk/src/model-starter-catalog.d.ts +1 -1
  180. package/dist/types/packages/sdk/src/model-starter-catalog.d.ts.map +1 -1
  181. package/dist/types/packages/sdk/src/model-supervised-training-defaults.d.ts.map +1 -1
  182. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts +1 -1
  183. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts.map +1 -1
  184. package/dist/types/packages/sdk/src/model-training-defaults.d.ts +5 -2
  185. package/dist/types/packages/sdk/src/model-training-defaults.d.ts.map +1 -1
  186. package/dist/types/packages/sdk/src/neuron-training-model-serving.d.ts +8 -4
  187. package/dist/types/packages/sdk/src/neuron-training-model-serving.d.ts.map +1 -1
  188. package/dist/types/packages/sdk/src/post-training.d.ts +7 -7
  189. package/dist/types/packages/sdk/src/product-model-response.d.ts +6 -2
  190. package/dist/types/packages/sdk/src/product-model-response.d.ts.map +1 -1
  191. package/dist/types/packages/sdk/src/product-model-transport.d.ts +99 -0
  192. package/dist/types/packages/sdk/src/product-model-transport.d.ts.map +1 -0
  193. package/dist/types/packages/sdk/src/product-model-wire.d.ts +104 -0
  194. package/dist/types/packages/sdk/src/product-model-wire.d.ts.map +1 -0
  195. package/dist/types/packages/sdk/src/product-models.d.ts +18 -15
  196. package/dist/types/packages/sdk/src/product-models.d.ts.map +1 -1
  197. package/dist/types/packages/sdk/src/profile-evaluation-discovery.d.ts +1 -1
  198. package/dist/types/packages/sdk/src/profile-evaluation-discovery.d.ts.map +1 -1
  199. package/dist/types/packages/sdk/src/serverless-serving.d.ts +564 -0
  200. package/dist/types/packages/sdk/src/serverless-serving.d.ts.map +1 -0
  201. package/dist/types/packages/sdk/src/steering-model-serving.d.ts +2211 -494
  202. package/dist/types/packages/sdk/src/steering-model-serving.d.ts.map +1 -1
  203. package/dist/types/packages/sdk/src/steering-profile-publication.d.ts +631 -0
  204. package/dist/types/packages/sdk/src/steering-profile-publication.d.ts.map +1 -1
  205. package/dist/types/packages/sdk/src/taskset-catalog.d.ts +1 -1
  206. package/dist/types/packages/sdk/src/taskset-catalog.d.ts.map +1 -1
  207. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts +1 -1
  208. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts.map +1 -1
  209. package/dist/types/packages/sdk/src/taskset-package-client.d.ts +1 -1
  210. package/dist/types/packages/sdk/src/taskset-package-client.d.ts.map +1 -1
  211. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts +20 -20
  212. package/dist/types/packages/sdk/src/taskset-packages.d.ts +1 -0
  213. package/dist/types/packages/sdk/src/taskset-packages.d.ts.map +1 -1
  214. package/dist/types/packages/sdk/src/taskset-text-policy.d.ts +11 -0
  215. package/dist/types/packages/sdk/src/taskset-text-policy.d.ts.map +1 -0
  216. package/dist/types/packages/sdk/src/tool-learning-client.d.ts +1 -1
  217. package/dist/types/packages/sdk/src/tool-learning-client.d.ts.map +1 -1
  218. package/dist/types/packages/sdk/src/training-compute-selection.d.ts +6 -19
  219. package/dist/types/packages/sdk/src/training-compute-selection.d.ts.map +1 -1
  220. package/dist/types/packages/sdk/src/training-estimates.d.ts +1 -1
  221. package/dist/types/packages/sdk/src/training-experiment-setup.d.ts +4 -1
  222. package/dist/types/packages/sdk/src/training-experiment-setup.d.ts.map +1 -1
  223. package/dist/types/packages/sdk/src/training-harness-sources.d.ts +2 -2
  224. package/dist/types/packages/sdk/src/training-model-serving-control.d.ts +630 -0
  225. package/dist/types/packages/sdk/src/training-model-serving-control.d.ts.map +1 -1
  226. package/dist/types/packages/sdk/src/training-model-serving.d.ts +1665 -7
  227. package/dist/types/packages/sdk/src/training-model-serving.d.ts.map +1 -1
  228. package/dist/types/packages/sdk/src/training-operations.d.ts +11197 -0
  229. package/dist/types/packages/sdk/src/training-operations.d.ts.map +1 -0
  230. package/dist/types/packages/sdk/src/training-project-client.d.ts +1 -1
  231. package/dist/types/packages/sdk/src/training-project-client.d.ts.map +1 -1
  232. package/dist/types/packages/sdk/src/training-supervised.d.ts +13 -0
  233. package/dist/types/packages/sdk/src/training-supervised.d.ts.map +1 -1
  234. package/dist/types/packages/sdk/src/training-transport.d.ts +5 -2
  235. package/dist/types/packages/sdk/src/training-transport.d.ts.map +1 -1
  236. package/dist/types/packages/sdk/src/training.d.ts +16869 -5331
  237. package/dist/types/packages/sdk/src/training.d.ts.map +1 -1
  238. package/dist/types/packages/sdk/src/types.d.ts +2 -2
  239. package/dist/types/packages/sdk/src/types.d.ts.map +1 -1
  240. package/dist/types/packages/sdk/src/weight-inference.d.ts +8 -5
  241. package/dist/types/packages/sdk/src/weight-inference.d.ts.map +1 -1
  242. package/dist/types/packages/sdk/src/weight-model-versions.d.ts +2089 -398
  243. package/dist/types/packages/sdk/src/weight-model-versions.d.ts.map +1 -1
  244. package/dist/types/packages/sdk/src/weight-space-artifact.d.ts +433 -0
  245. package/dist/types/packages/sdk/src/weight-space-artifact.d.ts.map +1 -0
  246. package/dist/types/packages/sdk/src/weight-space-evaluation.d.ts +1437 -0
  247. package/dist/types/packages/sdk/src/weight-space-evaluation.d.ts.map +1 -0
  248. package/dist/types/packages/sdk/src/weight-space-model-serving.d.ts +2910 -0
  249. package/dist/types/packages/sdk/src/weight-space-model-serving.d.ts.map +1 -0
  250. package/dist/types/packages/sdk/src/weight-space-programming.d.ts +845 -0
  251. package/dist/types/packages/sdk/src/weight-space-programming.d.ts.map +1 -0
  252. package/dist/types/packages/sdk/src/weight-space-sessions.d.ts +4600 -0
  253. package/dist/types/packages/sdk/src/weight-space-sessions.d.ts.map +1 -0
  254. package/examples/learning/submit.py +1 -1
  255. package/examples/learning/submit.ts +2 -2
  256. package/examples/training/continual.ts +4 -4
  257. package/examples/training/manual.ts +1 -3
  258. package/fixtures/python-foundation/operation-matrix.json +369 -0
  259. package/fixtures/python-foundation/schemas.json +37612 -30866
  260. package/fixtures/python-foundation/training-estimate-http-workflow.json +1 -1
  261. package/package.json +3 -2
  262. package/dist/chunk-2OVNKPBZ.js.map +0 -1
  263. package/dist/chunk-3B5KSH3V.js.map +0 -1
  264. package/dist/chunk-3MWFN7BA.js.map +0 -1
  265. package/dist/chunk-47THZRUM.js.map +0 -1
  266. package/dist/chunk-626JLH4D.js.map +0 -1
  267. package/dist/chunk-BRP3EBCR.js +0 -245
  268. package/dist/chunk-BRP3EBCR.js.map +0 -1
  269. package/dist/chunk-C3TS766N.js.map +0 -1
  270. package/dist/chunk-DH6O4JFB.js.map +0 -1
  271. package/dist/chunk-GX6KMHW2.js.map +0 -1
  272. package/dist/chunk-IXFUYPGV.js.map +0 -1
  273. package/dist/chunk-JMFYNIYZ.js.map +0 -1
  274. package/dist/chunk-MVAEE5EI.js.map +0 -1
  275. package/dist/chunk-PMVSO23F.js.map +0 -1
  276. package/dist/chunk-QOX57Y27.js.map +0 -1
  277. package/dist/chunk-QRYEXPG7.js.map +0 -1
  278. package/dist/chunk-YV6PPDXZ.js.map +0 -1
  279. package/dist/chunk-Z252BNAZ.js.map +0 -1
  280. package/dist/chunk-Z5APNTZE.js.map +0 -1
  281. /package/dist/{chunk-GS5HEE4M.js.map → chunk-4D4QSQC3.js.map} +0 -0
  282. /package/dist/{chunk-3VUF5H3B.js.map → chunk-534W2O2S.js.map} +0 -0
  283. /package/dist/{chunk-ZRTNR4U7.js.map → chunk-5KJY44FB.js.map} +0 -0
  284. /package/dist/{chunk-RTLJV4OS.js.map → chunk-7ZV626YS.js.map} +0 -0
  285. /package/dist/{chunk-YS7DF76T.js.map → chunk-ABOZV47D.js.map} +0 -0
  286. /package/dist/{chunk-DDCR4KB5.js.map → chunk-BIQ5TG3T.js.map} +0 -0
  287. /package/dist/{chunk-JOMZJXGC.js.map → chunk-BT6CC6QB.js.map} +0 -0
  288. /package/dist/{chunk-RN5MK7NH.js.map → chunk-CVYGJUWM.js.map} +0 -0
  289. /package/dist/{chunk-QNOCM5JX.js.map → chunk-CX7ETU2F.js.map} +0 -0
  290. /package/dist/{chunk-EZME7DV4.js.map → chunk-D7LV3USE.js.map} +0 -0
  291. /package/dist/{chunk-7F43U2NC.js.map → chunk-GA7OSSEA.js.map} +0 -0
  292. /package/dist/{chunk-T67LNKAK.js.map → chunk-GFWXDWEE.js.map} +0 -0
  293. /package/dist/{chunk-GV6DEDBU.js.map → chunk-K4WU4JOP.js.map} +0 -0
  294. /package/dist/{chunk-3G3HUA32.js.map → chunk-LRFVISLA.js.map} +0 -0
  295. /package/dist/{chunk-ZQFROKKS.js.map → chunk-MJHQMQEW.js.map} +0 -0
  296. /package/dist/{chunk-BJMENXR4.js.map → chunk-TX552FQG.js.map} +0 -0
  297. /package/dist/{chunk-XBFOFTK3.js.map → chunk-VIDRZCPQ.js.map} +0 -0
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  ManagedSftRecipeSchema
3
- } from "./chunk-YV6PPDXZ.js";
3
+ } from "./chunk-3Z5IK2UK.js";
4
4
  import {
5
5
  ModelStarterExecutionSchema,
6
6
  validateModelStarterExecution,
7
7
  validateModelTasksetPackage,
8
8
  validateTasksetPackage
9
- } from "./chunk-GV6DEDBU.js";
9
+ } from "./chunk-K4WU4JOP.js";
10
10
  import {
11
11
  ModelProjectBaseModelSchema,
12
12
  ModelProjectRecipeDocumentSchema,
13
13
  ModelProjectTrainingMethodSchema,
14
14
  ModelProjectTrainingSetupSchema,
15
15
  ModelProjectVersionedRefSchema
16
- } from "./chunk-MVAEE5EI.js";
16
+ } from "./chunk-WJZHSIGD.js";
17
17
  import {
18
18
  ModelInitialLearningSchema
19
19
  } from "./chunk-CL3IOOVL.js";
@@ -73,6 +73,7 @@ function createSupervisedTrainingRecipeDefaults(saved, baseModel) {
73
73
  schemaVersion: "openpond.sftRecipe.v1",
74
74
  method: "sft",
75
75
  parameterization: "lora",
76
+ ...source?.evaluation ? { evaluation: source.evaluation } : {},
76
77
  ...source?.baseModel ? { baseModel: source.baseModel } : {},
77
78
  dataset: {
78
79
  completionOnly: true,
@@ -118,7 +119,7 @@ function createModelTrainingRecipeDefaults(saved, method = saved?.method === "sf
118
119
  method: "grpo",
119
120
  parameterization: "lora",
120
121
  lora: { rank: 2 },
121
- rollout: { groupSize: 8, concurrency: 4, maxOutputTokens: 1024, temperature: 0.8, topP: 0.95, seed: 17 },
122
+ rollout: { groupSize: 8, concurrency: 4, maxOutputTokens: 1024, temperature: 0.8, topP: 1, seed: 17 },
122
123
  optimizer: {
123
124
  learningRate: 1e-4,
124
125
  maxSteps: 8,
@@ -147,9 +148,10 @@ function createModelTrainingRecipeDefaults(saved, method = saved?.method === "sf
147
148
  resourceLimits: { ...defaults.resourceLimits, ...fields2(grpo?.resourceLimits) }
148
149
  };
149
150
  }
150
- function rebindModelTrainingRecipe(saved) {
151
+ function rebindModelTrainingRecipe(saved, options = {}) {
151
152
  const { baseModel: _base, reward: _reward, policyOptimization: _compiled, ...recipe } = createModelTrainingRecipeDefaults(saved);
152
- const { trainSplit: _train, validationSplit: _validation, maxExamples: _population, ...dataset } = fields2(recipe.dataset);
153
+ const { trainSplit: _train, validationSplit: _validation, validationTaskIds, maxExamples: _population, ...remaining } = fields2(recipe.dataset);
154
+ const dataset = { ...remaining, ...options.preserveValidationSelection && validationTaskIds !== void 0 ? { validationTaskIds } : {} };
153
155
  return recipe.method === "sft" ? { ...recipe, dataset: { ...dataset, ..._validation ? { validationSplit: _validation } : {} } } : { ...recipe, dataset, policyOptimization: null };
154
156
  }
155
157
  function prepareModelTrainingDefaults(input) {
@@ -172,7 +174,7 @@ function prepareModelTrainingDefaults(input) {
172
174
  const dataset = fields2(recipe2.dataset);
173
175
  const sameEvaluation = setup.evaluationTasksetRef?.id === setup.tasksetRef?.id && setup.evaluationTasksetRef?.contentHash === setup.tasksetRef?.contentHash;
174
176
  if (!dataset.validationSplit && !sameEvaluation)
175
- throw new Error("Choose the optimizer validation split from the selected evaluation dataset.");
177
+ throw new Error("Choose the held-out split from the selected evaluation dataset.");
176
178
  return ModelProjectTrainingSetupSchema.parse({
177
179
  ...setup,
178
180
  recipe: ManagedSftRecipeSchema.parse({
@@ -443,4 +445,4 @@ export {
443
445
  previewModelStarter,
444
446
  validateResolvedModelStarter
445
447
  };
446
- //# sourceMappingURL=chunk-IXFUYPGV.js.map
448
+ //# sourceMappingURL=chunk-3HOGOWKU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/model-starters.ts","../src/model-training-defaults.ts","../src/model-supervised-training-defaults.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { ModelInitialLearningSchema } from \"./model-learning-intent.js\";\nimport { TasksetReleaseSchema, assertTasksetRelease } from \"@openpond/evals/tasksets\";\nimport { LearningTextAssetSchema, TaskDefinitionSchema, learningRef, sameLearningRef, sealLearningContent } from \"@openpond/evals/learning\";\nimport { RewardBindingSchema, RewardReleaseSchema, compileBoundGraders } from \"@openpond/evals/rewards\";\nimport { assertBoundedTaskJson, validateTaskValue } from \"@openpond/evals/task-schema\";\n\nimport { ModelProjectBaseModelSchema, ModelProjectRecipeDocumentSchema, ModelProjectTrainingMethodSchema, ModelProjectVersionedRefSchema, ModelProjectTrainingSetupSchema } from \"./model-projects.js\";\nimport { canonicalSha256 } from \"./protocol.js\";\nimport { ModelStarterExecutionSchema, validateModelStarterExecution } from \"./model-starter-execution.js\";\n\nexport { ModelStarterExecutionSchema, ModelStarterEnvironmentAttemptSchema, verifyModelStarterEnvironmentAttempt, ModelStarterToolFixtureScriptSchema, createModelStarterExecutionAsset, modelStarterExecutionAssetId, resolveModelStarterExecutionAsset, type ModelStarterExecution, type ModelStarterExecutionContext } from \"./model-starter-execution.js\";\nexport { NativeHarnessExperimentAttemptSchema, verifyNativeHarnessExperimentAttempt, type NativeHarnessExperimentAttempt } from \"./model-starter-execution.js\";\nexport { ModelTasksetDerivationSchema, ModelTasksetPackageSchema, deriveModelTaskset, validateModelTasksetPackage, type ModelTasksetPackage } from \"./model-taskset-derivation.js\";\nexport { ModelTasksetExecutionResourcesSchema, createModelTasksetExecutionResourcesAsset, modelTasksetExecutionResourcesAssetId, resolveModelTasksetExecutionResourcesAsset } from \"./model-taskset-resources.js\";\nexport { prepareModelTrainingDefaults, createModelTrainingRecipeDefaults, rebindModelTrainingRecipe } from \"./model-training-defaults.js\";\n\nconst IdSchema = z.string().trim().min(1).max(500);\nconst RefSchema = ModelProjectVersionedRefSchema;\n\n/** Catalog records contain references and previews, never the private task rows. */\nexport const ModelStarterContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelStarter.v1\"),\n id: IdSchema,\n revision: z.number().int().positive(),\n name: z.string().trim().min(1).max(200),\n description: z.string().trim().min(1).max(2_000),\n category: z.enum([\"extraction\", \"support\", \"operations\", \"knowledge\", \"coding\", \"writing\", \"classification\"]),\n taskset: RefSchema,\n taskDefinition: RefSchema,\n rewardBinding: RefSchema,\n rewards: z.array(RefSchema).min(1).max(100),\n assets: z.array(RefSchema).max(1_000),\n previewTaskIds: z.array(IdSchema).min(1).max(8),\n startingModel: ModelProjectBaseModelSchema,\n supportedMethods: z.array(ModelProjectTrainingMethodSchema).min(1).max(8),\n defaultMethod: ModelProjectTrainingMethodSchema,\n provenance: z.object({ author: z.string().min(1).max(200), license: z.string().min(1).max(200), sourceDescription: z.string().min(1).max(2_000) }).strict(),\n // These are references to real results. Package publication does not create\n // evidence, qualify a starter, or enable continuous learning.\n evidence: z.object({ verifierFixtures: RefSchema.nullable(), baseline: RefSchema.nullable(), training: RefSchema.nullable(), evaluation: RefSchema.nullable() }).strict(),\n}).strict().superRefine((starter, context) => {\n if (!starter.supportedMethods.includes(starter.defaultMethod)) context.addIssue({ code: \"custom\", path: [\"defaultMethod\"], message: \"The default method must be supported by the package.\" });\n for (const field of [\"rewards\", \"assets\"] as const) {\n if (new Set(starter[field].map(ref => ref.id)).size !== starter[field].length) context.addIssue({ code: \"custom\", path: [field], message: \"Dependency identities must be unique.\" });\n }\n if (new Set(starter.previewTaskIds).size !== starter.previewTaskIds.length) context.addIssue({ code: \"custom\", path: [\"previewTaskIds\"], message: \"Preview tasks must be unique.\" });\n});\nexport const ModelStarterSchema = ModelStarterContentSchema.safeExtend({ contentHash: z.string().regex(/^[a-f0-9]{64}$/) });\nexport type ModelStarter = z.infer<typeof ModelStarterSchema>;\n\n/** A resolved small package, obtained separately from catalog discovery.\n * Large Tasksets remain manifest/shard resources; they are not list payloads. */\nexport const ResolvedModelStarterSchema = z.object({\n starter: ModelStarterSchema,\n taskset: TasksetReleaseSchema,\n taskDefinition: TaskDefinitionSchema,\n rewardBinding: RewardBindingSchema,\n rewards: z.array(RewardReleaseSchema).min(1).max(100),\n assets: z.array(LearningTextAssetSchema).max(1_000),\n execution: ModelStarterExecutionSchema.optional(),\n}).strict();\nexport type ResolvedModelStarter = z.infer<typeof ResolvedModelStarterSchema>;\n\n/** Publisher attestation for original synthetic contact data, never a caller\n * override for arbitrary imports or for a failed secret scan. */\nexport const ModelStarterPrivacyReviewSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelStarterPrivacyReview.v1\"),\n disposition: z.literal(\"synthetic_only\"),\n reviewedBy: z.string().trim().min(1).max(500), reviewedAt: z.iso.datetime(),\n reviewedContentHash: z.string().regex(/^[a-f0-9]{64}$/),\n note: z.string().trim().min(1).max(2_000),\n}).strict();\nexport function modelStarterPrivacyContentHash(value: ResolvedModelStarter): string {\n const { contentHash: _starterHash, ...starter } = value.starter;\n const { contentHash: _tasksetHash, ...taskset } = value.taskset;\n const { contentHash: _referenceHash, ...tasksetRef } = starter.taskset;\n const metadata = { ...taskset.metadata };\n const authoring = metadata.starterAuthoring;\n if (authoring && typeof authoring === \"object\" && !Array.isArray(authoring)) {\n const { privacyReview: _review, ...content } = authoring as Record<string, unknown>;\n metadata.starterAuthoring = content;\n }\n // Exclude only the attestation and hashes that contain that attestation.\n return sealLearningContent({ ...value, starter: { ...starter, taskset: tasksetRef }, taskset: { ...taskset, metadata } }).contentHash;\n}\n\n/** Final creation intent. The server resolves package bytes from its catalog;\n * callers cannot supply executable resources or qualification receipts here. */\nexport const ModelStarterCreationIntentSchema = z.object({\n profileId: IdSchema,\n modelId: IdSchema,\n name: z.string().trim().min(1).max(200),\n starter: RefSchema,\n startingModel: ModelProjectBaseModelSchema,\n method: ModelProjectTrainingMethodSchema,\n rewardBindingRef: RefSchema.nullable().optional(),\n recipe: ModelProjectRecipeDocumentSchema.nullable().optional(),\n managedGpuSelection: ModelProjectTrainingSetupSchema.shape.managedGpuSelection,\n continuationAdapterMode: ModelProjectTrainingSetupSchema.shape.continuationAdapterMode,\n learning: ModelInitialLearningSchema.optional(),\n}).strict();\nexport const ModelStarterCreationRequestSchema = ModelStarterCreationIntentSchema.extend({\n schemaVersion: z.literal(\"openpond.modelStarterCreation.v1\"),\n operationId: IdSchema,\n}).strict();\nexport type ModelStarterCreationRequest = z.infer<typeof ModelStarterCreationRequestSchema>;\n\nexport function parseModelStarterCreationRequest(value: unknown): ModelStarterCreationRequest {\n assertBoundedTaskJson(value, 64 * 1024);\n return ModelStarterCreationRequestSchema.parse(value);\n}\n\n/** Prepare once on final confirmation and retain across uncertain transport\n * outcomes. The server must bind operationId to the complete original intent\n * and atomically commit resources, model configuration and the retry receipt. */\nexport async function createModelStarterCreationRequest(\n value: z.input<typeof ModelStarterCreationIntentSchema>,\n): Promise<ModelStarterCreationRequest> {\n assertBoundedTaskJson(value, 64 * 1024);\n const intent = ModelStarterCreationIntentSchema.parse(value);\n return parseModelStarterCreationRequest({\n ...intent,\n schemaVersion: \"openpond.modelStarterCreation.v1\",\n operationId: `model-starter:${await canonicalSha256(intent)}`,\n });\n}\n\n/** Scope authorization belongs to the API. This validates the final intent\n * against the exact trusted package before any user resources are written. */\nexport function validateModelStarterCreation(value: unknown, packageValue: unknown) {\n const request = parseModelStarterCreationRequest(value);\n const resolved = validateResolvedModelStarter(packageValue);\n if (!sameLearningRef(request.starter, learningRef(resolved.starter))) throw new Error(\"Starter creation references a different package revision.\");\n if (!resolved.starter.supportedMethods.includes(request.method)) throw new Error(\"The selected training method is not supported by this starter.\");\n return { request, resolved };\n}\n\n/** Explicit projection keeps frozen examples, expected outputs, privileged\n * context and verifier source out of read-only model-facing previews. */\nexport function previewModelStarter(value: unknown) {\n const { starter, taskset, taskDefinition, rewardBinding, rewards } = validateResolvedModelStarter(value);\n return {\n starter,\n inputSchema: taskDefinition.inputSchema,\n outputSchema: taskDefinition.outputSchema,\n reward: {\n name: rewardBinding.name,\n description: rewardBinding.description,\n checks: rewardBinding.sources.map(source => {\n const reward = rewards.find(reward => sameLearningRef(source.reward, learningRef(reward)))!;\n return { name: reward.name, description: reward.description, kind: reward.implementation.kind, role: source.role, weight: source.weight, required: source.required, hardGate: source.hardGate };\n }),\n },\n tasks: starter.previewTaskIds.map(id => {\n const task = taskset.tasks.find(task => task.id === id)!;\n return { id: task.id, input: task.input, policyVisibleContext: task.policyVisibleContext };\n }),\n counts: {\n train: taskset.tasks.filter(task => task.split === \"train\").length,\n validation: taskset.tasks.filter(task => task.split === \"validation\").length,\n frozenEvaluation: taskset.tasks.filter(task => task.split === \"frozen_eval\").length,\n },\n };\n}\n\n/** Verify the dependency graph before creating user-owned configuration.\n * A matching outer hash alone cannot authorize substituted private graders. */\nexport function validateResolvedModelStarter(value: unknown): ResolvedModelStarter {\n assertBoundedTaskJson(value, 16 * 1024 * 1024);\n const resolved = ResolvedModelStarterSchema.parse(value);\n const { starter, taskset, taskDefinition, rewardBinding, rewards, assets } = resolved;\n const authoring = taskset.metadata.starterAuthoring;\n if (authoring && typeof authoring === \"object\" && !Array.isArray(authoring) && \"privacyReview\" in authoring) {\n const review = ModelStarterPrivacyReviewSchema.parse(authoring.privacyReview);\n if (review.reviewedContentHash !== modelStarterPrivacyContentHash(resolved)) throw new Error(\"Starter privacy review differs from the published contents.\");\n }\n const resources = [starter, taskset, taskDefinition, rewardBinding, ...rewards, ...assets];\n for (const resource of resources) {\n const { contentHash, ...content } = resource;\n if (sealLearningContent(content).contentHash !== contentHash) throw new Error(`Starter resource integrity failed: ${resource.id}.`);\n }\n assertTasksetRelease(taskset);\n validateModelStarterExecution(resolved.execution, taskset, assets);\n function exact(expected: z.infer<typeof RefSchema>, resource: { id: string; revision: number; contentHash: string }) {\n if (!sameLearningRef(expected, learningRef(resource))) throw new Error(`Starter dependency mismatch: ${expected.id}.`);\n }\n exact(starter.taskset, taskset);\n exact(starter.taskDefinition, taskDefinition);\n exact(starter.rewardBinding, rewardBinding);\n exact(taskDefinition.rewardBinding, rewardBinding);\n if (rewardBinding.recipeRef) throw new Error(\"Starter binding recipes must be resolved into a standalone binding before publication.\");\n const { policy, environment, environmentRelease, tools, capabilities, verifierSetRelease } = taskset;\n const execution = { policy, environment, ...(environmentRelease ? { environmentRelease } : {}), tools, capabilities, ...(verifierSetRelease ? { verifierSetRelease } : {}) };\n if (sealLearningContent(execution).contentHash !== sealLearningContent(taskDefinition.execution).contentHash) throw new Error(\"Starter execution context differs from its task format.\");\n if (sealLearningContent({ graders: taskset.graders }).contentHash !== sealLearningContent({ graders: compileBoundGraders(rewardBinding, rewards) }).contentHash) throw new Error(\"Starter executable graders differ from its Reward binding.\");\n for (const [references, values] of [[starter.rewards, rewards], [starter.assets, assets]] as const) {\n if (references.length !== values.length || new Set(values.map(resource => resource.id)).size !== values.length) throw new Error(\"Starter dependency inventory mismatch.\");\n for (const ref of references) {\n const resource = values.find(value => value.id === ref.id);\n if (!resource) throw new Error(`Starter dependency is missing: ${ref.id}.`);\n exact(ref, resource);\n }\n }\n for (const source of rewardBinding.sources) {\n const reward = rewards.find(reward => reward.id === source.reward.id);\n if (!reward) throw new Error(`Starter Reward is missing: ${source.reward.id}.`);\n exact(source.reward, reward);\n }\n for (const reward of rewards) {\n const implementation = reward.implementation;\n const references = [...reward.assets,\n ...(\"verifierRef\" in implementation ? [implementation.verifierRef] : []),\n ...(\"rubricRef\" in implementation ? [implementation.rubricRef] : []),\n ...(\"inputContract\" in implementation ? [implementation.inputContract] : []),\n ];\n for (const ref of references) {\n const asset = assets.find(asset => asset.id === ref.id);\n if (!asset || sealLearningContent(asset.asset).contentHash !== sealLearningContent(ref).contentHash) throw new Error(`Starter Reward source is missing or changed: ${ref.id}.`);\n if (ref.visibility === \"policy\") throw new Error(`Starter Reward source must remain private to its evaluator: ${ref.id}.`);\n }\n }\n if (new Set(taskset.tasks.map(task => task.id)).size !== taskset.tasks.length) throw new Error(\"Starter task identities must be unique.\");\n const inputSplits = new Map<string, string>();\n for (const task of taskset.tasks) {\n if (task.policyVisibleContext.instructions !== taskDefinition.instructions) throw new Error(`Starter task does not carry its declared model instructions: ${task.id}.`);\n const inputHash = sealLearningContent({ input: task.input, context: task.policyVisibleContext }).contentHash;\n const priorSplit = inputSplits.get(inputHash);\n if (priorSplit && priorSplit !== task.split) throw new Error(\"Starter policy input appears in multiple splits.\");\n inputSplits.set(inputHash, task.split);\n if (!validateTaskValue(taskDefinition.inputSchema, task.input).valid) throw new Error(`Starter task input does not match its format: ${task.id}.`);\n if (task.expectedOutput !== null && !validateTaskValue(taskDefinition.outputSchema, task.expectedOutput).valid) throw new Error(`Starter expected output does not match its format: ${task.id}.`);\n }\n for (const id of starter.previewTaskIds) {\n const task = taskset.tasks.find(task => task.id === id);\n if (!task || task.split === \"frozen_eval\") throw new Error(`Starter preview task is unavailable: ${id}.`);\n }\n return resolved;\n}\n","import { contentHash } from \"@openpond/harness\";\nimport { compileBoundGraders } from \"@openpond/evals/rewards\";\nimport { validateModelTasksetPackage } from \"./model-taskset-derivation.js\";\nimport { ModelProjectTrainingSetupSchema, type ModelProjectTrainingSetup } from \"./model-projects.js\";\nimport { createSupervisedTrainingRecipeDefaults } from \"./model-supervised-training-defaults.js\";\nimport { ManagedSftRecipeSchema } from \"./training-supervised.js\";\n\nfunction fields(value: unknown): Record<string, unknown> {\n return value && typeof value === \"object\" && !Array.isArray(value) ? value as Record<string, unknown> : {};\n}\n\n/** Editable method-specific defaults exist before tasks/base/grader are bound.\n * This draft never authorizes execution; package preparation binds those inputs. */\nexport function createModelTrainingRecipeDefaults(\n saved?: ModelProjectTrainingSetup[\"recipe\"],\n method: \"grpo\" | \"sft\" = saved?.method === \"sft\" ? \"sft\" : \"grpo\",\n baseModel?: ModelProjectTrainingSetup[\"baseModel\"],\n): NonNullable<ModelProjectTrainingSetup[\"recipe\"]> {\n if (method === \"sft\") return createSupervisedTrainingRecipeDefaults(saved, baseModel);\n const grpo = saved?.method === \"grpo\" ? saved : undefined;\n const defaults = {\n schemaVersion: \"openpond.rftRecipe.v1\", method: \"grpo\" as const, parameterization: \"lora\" as const,\n lora: { rank: 2 },\n rollout: { groupSize: 8, concurrency: 4, maxOutputTokens: 1_024, temperature: 0.8, topP: 1, seed: 17 },\n optimizer: { learningRate: 0.0001, maxSteps: 8, clipRange: 0.2, iterations: 2,\n microbatchSize: 1, gradientAccumulationSteps: 8, advantageEpsilon: 1e-8,\n adamw: { name: \"adamw\", weightDecay: 0, beta1: 0.9, beta2: 0.999, epsilon: 1e-8 } },\n loss: { method: \"grpo\", klBeta: 0.01 },\n resourceLimits: { wallTimeMs: 66 * 60 * 1_000, maxRollouts: 64, maxPayloadBytes: 1_000_000 },\n policyOptimization: null,\n };\n return {\n ...defaults, ...grpo,\n lora: { ...defaults.lora, ...fields(grpo?.lora) },\n rollout: { ...defaults.rollout, ...fields(grpo?.rollout) },\n optimizer: { ...defaults.optimizer, ...fields(grpo?.optimizer),\n adamw: { ...defaults.optimizer.adamw, ...fields(fields(grpo?.optimizer).adamw) } },\n loss: { ...defaults.loss, ...fields(grpo?.loss) },\n resourceLimits: { ...defaults.resourceLimits, ...fields(grpo?.resourceLimits) },\n };\n}\n\n/** Changing source inputs invalidates only their bindings, preserving the\n * caller's optimizer, rollout, adapter, loss and budget settings. */\nexport function rebindModelTrainingRecipe(saved: ModelProjectTrainingSetup[\"recipe\"], options: { preserveValidationSelection?: boolean } = {}) {\n const { baseModel: _base, reward: _reward, policyOptimization: _compiled, ...recipe } = createModelTrainingRecipeDefaults(saved);\n // Split names and the derived source population belong to the new package.\n // Retain authoring controls such as prompt length/selection strategy.\n const { trainSplit: _train, validationSplit: _validation, validationTaskIds, maxExamples: _population, ...remaining } = fields(recipe.dataset);\n const dataset = { ...remaining, ...(options.preserveValidationSelection && validationTaskIds !== undefined ? { validationTaskIds } : {}) };\n return recipe.method === \"sft\"\n ? { ...recipe, dataset: { ...dataset, ...(_validation ? { validationSplit: _validation } : {}) } }\n : { ...recipe, dataset, policyOptimization: null };\n}\nimport { validateTasksetPackage } from \"./taskset-package-contracts.js\";\n\n/** Saved defaults do not authorize execution. The Run review still owns the\n * budget, runtime admission and exact training/evaluation population checks. */\nexport function prepareModelTrainingDefaults(input: {\n setup: ModelProjectTrainingSetup;\n package: unknown;\n}): ModelProjectTrainingSetup {\n const setup = ModelProjectTrainingSetupSchema.parse(input.setup);\n const portable = typeof input.package === \"object\" && input.package !== null\n && \"schemaVersion\" in input.package && input.package.schemaVersion === \"openpond.tasksetPackage.v1\"\n ? validateTasksetPackage(input.package) : null;\n const bound = portable ? null : validateModelTasksetPackage(input.package);\n const source = portable ?? bound!;\n const ref = setup.tasksetRef;\n const selected = ref && ref.revision === source.taskset.revision && (portable\n ? (ref.id === portable.taskset.id && ref.contentHash === portable.taskset.contentHash)\n || (ref.id === portable.taskset.metadata.sourceTasksetId && ref.contentHash === portable.taskset.metadata.sourceTasksetHash)\n : ref.id === source.taskset.id);\n if (!selected) return setup;\n if (!setup.evaluationTasksetRef && source.taskset.tasks.some(task => task.split === \"frozen_eval\" || task.split === \"validation\")) {\n setup.evaluationTasksetRef = setup.tasksetRef;\n }\n const base = setup.baseModel;\n if (setup.method === \"sft\") {\n if ((setup.recipe && setup.recipe.method !== \"sft\") || !base?.revision\n || !base.tokenizerRevision || !base.chatTemplateHash) return setup;\n const training = source.taskset.tasks.filter(task => task.split === \"train\");\n if (!training.length) return setup;\n const recipe = createSupervisedTrainingRecipeDefaults(setup.recipe, base);\n const dataset = fields(recipe.dataset);\n const sameEvaluation = setup.evaluationTasksetRef?.id === setup.tasksetRef?.id\n && setup.evaluationTasksetRef?.contentHash === setup.tasksetRef?.contentHash;\n if (!dataset.validationSplit && !sameEvaluation)\n throw new Error(\"Choose the held-out split from the selected evaluation dataset.\");\n return ModelProjectTrainingSetupSchema.parse({\n ...setup,\n recipe: ManagedSftRecipeSchema.parse({\n ...recipe,\n baseModel: { id: base.modelId, revision: base.revision,\n tokenizerRevision: base.tokenizerRevision, chatTemplateHash: base.chatTemplateHash },\n dataset: { ...dataset, trainSplit: \"train\",\n validationSplit: dataset.validationSplit ?? (source.taskset.tasks.some(task => task.split === \"frozen_eval\") ? \"frozen_eval\" : \"validation\"),\n maxExamples: typeof dataset.maxExamples === \"number\" ? Math.min(dataset.maxExamples, training.length) : Math.min(1_000, training.length) },\n }),\n });\n }\n if (setup.method !== \"grpo\" || (setup.recipe && setup.recipe.method !== \"grpo\") || !base?.revision\n || !base.tokenizerRevision || !base.chatTemplateHash) return setup;\n // Existing bound recipes retain their exact explicit settings and the\n // compiler's absent-field semantics. Only an unbound authoring draft needs\n // package-derived defaults; source changes explicitly invalidate bindings.\n if (setup.recipe?.baseModel && setup.recipe.reward && setup.recipe.dataset) return setup;\n const training = source.taskset.tasks.filter(task => task.split === \"train\");\n const graders = portable ? portable.taskset.graders : compileBoundGraders(bound!.rewardBinding, bound!.rewards);\n const grader = graders.find(candidate => candidate.rewardEligible && candidate.weight > 0);\n const environment = portable?.environment ?? bound?.executionResources?.environment ?? bound?.execution?.environment;\n if (!training.length || !grader || !environment) return setup;\n const recipe = createModelTrainingRecipeDefaults(setup.recipe);\n return ModelProjectTrainingSetupSchema.parse({\n ...setup,\n recipe: {\n ...recipe,\n baseModel: { id: base.modelId, revision: base.revision,\n tokenizerRevision: base.tokenizerRevision, chatTemplateHash: base.chatTemplateHash },\n dataset: { trainSplit: \"train\", validationSplit: source.taskset.tasks.some(task => task.split === \"frozen_eval\") ? \"frozen_eval\" : \"validation\",\n maxPromptTokens: 4_096, maxExamples: Math.min(1_000, training.length), selectionStrategy: \"stable_hash_top_n\", ...fields(recipe.dataset) },\n rollout: { maxTurns: source.taskset.environment.kind === \"text\" ? 1 : 15, ...fields(recipe.rollout) },\n reward: { graderId: grader.id, graderHash: contentHash(graders),\n environmentId: environment.id, environmentVersion: String(environment.revision),\n toolContractHash: contentHash(source.taskset.tools), learnedPreference: fields(recipe.reward).learnedPreference ?? null },\n },\n });\n}\n","import type { ModelProjectTrainingSetup } from \"./model-projects.js\";\n\ntype Recipe = NonNullable<ModelProjectTrainingSetup[\"recipe\"]>;\nconst fields = (value: unknown): Record<string, unknown> =>\n value && typeof value === \"object\" && !Array.isArray(value)\n ? value as Record<string, unknown> : {};\n\n// Exact-source authoring settings only. Availability is determined by the\n// connected service when preparing a run, never by these editable defaults.\nconst denseSources = [\n { id: \"Qwen/Qwen3.5-4B\", revision: \"851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a\",\n chatTemplateHash: \"a4aee8afcf2e0711942cf848899be66016f8d14a889ff9ede07bca099c28f715\", rank: 16, memoryBytes: 24_000_000_000 },\n { id: \"Qwen/Qwen3.5-9B\", revision: \"c202236235762e1c871ad0ccb60c8ee5ba337b9a\",\n chatTemplateHash: \"a4aee8afcf2e0711942cf848899be66016f8d14a889ff9ede07bca099c28f715\", rank: 16, memoryBytes: 48_000_000_000 },\n { id: \"Qwen/Qwen3.8-27B\", revision: \"1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0\",\n chatTemplateHash: \"c3cf9e34abf4f9e36c2d72165aa9c132d3e2a725b6c2586aaa3a8af9d7a81041\", rank: 8, memoryBytes: 80_000_000_000 },\n] as const;\n\n/** An editable draft, without invented model or dataset bindings. Execution\n * still requires ManagedSftRecipeSchema and authoritative supervised admission. */\nexport function createSupervisedTrainingRecipeDefaults(\n saved?: ModelProjectTrainingSetup[\"recipe\"],\n baseModel?: ModelProjectTrainingSetup[\"baseModel\"],\n): Recipe {\n const source = saved?.method === \"sft\" ? saved : undefined;\n const base = baseModel ? { id: baseModel.modelId, revision: baseModel.revision,\n tokenizerRevision: baseModel.tokenizerRevision, chatTemplateHash: baseModel.chatTemplateHash } : fields(source?.baseModel);\n const dense = denseSources.find(candidate => candidate.id === base.id && candidate.revision === base.revision\n && candidate.revision === base.tokenizerRevision && candidate.chatTemplateHash === base.chatTemplateHash);\n const rank = dense?.rank ?? 16;\n return {\n schemaVersion: \"openpond.sftRecipe.v1\", method: \"sft\", parameterization: \"lora\",\n ...(source?.evaluation ? { evaluation: source.evaluation } : {}),\n ...(source?.baseModel ? { baseModel: source.baseModel } : {}),\n dataset: {\n completionOnly: true, maxSequenceLength: 8_192,\n selectionStrategy: \"stable_hash_top_n\", selectionSeed: 17,\n ...fields(source?.dataset),\n },\n lora: {\n rank, alpha: rank * 2, dropout: 0,\n targetModules: dense ? [\"down_proj\", \"gate_proj\", \"up_proj\"]\n : [\"q_proj\", \"k_proj\", \"v_proj\", \"o_proj\", \"gate_proj\", \"up_proj\", \"down_proj\"],\n ...fields(source?.lora),\n },\n optimizer: {\n learningRate: 0.0001, epochs: 3, maxSteps: 30,\n batchSize: 1, gradientAccumulationSteps: 1, seed: 17,\n ...fields(source?.optimizer),\n },\n resourceLimits: {\n cpuThreads: 4, memoryBytes: dense?.memoryBytes ?? 48 * 1024 ** 3, wallTimeMs: 60 * 60 * 1_000,\n ...fields(source?.resourceLimits),\n },\n };\n}\n"],"mappings":"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","names":["compileBoundGraders","fields","training","recipe","reward","task","contentHash","compileBoundGraders","value","asset"]}
@@ -15,6 +15,8 @@ var SftRecipeSchema = z.object({
15
15
  dataset: z.object({
16
16
  trainSplit: z.literal("train"),
17
17
  validationSplit: z.enum(["validation", "frozen_eval"]),
18
+ /** Exact bounded optimizer evaluation membership in the pinned held-out source. */
19
+ validationTaskIds: z.array(Id).min(1).max(1e3).refine((ids) => new Set(ids).size === ids.length, "Validation task IDs must be unique.").optional(),
18
20
  completionOnly: z.boolean(),
19
21
  maxSequenceLength: z.number().int().positive().max(32768),
20
22
  maxExamples: z.number().int().positive().max(1e5).default(1e3),
@@ -35,12 +37,30 @@ var SftRecipeSchema = z.object({
35
37
  gradientAccumulationSteps: z.number().int().positive().max(1e4),
36
38
  seed: z.number().int()
37
39
  }),
40
+ /** Explicit held-out generation horizon, separately reviewed from fitting. */
41
+ evaluation: z.object({ maxOutputTokens: z.number().int().positive().max(8192) }).strict().optional(),
38
42
  resourceLimits: z.object({
39
43
  cpuThreads: z.number().int().positive().max(256),
40
44
  memoryBytes: z.number().int().positive(),
41
45
  wallTimeMs: z.number().int().positive()
42
46
  })
43
47
  });
48
+ function selectSftValidationTasks(tasks, selection) {
49
+ const candidates = tasks.filter((task) => task.split === selection.validationSplit);
50
+ if (selection.validationTaskIds === void 0) return candidates;
51
+ const ids = SftRecipeSchema.shape.dataset.shape.validationTaskIds.parse(
52
+ selection.validationTaskIds
53
+ );
54
+ const byId = new Map(candidates.map((task) => [task.id, task]));
55
+ if (byId.size !== candidates.length)
56
+ throw new Error("Validation task identities must be unique.");
57
+ return ids.map((id) => {
58
+ const task = byId.get(id);
59
+ if (!task)
60
+ throw new Error("A selected validation task is absent from the pinned held-out split.");
61
+ return task;
62
+ });
63
+ }
44
64
  var ManagedSftRecipeSchema = SftRecipeSchema.safeExtend({
45
65
  dataset: SftRecipeSchema.shape.dataset.safeExtend({
46
66
  completionOnly: z.literal(true),
@@ -91,7 +111,11 @@ var TrainingSftImageCapabilitiesSchema = z.object({
91
111
  evidenceSha256: z.string().regex(/^[a-f0-9]{64}$/)
92
112
  }).strict().superRefine((value, context) => {
93
113
  if (new Set(value.supportedRanks).size !== value.supportedRanks.length)
94
- context.addIssue({ code: "custom", path: ["supportedRanks"], message: "Supported ranks must be unique." });
114
+ context.addIssue({
115
+ code: "custom",
116
+ path: ["supportedRanks"],
117
+ message: "Supported ranks must be unique."
118
+ });
95
119
  });
96
120
  function supportsTrainingSftRecipe(image, recipe) {
97
121
  return image.baseModel.id === recipe.baseModel.id && image.baseModel.revision === recipe.baseModel.revision && image.baseModel.tokenizerRevision === recipe.baseModel.tokenizerRevision && image.baseModel.chatTemplateHash === recipe.baseModel.chatTemplateHash && image.supportedRanks.includes(recipe.lora.rank) && recipe.dataset.maxSequenceLength <= image.maxSequenceLength && recipe.optimizer.epochs <= image.maxEpochs && recipe.optimizer.maxSteps <= image.maxOptimizerSteps;
@@ -99,8 +123,9 @@ function supportsTrainingSftRecipe(image, recipe) {
99
123
 
100
124
  export {
101
125
  SftRecipeSchema,
126
+ selectSftValidationTasks,
102
127
  ManagedSftRecipeSchema,
103
128
  TrainingSftImageCapabilitiesSchema,
104
129
  supportsTrainingSftRecipe
105
130
  };
106
- //# sourceMappingURL=chunk-YV6PPDXZ.js.map
131
+ //# sourceMappingURL=chunk-3Z5IK2UK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/training-supervised.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst Id = z.string().trim().min(1).max(240);\nconst Hash = z.string().trim().min(8).max(256);\n\n/** Shared recipe for the public API, local workbench, and managed executor.\n * Supervised training has no rollout-group, reward, or relative-loss settings.\n */\nexport const SftRecipeSchema = z.object({\n schemaVersion: z.literal(\"openpond.sftRecipe.v1\"),\n method: z.literal(\"sft\"),\n parameterization: z.literal(\"lora\"),\n baseModel: z.object({\n id: Id,\n revision: z.string().trim().min(1).max(256),\n tokenizerRevision: z.string().trim().min(1).max(256),\n chatTemplateHash: Hash,\n }),\n dataset: z.object({\n trainSplit: z.literal(\"train\"),\n validationSplit: z.enum([\"validation\", \"frozen_eval\"]),\n /** Exact bounded optimizer evaluation membership in the pinned held-out source. */\n validationTaskIds: z\n .array(Id)\n .min(1)\n .max(1000)\n .refine((ids) => new Set(ids).size === ids.length, \"Validation task IDs must be unique.\")\n .optional(),\n completionOnly: z.boolean(),\n maxSequenceLength: z.number().int().positive().max(32_768),\n maxExamples: z.number().int().positive().max(100_000).default(1_000),\n selectionStrategy: z.literal(\"stable_hash_top_n\").default(\"stable_hash_top_n\"),\n selectionSeed: z.number().int().default(17),\n }),\n lora: z.object({\n rank: z.number().int().positive().max(256),\n alpha: z.number().positive().max(1_024),\n dropout: z.number().min(0).max(1),\n targetModules: z.array(Id).min(1).max(100),\n }),\n optimizer: z.object({\n learningRate: z.number().positive(),\n epochs: z.number().positive().max(100),\n maxSteps: z.number().int().positive().max(1_000_000),\n batchSize: z.number().int().positive().max(10_000),\n gradientAccumulationSteps: z.number().int().positive().max(10_000),\n seed: z.number().int(),\n }),\n /** Explicit held-out generation horizon, separately reviewed from fitting. */\n evaluation: z.object({ maxOutputTokens: z.number().int().positive().max(8192) }).strict().optional(),\n resourceLimits: z.object({\n cpuThreads: z.number().int().positive().max(256),\n memoryBytes: z.number().int().positive(),\n wallTimeMs: z.number().int().positive(),\n }),\n});\nexport type SftRecipe = z.infer<typeof SftRecipeSchema>;\n\n/** Membership is explicit; missing, duplicate or wrong-split tasks never widen to all held-out rows. */\nexport function selectSftValidationTasks<T extends { id: string; split: string }>(\n tasks: readonly T[],\n selection: Pick<SftRecipe[\"dataset\"], \"validationSplit\" | \"validationTaskIds\">,\n): T[] {\n const candidates = tasks.filter((task) => task.split === selection.validationSplit);\n if (selection.validationTaskIds === undefined) return candidates;\n const ids = SftRecipeSchema.shape.dataset.shape.validationTaskIds.parse(\n selection.validationTaskIds,\n )!;\n const byId = new Map(candidates.map((task) => [task.id, task]));\n if (byId.size !== candidates.length)\n throw new Error(\"Validation task identities must be unique.\");\n return ids.map((id) => {\n const task = byId.get(id);\n if (!task)\n throw new Error(\"A selected validation task is absent from the pinned held-out split.\");\n return task;\n });\n}\n\n/** Managed authoring ceiling. An immutable worker's advertised SFT envelope\n * may be smaller and must also admit the recipe before paid execution.\n */\nexport const ManagedSftRecipeSchema = SftRecipeSchema.safeExtend({\n dataset: SftRecipeSchema.shape.dataset.safeExtend({\n completionOnly: z.literal(true),\n maxSequenceLength: z.number().int().min(2).max(8192),\n maxExamples: z.number().int().min(1).max(1000).default(1000),\n }),\n lora: SftRecipeSchema.shape.lora.safeExtend({\n rank: z.number().int().min(1).max(64),\n dropout: z.number().min(0).lt(1),\n targetModules: z\n .array(z.enum([\"q_proj\", \"k_proj\", \"v_proj\", \"o_proj\", \"gate_proj\", \"up_proj\", \"down_proj\"]))\n .min(1)\n .max(7),\n }),\n optimizer: SftRecipeSchema.shape.optimizer.safeExtend({\n learningRate: z.number().positive().max(0.001),\n epochs: z.number().positive().max(20),\n maxSteps: z.number().int().min(1).max(400),\n batchSize: z.number().int().min(1).max(32),\n gradientAccumulationSteps: z.number().int().min(1).max(32),\n seed: z\n .number()\n .int()\n .min(-(2 ** 31))\n .max(2 ** 31 - 1),\n }),\n resourceLimits: SftRecipeSchema.shape.resourceLimits.safeExtend({\n wallTimeMs: z.number().int().min(1000).max(21_600_000),\n }),\n}).superRefine((recipe, context) => {\n if (recipe.optimizer.batchSize * recipe.optimizer.gradientAccumulationSteps > 32)\n context.addIssue({\n code: \"custom\",\n path: [\"optimizer\"],\n message: \"Managed SFT supports at most 32 accumulated examples.\",\n });\n if (new Set(recipe.lora.targetModules).size !== recipe.lora.targetModules.length)\n context.addIssue({\n code: \"custom\",\n path: [\"lora\", \"targetModules\"],\n message: \"Adapter target modules must be unique.\",\n });\n});\n\n/** Image-specific support, rather than the broad managed authoring ceiling.\n * Receipt identity belongs to the server's reviewed immutable-image registry.\n */\nexport const TrainingSftImageCapabilitiesSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.managedSftImageSupport.v2\"),\n workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n workerSourceReleaseSha256: z.string().regex(/^[a-f0-9]{64}$/),\n baseModel: SftRecipeSchema.shape.baseModel,\n gpuCount: z.literal(1),\n supportedRanks: z.array(z.number().int().min(1).max(64)).min(1).max(64),\n maxSequenceLength: z.number().int().min(2).max(8192),\n maxEpochs: z.number().positive().max(20),\n maxOptimizerSteps: z.number().int().min(1).max(400),\n evidenceRef: z.string().trim().min(1).max(2048),\n evidenceSha256: z.string().regex(/^[a-f0-9]{64}$/),\n })\n .strict()\n .superRefine((value, context) => {\n if (new Set(value.supportedRanks).size !== value.supportedRanks.length)\n context.addIssue({\n code: \"custom\",\n path: [\"supportedRanks\"],\n message: \"Supported ranks must be unique.\",\n });\n });\nexport type TrainingSftImageCapabilities = z.infer<typeof TrainingSftImageCapabilitiesSchema>;\n\nexport function supportsTrainingSftRecipe(\n image: TrainingSftImageCapabilities,\n recipe: SftRecipe,\n): boolean {\n return (\n image.baseModel.id === recipe.baseModel.id &&\n image.baseModel.revision === recipe.baseModel.revision &&\n image.baseModel.tokenizerRevision === recipe.baseModel.tokenizerRevision &&\n image.baseModel.chatTemplateHash === recipe.baseModel.chatTemplateHash &&\n image.supportedRanks.includes(recipe.lora.rank) &&\n recipe.dataset.maxSequenceLength <= image.maxSequenceLength &&\n recipe.optimizer.epochs <= image.maxEpochs &&\n recipe.optimizer.maxSteps <= image.maxOptimizerSteps\n );\n}\n"],"mappings":"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","names":[]}
@@ -1,13 +1,16 @@
1
1
  import {
2
2
  fetchConnectedJson
3
3
  } from "./chunk-O6FKHAWN.js";
4
+ import {
5
+ DEFAULT_API_BASE_URL
6
+ } from "./chunk-QYWPNNP3.js";
4
7
 
5
8
  // src/evaluation-coordination-http.ts
6
9
  import { z } from "zod";
7
10
  var EvaluationCoordinationTransport = class {
8
11
  constructor(access) {
9
12
  this.access = access;
10
- const url = new URL(access.baseUrl);
13
+ const url = new URL(access.baseUrl ?? DEFAULT_API_BASE_URL);
11
14
  if (!["http:", "https:"].includes(url.protocol) || url.username || url.password || url.search || url.hash || !access.apiKey.trim() || !access.actorId.trim() || !access.teamId.trim()) throw new Error("Select the current evaluation owner and HTTP API origin.");
12
15
  this.origin = url.toString().replace(/\/+$/, "");
13
16
  }
@@ -34,4 +37,4 @@ var EvaluationCoordinationTransport = class {
34
37
  export {
35
38
  EvaluationCoordinationTransport
36
39
  };
37
- //# sourceMappingURL=chunk-3B5KSH3V.js.map
40
+ //# sourceMappingURL=chunk-456F3BXD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/evaluation-coordination-http.ts"],"sourcesContent":["import { DEFAULT_API_BASE_URL } from \"./endpoints.js\";\nimport {z} from \"zod\";\nimport {fetchConnectedJson} from \"./connected-evidence-http.js\";\nexport type EvaluationCoordinationAccess={baseUrl?:string;apiKey:string;actorId:string;teamId:string;projectId:string|null;fetch?:typeof fetch};\n/** Bounded authenticated transport for the current evaluation owner. There is\n * no retry or operation allocation here; commands retain their reviewed IDs. */\nexport class EvaluationCoordinationTransport {\n readonly origin:string;\n constructor(readonly access:EvaluationCoordinationAccess){\n const url=new URL(access.baseUrl ?? DEFAULT_API_BASE_URL);\n if(![\"http:\",\"https:\"].includes(url.protocol)||url.username||url.password||url.search||url.hash||!access.apiKey.trim()||!access.actorId.trim()||!access.teamId.trim())throw new Error(\"Select the current evaluation owner and HTTP API origin.\");\n this.origin=url.toString().replace(/\\/+$/,\"\");\n }\n async post(path:\"experiment-evaluation-schedules\"|\"advanced-refiner-evaluations\",request:unknown,signal?:AbortSignal){\n const body=JSON.stringify({teamId:this.access.teamId,projectId:this.access.projectId,request});\n if(new TextEncoder().encode(body).byteLength>1_048_576)throw new Error(\"The reviewed evaluation command exceeds 1 MiB.\");\n const {response,value}=await fetchConnectedJson(this.access.fetch??fetch,`${this.origin}/v1/${path}`,{\n method:\"POST\",redirect:\"error\",headers:{Authorization:`Bearer ${this.access.apiKey}`,\"X-OpenPond-Team-Id\":this.access.teamId,\"Content-Type\":\"application/json\"},body,signal,\n },(status,code,message)=>Object.assign(new Error(message),{status,code}));\n if(!response.ok){const error=z.object({error:z.string().optional(),message:z.string().optional(),code:z.string().optional()}).passthrough().safeParse(value);throw Object.assign(new Error(error.success?error.data.error??error.data.message??\"Evaluation operation failed.\":\"Evaluation operation failed.\"),{status:response.status,code:error.success?error.data.code:undefined});}\n return value;\n }\n}\n"],"mappings":";;;;;;;;AACA,SAAQ,SAAQ;AAKT,IAAM,kCAAN,MAAsC;AAAA,EAE3C,YAAqB,QAAoC;AAApC;AACnB,UAAM,MAAI,IAAI,IAAI,OAAO,WAAW,oBAAoB;AACxD,QAAG,CAAC,CAAC,SAAQ,QAAQ,EAAE,SAAS,IAAI,QAAQ,KAAG,IAAI,YAAU,IAAI,YAAU,IAAI,UAAQ,IAAI,QAAM,CAAC,OAAO,OAAO,KAAK,KAAG,CAAC,OAAO,QAAQ,KAAK,KAAG,CAAC,OAAO,OAAO,KAAK,EAAE,OAAM,IAAI,MAAM,0DAA0D;AAChP,SAAK,SAAO,IAAI,SAAS,EAAE,QAAQ,QAAO,EAAE;AAAA,EAC9C;AAAA,EAJqB;AAAA,EADZ;AAAA,EAMT,MAAM,KAAK,MAAsE,SAAgB,QAAoB;AACnH,UAAM,OAAK,KAAK,UAAU,EAAC,QAAO,KAAK,OAAO,QAAO,WAAU,KAAK,OAAO,WAAU,QAAO,CAAC;AAC7F,QAAG,IAAI,YAAY,EAAE,OAAO,IAAI,EAAE,aAAW,QAAU,OAAM,IAAI,MAAM,gDAAgD;AACvH,UAAM,EAAC,UAAS,MAAK,IAAE,MAAM,mBAAmB,KAAK,OAAO,SAAO,OAAM,GAAG,KAAK,MAAM,OAAO,IAAI,IAAG;AAAA,MACnG,QAAO;AAAA,MAAO,UAAS;AAAA,MAAQ,SAAQ,EAAC,eAAc,UAAU,KAAK,OAAO,MAAM,IAAG,sBAAqB,KAAK,OAAO,QAAO,gBAAe,mBAAkB;AAAA,MAAE;AAAA,MAAK;AAAA,IACvK,GAAE,CAAC,QAAO,MAAK,YAAU,OAAO,OAAO,IAAI,MAAM,OAAO,GAAE,EAAC,QAAO,KAAI,CAAC,CAAC;AACxE,QAAG,CAAC,SAAS,IAAG;AAAC,YAAM,QAAM,EAAE,OAAO,EAAC,OAAM,EAAE,OAAO,EAAE,SAAS,GAAE,SAAQ,EAAE,OAAO,EAAE,SAAS,GAAE,MAAK,EAAE,OAAO,EAAE,SAAS,EAAC,CAAC,EAAE,YAAY,EAAE,UAAU,KAAK;AAAE,YAAM,OAAO,OAAO,IAAI,MAAM,MAAM,UAAQ,MAAM,KAAK,SAAO,MAAM,KAAK,WAAS,iCAA+B,8BAA8B,GAAE,EAAC,QAAO,SAAS,QAAO,MAAK,MAAM,UAAQ,MAAM,KAAK,OAAK,OAAS,CAAC;AAAA,IAAE;AACrX,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  HarnessExperimentPolicySchema,
3
3
  ModelTasksetRunRequestSchema
4
- } from "./chunk-ZRTNR4U7.js";
4
+ } from "./chunk-5KJY44FB.js";
5
5
  import {
6
6
  contentHash
7
7
  } from "./chunk-H3JZ3P5T.js";
@@ -172,4 +172,4 @@ export {
172
172
  verifyExperimentDefinition,
173
173
  experimentDefinitionRef
174
174
  };
175
- //# sourceMappingURL=chunk-GS5HEE4M.js.map
175
+ //# sourceMappingURL=chunk-4D4QSQC3.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  RunExperimentSchema
3
- } from "./chunk-ZQFROKKS.js";
3
+ } from "./chunk-MJHQMQEW.js";
4
4
  import {
5
5
  contentHash
6
6
  } from "./chunk-H3JZ3P5T.js";
@@ -136,4 +136,4 @@ export {
136
136
  CandidateEvaluationPreparationSchema,
137
137
  CandidateEvaluationControlSchema
138
138
  };
139
- //# sourceMappingURL=chunk-3VUF5H3B.js.map
139
+ //# sourceMappingURL=chunk-534W2O2S.js.map
@@ -11,11 +11,14 @@ import {
11
11
  ConnectedStartingAssetsRequestSchema,
12
12
  DatasetWorkspaceReceiptSchema,
13
13
  verifyConnectedStartingAssetsReceipt
14
- } from "./chunk-YS7DF76T.js";
14
+ } from "./chunk-ABOZV47D.js";
15
15
  import {
16
16
  ImmutableReleaseRefSchema,
17
17
  contentHash
18
18
  } from "./chunk-H3JZ3P5T.js";
19
+ import {
20
+ DEFAULT_API_BASE_URL
21
+ } from "./chunk-QYWPNNP3.js";
19
22
 
20
23
  // src/connected-recorded-execution.ts
21
24
  import { z } from "zod";
@@ -211,7 +214,7 @@ var ConnectedEvidenceError = class extends Error {
211
214
  var ConnectedEvidenceClient = class {
212
215
  constructor(options) {
213
216
  this.options = options;
214
- const url = new URL(options.baseUrl);
217
+ const url = new URL(options.baseUrl ?? DEFAULT_API_BASE_URL);
215
218
  if (!["http:", "https:"].includes(url.protocol) || url.username || url.password || url.search || url.hash || !options.apiKey.trim() || !options.teamId.trim())
216
219
  throw new Error("A clean API origin and workspace credentials are required.");
217
220
  this.baseUrl = url.toString().replace(/\/+$/, "");
@@ -469,7 +472,7 @@ var ConnectedSyncCommitSchema = z5.object({
469
472
  var ConnectedSyncClient = class {
470
473
  constructor(options) {
471
474
  this.options = options;
472
- const url = new URL(options.baseUrl);
475
+ const url = new URL(options.baseUrl ?? DEFAULT_API_BASE_URL);
473
476
  if (!["http:", "https:"].includes(url.protocol) || url.username || url.password || url.search || url.hash)
474
477
  throw new Error("Invalid connected-sync API origin.");
475
478
  }
@@ -583,7 +586,7 @@ var ConnectedSyncClient = class {
583
586
  async request(path, method, body, signal) {
584
587
  const { response, value } = await fetchConnectedJson(
585
588
  this.options.fetch ?? fetch,
586
- `${this.options.baseUrl.replace(/\/+$/u, "")}/v1/connected-evidence/sync/connections${path}`,
589
+ `${(this.options.baseUrl ?? DEFAULT_API_BASE_URL).replace(/\/+$/u, "")}/v1/connected-evidence/sync/connections${path}`,
587
590
  {
588
591
  method,
589
592
  signal,
@@ -650,4 +653,4 @@ export {
650
653
  summarizeCollectorCoverage2 as summarizeCollectorCoverage,
651
654
  hashCollectorEligibleBoundaries
652
655
  };
653
- //# sourceMappingURL=chunk-47THZRUM.js.map
656
+ //# sourceMappingURL=chunk-54BJJL7G.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/connected-recorded-execution.ts","../src/connected-evidence-client.ts","../src/connected-dataset-publication.ts","../src/connected-collection-status.ts","../src/connected-sync.ts","../src/connected-evidence.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { ImmutableReleaseRefSchema, contentHash } from \"@openpond/harness\";\nimport { ExperimentManifestSchema } from \"@openpond/evals/experiments\";\nimport { TaskRecordSchema } from \"@openpond/evals/tasksets\";\nimport { ConnectedCaseRefSchema } from \"./connected-evidence-contracts.js\";\n\nconst Id = z.string().min(1).max(200), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const ConnectedRecordedExecutionRequestSchema = z.object({ operationId: Id, name: z.string().trim().min(1).max(500),\n projectId: Id, dataset: ImmutableReleaseRefSchema.extend({ revision: z.number().int().positive() }).strict(),\n caseIds: z.array(Id).min(1).max(10_000) }).strict().superRefine((value, ctx) => {\n if (new Set(value.caseIds).size !== value.caseIds.length) ctx.addIssue({ code: \"custom\", message: \"Select each case once.\" });\n});\nexport const ConnectedRecordedSourceSchema = ConnectedCaseRefSchema.extend({ inputHash: Hash, outputHash: Hash.nullable(),\n task: TaskRecordSchema, taskHash: Hash }).strict();\nexport const ConnectedRecordedExecutionSchema = z.object({ schemaVersion: z.literal(\"openpond.connectedRecordedExecution.v1\"),\n id: Id, teamId: Id, ownerUserId: Id, request: ConnectedRecordedExecutionRequestSchema,\n manifest: ExperimentManifestSchema, sources: z.array(ConnectedRecordedSourceSchema).min(1).max(10_000), contentHash: Hash }).strict();\nexport type ConnectedRecordedExecution = z.infer<typeof ConnectedRecordedExecutionSchema>;\nexport function verifyConnectedRecordedExecution(raw: unknown) {\n const value = ConnectedRecordedExecutionSchema.parse(raw), { contentHash: actual, ...body } = value;\n const { contentHash: manifestHash, ...manifest } = value.manifest;\n if (contentHash(body) !== actual || contentHash(manifest) !== manifestHash || value.manifest.teamId !== value.teamId\n || value.manifest.id !== value.id || value.manifest.operationId !== value.request.operationId\n || contentHash(value.manifest.dataset) !== contentHash(value.request.dataset)\n || value.sources.length !== value.request.caseIds.length || value.sources.length !== value.manifest.population.length\n || value.sources.some((source, index) => source.taskHash !== contentHash(source.task) || source.task.id !== value.request.caseIds[index]\n || source.boundaryId !== source.task.id || value.manifest.population[index]?.caseId !== source.boundaryId))\n throw new Error(\"Recorded execution identity or population integrity failed.\");\n return value;\n}\n\nexport const ConnectedRecordedListRequestSchema = z.object({ projectId: Id.optional(), cursor: Id.optional(), limit: z.number().int().min(1).max(50).default(20) }).strict();\nexport const ConnectedRecordedSummarySchema = z.object({ id: Id, teamId: Id, ownerUserId: Id, projectId: Id,\n name: z.string().min(1).max(500), dataset: ConnectedRecordedExecutionRequestSchema.shape.dataset,\n manifestHash: Hash, contentHash: Hash, caseCount: z.number().int().min(1).max(10_000), createdAt: z.string().datetime() }).strict();\nexport const ConnectedRecordedListSchema = z.object({ teamId: Id, items: z.array(ConnectedRecordedSummarySchema).max(50), nextCursor: Id.nullable() }).strict();\n","import { DEFAULT_API_BASE_URL } from \"./endpoints.js\";\nimport { z } from \"zod\";\nimport { contentHash } from \"@openpond/harness\";\nimport { ConnectedBoundarySchema, ConnectedEventSchema, ConnectedUsageSummarySchema } from \"@openpond/evals/connected-evidence\";\nimport { ConnectedCaptureRequestSchema, ConnectedCaseRefSchema, ConnectedSourceSummarySchema,\n AgentImportUploadPartSchema, AgentImportPreviewRequestSchema, AgentImportCommitRequestSchema } from \"./connected-evidence-contracts.js\";\nimport { ConnectedRecordedExecutionRequestSchema, ConnectedRecordedListSchema, ConnectedRecordedListRequestSchema, verifyConnectedRecordedExecution } from \"./connected-recorded-execution.js\";\nimport { ConnectedDatasetPublicationSchema, type ConnectedDatasetPublication } from \"./connected-dataset-publication.js\";\nimport { DatasetWorkspaceReceiptSchema } from \"./dataset-workspace-contracts.js\";\nimport { fetchConnectedJson } from \"./connected-evidence-http.js\";\nimport { ConnectedCollectionStatusSchema } from \"./connected-collection-status.js\";\nimport { ConnectedStartingAssetsRequestSchema, verifyConnectedStartingAssetsReceipt } from \"./connected-starting-assets.js\";\n\nconst Id = z.string().min(1).max(500), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nexport const ConnectedCollectionSchema = z.object({ teamId: Id, projectId: Id.nullable(), status: z.enum([\"active\", \"paused\", \"archived\"]), revision: z.number().int().nonnegative() }).strict();\nexport const ConnectedCaptureReceiptSchema = z.object({ teamId: Id, operationId: Id, projectId: Id.nullable(),\n outcomes: z.array(z.object({ conversationId: Id, state: z.enum([\"captured\", \"unchanged\", \"pending\", \"paused\", \"excluded\", \"failed\"]),\n sourceId: Id.optional(), snapshotHash: Hash.optional(), reason: z.string().optional() }).strict()).max(50), nextCursor: Id.nullable() }).strict();\nexport const ConnectedCaseReadbackSchema = z.object({ teamId: Id, ref: ConnectedCaseRefSchema, origin: ConnectedSourceSummarySchema.shape.source,\n sessionId: Id, projectId: Id, capturedAt: z.string().datetime(), unmappedEvidence: z.object({ count: z.number().int().nonnegative().max(100_000), contentHash: Hash }).strict(),\n evidence: z.object({ input: z.array(ConnectedEventSchema), observed: z.array(ConnectedEventSchema), answer: z.json(), boundary: ConnectedBoundarySchema }).strict() }).strict();\nexport const ConnectedUnmappedEventsSchema = z.object({ teamId: Id, sourceId: Id, snapshotHash: Hash, contentHash: Hash,\n count: z.number().int().nonnegative(), offset: z.number().int().nonnegative(), events: z.array(ConnectedEventSchema).max(50), nextOffset: z.number().int().nonnegative().nullable() }).strict();\nexport const AgentImportPreviewSchema = z.object({ teamId: Id, source: AgentImportPreviewRequestSchema.shape.source, sourceHash: Hash, previewHash: Hash,\n destination: AgentImportPreviewRequestSchema.shape.destination, issues: z.array(z.object({ file: z.string(), message: z.string() }).strict()).max(100),\n sessions: z.array(z.object({ sessionHash: Hash, sessionId: Id, origin: ConnectedSourceSummarySchema.shape.source, exporterVersion: z.string().nullable(),\n eventCount: z.number().int().nonnegative(), boundaries: z.array(z.object({ id: Id, projection: z.enum([\"turn\", \"conversation\"]), answer: z.boolean(),\n process: z.enum([\"retained\", \"partial\", \"absent\"]), terminal: z.enum([\"completed\", \"failed\", \"cancelled\", \"unknown\"]) }).strict()).max(5_001),\n warnings: z.array(z.string()).max(100), sample: z.array(z.object({ role: z.enum([\"user\", \"assistant\", \"system\", \"tool\"]).nullable(), text: z.string().max(4_000) }).strict()).max(3),\n }).strict()).max(1_000) }).strict();\nexport const AgentImportReceiptSchema = z.object({ teamId: Id, operationId: Id, requestHash: Hash, previewHash: Hash, projectId: Id.optional(),\n state: z.enum([\"admitting\", \"publishing\", \"completed\", \"failed\"]), outcomes: z.array(z.object({ sessionHash: Hash, sourceId: Id,\n status: z.enum([\"imported\", \"already_present\"]), datasets: z.array(z.object({ datasetId: Id, revision: z.number().int().positive(), changed: z.boolean() }).strict()).max(2) }).strict()).max(1_000),\n error: z.string().optional() }).strict();\n\nexport class ConnectedEvidenceError extends Error {\n constructor(readonly status: number, readonly code: string, message: string) { super(message); this.name = \"ConnectedEvidenceError\"; }\n}\nexport class ConnectedEvidenceClient {\n private readonly baseUrl: string;\n constructor(private readonly options: { apiKey: string; baseUrl?: string; teamId: string; fetch?: typeof fetch }) {\n const url = new URL(options.baseUrl ?? DEFAULT_API_BASE_URL);\n if (![\"http:\", \"https:\"].includes(url.protocol) || url.username || url.password || url.search || url.hash || !options.apiKey.trim() || !options.teamId.trim())\n throw new Error(\"A clean API origin and workspace credentials are required.\");\n this.baseUrl = url.toString().replace(/\\/+$/, \"\");\n }\n async capture(raw: z.input<typeof ConnectedCaptureRequestSchema>, signal?: AbortSignal) {\n const request = ConnectedCaptureRequestSchema.parse(raw), result = ConnectedCaptureReceiptSchema.parse(await this.request(\"/capture\", \"POST\", request, signal));\n this.scope(result.teamId);\n if (result.operationId !== request.operationId || result.outcomes.length > request.limit || request.conversationId && result.outcomes.some(item => item.conversationId !== request.conversationId))\n throw new Error(\"Capture receipt differs from its requested source or operation.\");\n return result;\n }\n async retainStartingAssets(raw: z.input<typeof ConnectedStartingAssetsRequestSchema>, signal?: AbortSignal) {\n const request = ConnectedStartingAssetsRequestSchema.parse(raw);\n const result = verifyConnectedStartingAssetsReceipt(await this.request(\"/starting-assets\", \"POST\", request, signal));\n this.scope(result.teamId);\n if (result.operationId !== request.operationId || result.requestHash !== contentHash(request)\n || contentHash(result.source) !== contentHash(request.source)\n || result.assets.length !== request.proofs.length\n || result.assets.some((asset, index) => asset.path !== request.proofs[index]!.path))\n throw new Error(\"Starting assets differ from the exact source, operation or selected paths.\");\n return result;\n }\n async startingAssets(id: string, signal?: AbortSignal) {\n const result = verifyConnectedStartingAssetsReceipt(await this.request(`/starting-assets/${encodeURIComponent(Id.parse(id))}`, \"GET\", undefined, signal));\n this.scope(result.teamId);\n if (result.id !== id) throw new Error(\"Starting assets identity mismatch.\");\n return result;\n }\n async list(input: { projectId?: string; cursor?: string; limit?: number } = {}, signal?: AbortSignal) {\n const query = z.object({ projectId: Id.optional(), cursor: Id.optional(), limit: z.number().int().min(1).max(50).default(20) }).strict().parse(input);\n const params = new URLSearchParams(Object.entries(query).filter(([, value]) => value !== undefined).map(([key, value]) => [key, String(value)]));\n const page = z.object({ teamId: Id, items: z.array(ConnectedSourceSummarySchema).max(50), nextCursor: Id.nullable() }).strict().parse(await this.request(`?${params}`, \"GET\", undefined, signal));\n this.scope(page.teamId);\n if (page.items.length > query.limit || new Set(page.items.map(item => item.sourceId)).size !== page.items.length || page.nextCursor !== null && page.nextCursor === query.cursor\n || query.projectId && page.items.some(item => item.projectId !== query.projectId)) throw new Error(\"Connected source page differs from its requested scope.\");\n return page;\n }\n async read(raw: z.input<typeof ConnectedCaseRefSchema>, signal?: AbortSignal) {\n const ref = ConnectedCaseRefSchema.parse(raw);\n const result = ConnectedCaseReadbackSchema.parse(await this.request(`/${encodeURIComponent(ref.id)}/cases/${encodeURIComponent(ref.boundaryId)}?snapshotHash=${ref.snapshotHash}&revisionHash=${ref.boundaryRevisionHash}`, \"GET\", undefined, signal));\n this.scope(result.teamId);\n if (contentHash(result.ref) !== contentHash(ref) || result.evidence.boundary.id !== ref.boundaryId || result.evidence.boundary.revisionHash !== ref.boundaryRevisionHash\n || contentHash(result.evidence.input) !== result.evidence.boundary.inputHash || contentHash(result.evidence.observed) !== ref.boundaryRevisionHash\n || result.evidence.boundary.outputHash !== null && contentHash(result.evidence.answer) !== result.evidence.boundary.outputHash)\n throw new Error(\"Connected case readback differs from its exact snapshot or cutoff.\");\n return result;\n }\n async setCollection(paused: boolean, signal?: AbortSignal) {\n const result = ConnectedCollectionSchema.parse(await this.request(\"/collection\", \"PUT\", z.object({ paused: z.boolean() }).strict().parse({ paused }), signal));\n this.scope(result.teamId); return result;\n }\n async collection(signal?: AbortSignal) { const result = ConnectedCollectionSchema.parse(await this.request(\"/collection\", \"GET\", undefined, signal)); this.scope(result.teamId); return result; }\n async collectionStatus(signal?: AbortSignal) {\n const result = ConnectedCollectionStatusSchema.parse(await this.request(\"/collection/status\", \"GET\", undefined, signal));\n this.scope(result.teamId);\n return result;\n }\n async unmappedEvents(input: { id: string; snapshotHash: string; contentHash: string; offset?: number; limit?: number }, signal?: AbortSignal) {\n const request = z.object({ id: Id, snapshotHash: Hash, contentHash: Hash, offset: z.number().int().nonnegative().default(0), limit: z.number().int().min(1).max(50).default(20) }).strict().parse(input);\n const result = ConnectedUnmappedEventsSchema.parse(await this.request(`/${encodeURIComponent(request.id)}/unmapped-events?snapshotHash=${request.snapshotHash}&offset=${request.offset}&limit=${request.limit}`, \"GET\", undefined, signal));\n this.scope(result.teamId);\n if (result.sourceId !== request.id || result.snapshotHash !== request.snapshotHash || result.contentHash !== request.contentHash || result.offset !== request.offset\n || result.events.length > request.limit || result.events.some((event, index) => event.sequence !== request.offset + index)\n || result.nextOffset !== null && result.nextOffset !== request.offset + result.events.length) throw new Error(\"Unmapped source event page differs from its pinned snapshot.\");\n return result;\n }\n async homeSummary(raw: { from: string; to: string; projectId?: string }, signal?: AbortSignal) {\n const querySchema = z.object({ from: z.string().datetime(), to: z.string().datetime(), projectId: Id.optional() }).strict(), query = querySchema.parse(raw);\n const params = new URLSearchParams(Object.entries(query));\n const result = z.object({ teamId: Id, range: querySchema, activity: z.object({ conversations: z.number().int().nonnegative(), turns: z.number().int().nonnegative(),\n chatTurns: z.number().int().nonnegative(), workTurns: z.number().int().nonnegative() }).strict(), accounting: z.object({ contextSnapshots: z.number().int().nonnegative() }).strict(), usage: ConnectedUsageSummarySchema }).strict()\n .parse(await this.request(`/summary?${params}`, \"GET\", undefined, signal));\n this.scope(result.teamId);\n if (contentHash(result.range) !== contentHash(query) || result.activity.chatTurns + result.activity.workTurns !== result.activity.turns) throw new Error(\"Activity summary differs from its requested range.\");\n for (const groups of [result.usage.days, result.usage.modes, result.usage.models]) {\n if (new Set(groups.map(row => row.key)).size !== groups.length) throw new Error(\"Duplicate usage summary group.\");\n for (const key of Object.keys(result.usage.total) as (keyof typeof result.usage.total)[])\n if (groups.reduce((sum, row) => sum + row[key], 0) !== result.usage.total[key]) throw new Error(\"Usage totals differ from their displayed groups.\");\n }\n return result;\n }\n async uploadPart(raw: z.input<typeof AgentImportUploadPartSchema>, signal?: AbortSignal) {\n const body = AgentImportUploadPartSchema.parse(raw), result = z.object({ teamId: Id, hash: Hash, parts: z.number().int(), index: z.number().int() }).strict().parse(await this.request(\"/imports/upload\", \"POST\", body, signal));\n this.scope(result.teamId);\n if (result.hash !== body.hash || result.parts !== body.parts || result.index !== body.index) throw new Error(\"Upload receipt differs from its part identity.\");\n return result;\n }\n async preview(raw: z.input<typeof AgentImportPreviewRequestSchema>, signal?: AbortSignal) {\n const request = AgentImportPreviewRequestSchema.parse(raw), result = AgentImportPreviewSchema.parse(await this.request(\"/imports/preview\", \"POST\", request, signal));\n this.scope(result.teamId);\n if (result.source !== request.source || contentHash(result.destination) !== contentHash(request.destination) || result.sessions.some(session => session.origin !== request.source)\n || new Set(result.sessions.map(session => session.sessionHash)).size !== result.sessions.length) throw new Error(\"Import preview differs from its source or destination.\");\n return result;\n }\n async commit(raw: z.input<typeof AgentImportCommitRequestSchema>, signal?: AbortSignal) {\n const request = AgentImportCommitRequestSchema.parse(raw), result = AgentImportReceiptSchema.parse(await this.request(\"/imports/commit\", \"POST\", request, signal));\n this.scope(result.teamId);\n if (result.operationId !== request.operationId || result.previewHash !== request.previewHash || result.requestHash !== contentHash(request)\n || result.outcomes.some(item => !request.selection.some(selection => selection.sessionHash === item.sessionHash))\n || result.state === \"completed\" && result.outcomes.length !== request.selection.length) throw new Error(\"Import receipt differs from its exact selection or operation.\");\n return result;\n }\n async readImport(operationId: string, signal?: AbortSignal) {\n const id = Id.parse(operationId), result = AgentImportReceiptSchema.parse(await this.request(`/imports/${encodeURIComponent(id)}`, \"GET\", undefined, signal));\n this.scope(result.teamId); if (result.operationId !== id) throw new Error(\"Import identity mismatch.\"); return result;\n }\n async prepareRecorded(raw: z.input<typeof ConnectedRecordedExecutionRequestSchema>, signal?: AbortSignal) {\n const request = ConnectedRecordedExecutionRequestSchema.parse(raw), result = verifyConnectedRecordedExecution(await this.request(\"/recorded-executions\", \"POST\", request, signal));\n this.scope(result.teamId); if (contentHash(result.request) !== contentHash(request)) throw new Error(\"Recorded admission differs from its selected Dataset/cases.\"); return result;\n }\n async listRecordedExecutions(input: z.input<typeof ConnectedRecordedListRequestSchema> = {}, signal?: AbortSignal) {\n const query = ConnectedRecordedListRequestSchema.parse(input);\n const params = new URLSearchParams(Object.entries(query).filter(([, value]) => value !== undefined).map(([key, value]) => [key, String(value)]));\n const page = ConnectedRecordedListSchema.parse(await this.request(`/recorded-executions?${params}`, \"GET\", undefined, signal));\n this.scope(page.teamId);\n if (page.items.length > query.limit || page.items.some((row, index) => row.teamId !== page.teamId || query.projectId && row.projectId !== query.projectId\n || query.cursor && row.id <= query.cursor || index > 0 && row.id <= page.items[index - 1]!.id)\n || page.items.some(row => row.ownerUserId !== page.items[0]?.ownerUserId)\n || page.nextCursor !== null && (query.cursor !== undefined && page.nextCursor <= query.cursor || page.items.length > 0 && page.nextCursor < page.items.at(-1)!.id))\n throw new Error(\"Recorded execution page differs from its requested scope or cursor.\");\n return page;\n }\n async recordedExecution(id: string, signal?: AbortSignal) {\n const result = verifyConnectedRecordedExecution(await this.request(`/recorded-executions/${encodeURIComponent(Id.parse(id))}`, \"GET\", undefined, signal));\n this.scope(result.teamId); if (result.id !== id) throw new Error(\"Recorded execution identity mismatch.\"); return result;\n }\n async publishDataset(input: ConnectedDatasetPublication, signal?: AbortSignal) {\n const request = ConnectedDatasetPublicationSchema.parse(input);\n const result = DatasetWorkspaceReceiptSchema.parse(await this.request(\"/datasets/publish\", \"POST\", request, signal));\n this.scope(result.teamId);\n const frozen = result.workspace.draft.metadata.connectedPublication;\n if (result.datasetId !== request.datasetId || !result.publication || !frozen || typeof frozen !== \"object\" || !(\"requestHash\" in frozen) || frozen.requestHash !== contentHash(request)) throw new Error(\"Published Dataset identity or original selection mismatch.\"); return result;\n }\n async createSelection(input: { operationId: string; projectId: string; name: string; cases: z.input<typeof ConnectedCaseRefSchema>[] }, signal?: AbortSignal) {\n const request = z.object({ operationId: Id.max(240), projectId: Id.max(240), name: z.string().trim().min(1).max(200), cases: z.array(ConnectedCaseRefSchema).min(1).max(500) }).strict().parse(input);\n const result = DatasetWorkspaceReceiptSchema.parse(await this.request(\"/datasets/selection\", \"POST\", request, signal));\n this.scope(result.teamId);\n if (result.originProjectId !== request.projectId || result.workspace.draft.tasks.length !== request.cases.length\n || result.workspace.draft.tasks.some((task, index) => contentHash(task.input && typeof task.input === \"object\" && !Array.isArray(task.input) ? task.input.connectedEvidenceRef : null) !== contentHash(request.cases[index])))\n throw new Error(\"Selected Dataset differs from its exact source population.\");\n return result;\n }\n private scope(teamId: string) { if (teamId !== this.options.teamId) throw new Error(\"Connected evidence workspace mismatch.\"); }\n private async request(path: string, method: string, body?: unknown, signal?: AbortSignal) {\n const { response, value } = await fetchConnectedJson(this.options.fetch ?? fetch, `${this.baseUrl}/v1/connected-evidence${path}`, { method, signal, redirect: \"error\",\n headers: { Authorization: `Bearer ${this.options.apiKey}`, \"X-OpenPond-Team-Id\": this.options.teamId, \"Content-Type\": \"application/json\", Accept: \"application/json\" },\n ...(body === undefined ? {} : { body: JSON.stringify(body) }) }, (status, code, message) => new ConnectedEvidenceError(status, code, message));\n if (!response.ok) { const error = z.object({ code: z.string(), message: z.string() }).safeParse(value);\n throw new ConnectedEvidenceError(response.status, error.success ? error.data.code : \"connected_request_failed\", error.success ? error.data.message : \"Connected evidence request failed.\"); }\n return value;\n }\n}\n","import { z } from \"zod\";\nimport { RewardReleaseRefSchema } from \"@openpond/evals/rewards\";\n\n/** Publication freezes the owner-selected Dataset revision and exact grader\n * releases. Capture never infers a correctness reference from an answer. */\nexport const ConnectedDatasetPublicationSchema = z.object({\n datasetId: z.string().trim().min(1).max(240),\n expectedRevision: z.number().int().positive(),\n operationId: z.string().trim().min(1).max(240),\n graders: z.array(RewardReleaseRefSchema).min(1).max(100).optional(),\n}).strict().superRefine((request, context) => {\n if (request.graders && new Set(request.graders.map(ref => ref.id)).size !== request.graders.length)\n context.addIssue({ code: \"custom\", path: [\"graders\"], message: \"Choose one exact revision of each grader.\" });\n});\nexport type ConnectedDatasetPublication = z.infer<typeof ConnectedDatasetPublicationSchema>;\n","import { z } from \"zod\";\n\nconst Id = z.string().min(1).max(500);\nconst Count = z.number().int().nonnegative();\n\n/** Hosted collection health is server reconciliation, never a local heartbeat. */\nexport const ConnectedCollectionStatusSchema = z.object({\n teamId: Id,\n ownerUserId: Id,\n projectId: Id.nullable(),\n status: z.enum([\"active\", \"paused\", \"archived\"]),\n revision: Count,\n state: z.enum([\"collecting\", \"pending\", \"attention\", \"paused\", \"archived\"]),\n lastReconciledAt: z.string().datetime().nullable(),\n lastCapturedAt: z.string().datetime().nullable(),\n historyDays: z.number().int().positive(),\n sources: Count,\n tasks: Count,\n datasets: z.array(z.object({\n datasetId: Id,\n projection: z.enum([\"turn\", \"conversation\"]),\n revision: Count,\n }).strict()).max(2),\n latestBatch: z.object({\n operationId: Id,\n updatedAt: z.string().datetime(),\n scanned: Count,\n captured: Count,\n unchanged: Count,\n pending: Count,\n failed: Count,\n excluded: Count,\n paused: Count,\n hasMore: z.boolean(),\n }).strict().nullable(),\n}).strict();\n\nexport type ConnectedCollectionStatus = z.infer<typeof ConnectedCollectionStatusSchema>;\n","import { DEFAULT_API_BASE_URL } from \"./endpoints.js\";\nimport { z } from \"zod\";\nimport {\n AgentImportCommitRequestSchema,\n AgentImportPreviewRequestSchema,\n} from \"./connected-evidence-contracts.js\";\nimport { fetchConnectedJson } from \"./connected-evidence-http.js\";\nimport {\n CollectorCoverageManifestSchema,\n CollectorCoverageSummarySchema,\n summarizeCollectorCoverage,\n} from \"@openpond/evals/connected-evidence\";\nconst Id = z.string().trim().min(1).max(240);\nexport const ConnectedSyncCoveragePublishSchema = z\n .object({\n id: Id,\n expectedRevision: z.number().int().positive(),\n manifest: CollectorCoverageManifestSchema,\n })\n .strict()\n .refine(\n (value) =>\n value.id === value.manifest.connectionId &&\n value.expectedRevision === value.manifest.connectionRevision,\n \"Collector coverage scope differs from its connection.\",\n );\nexport const ConnectedSyncCoverageReadSchema = z\n .object({ id: Id, cutoff: z.iso.datetime().optional() })\n .strict();\nexport const ConnectedSyncCoverageReceiptSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.connectedSyncCoverageReceipt.v1\"),\n id: Id,\n teamId: Id,\n ownerUserId: Id,\n connectionId: Id,\n connectionRevision: z.number().int().positive(),\n receivedAt: z.iso.datetime(),\n summary: CollectorCoverageSummarySchema,\n })\n .strict();\nexport const ConnectedSyncRegistrationSchema = z\n .object({\n id: Id,\n source: AgentImportPreviewRequestSchema.shape.source,\n machineId: Id,\n sourceInstanceId: Id,\n sourceLabel: z.string().trim().min(1).max(200),\n sourceRoot: z.string().min(1).max(2000),\n destination: AgentImportPreviewRequestSchema.shape.destination,\n since: z.string().datetime().nullable(),\n keepSyncing: z.boolean(),\n expectedRevision: z.number().int().nonnegative(),\n })\n .strict();\nexport const ConnectedSyncControlSchema = z\n .object({\n id: Id,\n expectedRevision: z.number().int().positive(),\n action: z.enum([\"pause\", \"resume\", \"disconnect\"]),\n })\n .strict();\nexport const ConnectedSyncRequestSchema = z\n .object({\n id: Id,\n operationId: Id,\n expectedRevision: z.number().int().positive(),\n })\n .strict();\nexport const ConnectedSyncHeartbeatSchema = z\n .object({\n id: Id,\n expectedRevision: z.number().int().positive(),\n pendingOperations: z.number().int().min(0).max(10000),\n error: z.string().max(500).nullable(),\n completedSyncRevision: z.number().int().nonnegative().default(0),\n })\n .strict();\nexport const ConnectedSyncConnectionSchema = z\n .object({\n teamId: Id,\n id: Id,\n revision: z.number().int().positive(),\n source: AgentImportPreviewRequestSchema.shape.source,\n sourceLabel: z.string(),\n sourceRoot: z.string(),\n taskDatasetId: Id.nullable(),\n conversationDatasetId: Id.nullable(),\n machineId: Id,\n sourceInstanceId: Id,\n projectId: Id,\n datasetIds: z.array(Id).max(2),\n since: z.string().datetime().nullable(),\n keepSyncing: z.boolean(),\n state: z.enum([\"active\", \"paused\", \"disconnected\"]),\n health: z.enum([\"online\", \"offline\"]),\n lastHeartbeatAt: z.string().datetime().nullable(),\n lastAdmissionAt: z.string().datetime().nullable(),\n pendingOperations: z.number().int().nonnegative(),\n admittedTasks: z.number().int().nonnegative(),\n error: z.string().nullable(),\n requestedSyncRevision: z.number().int().nonnegative().default(0),\n completedSyncRevision: z.number().int().nonnegative().default(0),\n syncRequestedAt: z.string().datetime().nullable().default(null),\n syncCompletedAt: z.string().datetime().nullable().default(null),\n })\n .strict()\n .refine(\n (value) =>\n value.completedSyncRevision <= value.requestedSyncRevision &&\n value.requestedSyncRevision <= value.revision,\n \"Invalid sync acknowledgement generation.\",\n );\nexport const ConnectedSyncCommitSchema = z\n .object({\n connectionId: Id,\n expectedRevision: z.number().int().positive(),\n request: AgentImportCommitRequestSchema,\n })\n .strict();\nexport type ConnectedSyncConnection = z.infer<\n typeof ConnectedSyncConnectionSchema\n>;\nexport class ConnectedSyncClient {\n constructor(\n private readonly options: {\n apiKey: string;\n baseUrl?: string;\n teamId: string;\n fetch?: typeof fetch;\n },\n ) {\n const url = new URL(options.baseUrl ?? DEFAULT_API_BASE_URL);\n if (\n ![\"http:\", \"https:\"].includes(url.protocol) ||\n url.username ||\n url.password ||\n url.search ||\n url.hash\n )\n throw new Error(\"Invalid connected-sync API origin.\");\n }\n async list(signal?: AbortSignal) {\n const result = z\n .object({\n teamId: Id,\n items: z.array(ConnectedSyncConnectionSchema).max(100),\n })\n .strict()\n .parse(await this.request(\"\", \"GET\", undefined, signal));\n if (\n result.teamId !== this.options.teamId ||\n result.items.some((item) => item.teamId !== result.teamId)\n )\n throw new Error(\"Sync workspace mismatch.\");\n return result;\n }\n async register(\n raw: z.input<typeof ConnectedSyncRegistrationSchema>,\n signal?: AbortSignal,\n ) {\n return this.connection(\n await this.request(\n \"\",\n \"POST\",\n ConnectedSyncRegistrationSchema.parse(raw),\n signal,\n ),\n raw.id,\n );\n }\n async control(\n raw: z.input<typeof ConnectedSyncControlSchema>,\n signal?: AbortSignal,\n ) {\n return this.connection(\n await this.request(\n \"/control\",\n \"POST\",\n ConnectedSyncControlSchema.parse(raw),\n signal,\n ),\n raw.id,\n );\n }\n async heartbeat(\n raw: z.input<typeof ConnectedSyncHeartbeatSchema>,\n signal?: AbortSignal,\n ) {\n return this.connection(\n await this.request(\n \"/heartbeat\",\n \"POST\",\n ConnectedSyncHeartbeatSchema.parse(raw),\n signal,\n ),\n raw.id,\n );\n }\n async requestSync(\n raw: z.input<typeof ConnectedSyncRequestSchema>,\n signal?: AbortSignal,\n ) {\n return this.connection(\n await this.request(\n \"/sync-now\",\n \"POST\",\n ConnectedSyncRequestSchema.parse(raw),\n signal,\n ),\n raw.id,\n );\n }\n async commit(\n raw: z.input<typeof ConnectedSyncCommitSchema>,\n signal?: AbortSignal,\n ) {\n return this.request(\n \"/commit\",\n \"POST\",\n ConnectedSyncCommitSchema.parse(raw),\n signal,\n );\n }\n async publishCoverage(\n raw: z.input<typeof ConnectedSyncCoveragePublishSchema>,\n signal?: AbortSignal,\n ) {\n const request = ConnectedSyncCoveragePublishSchema.parse(raw);\n const receipt = this.coverageReceipt(\n await this.request(\n \"/coverage\",\n \"POST\",\n { action: \"publish\", ...request },\n signal,\n ),\n request.id,\n );\n if (\n !receipt ||\n receipt.connectionRevision !== request.expectedRevision ||\n receipt.summary.manifestHash !==\n summarizeCollectorCoverage(request.manifest).manifestHash\n )\n throw new Error(\n \"Collector coverage acknowledgement differs from the retained manifest.\",\n );\n return receipt;\n }\n async readCoverage(\n raw: z.input<typeof ConnectedSyncCoverageReadSchema>,\n signal?: AbortSignal,\n ) {\n const request = ConnectedSyncCoverageReadSchema.parse(raw);\n const query = new URLSearchParams(\n request.cutoff ? { cutoff: request.cutoff } : {},\n );\n return this.coverageReceipt(\n await this.request(\n `/${encodeURIComponent(request.id)}/coverage?${query}`,\n \"GET\",\n undefined,\n signal,\n ),\n request.id,\n );\n }\n private coverageReceipt(value: unknown, connectionId: string) {\n if (value === null) return null;\n const receipt = ConnectedSyncCoverageReceiptSchema.parse(value);\n if (\n receipt.teamId !== this.options.teamId ||\n receipt.connectionId !== connectionId\n )\n throw new Error(\"Collector coverage workspace mismatch.\");\n return receipt;\n }\n private connection(raw: unknown, id: string) {\n const result = ConnectedSyncConnectionSchema.parse(raw);\n if (result.teamId !== this.options.teamId || result.id !== id)\n throw new Error(\"Sync connection identity mismatch.\");\n return result;\n }\n private async request(\n path: string,\n method: string,\n body?: unknown,\n signal?: AbortSignal,\n ) {\n const { response, value } = await fetchConnectedJson(\n this.options.fetch ?? fetch,\n `${(this.options.baseUrl ?? DEFAULT_API_BASE_URL).replace(/\\/+$/u, \"\")}/v1/connected-evidence/sync/connections${path}`,\n {\n method,\n signal,\n redirect: \"error\",\n headers: {\n Authorization: `Bearer ${this.options.apiKey}`,\n \"X-OpenPond-Team-Id\": this.options.teamId,\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n ...(body === undefined ? {} : { body: JSON.stringify(body) }),\n },\n (_status, _code, message) => new Error(message),\n );\n if (!response.ok)\n throw Object.assign(\n new Error(`Sync request failed (${response.status}).`),\n { status: response.status },\n );\n return value;\n }\n}\n","export * from \"./connected-evidence-contracts.js\";\nexport * from \"./connected-dataset-source.js\";\nexport * from \"./connected-recorded-execution.js\";\nexport * from \"./connected-evidence-client.js\";\nexport * from \"./connected-dataset-publication.js\";\nexport * from \"./connected-collection-status.js\";\nexport * from \"./connected-starting-assets.js\";\n\nexport * from \"./connected-sync.js\";\nexport { CollectorCoverageManifestSchema, CollectorCoverageSessionSchema, CollectorCoverageSummarySchema,\n summarizeCollectorCoverage, hashCollectorEligibleBoundaries } from \"@openpond/evals/connected-evidence\";\nexport type { CollectorCoverageManifest, CollectorCoverageSession, CollectorCoverageSummary } from \"@openpond/evals/connected-evidence\";\n"],"mappings":"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","names":["z","z","z","Id","Id","z","Hash","z","Id","z","CollectorCoverageManifestSchema","CollectorCoverageSummarySchema","summarizeCollectorCoverage"]}
@@ -3,10 +3,10 @@ import {
3
3
  EvaluationProjectContextSchema,
4
4
  ModelStarterAttemptPolicySchema,
5
5
  ModelStarterAttemptSummarySchema
6
- } from "./chunk-JMFYNIYZ.js";
6
+ } from "./chunk-L7MVGGBH.js";
7
7
  import {
8
8
  ModelProjectVersionedRefSchema
9
- } from "./chunk-MVAEE5EI.js";
9
+ } from "./chunk-WJZHSIGD.js";
10
10
  import {
11
11
  canonicalJson,
12
12
  canonicalSha256
@@ -179,4 +179,4 @@ export {
179
179
  verifyModelTasksetRunDetails,
180
180
  verifyModelTasksetRunResult
181
181
  };
182
- //# sourceMappingURL=chunk-ZRTNR4U7.js.map
182
+ //# sourceMappingURL=chunk-5KJY44FB.js.map