openpond-sdk 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/dist/advanced-refiner-evaluations.js +42 -0
  2. package/dist/advanced-refiner-evaluations.js.map +7 -0
  3. package/dist/candidate-evaluations.js +25 -0
  4. package/dist/candidate-evaluations.js.map +7 -0
  5. package/dist/{chunk-W5TXWVFS.js → chunk-2JKV5OJO.js} +88 -59
  6. package/dist/chunk-2JKV5OJO.js.map +7 -0
  7. package/dist/{chunk-2ZJRG3KL.js → chunk-2NSNBED7.js} +7 -3
  8. package/dist/chunk-2NSNBED7.js.map +7 -0
  9. package/dist/chunk-5RZAPZWI.js +445 -0
  10. package/dist/chunk-5RZAPZWI.js.map +7 -0
  11. package/dist/{chunk-JCPLAIZL.js → chunk-5U25KAJM.js} +106 -76
  12. package/dist/chunk-5U25KAJM.js.map +7 -0
  13. package/dist/chunk-7Q7I6FAT.js +139 -0
  14. package/dist/chunk-7Q7I6FAT.js.map +7 -0
  15. package/dist/chunk-A64VYVXN.js +64 -0
  16. package/dist/chunk-A64VYVXN.js.map +7 -0
  17. package/dist/{chunk-DT7FRNIZ.js → chunk-CSWVE3E6.js} +2 -2
  18. package/dist/chunk-DJWHN7NU.js +394 -0
  19. package/dist/chunk-DJWHN7NU.js.map +7 -0
  20. package/dist/chunk-GDJRGRHA.js +144 -0
  21. package/dist/chunk-GDJRGRHA.js.map +7 -0
  22. package/dist/chunk-HOAYWW33.js +587 -0
  23. package/dist/chunk-HOAYWW33.js.map +7 -0
  24. package/dist/{chunk-Y4NGWGTA.js → chunk-I2MBVOVX.js} +265 -264
  25. package/dist/chunk-I2MBVOVX.js.map +7 -0
  26. package/dist/{chunk-I3TQTXKB.js → chunk-IXBSFJCX.js} +4 -4
  27. package/dist/chunk-JMQ4HBWP.js +160 -0
  28. package/dist/chunk-JMQ4HBWP.js.map +7 -0
  29. package/dist/chunk-KQWCXW3A.js +294 -0
  30. package/dist/chunk-KQWCXW3A.js.map +7 -0
  31. package/dist/{chunk-I2YM3UY4.js → chunk-NHCGOFQW.js} +2 -2
  32. package/dist/{chunk-32H2EJRA.js → chunk-R3M6BIOK.js} +2 -2
  33. package/dist/chunk-SLS3GFPG.js +125 -0
  34. package/dist/chunk-SLS3GFPG.js.map +7 -0
  35. package/dist/chunk-SVU4RZ4K.js +70 -0
  36. package/dist/chunk-SVU4RZ4K.js.map +7 -0
  37. package/dist/chunk-T4APHDES.js +74 -0
  38. package/dist/chunk-T4APHDES.js.map +7 -0
  39. package/dist/chunk-VC5OV5AS.js +174 -0
  40. package/dist/chunk-VC5OV5AS.js.map +7 -0
  41. package/dist/{chunk-7B44TQZD.js → chunk-WX22WN33.js} +13 -7
  42. package/dist/chunk-WX22WN33.js.map +7 -0
  43. package/dist/chunk-XEUOJ5WF.js +31 -0
  44. package/dist/chunk-XEUOJ5WF.js.map +7 -0
  45. package/dist/{chunk-LGEF4S5I.js → chunk-XJDWHTH5.js} +390 -362
  46. package/dist/chunk-XJDWHTH5.js.map +7 -0
  47. package/dist/chunk-YCQVVFE5.js +37 -0
  48. package/dist/chunk-YCQVVFE5.js.map +7 -0
  49. package/dist/chunk-ZVJU5CJ5.js +267 -0
  50. package/dist/chunk-ZVJU5CJ5.js.map +7 -0
  51. package/dist/connected-evidence.js +81 -0
  52. package/dist/connected-evidence.js.map +7 -0
  53. package/dist/dataset-workspaces.js +44 -79
  54. package/dist/dataset-workspaces.js.map +4 -4
  55. package/dist/experiment-evaluation-schedules.js +48 -0
  56. package/dist/experiment-evaluation-schedules.js.map +7 -0
  57. package/dist/experiment-improvements.js +52 -0
  58. package/dist/experiment-improvements.js.map +7 -0
  59. package/dist/experiments.js +48 -90
  60. package/dist/experiments.js.map +3 -3
  61. package/dist/human-review.js +13 -0
  62. package/dist/human-review.js.map +7 -0
  63. package/dist/index.js +208 -17
  64. package/dist/index.js.map +2 -2
  65. package/dist/learning.js +1 -1
  66. package/dist/model-starter-attempts.js +2 -2
  67. package/dist/model-starter-catalog.js +7 -2
  68. package/dist/model-starter-catalog.js.map +1 -1
  69. package/dist/model-starters.js +7 -2
  70. package/dist/model-taskset-runs.js +3 -3
  71. package/dist/post-training.js +47 -0
  72. package/dist/post-training.js.map +7 -0
  73. package/dist/taskset-drafts.js +11 -4
  74. package/dist/taskset-drafts.js.map +2 -2
  75. package/dist/taskset-packages.js +26 -556
  76. package/dist/taskset-packages.js.map +4 -4
  77. package/dist/training-bundle.js +58 -17
  78. package/dist/training-bundle.js.map +2 -2
  79. package/dist/training-projects.js +1 -1
  80. package/dist/training.js +7 -2
  81. package/dist/types/packages/sdk/src/advanced-refiner-evaluations.d.ts +2673 -0
  82. package/dist/types/packages/sdk/src/advanced-refiner-evaluations.d.ts.map +1 -0
  83. package/dist/types/packages/sdk/src/candidate-evaluation-client.d.ts +1079 -0
  84. package/dist/types/packages/sdk/src/candidate-evaluation-client.d.ts.map +1 -0
  85. package/dist/types/packages/sdk/src/candidate-evaluations.d.ts +845 -0
  86. package/dist/types/packages/sdk/src/candidate-evaluations.d.ts.map +1 -0
  87. package/dist/types/packages/sdk/src/claude-code-runtime.d.ts +51 -0
  88. package/dist/types/packages/sdk/src/claude-code-runtime.d.ts.map +1 -0
  89. package/dist/types/packages/sdk/src/connected-dataset-publication.d.ts +15 -0
  90. package/dist/types/packages/sdk/src/connected-dataset-publication.d.ts.map +1 -0
  91. package/dist/types/packages/sdk/src/connected-dataset-source.d.ts +48 -0
  92. package/dist/types/packages/sdk/src/connected-dataset-source.d.ts.map +1 -0
  93. package/dist/types/packages/sdk/src/connected-evidence-client.d.ts +2460 -0
  94. package/dist/types/packages/sdk/src/connected-evidence-client.d.ts.map +1 -0
  95. package/dist/types/packages/sdk/src/connected-evidence-contracts.d.ts +215 -0
  96. package/dist/types/packages/sdk/src/connected-evidence-contracts.d.ts.map +1 -0
  97. package/dist/types/packages/sdk/src/connected-evidence-http.d.ts +6 -0
  98. package/dist/types/packages/sdk/src/connected-evidence-http.d.ts.map +1 -0
  99. package/dist/types/packages/sdk/src/connected-evidence.d.ts +6 -0
  100. package/dist/types/packages/sdk/src/connected-evidence.d.ts.map +1 -0
  101. package/dist/types/packages/sdk/src/connected-recorded-execution.d.ts +690 -0
  102. package/dist/types/packages/sdk/src/connected-recorded-execution.d.ts.map +1 -0
  103. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts +771 -120
  104. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts.map +1 -1
  105. package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts +278 -38
  106. package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts.map +1 -1
  107. package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts +280 -40
  108. package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts.map +1 -1
  109. package/dist/types/packages/sdk/src/evaluation-coordination-http.d.ts +17 -0
  110. package/dist/types/packages/sdk/src/evaluation-coordination-http.d.ts.map +1 -0
  111. package/dist/types/packages/sdk/src/experiment-client.d.ts +3513 -52
  112. package/dist/types/packages/sdk/src/experiment-client.d.ts.map +1 -1
  113. package/dist/types/packages/sdk/src/experiment-contracts.d.ts +1017 -1
  114. package/dist/types/packages/sdk/src/experiment-contracts.d.ts.map +1 -1
  115. package/dist/types/packages/sdk/src/experiment-evaluation-schedules.d.ts +2780 -0
  116. package/dist/types/packages/sdk/src/experiment-evaluation-schedules.d.ts.map +1 -0
  117. package/dist/types/packages/sdk/src/experiment-grading-contracts.d.ts +8 -0
  118. package/dist/types/packages/sdk/src/experiment-grading-contracts.d.ts.map +1 -1
  119. package/dist/types/packages/sdk/src/experiment-improvement-client.d.ts +5724 -0
  120. package/dist/types/packages/sdk/src/experiment-improvement-client.d.ts.map +1 -0
  121. package/dist/types/packages/sdk/src/experiment-improvement-contracts.d.ts +13024 -0
  122. package/dist/types/packages/sdk/src/experiment-improvement-contracts.d.ts.map +1 -0
  123. package/dist/types/packages/sdk/src/experiment-improvement-hosted-adoption.d.ts +1361 -0
  124. package/dist/types/packages/sdk/src/experiment-improvement-hosted-adoption.d.ts.map +1 -0
  125. package/dist/types/packages/sdk/src/experiment-improvements.d.ts +4 -0
  126. package/dist/types/packages/sdk/src/experiment-improvements.d.ts.map +1 -0
  127. package/dist/types/packages/sdk/src/experiment-run-contracts.d.ts +262 -0
  128. package/dist/types/packages/sdk/src/experiment-run-contracts.d.ts.map +1 -1
  129. package/dist/types/packages/sdk/src/experiment-run-details.d.ts +1388 -1
  130. package/dist/types/packages/sdk/src/experiment-run-details.d.ts.map +1 -1
  131. package/dist/types/packages/sdk/src/experiment-scoring-contracts.d.ts +5 -2
  132. package/dist/types/packages/sdk/src/experiment-scoring-contracts.d.ts.map +1 -1
  133. package/dist/types/packages/sdk/src/experiments.d.ts +3 -0
  134. package/dist/types/packages/sdk/src/experiments.d.ts.map +1 -1
  135. package/dist/types/packages/sdk/src/grader-inspection.d.ts +307 -5
  136. package/dist/types/packages/sdk/src/grader-inspection.d.ts.map +1 -1
  137. package/dist/types/packages/sdk/src/harness-experiment-policy.d.ts +238 -0
  138. package/dist/types/packages/sdk/src/harness-experiment-policy.d.ts.map +1 -1
  139. package/dist/types/packages/sdk/src/human-review-client.d.ts +1267 -0
  140. package/dist/types/packages/sdk/src/human-review-client.d.ts.map +1 -0
  141. package/dist/types/packages/sdk/src/human-review.d.ts +3 -0
  142. package/dist/types/packages/sdk/src/human-review.d.ts.map +1 -0
  143. package/dist/types/packages/sdk/src/index.d.ts +10 -0
  144. package/dist/types/packages/sdk/src/index.d.ts.map +1 -1
  145. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts +181 -0
  146. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts.map +1 -1
  147. package/dist/types/packages/sdk/src/model-batch-review-contracts.d.ts +20 -4
  148. package/dist/types/packages/sdk/src/model-batch-review-contracts.d.ts.map +1 -1
  149. package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts +79 -5
  150. package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts.map +1 -1
  151. package/dist/types/packages/sdk/src/model-batch-review.d.ts +15 -13
  152. package/dist/types/packages/sdk/src/model-batch-review.d.ts.map +1 -1
  153. package/dist/types/packages/sdk/src/model-learning-policy.d.ts +359 -1
  154. package/dist/types/packages/sdk/src/model-learning-policy.d.ts.map +1 -1
  155. package/dist/types/packages/sdk/src/model-starter-attempts.d.ts +288 -19
  156. package/dist/types/packages/sdk/src/model-starter-attempts.d.ts.map +1 -1
  157. package/dist/types/packages/sdk/src/model-starter-catalog.d.ts +234 -12
  158. package/dist/types/packages/sdk/src/model-starter-catalog.d.ts.map +1 -1
  159. package/dist/types/packages/sdk/src/model-starter-execution.d.ts +78 -1
  160. package/dist/types/packages/sdk/src/model-starter-execution.d.ts.map +1 -1
  161. package/dist/types/packages/sdk/src/model-starters.d.ts +466 -13
  162. package/dist/types/packages/sdk/src/model-starters.d.ts.map +1 -1
  163. package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts +312 -4
  164. package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts.map +1 -1
  165. package/dist/types/packages/sdk/src/model-taskset-resources.d.ts +78 -1
  166. package/dist/types/packages/sdk/src/model-taskset-resources.d.ts.map +1 -1
  167. package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts +1282 -4
  168. package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts.map +1 -1
  169. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts +1285 -5
  170. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts.map +1 -1
  171. package/dist/types/packages/sdk/src/post-training.d.ts +3518 -0
  172. package/dist/types/packages/sdk/src/post-training.d.ts.map +1 -0
  173. package/dist/types/packages/sdk/src/profile-evaluation-discovery.d.ts +1127 -0
  174. package/dist/types/packages/sdk/src/profile-evaluation-discovery.d.ts.map +1 -0
  175. package/dist/types/packages/sdk/src/profile-external-dataset-package.d.ts +1369 -0
  176. package/dist/types/packages/sdk/src/profile-external-dataset-package.d.ts.map +1 -0
  177. package/dist/types/packages/sdk/src/taskset-authored-contracts.d.ts +142 -22
  178. package/dist/types/packages/sdk/src/taskset-authored-contracts.d.ts.map +1 -1
  179. package/dist/types/packages/sdk/src/taskset-authored-files.d.ts +111 -18
  180. package/dist/types/packages/sdk/src/taskset-authored-files.d.ts.map +1 -1
  181. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts +278 -38
  182. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts.map +1 -1
  183. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts +661 -103
  184. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts.map +1 -1
  185. package/dist/types/packages/sdk/src/taskset-draft-core.d.ts +217 -20
  186. package/dist/types/packages/sdk/src/taskset-draft-core.d.ts.map +1 -1
  187. package/dist/types/packages/sdk/src/taskset-draft-dataset-artifacts.d.ts +12 -12
  188. package/dist/types/packages/sdk/src/taskset-draft-dataset-sources.d.ts +17 -17
  189. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts +140 -20
  190. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts.map +1 -1
  191. package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts +638 -42
  192. package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts.map +1 -1
  193. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts +249 -36
  194. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts.map +1 -1
  195. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts +278 -38
  196. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts.map +1 -1
  197. package/dist/types/packages/sdk/src/taskset-drafts.d.ts +1 -0
  198. package/dist/types/packages/sdk/src/taskset-drafts.d.ts.map +1 -1
  199. package/dist/types/packages/sdk/src/taskset-package-client.d.ts +1322 -26
  200. package/dist/types/packages/sdk/src/taskset-package-client.d.ts.map +1 -1
  201. package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts +660 -12
  202. package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts.map +1 -1
  203. package/dist/types/packages/sdk/src/taskset-package-grader-projection.d.ts +77 -3
  204. package/dist/types/packages/sdk/src/taskset-package-grader-projection.d.ts.map +1 -1
  205. package/dist/types/packages/sdk/src/taskset-package-learning.d.ts +29 -11
  206. package/dist/types/packages/sdk/src/taskset-package-learning.d.ts.map +1 -1
  207. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts +430 -39
  208. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts.map +1 -1
  209. package/dist/types/packages/sdk/src/training-acceptance.d.ts +10 -10
  210. package/dist/types/packages/sdk/src/training-candidate-decisions.d.ts +2 -2
  211. package/dist/types/packages/sdk/src/training-evaluation-results.d.ts +1 -1
  212. package/dist/types/packages/sdk/src/training-learning-batch.d.ts +376 -42
  213. package/dist/types/packages/sdk/src/training-learning-batch.d.ts.map +1 -1
  214. package/dist/types/packages/sdk/src/training-preparations.d.ts +3930 -0
  215. package/dist/types/packages/sdk/src/training-preparations.d.ts.map +1 -1
  216. package/dist/types/packages/sdk/src/training-project-client.d.ts +776 -8
  217. package/dist/types/packages/sdk/src/training-project-client.d.ts.map +1 -1
  218. package/dist/types/packages/sdk/src/training-project-contracts.d.ts +1161 -11
  219. package/dist/types/packages/sdk/src/training-project-contracts.d.ts.map +1 -1
  220. package/dist/types/packages/sdk/src/training.d.ts +2655 -24
  221. package/dist/types/packages/sdk/src/training.d.ts.map +1 -1
  222. package/package.json +30 -2
  223. package/dist/chunk-2ZJRG3KL.js.map +0 -7
  224. package/dist/chunk-7B44TQZD.js.map +0 -7
  225. package/dist/chunk-JCPLAIZL.js.map +0 -7
  226. package/dist/chunk-LGEF4S5I.js.map +0 -7
  227. package/dist/chunk-PRRUBH2B.js +0 -314
  228. package/dist/chunk-PRRUBH2B.js.map +0 -7
  229. package/dist/chunk-W5TXWVFS.js.map +0 -7
  230. package/dist/chunk-Y4NGWGTA.js.map +0 -7
  231. /package/dist/{chunk-DT7FRNIZ.js.map → chunk-CSWVE3E6.js.map} +0 -0
  232. /package/dist/{chunk-I3TQTXKB.js.map → chunk-IXBSFJCX.js.map} +0 -0
  233. /package/dist/{chunk-I2YM3UY4.js.map → chunk-NHCGOFQW.js.map} +0 -0
  234. /package/dist/{chunk-32H2EJRA.js.map → chunk-R3M6BIOK.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/model-ordinary-taskset-reward.ts", "../src/model-batch-review.ts", "../src/model-batch-review-preparation.ts", "../src/taskset-package-projection.ts", "../src/taskset-draft-source.ts"],
4
- "sourcesContent": ["import { LearningTextAssetSchema, TaskDefinitionSchema, learningRef, sealLearningContent, type LearningTextAsset } from \"@openpond/evals/learning\";\nimport type { RewardBinding, RewardRelease } from \"@openpond/evals/rewards\";\nimport { compileModelTasksetReward } from \"./model-taskset-derivation.js\";\nimport { createTasksetPackage, resolveTasksetPackageInstructions, validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\nimport { decodeTasksetPackageFile } from \"./taskset-package-files.js\";\nimport { resolveTasksetPackageExecution } from \"./taskset-package-execution.js\";\n\n/** Bind a saved Reward without rewriting task envelopes, private context, tools\n * or arbitrary binary files. Compatibility is admission, not qualification. */\nexport function bindOrdinaryModelTasksetReward(input: {\n owner: { scopeId: string; modelId: string };\n source: TasksetPackage;\n rewardBinding: RewardBinding;\n rewards: RewardRelease[];\n assets: LearningTextAsset[];\n}): TasksetPackage {\n const source = validateTasksetPackage(input.source);\n if (source.modelResources || source.learningResources) throw new Error(\"Binding an ordinary Reward requires an ordinary source package.\");\n const instructions = resolveTasksetPackageInstructions(source);\n if (!instructions.trim()) throw new Error(\"Add collection instructions before selecting a saved Reward.\");\n const assets = new Map<string, LearningTextAsset>();\n const execution = resolveTasksetPackageExecution(source);\n for (const asset of execution?.assets ?? []) assets.set(asset.id, asset);\n const contextIds = new Set([\n ...source.taskset.tasks.flatMap(task => task.privilegedContextRef ? [task.privilegedContextRef] : []),\n ...[source.environment.actionSchemaRef, source.environment.observationSchemaRef, source.environment.stateSchemaRef].flatMap(ref => ref ? [ref.id] : []),\n ]);\n for (const id of contextIds) {\n if (assets.has(id)) continue;\n const file = source.files.find(file => file.asset.id === id);\n if (!file) throw new Error(`Source Taskset context is missing: ${id}.`);\n const text = new TextDecoder(\"utf-8\", { fatal: true }).decode(decodeTasksetPackageFile(file));\n assets.set(id, LearningTextAssetSchema.parse(sealLearningContent({ schemaVersion: \"openpond.learningTextAsset.v1\", id, revision: 1, asset: file.asset, text })));\n }\n for (const asset of input.assets) {\n const original = source.files.find(file => file.asset.id === asset.id);\n if (original && sealLearningContent({ asset: original.asset }).contentHash !== sealLearningContent({ asset: asset.asset }).contentHash) throw new Error(`Selected Reward conflicts with a source asset: ${asset.id}.`);\n assets.set(asset.id, asset);\n }\n const { policy, environment, environmentRelease, tools, capabilities, verifierSetRelease } = source.taskset;\n const taskDefinition = TaskDefinitionSchema.parse(sealLearningContent({\n schemaVersion: \"openpond.taskDefinition.v1\", id: `${source.taskset.id}-definition`, revision: 1,\n name: source.taskset.id, description: \"\", instructions, category: \"custom\", familyNamespace: source.taskset.id,\n inputSchema: { type: \"object\" }, outputSchema: { type: \"object\" },\n rewardBinding: learningRef(input.rewardBinding), harness: null,\n execution: { policy, environment, environmentRelease, tools, capabilities, verifierSetRelease },\n }));\n const derived = compileModelTasksetReward({ ...input, assets: [...assets.values()], source: {\n taskset: source.taskset, taskDefinition, instructionMode: \"per_task\",\n executionResources: { environment: source.environment, verifierSet: source.verifierSet },\n ...(execution ? { execution: execution.execution } : {}),\n } });\n const files = new Map(source.files.map(file => [file.asset.id, file]));\n for (const asset of derived.assets) {\n let raw = \"\";\n for (const byte of new TextEncoder().encode(asset.text)) raw += String.fromCharCode(byte);\n files.set(asset.id, { asset: asset.asset, base64: btoa(raw) });\n }\n const { taskset, executionResources, ...modelResources } = derived;\n return createTasksetPackage({ schemaVersion: \"openpond.tasksetPackage.v1\", taskset, ...executionResources!, modelResources, files: [...files.values()] });\n}\n", "import { contentHash } from \"@openpond/harness\";\nimport { LearningDomainError, learningRef, sameLearningRef, requireLearningRelease, requireLearningResource, taskBatchPackageMetadata,\n type LearningResourcePointer, type LearningTransaction } from \"@openpond/evals/learning\";\nimport { validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\nimport { ModelBatchReviewInspectionSchema, ModelBatchReviewReceiptSchema, ModelBatchReviewRequestSchema, type ModelBatchReviewRequest } from \"./model-batch-review-contracts.js\";\nimport { prepareModelBatchReview } from \"./model-batch-review-preparation.js\";\n\nexport * from \"./model-batch-review-contracts.js\";\nexport { LearningDomainError as ModelBatchReviewError } from \"@openpond/evals/learning\";\n\nconst operation = (request: ModelBatchReviewRequest) => `model-batch-review-${contentHash([request.modelId, request.operationId])}`;\n\nexport function inspectModelBatchPackage(raw: unknown) {\n const value = validateTasksetPackage(raw);\n if (!value.learningResources) throw new LearningDomainError(\"model_review_batch_required\", 422);\n const metadata = taskBatchPackageMetadata(value.taskset);\n return ModelBatchReviewInspectionSchema.parse({ schemaVersion: \"openpond.modelBatchReviewInspection.v1\", packageHash: value.contentHash,\n definition: metadata.definition, binding: metadata.binding, evidence: value.learningResources.evidence, decisions: value.learningResources.decisions });\n}\n\nexport async function findModelBatchReview(transaction: LearningTransaction, raw: ModelBatchReviewRequest) {\n const request = ModelBatchReviewRequestSchema.parse(raw);\n const prior = await transaction.operation(operation(request));\n if (!prior) return null;\n if (prior.requestHash !== contentHash(request)) throw new LearningDomainError(\"learning_idempotency_conflict\", 409);\n return readReceipt(transaction, request, prior.resources);\n}\n\n/** Run inside the host's scope/Model revision transaction after verifying the\n * selected source package. This publishes new editable evidence, never a Model\n * attachment, admission, source credential, grade, or training job. */\nexport async function beginModelBatchReview(transaction: LearningTransaction, input: {\n scope: string; request: ModelBatchReviewRequest; package: TasksetPackage; now: string;\n}) {\n const request = ModelBatchReviewRequestSchema.parse(input.request);\n const prior = await findModelBatchReview(transaction, request);\n if (prior) return prior;\n const value = validateTasksetPackage(input.package);\n if (!value.learningResources) throw new LearningDomainError(\"model_review_batch_required\", 422);\n const metadata = taskBatchPackageMetadata(value.taskset);\n const selected = request.rewardBindingRef;\n const retained = !selected || sameLearningRef(selected, learningRef(metadata.binding));\n const binding = retained ? metadata.binding : await requireLearningRelease(transaction, \"binding\", selected);\n const rewards = retained ? metadata.rewards : await Promise.all(binding.sources.map(source => requireLearningRelease(transaction, \"reward\", source.reward)));\n const assetIds = new Set(rewards.flatMap(reward => [...reward.assets,\n ...(\"verifierRef\" in reward.implementation ? [reward.implementation.verifierRef] : []),\n ...(\"rubricRef\" in reward.implementation ? [reward.implementation.rubricRef] : []),\n ...(\"inputContract\" in reward.implementation ? [reward.implementation.inputContract] : []),\n ]).map(asset => asset.id));\n const assets = retained ? value.learningResources.assets : await Promise.all([...assetIds].map(id => requireLearningResource(transaction, \"asset\", id, 1)));\n const prepared = prepareModelBatchReview({ ...input, request, package: value, binding, rewards, assets });\n const pointers: LearningResourcePointer[] = [];\n for (const asset of prepared.assets) {\n const existing = await transaction.get(\"asset\", asset.id, 1);\n if (existing && existing.contentHash !== asset.contentHash) throw new LearningDomainError(\"model_review_asset_conflict\", 409);\n if (!existing) await transaction.put(\"asset\", asset, 0);\n }\n for (const reward of prepared.rewards) await transaction.put(\"reward\", reward, 0);\n await transaction.put(\"binding\", prepared.binding, 0);\n await transaction.put(\"definition\", prepared.definition, 0);\n await transaction.put(\"source\", prepared.source, 0, { parentId: request.modelId });\n pointers.push({ kind: \"source\", id: prepared.source.id, revision: 1 });\n for (const evidence of prepared.evidence) {\n await transaction.put(\"evidence\", evidence, 0, { parentId: prepared.source.id });\n pointers.push({ kind: \"evidence\", id: evidence.id, revision: 1 });\n }\n for (const proposal of prepared.proposals) {\n await transaction.put(\"feedback\", proposal, 0, { parentId: proposal.evidence!.id, status: proposal.status });\n pointers.push({ kind: \"feedback\", id: proposal.id, revision: 1 });\n }\n await transaction.saveOperation(operation(request), { requestHash: contentHash(request), resources: pointers });\n return readReceipt(transaction, request, pointers);\n}\n\nasync function readReceipt(transaction: LearningTransaction, request: ModelBatchReviewRequest, pointers: LearningResourcePointer[]) {\n const resources = await Promise.all(pointers.map(pointer => requireLearningResource(transaction, pointer.kind, pointer.id, pointer.revision)));\n return ModelBatchReviewReceiptSchema.parse({ schemaVersion: \"openpond.modelBatchReviewReceipt.v1\", operationId: request.operationId,\n modelId: request.modelId, source: resources.find(resource => resource.schemaVersion === \"openpond.learningSource.v1\"),\n evidence: resources.filter(resource => resource.schemaVersion === \"openpond.taskEvidence.v1\"),\n proposals: resources.filter(resource => resource.schemaVersion === \"openpond.taskFeedbackRecord.v1\"),\n });\n}\n", "import { contentHash } from \"@openpond/harness\";\nimport { LearningDomainError, LearningSourceSchema, TaskDefinitionSchema, TaskEvidenceSchema, TaskFeedbackSchema,\n assertLearningContentHash, learningEvidenceId, learningRef, sameLearningRef, sealLearningContent,\n taskBatchPackageMetadata, verifyLearningTextAsset, type LearningTextAsset } from \"@openpond/evals/learning\";\nimport { compileBoundGraders, createRewardBinding, createRewardRelease, resolveBoundRewards, type RewardBinding, type RewardRelease } from \"@openpond/evals/rewards\";\nimport type { TasksetPackage } from \"./taskset-package-contracts.js\";\nimport type { ModelBatchReviewRequest } from \"./model-batch-review-contracts.js\";\n\n/** Hosts supply the authorized package and selected Reward graph. Only this\n * new namespace becomes editable; parent sources and decisions are not copied. */\nexport function prepareModelBatchReview(input: {\n scope: string; request: ModelBatchReviewRequest; package: TasksetPackage; now: string;\n binding: RewardBinding; rewards: RewardRelease[]; assets: LearningTextAsset[];\n}) {\n const { request, package: value } = input;\n const learning = value.learningResources;\n if (!learning) throw new LearningDomainError(\"model_review_batch_required\", 422);\n const metadata = taskBatchPackageMetadata(value.taskset);\n const id = `model-review-${contentHash([input.scope, request.modelId, request.operationId])}`;\n const edits = new Map(request.examples.map(edit => [contentHash(edit.evidence), edit]));\n const parentRefs = new Set(learning.evidence.map(evidence => contentHash(learningRef(evidence))));\n const decisions = new Map(learning.decisions.map(decision => [contentHash(decision.evidence), decision]));\n if (edits.size !== request.examples.length || request.examples.some(edit => !parentRefs.has(contentHash(edit.evidence)))) {\n throw new LearningDomainError(\"model_review_evidence_mismatch\", 409);\n }\n for (const resource of [input.binding, ...input.rewards, ...input.assets]) assertLearningContentHash(resource);\n resolveBoundRewards(input.binding, input.rewards);\n const rewardByHash = new Map<string, RewardRelease>();\n for (const source of input.binding.sources) {\n const original = input.rewards.find(reward => sameLearningRef(learningRef(reward), source.reward))!;\n const { contentHash: _hash, ...content } = original;\n rewardByHash.set(original.contentHash, createRewardRelease({ ...content, id: `${id}-reward-${original.contentHash}`, revision: 1 }));\n }\n const rewards = [...rewardByHash.values()];\n const { contentHash: _bindingHash, recipeRef: _recipe, ...bindingContent } = input.binding;\n const binding = createRewardBinding({ ...bindingContent, id: `${id}-binding`, revision: 1,\n sources: input.binding.sources.map(source => ({ ...source, reward: learningRef(rewardByHash.get(source.reward.contentHash)!) })),\n }, rewards);\n const assetRefs = rewards.flatMap(reward => [...reward.assets,\n ...(\"verifierRef\" in reward.implementation ? [reward.implementation.verifierRef] : []),\n ...(\"rubricRef\" in reward.implementation ? [reward.implementation.rubricRef] : []),\n ...(\"inputContract\" in reward.implementation ? [reward.implementation.inputContract] : []),\n ]);\n const assets = [...new Map(assetRefs.map(ref => {\n const asset = input.assets.find(asset => asset.id === ref.id);\n if (!asset) throw new LearningDomainError(\"model_review_reward_asset_missing\", 422);\n verifyLearningTextAsset(asset, ref);\n if (ref.visibility === \"policy\") throw new LearningDomainError(\"reward_asset_visibility_invalid\", 422);\n return [asset.id, asset] as const;\n })).values()];\n // New graders invalidate the parent's verifier-set identity. Preparation of\n // the newly sealed batch will bind its own exact execution releases.\n const { environmentRelease: _environment, verifierSetRelease: _verifiers, ...execution } = metadata.definition.execution;\n const { contentHash: _definitionHash, ...definitionContent } = metadata.definition;\n const definition = TaskDefinitionSchema.parse(sealLearningContent({ ...definitionContent, ...request.definition,\n id: `${id}-definition`, revision: 1, rewardBinding: learningRef(binding), execution: { ...execution,\n policy: { ...execution.policy, hiddenGraderRefs: compileBoundGraders(binding, rewards).filter(grader => grader.privileged).map(grader => grader.id) },\n },\n }));\n const source = LearningSourceSchema.parse(sealLearningContent({\n schemaVersion: \"openpond.learningSource.v1\", id, revision: 1, name: `${definition.name} review`, kind: \"direct\",\n taskDefinition: learningRef(definition), enabled: true, allowedSplits: [...new Set(learning.evidence.map(item => item.submission.split))],\n mapping: null, adapterVersion: null, reviewOrigin: { modelId: request.modelId, packageHash: value.contentHash,\n taskset: learningRef(value.taskset), batch: learningRef(learning.batch), rewardBinding: learningRef(input.binding) },\n }));\n const evidence = learning.evidence.map(parent => {\n const edit = edits.get(contentHash(learningRef(parent)));\n // Example/attempt IDs are unique within the original source, not across\n // all sources in a batch. Preserve both parents when merging namespaces.\n const attemptId = `review-${parent.contentHash}`;\n const policyChanged = contentHash({ instructions: definition.instructions, inputSchema: definition.inputSchema, outputSchema: definition.outputSchema, requiredOutputs: definition.requiredOutputs ?? [],\n input: edit?.input ?? parent.submission.input }) !== contentHash({ instructions: metadata.definition.instructions,\n inputSchema: metadata.definition.inputSchema, outputSchema: metadata.definition.outputSchema, requiredOutputs: metadata.definition.requiredOutputs ?? [], input: parent.submission.input });\n return TaskEvidenceSchema.parse(sealLearningContent({\n schemaVersion: \"openpond.taskEvidence.v1\", id: learningEvidenceId(source.id, parent.submission.exampleId, attemptId), revision: 1,\n source: learningRef(source), submission: { ...parent.submission, sourceId: source.id, taskDefinition: learningRef(definition),\n attemptId,\n // The old response was observed under the old policy-visible task. Its\n // parent snapshot remains available, but it is not a run of new inputs.\n observedOutput: policyChanged ? null : parent.submission.observedOutput,\n idempotencyKey: `${id}-${parent.contentHash}`, ...(edit?.input === undefined ? {} : { input: edit.input }),\n ...(edit?.expected === undefined ? {} : { expected: edit.expected }),\n ...(edit?.evaluatorContext === undefined ? {} : { evaluatorContext: edit.evaluatorContext }),\n }, supersedes: learningRef(parent), correctionFeedbackId: null, receivedAt: input.now,\n }));\n });\n const proposals = evidence.flatMap(item => {\n const edit = edits.get(contentHash(item.supersedes));\n const decision = decisions.get(contentHash(item.supersedes))!;\n const target = edit?.proposedTarget === undefined ? decision.approvedTarget : edit.proposedTarget;\n return target === null ? [] : [TaskFeedbackSchema.parse({\n schemaVersion: \"openpond.taskFeedbackRecord.v1\", id: `feedback-${contentHash([id, item.id])}`, revision: 1,\n submission: { schemaVersion: \"openpond.taskFeedback.v1\", sourceId: source.id, idempotencyKey: `${id}-${item.id}`,\n exampleId: item.submission.exampleId, attemptId: item.submission.attemptId, expectedEvidenceHash: item.contentHash,\n occurredAt: input.now, kind: \"target_correction\", value: target, note: \"Proposed target for the revised task. Grade and review before admission.\" },\n status: \"pending_review\", evidence: learningRef(item), createdAt: input.now, review: null,\n })];\n });\n return { source, definition, binding, rewards, assets, evidence, proposals };\n}\n", "import { GraderFixtureSchema, TasksetEnvironmentResourceSchema, TasksetSourceRefSchema } from \"./taskset-draft-core.js\";\nimport { TasksetSchema, type GeneratedTaskFile } from \"./taskset-authored-contracts.js\";\nimport { contentHash } from \"@openpond/harness\";\nimport { learningRef, taskBatchPackageMetadata, verifyLearningTextAsset } from \"@openpond/evals/learning\";\nimport { computeTasksetHash } from \"./taskset-authored-validation.js\";\nimport { createTasksetDraft } from \"./taskset-draft-authoring.js\";\nimport { learningVerifierModule, projectLearningBatchGraders, importedPackageGraders } from \"./taskset-package-grader-projection.js\";\nimport { decodeTasksetPackageFile, resolveTasksetPackageInstructions, validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\n\n/** Local identity includes Profile and provenance; portable identity stays in\n * the receipt. Downloading does not approve targets, privacy or licensing. */\nexport function prepareImportedTasksetPackage(input: {\n package: TasksetPackage; profileId: string; name: string; createdAt: string;\n}) {\n const value = validateTasksetPackage(input.package);\n const release = value.taskset;\n const resources = value.modelResources;\n const learning = value.learningResources ? taskBatchPackageMetadata(release) : undefined;\n const source = TasksetSourceRefSchema.parse({\n schemaVersion: \"openpond.uploadedFileDatasetSource.v1\", kind: \"uploaded_file\",\n id: `package-source-${contentHash({ profileId: input.profileId, packageHash: value.contentHash })}`,\n profileId: input.profileId, title: input.name, sourceHash: value.contentHash, occurredAt: input.createdAt,\n licensingStatus: \"pending\", secretScanStatus: \"pending\", piiScanStatus: \"pending\",\n originalFileNames: [\"taskset-package.json\"], mediaTypes: [\"application/json\"], sourceFileHashes: [value.contentHash],\n totalBytes: new TextEncoder().encode(JSON.stringify(value)).byteLength, parserVersion: \"openpond.tasksetPackage.v1\", metadata: {},\n });\n const draft = createTasksetDraft({ profileId: input.profileId, id: `${release.id}-import`, name: input.name, now: input.createdAt });\n const files: GeneratedTaskFile[] = [];\n for (const grader of release.graders) if (grader.kind === \"custom_verifier\") {\n const asset = resources?.assets.find(asset => asset.id === grader.verifierRef.id);\n const file = value.files.find(file => file.asset.id === grader.verifierRef.id);\n if (!file) throw new Error(`Imported verifier source is missing: ${grader.id}.`);\n const name = learningVerifierModule(grader.verifierRef.contentHash);\n if (!files.some(file => file.path === name)) files.push({ path: name, role: \"verifier\", content: asset ? verifyLearningTextAsset(asset, grader.verifierRef) : new TextDecoder(\"utf-8\", { fatal: true }).decode(decodeTasksetPackageFile(file)) });\n }\n const authoring = (release.metadata.ordinaryAuthoring ?? release.metadata.starterAuthoring) as { graderFixtures?: unknown } | undefined;\n const fixtures = GraderFixtureSchema.array().max(100_000).parse(authoring?.graderFixtures ?? []);\n const kind = release.environment.kind === \"text\" ? \"chat\" : release.environment.kind === \"custom_program\" ? \"program\" : release.environment.kind;\n const projected = TasksetSchema.parse({\n schemaVersion: \"openpond.taskset.v1\", id: release.id, revision: release.revision,\n profileId: input.profileId, profileRelease: null, createImproveRunId: null,\n name: input.name, objective: resolveTasksetPackageInstructions(value), status: \"needs_review\",\n sourceRefs: [source], datasetArtifact: null, policy: release.policy,\n environment: { ...draft.environment, kind, entrypoint: release.environment.entrypoint,\n resources: TasksetEnvironmentResourceSchema.array().max(10_000).parse(release.metadata.environmentResources ?? []),\n stateful: release.environment.stateful, deterministicSeeds: release.environment.deterministicSeeds,\n toolNames: release.tools.map(tool => tool.name), defaultTimeoutMs: release.environment.defaultTimeoutMs,\n networkPolicy: release.environment.networkPolicy, metadata: {\n runtimeSourceTasksetId: tasksetPackageSourceId(input.profileId, value.contentHash),\n portableEnvironment: release.environment, portableTools: release.tools,\n portableExecutionResources: { environment: value.environment, verifierSet: value.verifierSet },\n } },\n capabilities: { ...draft.capabilities, taskKind: kind === \"chat\" ? \"chat\" : kind === \"program\" ? \"custom_program\" : \"single_agent\",\n compatibleMethods: [\"none\"], requiresTools: release.tools.length > 0, requiresState: release.environment.stateful,\n rewardKinds: [...new Set(release.graders.map(grader => grader.kind === \"human\" ? \"human\" : grader.kind === \"model_judge\" ? \"model_judge\" : \"deterministic\"))],\n },\n tasks: release.tasks.map(task => ({ ...task, schemaVersion: \"openpond.taskData.v1\", sourceRefs: [source.id],\n assets: task.artifactRefs.map(asset => ({ id: asset.id, sourceRefId: source.id, artifactRef: asset.path,\n fileName: asset.path.split(\"/\").at(-1)!, mediaType: asset.mediaType, sha256: asset.contentHash,\n sizeBytes: asset.sizeBytes, split: task.split, metadata: { portableAsset: asset } })),\n ...(task.requiredOutputs ? { requiredOutputs: task.requiredOutputs.map(output => ({ ...output,\n schemaRef: output.schemaRef?.id ?? null, maxBytes: output.maxBytes ?? undefined })) } : {}),\n metadata: { portableTaskRecord: task, exampleOrigin: \"imported\" },\n })),\n graders: resources ? projectLearningBatchGraders(resources.rewardBinding, resources.rewards, resources.assets)\n : learning ? projectLearningBatchGraders(learning.binding, learning.rewards, value.learningResources!.assets) : importedPackageGraders(value),\n graderFixtures: fixtures, learningSignals: draft.learningSignals,\n ...(release.metrics ? { metrics: release.metrics } : {}),\n authoringProvenance: { schemaVersion: \"openpond.taskAuthoringProvenance.v1\", model: null, modelConfig: {},\n skillHash: contentHash(\"openpond-package-import-v1\"), promptTemplateVersion: \"package-import-v1\", buildIntent: \"discovery\",\n buildSpecification: null, evidenceHashes: [value.contentHash], tasksetSdkVersion: \"package-import-v1\",\n sourceCommit: null, repairHistory: [], createdAt: input.createdAt },\n readiness: null, contentHash: \"00000000\", createdAt: input.createdAt, updatedAt: input.createdAt,\n metadata: { importedPackageHash: value.contentHash,\n ...(learning ? { learning } : {}),\n portableFileInventory: value.files.map(file => ({ asset: file.asset, sourcePath: file.asset.path })),\n ...(resources ? { taskDefinition: learningRef(resources.taskDefinition),\n rewardBinding: learningRef(resources.rewardBinding), rewardExecution: { binding: resources.rewardBinding, rewards: resources.rewards } } : {}),\n portableCapabilities: release.capabilities, derivedPortableMetadata: release.metadata,\n ...(release.metadata.modelTasksetDerivation ? { modelTasksetDerivation: release.metadata.modelTasksetDerivation } : {}),\n },\n });\n return { package: value, taskset: TasksetSchema.parse({ ...projected, contentHash: computeTasksetHash(projected) }), generatedFiles: files };\n}\n\nexport type PreparedImportedTasksetPackage = ReturnType<typeof prepareImportedTasksetPackage> & { reuseExisting?: boolean };\n\n/** Stable source identity; it is never an authorization or object-store pointer. */\nexport function tasksetPackageSourceId(profileId: string, packageHash: string): string {\n return `package-${contentHash({ profileId, packageHash })}`;\n}\n", "import { z } from \"zod\";\nimport { contentHash, sha256 } from \"@openpond/harness\";\nimport { learningRef, sameLearningRef } from \"@openpond/evals/learning\";\nimport { ModelTasksetDraftPreparationSchema, TasksetDraftFilePathSchema, type ModelTasksetDraftPreparation } from \"./model-taskset-authoring-contracts.js\";\nimport { TasksetDraftSchema, type TasksetDraft } from \"./taskset-draft-document.js\";\nimport { AuthoredTasksetFileInventorySchema } from \"./taskset-authored-files.js\";\nimport { validateTasksetPackage, type TasksetPackage } from \"./taskset-package-contracts.js\";\nimport { isManagedTasksetDraftFilePath } from \"./taskset-draft-files.js\";\nimport { configuredTasksetDraftFiles } from \"./taskset-draft-manifests.js\";\nimport { createTasksetDraftWorkspace, decodeTasksetDraftWorkspaceFile, type TasksetDraftWorkspaceFile } from \"./taskset-draft-workspace.js\";\n\nexport const TasksetDraftSourceInitializationSchema = z.object({\n draft: TasksetDraftSchema,\n filePaths: z.array(z.object({ assetId: z.string().min(1), paths: z.array(TasksetDraftFilePathSchema).min(1).max(10_000) }).strict()).max(10_000),\n}).strict();\nexport type TasksetDraftSourceInitialization = z.infer<typeof TasksetDraftSourceInitializationSchema>;\n\n/** Hosts authorize the source projection and retain this result before writes.\n * Ownership comes from preparation, never from editable projection metadata. */\nexport function prepareTasksetDraftSource(input: { sourceDraft: TasksetDraft; source: TasksetPackage; preparation: ModelTasksetDraftPreparation; expectedModelRevision: number }): TasksetDraftSourceInitialization {\n const source = validateTasksetPackage(input.source);\n const original = TasksetDraftSchema.parse(input.sourceDraft);\n const preparation = ModelTasksetDraftPreparationSchema.parse(input.preparation);\n if (source.contentHash !== preparation.sourcePackageHash || !sameLearningRef(learningRef(source.taskset), preparation.sourceTasksetRef)) throw new Error(\"Taskset draft preparation differs from its source package.\");\n if (source.learningResources) throw new Error(\"Reviewed Tasksets require their reviewed authoring workflow.\");\n if (Boolean(source.modelResources) !== (preparation.authoringGraph === \"bound\")) throw new Error(\"Taskset draft authoring graph differs from its source.\");\n const inventory = AuthoredTasksetFileInventorySchema.parse(original.metadata.portableFileInventory ?? []);\n const sourcePath = (relative: string) => isManagedTasksetDraftFilePath(relative)\n ? `source-artifacts/${source.contentHash}/${contentHash(relative)}/${relative.split(\"/\").at(-1)!}` : relative;\n const references = [...original.tasks.flatMap(task => (task.assets ?? []).map(asset => asset.artifactRef)),\n ...(original.environment.resources ?? []).map(resource => resource.path),\n ...source.taskset.tasks.flatMap(task => (task.requiredOutputs ?? []).flatMap(output => output.schemaRef ? [output.schemaRef.path] : [])),\n ...(original.metrics.customAggregator ? [original.metrics.customAggregator.module] : []),\n ...original.graders.flatMap(grader => grader.kind === \"custom_verifier\" ? [grader.module] : [])];\n if (references.some(isManagedTasksetDraftFilePath)) throw new Error(\"A referenced source asset occupies a reserved Taskset authoring path.\");\n const filePaths = source.files.map(file => {\n const paths = new Set([file.asset.path]);\n for (const entry of inventory) if (entry.asset.id === file.asset.id) paths.add(entry.sourcePath);\n for (const task of original.tasks) for (const asset of task.assets ?? []) if (asset.id === file.asset.id) paths.add(asset.artifactRef);\n for (const grader of source.taskset.graders) if (grader.kind === \"custom_verifier\" && grader.verifierRef.id === file.asset.id) {\n const projected = original.graders.find(candidate => candidate.id === grader.id);\n if (projected?.kind === \"custom_verifier\") paths.add(projected.module);\n }\n return { assetId: file.asset.id, paths: [...paths].map(sourcePath) };\n });\n const metadata = { ...original.metadata };\n if (source.modelResources) for (const key of [\"taskDefinition\", \"rewardBinding\", \"rewardExecution\", \"derivedPortableMetadata\", \"modelTasksetDerivation\", \"importedPackageHash\"]) delete metadata[key];\n const draft = TasksetDraftSchema.parse({ ...original, id: preparation.draftId, revision: 1, status: \"draft\",\n graders: original.graders.map(grader => ({ ...grader, metadata: { ...grader.metadata,\n portableGrader: source.taskset.graders.find(candidate => candidate.id === grader.id) } })),\n environment: { ...original.environment, metadata: { ...original.environment.metadata, portableExecutionResources: { environment: source.environment } } },\n modelScope: { modelId: preparation.lineage.owner.modelId, expectedModelRevision: input.expectedModelRevision, source: preparation },\n publishedTasksetRef: preparation.tasksetRevision > 1 ? preparation.sourceTasksetRef : null,\n metadata: { ...metadata, modelTasksetAuthoring: preparation.lineage,\n portableFileInventory: inventory.map(entry => ({ ...entry, sourcePath: sourcePath(entry.sourcePath), asset: { ...entry.asset,\n id: isManagedTasksetDraftFilePath(entry.sourcePath) ? `source-artifact-${contentHash({ packageHash: source.contentHash, assetId: entry.asset.id })}` : entry.asset.id,\n path: sourcePath(entry.asset.path) } })) },\n });\n return TasksetDraftSourceInitializationSchema.parse({ draft, filePaths });\n}\n\n/** Materialize the retained source into an immutable draft snapshot. Callers\n * must never replace a newer saved snapshot with this initial population. */\nexport function materializeTasksetDraftWorkspace(input: { initialized: TasksetDraftSourceInitialization; source: TasksetPackage }) {\n const initialized = TasksetDraftSourceInitializationSchema.parse(input.initialized);\n const source = validateTasksetPackage(input.source);\n if (initialized.draft.modelScope?.source?.sourcePackageHash !== source.contentHash) throw new Error(\"Taskset draft lost its source preparation.\");\n const files = new Map<string, TasksetDraftWorkspaceFile>();\n for (const mapping of initialized.filePaths) {\n const file = source.files.find(candidate => candidate.asset.id === mapping.assetId);\n if (!file) throw new Error(\"Taskset draft source asset is missing.\");\n for (const path of mapping.paths) {\n const previous = files.get(path);\n if (previous && previous.contentHash !== file.asset.contentHash) throw new Error(\"Taskset draft source paths conflict.\");\n files.set(path, { path, contentHash: file.asset.contentHash, sizeBytes: file.asset.sizeBytes, base64: file.base64 });\n }\n }\n for (const configured of configuredTasksetDraftFiles(initialized.draft)) if (!files.has(configured.relativePath)) {\n const bytes = new TextEncoder().encode(configured.source);\n files.set(configured.relativePath, { path: configured.relativePath, contentHash: sha256(bytes), sizeBytes: bytes.byteLength, base64: Buffer.from(bytes).toString(\"base64\") });\n }\n let draft = initialized.draft;\n if (draft.metrics.customAggregator) {\n const file = files.get(draft.metrics.customAggregator.module);\n if (!file) throw new Error(\"Declared Taskset metric module is missing.\");\n decodeTasksetDraftWorkspaceFile(file);\n draft = TasksetDraftSchema.parse({ ...draft, metrics: { ...draft.metrics, customAggregator: { ...draft.metrics.customAggregator, contentHash: file.contentHash } } });\n }\n return createTasksetDraftWorkspace({ schemaVersion: \"openpond.tasksetDraftWorkspace.v1\", draft, files: [...files.values()] });\n}\n"],
5
- "mappings": "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",
6
- "names": ["file", "LearningDomainError", "learningRef", "sameLearningRef", "taskBatchPackageMetadata", "TaskDefinitionSchema", "learningRef", "sealLearningContent", "evidence", "source", "asset", "LearningDomainError", "taskBatchPackageMetadata", "sameLearningRef", "learningRef", "learningRef", "taskBatchPackageMetadata", "verifyLearningTextAsset", "taskBatchPackageMetadata", "asset", "file", "verifyLearningTextAsset", "learningRef", "learningRef", "sameLearningRef", "sameLearningRef", "learningRef"]
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
7
  }
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  learningVerifierModule,
3
3
  projectLearningBatchGraders
4
- } from "./chunk-I2YM3UY4.js";
4
+ } from "./chunk-NHCGOFQW.js";
5
5
  import {
6
6
  resolvePortableTasksetRewardExecution
7
- } from "./chunk-DT7FRNIZ.js";
7
+ } from "./chunk-CSWVE3E6.js";
8
8
  import {
9
9
  LearningBatchDatasetSourceRefSchema,
10
10
  TasksetSchema,
11
11
  computeTasksetHash
12
- } from "./chunk-LGEF4S5I.js";
12
+ } from "./chunk-XJDWHTH5.js";
13
13
  import {
14
14
  MAX_TASKSET_PACKAGE_BYTES
15
15
  } from "./chunk-JA3KFK3U.js";
@@ -23,7 +23,14 @@ import {
23
23
  trainingEvaluationSourceRef,
24
24
  trainingInputArtifactUploadHash,
25
25
  trainingJobSubmissionHash
26
- } from "./chunk-JCPLAIZL.js";
26
+ } from "./chunk-5U25KAJM.js";
27
+ import {
28
+ TrainingHandoffOriginSchema
29
+ } from "./chunk-KQWCXW3A.js";
30
+ import "./chunk-XEUOJ5WF.js";
31
+ import "./chunk-2NSNBED7.js";
32
+ import "./chunk-WX22WN33.js";
33
+ import "./chunk-2JKV5OJO.js";
27
34
  import "./chunk-TCHAWJMB.js";
28
35
  import "./chunk-3KXDH6OB.js";
29
36
  import {
@@ -32,7 +39,7 @@ import {
32
39
  createHarnessRelease,
33
40
  validateHarnessPolicySourcePackage,
34
41
  validateHarnessSourcePackage
35
- } from "./chunk-Y4NGWGTA.js";
42
+ } from "./chunk-I2MBVOVX.js";
36
43
  import {
37
44
  ImmutableReleaseRefSchema,
38
45
  ReleaseHashSchema,
@@ -351,7 +358,8 @@ async function prepareManagedTrainingSubmission(raw) {
351
358
  if (contentHash(manifestContent) !== manifestHash || contentHash(bundleContent) !== bundleHash || manifest.resolvedBundleHash !== bundleHash || contentHash(manifest.harnessRelease) !== contentHash(bundle.harnessRelease) || contentHash(manifest.datasetRelease) !== contentHash(bundle.datasetRelease) || contentHash(manifest.evidenceSets) !== contentHash(bundle.evidenceSetRelease ? [bundle.evidenceSetRelease] : [])) {
352
359
  throw new Error("The managed training manifest or resolved bundle changed.");
353
360
  }
354
- if (!project.hosted || project.hosted.syncedSourceRevision !== project.revision || project.hosted.portableProjectId !== project.id) throw new Error("Sync the exact Model Project revision before preparing managed training.");
361
+ if (!project.hosted || project.hosted.syncedSourceRevision !== project.revision || project.hosted.portableProjectId !== project.id)
362
+ throw new Error("Sync the exact Model Project revision before preparing managed training.");
355
363
  const baseModel = project.trainingSetup.baseModel;
356
364
  if (!baseModel || baseModel.modelId !== manifest.model.source || baseModel.revision !== manifest.model.revision || baseModel.tokenizerRevision !== manifest.model.tokenizerRevision || baseModel.chatTemplateHash !== manifest.model.chatTemplateHash) {
357
365
  throw new Error("The synced Model Project base Model does not match the Run manifest.");
@@ -360,7 +368,8 @@ async function prepareManagedTrainingSubmission(raw) {
360
368
  throw new Error("Managed training requires the exact approved GRPO recipe and spend ceiling.");
361
369
  }
362
370
  const limits = z2.object({ wallTimeMs: z2.number().positive() }).parse(recipe.resourceLimits);
363
- if (input.idempotencyKey !== void 0) z2.string().trim().min(16).max(191).parse(input.idempotencyKey);
371
+ if (input.idempotencyKey !== void 0)
372
+ z2.string().trim().min(16).max(191).parse(input.idempotencyKey);
364
373
  const files = verifyFiles(bundle, input.files);
365
374
  const evaluationSource = TrainingEvaluationSourceSchema.parse(input.evaluationSource);
366
375
  const evaluationFile = files.find((file) => file.path === TRAINING_EVALUATION_SOURCE_PATH);
@@ -370,10 +379,14 @@ async function prepareManagedTrainingSubmission(raw) {
370
379
  const evaluation = await trainingEvaluationSourceRef(evaluationSource);
371
380
  const payload = {
372
381
  schemaVersion: "openpond.managedRlPortableSubmission.v1",
382
+ ...input.origin ? { origin: TrainingHandoffOriginSchema.parse(input.origin) } : {},
373
383
  sourceRunRef: `openpond:model-run:${manifest.id}`,
374
384
  name: `OpenPond Managed \xB7 ${project.id}`.slice(0, 191),
375
385
  idempotencyKey: input.idempotencyKey ?? `openpond-managed:${manifestHash}`.slice(0, 191),
376
- modelProject: { id: project.hosted.projectId, portableProjectId: project.hosted.portableProjectId },
386
+ modelProject: {
387
+ id: project.hosted.projectId,
388
+ portableProjectId: project.hosted.portableProjectId
389
+ },
377
390
  manifest,
378
391
  sourceTaskset: taskset,
379
392
  modelImprovementQualification: input.modelImprovementQualification ?? null,
@@ -389,13 +402,22 @@ async function prepareManagedTrainingSubmission(raw) {
389
402
  sourceManifest: { id: manifest.id, contentHash: manifestHash },
390
403
  payload
391
404
  };
392
- const artifact = await parseAndVerifyTrainingInputArtifactUpload({ ...artifactContent, contentHash: await trainingInputArtifactUploadHash(artifactContent) });
405
+ const artifact = await parseAndVerifyTrainingInputArtifactUpload({
406
+ ...artifactContent,
407
+ contentHash: await trainingInputArtifactUploadHash(artifactContent)
408
+ });
393
409
  const jobContent = {
394
410
  schemaVersion: "openpond.trainingJobSubmission.v2",
395
411
  idempotencyKey: input.idempotencyKey ?? `openpond-training-v2:${manifestHash}`,
396
412
  name: `OpenPond Managed \xB7 ${project.id}`.slice(0, 200),
397
413
  source: {
398
- modelProject: { id: project.hosted.projectId, portableProjectId: project.hosted.portableProjectId, revision: project.revision, contentHash: project.hosted.etag },
414
+ ...input.origin ? { origin: TrainingHandoffOriginSchema.parse(input.origin) } : {},
415
+ modelProject: {
416
+ id: project.hosted.projectId,
417
+ portableProjectId: project.hosted.portableProjectId,
418
+ revision: project.revision,
419
+ contentHash: project.hosted.etag
420
+ },
399
421
  harnessRunManifest: artifactContent.sourceManifest,
400
422
  harnessRelease: manifest.harnessRelease,
401
423
  taskset,
@@ -404,27 +426,46 @@ async function prepareManagedTrainingSubmission(raw) {
404
426
  evaluation,
405
427
  evidenceSets: bundle.evidenceSetRelease ? [bundle.evidenceSetRelease] : []
406
428
  },
407
- job: { kind: "policy_optimize", baseModel, recipe, rewardSource: input.rewardSource, resumeFrom: input.resumeFrom },
429
+ job: {
430
+ kind: "policy_optimize",
431
+ baseModel,
432
+ recipe,
433
+ rewardSource: input.rewardSource,
434
+ resumeFrom: input.resumeFrom
435
+ },
408
436
  requestedCapabilities: [
409
437
  { id: "managed_rl.policy.grpo", version: "1", required: true },
410
- { id: `managed_rl.rollouts.${manifest.runtimeTarget.placement}`, version: "1", required: true },
438
+ {
439
+ id: `managed_rl.rollouts.${manifest.runtimeTarget.placement}`,
440
+ version: "1",
441
+ required: true
442
+ },
411
443
  ...project.trainingSetup.managedGpuRequirement === "h100_hbm3" ? [{ id: "managed_rl.gpu.h100_hbm3", version: "1", required: true }] : []
412
444
  ],
413
445
  placementObjective: project.trainingSetup.managedGpuPlacementObjective,
414
- budget: { maximumSpendUsd: approval.maximumSpendUsd, maximumWallSeconds: Math.ceil(limits.wallTimeMs / 1e3) },
446
+ budget: {
447
+ maximumSpendUsd: approval.maximumSpendUsd,
448
+ maximumWallSeconds: Math.ceil(limits.wallTimeMs / 1e3)
449
+ },
415
450
  approval: { ...approval, approvedAt: manifest.approval.approvedAt, exportApproved: true }
416
451
  };
417
- const submission = await parseAndVerifyTrainingJobSubmission({ ...jobContent, contentHash: await trainingJobSubmissionHash(jobContent) });
452
+ const submission = await parseAndVerifyTrainingJobSubmission({
453
+ ...jobContent,
454
+ contentHash: await trainingJobSubmissionHash(jobContent)
455
+ });
418
456
  return { artifact, submission };
419
457
  }
420
458
  function verifyFiles(bundle, files) {
421
- if (files.length !== bundle.files.length || new Set(files.map((file) => file.path)).size !== files.length) throw new Error("The managed bundle file inventory changed.");
459
+ if (files.length !== bundle.files.length || new Set(files.map((file) => file.path)).size !== files.length)
460
+ throw new Error("The managed bundle file inventory changed.");
422
461
  const indexed = new Map(files.map((file) => [file.path, file]));
423
462
  return bundle.files.map((expected) => {
424
463
  const file = indexed.get(expected.path);
425
- if (!file || file.path.includes("\\") || file.path.includes("\0") || file.path.split("/").some((part) => !part || part === "." || part === "..") || file.path === "bundle-manifest.json" || file.encoding !== "base64") throw new Error("The managed bundle contains an invalid file.");
464
+ if (!file || file.path.includes("\\") || file.path.includes("\0") || file.path.split("/").some((part) => !part || part === "." || part === "..") || file.path === "bundle-manifest.json" || file.encoding !== "base64")
465
+ throw new Error("The managed bundle contains an invalid file.");
426
466
  const bytes2 = Buffer.from(file.content, "base64");
427
- if (bytes2.toString("base64") !== file.content || file.sha256 !== expected.sha256 || file.sizeBytes !== expected.sizeBytes || bytes2.byteLength !== expected.sizeBytes || sha256(bytes2) !== expected.sha256) throw new Error(`Managed training bundle file ${file.path} changed before upload.`);
467
+ if (bytes2.toString("base64") !== file.content || file.sha256 !== expected.sha256 || file.sizeBytes !== expected.sizeBytes || bytes2.byteLength !== expected.sizeBytes || sha256(bytes2) !== expected.sha256)
468
+ throw new Error(`Managed training bundle file ${file.path} changed before upload.`);
428
469
  return file;
429
470
  });
430
471
  }