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