openpond-sdk 0.12.3 → 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-VY5AFE7A.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-CTVKI3BV.js → chunk-53LLNDXF.js} +3 -3
- package/dist/chunk-53LLNDXF.js.map +1 -0
- package/dist/{chunk-36WJTS5V.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-FY7NHCEH.js → chunk-CMWZZZGW.js} +5 -5
- package/dist/chunk-CMWZZZGW.js.map +1 -0
- package/dist/{chunk-UPS52OPZ.js → chunk-DF2QXVZ3.js} +8 -8
- 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-QEIT5VXJ.js → chunk-EFUT3XKW.js} +4 -4
- package/dist/chunk-EFUT3XKW.js.map +1 -0
- package/dist/{chunk-BSK3VLM3.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-CWXM57QR.js → chunk-GAIDBPFY.js} +5 -5
- 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-K5WRVSOL.js → chunk-I54WQBXL.js} +8 -8
- package/dist/chunk-I54WQBXL.js.map +1 -0
- package/dist/{chunk-G6Y6CQYV.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-XYQD4LDI.js → chunk-LHX7ENKZ.js} +3 -3
- package/dist/chunk-LHX7ENKZ.js.map +1 -0
- package/dist/{chunk-BFR3VC25.js → chunk-LR5CTOC5.js} +18 -18
- 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-77N3QEIL.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-QTJQIHDZ.js → chunk-QRS7Y3EM.js} +4 -3
- package/dist/chunk-QRS7Y3EM.js.map +1 -0
- package/dist/{chunk-TMUAKJWX.js → chunk-RRKRA237.js} +14 -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-YUKV7RCD.js → chunk-VHGC44HA.js} +5 -5
- package/dist/chunk-VHGC44HA.js.map +1 -0
- package/dist/{chunk-ZJ3H3VS7.js → chunk-VN5V2E2S.js} +7 -5
- package/dist/chunk-VN5V2E2S.js.map +1 -0
- package/dist/{chunk-G53MA5XX.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-TSMGMA6R.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-MLPPSCDQ.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 +22 -21
- 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 +26 -25
- 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 +19 -18
- package/dist/taskset-drafts.js.map +1 -7
- package/dist/taskset-packages.js +25 -22
- package/dist/taskset-packages.js.map +1 -7
- package/dist/training-bundle.js +44 -19
- 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 +11 -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 +375 -351
- package/dist/types/packages/sdk/src/candidate-evaluation-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/candidate-evaluations.d.ts +80 -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 +2102 -2014
- package/dist/types/packages/sdk/src/experiment-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/experiment-contracts.d.ts +165 -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 +587 -516
- 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 +38 -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 +303 -243
- 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 +33 -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 +69 -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 +179 -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 +865 -833
- package/dist/types/packages/sdk/src/model-taskset-runs.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/post-training.d.ts +438 -377
- 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 +14 -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 +2 -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 +75 -71
- package/dist/types/packages/sdk/src/training-qualification-preparation.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training.d.ts +1442 -1416
- 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-36WJTS5V.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-77N3QEIL.js.map +0 -7
- package/dist/chunk-AG5DDL7T.js.map +0 -7
- package/dist/chunk-BFR3VC25.js.map +0 -7
- package/dist/chunk-BSK3VLM3.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-CTVKI3BV.js.map +0 -7
- package/dist/chunk-CWXM57QR.js.map +0 -7
- package/dist/chunk-DUKW3R7O.js.map +0 -7
- package/dist/chunk-FHCSDXIA.js +0 -1417
- package/dist/chunk-FHCSDXIA.js.map +0 -7
- package/dist/chunk-FY7NHCEH.js.map +0 -7
- package/dist/chunk-G53MA5XX.js.map +0 -7
- package/dist/chunk-G6Y6CQYV.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-K5WRVSOL.js.map +0 -7
- package/dist/chunk-KAE7AMYE.js.map +0 -7
- package/dist/chunk-MEKWESBF.js.map +0 -7
- package/dist/chunk-MLPPSCDQ.js.map +0 -7
- package/dist/chunk-O4GE6VTR.js.map +0 -7
- package/dist/chunk-P27DQ65Z.js.map +0 -7
- package/dist/chunk-QEIT5VXJ.js.map +0 -7
- package/dist/chunk-QTJQIHDZ.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-TMUAKJWX.js.map +0 -7
- package/dist/chunk-TSMGMA6R.js.map +0 -7
- package/dist/chunk-UPS52OPZ.js.map +0 -7
- package/dist/chunk-VY5AFE7A.js.map +0 -7
- package/dist/chunk-XYQD4LDI.js.map +0 -7
- package/dist/chunk-YCQVVFE5.js.map +0 -7
- package/dist/chunk-YUKV7RCD.js.map +0 -7
- package/dist/chunk-YVUIHH6Z.js.map +0 -7
- package/dist/chunk-ZJ3H3VS7.js.map +0 -7
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/taskset-authored-portable-release.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Taskset } from \"./taskset-authored-contracts.js\";\nimport type {\n GraderSpec,\n TaskDataRecord,\n} from \"./taskset-draft-core.js\";\nimport {\n TaskRecordSchema,\n GraderSpecSchema as PortableGraderSpecSchema,\n TasksetReleaseContentSchema,\n TasksetReleaseSchema,\n bindTasksetExecutionReleases,\n createEnvironmentRelease,\n createVerifierSetRelease,\n EnvironmentReleaseSchema,\n VerifierSetReleaseSchema,\n verifyEnvironmentRelease,\n verifyVerifierSetRelease,\n verifyPreferenceComparisonRelease,\n type EnvironmentContract,\n type GraderSpec as PortableGraderSpec,\n type PreferenceComparisonRelease,\n type TasksetRelease,\n} from \"@openpond/evals\";\nimport type {\n ImmutableAssetRef,\n ToolDeclaration,\n} from \"@openpond/harness\";\nimport {\n CapabilityRequirementSchema,\n ImmutableAssetRefSchema,\n ToolDeclarationSchema,\n} from \"@openpond/harness\";\n\nimport { contentHash, sha256 } from \"@openpond/harness\";\nimport { TaskBatchPackageMetadataSchema } from \"@openpond/evals/learning\";\nimport { compileBoundGraders, RewardBindingSchema, RewardReleaseSchema, type RewardBinding, type RewardRelease } from \"@openpond/evals/rewards\";\nimport { portableDeterministicCheck } from \"@openpond/evals/graders\";\n\nexport type TasksetRewardExecution = { binding: RewardBinding; rewards: RewardRelease[] };\n\nexport function resolvePortableTasksetRewardExecution(taskset: Taskset, supplied?: TasksetRewardExecution): TasksetRewardExecution | null {\n const learning = taskset.metadata.learning === undefined ? null : TaskBatchPackageMetadataSchema.parse(taskset.metadata.learning);\n const embedded = taskset.metadata.rewardExecution as { binding?: unknown; rewards?: unknown } | undefined;\n const execution = supplied ?? (embedded ? {\n binding: RewardBindingSchema.parse(embedded.binding),\n rewards: RewardReleaseSchema.array().parse(embedded.rewards),\n } : learning);\n if (taskset.metadata.rewardBinding !== undefined) {\n const reference = taskset.metadata.rewardBinding as Partial<RewardBinding> | null;\n if (!execution || !reference || reference.id !== execution.binding.id\n || reference.revision !== execution.binding.revision || reference.contentHash !== execution.binding.contentHash) {\n throw new Error(\"Portable Taskset requires its exact published Reward binding.\");\n }\n }\n if (execution) compileBoundGraders(execution.binding, execution.rewards);\n return execution ? { binding: execution.binding, rewards: execution.rewards } : null;\n}\n\nexport function materializePortableTasksetRelease(input: {\n taskset: Taskset;\n selectedTasks?: TaskDataRecord[];\n adapterId: string;\n admittedTasksetRelease?: TasksetRelease | null;\n rewardExecution?: TasksetRewardExecution;\n}): {\n environmentRelease: ReturnType<typeof createEnvironmentRelease>;\n verifierSetRelease: ReturnType<typeof createVerifierSetRelease>;\n tasksetRelease: TasksetRelease;\n} {\n const environment = portableEnvironment(input.taskset);\n const tools = portableTools(input.taskset);\n const learning = input.taskset.metadata.learning === undefined ? null : TaskBatchPackageMetadataSchema.parse(input.taskset.metadata.learning);\n const embedded = input.taskset.metadata.rewardExecution;\n const rewardExecution = resolvePortableTasksetRewardExecution(input.taskset, input.rewardExecution);\n const graders = rewardExecution ? compileBoundGraders(rewardExecution.binding, rewardExecution.rewards) : input.taskset.graders.map(portableGrader);\n const tasks = input.selectedTasks?.length\n ? input.selectedTasks\n : input.taskset.tasks;\n if (!tasks.length) throw new Error(\"A portable Taskset release requires at least one task.\");\n const pinned = input.taskset.environment.metadata.portableExecutionResources as { environment?: unknown; verifierSet?: unknown } | undefined;\n if (environment.entrypoint === \"openpond.javascript-environment.v1\" && !pinned) throw new Error(\"Tool Taskset publication requires its pinned execution resources.\");\n const environmentRelease = pinned ? EnvironmentReleaseSchema.parse(pinned.environment) : createEnvironmentRelease({\n schemaVersion: \"openpond.environmentRelease.v1\",\n id: `environment-release-${input.taskset.id}-r${input.taskset.revision}`,\n revision: input.taskset.revision,\n contract: environment,\n actionSchemaRef: null,\n observationSchemaRef: null,\n stateSchemaRef: null,\n artifactCollection: {\n maxArtifacts: 100_000,\n maxTotalBytes: 250_000_000,\n },\n adapterConformanceHashes: {\n [input.adapterId]: contentHash({ adapterId: input.adapterId, environment, tools }),\n },\n metadata: {\n sourceTasksetId: input.taskset.id,\n sourcePackageHash: input.taskset.metadata.sourcePackageHash ?? null,\n resources: input.taskset.environment.resources ?? [],\n },\n });\n const verifierSetRelease = pinned?.verifierSet !== undefined ? VerifierSetReleaseSchema.parse(pinned.verifierSet) : createVerifierSetRelease({\n schemaVersion: \"openpond.verifierSetRelease.v1\",\n id: `verifier-set-release-${input.taskset.id}-r${input.taskset.revision}`,\n revision: input.taskset.revision,\n graders,\n isolation: {\n processBoundary: \"isolated_process\",\n networkPolicy: \"none\",\n defaultTimeoutMs: Math.min(input.taskset.environment.defaultTimeoutMs, 300_000),\n },\n calibrationReceiptRefs: [],\n metadata: { sourceTasksetId: input.taskset.id },\n });\n if (!verifyEnvironmentRelease(environmentRelease) || !verifyVerifierSetRelease(verifierSetRelease) ||\n contentHash(environmentRelease.contract) !== contentHash(environment) || contentHash(verifierSetRelease.graders) !== contentHash(graders)) {\n throw new Error(\"Taskset execution resources differ from its declared environment or graders.\");\n }\n const tasksetContent = TasksetReleaseContentSchema.parse({\n schemaVersion: \"openpond.tasksetRelease.v2\",\n id: input.taskset.metadata.derivedPortableMetadata === undefined ? `taskset-release-${input.taskset.id}-r${input.taskset.revision}` : input.taskset.id,\n revision: input.taskset.revision,\n policy: {\n policyVisibleFields: input.taskset.policy.policyVisibleFields,\n privilegedFields: input.taskset.policy.privilegedFields,\n hiddenGraderRefs: input.taskset.policy.hiddenGraderRefs,\n connectedAppScopes: input.taskset.policy.connectedAppScopes,\n },\n environment,\n tools,\n capabilities: portableCapabilities(input.taskset),\n tasks: tasks.map(projectPortableTaskRecord),\n graders,\n ...(input.taskset.metrics ? { metrics: input.taskset.metrics } : {}),\n metadata: input.taskset.metadata.derivedPortableMetadata ?? {\n sourceTasksetId: input.taskset.id,\n sourceTasksetHash: input.taskset.contentHash,\n sourcePackageHash: input.taskset.metadata.sourcePackageHash ?? null,\n environmentResources: input.taskset.environment.resources ?? [],\n workAssetStagingPaths: Object.fromEntries(tasks.filter(task => task.assets?.some(asset => asset.stagingPath))\n .map(task => [task.id, Object.fromEntries((task.assets ?? []).filter(asset => asset.stagingPath)\n .map(asset => [asset.id, asset.stagingPath]))])),\n ordinaryAuthoring: {\n instructions: input.taskset.objective,\n graderSourceRewards: Object.fromEntries(input.taskset.graders.filter(grader => grader.metadata.sourceReward !== undefined).map(grader => [grader.id, grader.metadata.sourceReward])),\n graderOrigins: Object.fromEntries(input.taskset.graders.map(grader => [grader.id,\n grader.metadata.preparationOrigin === \"reused\" ? \"reused\" : grader.metadata.preparationOrigin === \"adapted\" || grader.metadata.adaptedFromReward ? \"adapted\" : \"authored\"])),\n graderFixtures: input.taskset.graderFixtures,\n judgeCalibrationFixtures: Object.fromEntries(input.taskset.graders\n .filter(grader => grader.kind === \"model_judge\")\n .map(grader => [grader.id, grader.calibrationFixtureRefs])),\n },\n ...(learning ? { learning } : {}),\n // A sealed batch already pins these resources in learning metadata.\n // Resolving that same binding at admission must not change its release.\n ...(rewardExecution && !learning && (input.rewardExecution || embedded) ? { rewardExecution: { binding: rewardExecution.binding, rewards: rewardExecution.rewards } } : {}),\n },\n });\n const draft = input.admittedTasksetRelease\n ? TasksetReleaseSchema.parse(input.admittedTasksetRelease)\n : TasksetReleaseSchema.parse({\n ...tasksetContent,\n contentHash: contentHash(tasksetContent),\n });\n const tasksetRelease = draft.environmentRelease\n ? assertReleaseBindings({ draft, environmentRelease, verifierSetRelease })\n : bindTasksetExecutionReleases({\n taskset: draft,\n environment: environmentRelease,\n verifierSet: verifierSetRelease,\n });\n return { environmentRelease, verifierSetRelease, tasksetRelease };\n}\n\n/**\n * Admits a published comparison policy against the exact portable Taskset\n * release it names. A comparison is deliberately not embedded in that release:\n * doing so would create a content-hash cycle between Taskset and comparison.\n */\nexport function projectPreferenceComparisonRelease(input: {\n tasksetRelease: TasksetRelease;\n preferenceComparison: PreferenceComparisonRelease;\n}): PreferenceComparisonRelease {\n if (!verifyPreferenceComparisonRelease(input.preferenceComparison)) {\n throw new Error(\"Preference comparison release failed immutable content verification.\");\n }\n const release = input.preferenceComparison;\n if (\n release.tasksetRelease.id !== input.tasksetRelease.id\n || release.tasksetRelease.contentHash !== input.tasksetRelease.contentHash\n ) {\n throw new Error(\"Preference comparison release must reference the admitted portable Taskset release.\");\n }\n return release;\n}\n\nexport function portableTasksetEnvironment(taskset: Taskset): EnvironmentContract {\n return portableEnvironment(taskset);\n}\n\nexport function portableTasksetTools(taskset: Taskset): ToolDeclaration[] {\n return portableTools(taskset);\n}\n\n/** Preserve immutable file/schema references while overlaying current edits. */\nexport function projectPortableTaskRecord(task: TaskDataRecord) {\n const admitted = task.metadata.portableTaskRecord;\n if (admitted !== undefined) {\n const original = TaskRecordSchema.parse(admitted);\n const projected = TaskRecordSchema.parse({\n ...original,\n id: task.id,\n clusterKey: task.clusterKey,\n split: task.split,\n input: task.input,\n expectedOutput: portableExpectedOutput(task),\n policyVisibleContext: task.policyVisibleContext,\n privilegedContextRef: task.privilegedContextRef,\n tags: task.tags,\n artifactRefs: task.assets === undefined ? original.artifactRefs : task.assets.map((asset) => {\n const previous = original.artifactRefs.find(item => item.id === asset.id);\n return {\n id: asset.id,\n path: previous?.path ?? `tasks/${segment(task.id)}/${asset.stagingPath ?? segment(asset.fileName)}`,\n contentHash: hash(asset.sha256),\n sizeBytes: asset.sizeBytes,\n mediaType: asset.mediaType,\n visibility: previous?.visibility ?? \"policy\",\n };\n }),\n requiredOutputs: task.requiredOutputs === undefined ? original.requiredOutputs : task.requiredOutputs.map((output) => {\n const previous = original.requiredOutputs?.find(item => item.path === output.path);\n return {\n path: output.path,\n mediaType: output.mediaType,\n schemaRef: previous?.schemaRef && previous.schemaRef.id === output.schemaRef ? previous.schemaRef : null,\n maxBytes: output.maxBytes ?? null,\n metadata: {\n ...output.metadata,\n ...(output.schemaRef && previous?.schemaRef?.id !== output.schemaRef\n ? { legacySchemaRef: output.schemaRef }\n : {}),\n },\n };\n }),\n });\n if (projected.requiredOutputs === undefined) delete projected.requiredOutputs;\n return projected;\n }\n return {\n id: task.id,\n clusterKey: task.clusterKey,\n split: task.split,\n input: task.input,\n expectedOutput: portableExpectedOutput(task),\n policyVisibleContext: task.policyVisibleContext,\n privilegedContextRef: task.privilegedContextRef,\n artifactRefs: (task.assets ?? []).map((item) => ({\n id: item.id,\n path: `tasks/${segment(task.id)}/${item.stagingPath ?? segment(item.fileName)}`,\n contentHash: hash(item.sha256),\n sizeBytes: item.sizeBytes,\n mediaType: item.mediaType,\n visibility: \"policy\" as const,\n })),\n requiredOutputs: (task.requiredOutputs ?? []).map((output) => ({\n path: output.path,\n mediaType: output.mediaType,\n schemaRef: null,\n maxBytes: output.maxBytes ?? null,\n metadata: {\n ...output.metadata,\n legacySchemaRef: output.schemaRef ?? null,\n },\n })),\n tags: task.tags,\n };\n}\n\nfunction portableExpectedOutput(\n task: TaskDataRecord,\n): Record<string, unknown> | null {\n if (!task.expectedOutput) return null;\n if (\"artifactRenderer\" in task.expectedOutput) {\n throw new Error(\n `Task ${task.id} embeds an artifact renderer. Put shared renderer configuration in Environment resources and reference it from the Scenario.`,\n );\n }\n return task.expectedOutput;\n}\n\nfunction portableEnvironment(taskset: Taskset): EnvironmentContract {\n const kind: EnvironmentContract[\"kind\"] = taskset.environment.kind === \"chat\"\n ? \"text\"\n : taskset.environment.kind === \"work\" ? \"work\"\n : taskset.environment.kind === \"program\" ? \"custom_program\" : \"agent\";\n return {\n protocolVersion: \"openpond.environment.v1\",\n kind,\n entrypoint: taskset.environment.entrypoint,\n stateful: taskset.environment.stateful,\n deterministicSeeds: taskset.environment.deterministicSeeds,\n lifecycle: [\"create\", \"reset\", \"step\", \"collect\", \"destroy\"],\n networkPolicy: taskset.environment.networkPolicy,\n defaultTimeoutMs: taskset.environment.defaultTimeoutMs,\n };\n}\n\nfunction portableTools(taskset: Taskset): ToolDeclaration[] {\n const admitted = taskset.environment.metadata.portableTools;\n if (admitted !== undefined) {\n return ToolDeclarationSchema.array().max(200).parse(admitted);\n }\n const bindings = taskset.environment.actionBindings ?? [];\n if (bindings.length) return bindings.map((binding) => ({\n name: binding.modelToolName,\n description: binding.description,\n inputSchema: binding.inputSchema,\n inputSchemaHash: hash(binding.actionSchemaHash),\n sideEffect: binding.sideEffect,\n timeoutMs: binding.timeoutMs,\n }));\n return taskset.environment.toolNames.map((name) => ({\n name,\n description: `Host-provided ${name} tool.`,\n inputSchema: {},\n inputSchemaHash: contentHash({}),\n sideEffect: \"write\" as const,\n timeoutMs: taskset.environment.defaultTimeoutMs,\n }));\n}\n\nfunction portableGrader(grader: GraderSpec): PortableGraderSpec {\n const base = {\n id: grader.id,\n ...(grader.taskIds ? { taskIds: grader.taskIds } : {}),\n version: grader.version,\n weight: grader.weight,\n hardGate: grader.hardGate,\n rewardEligible: grader.rewardEligible,\n privileged: grader.privileged,\n };\n if (grader.kind === \"model_judge\") return {\n ...base,\n kind: \"model_judge\",\n rubricRef: rubricAsset(grader),\n model: modelJudgeRef(grader),\n temperature: grader.temperature,\n calibrationStatus: grader.calibrationStatus,\n };\n if (grader.kind === \"custom_verifier\") {\n if (grader.metadata.portableVerifierRef === undefined) {\n throw new Error(`Custom verifier ${grader.id} requires its immutable executable asset before publication.`);\n }\n const imported = PortableGraderSpecSchema.safeParse(grader.metadata.portableGrader);\n // An omitted portable export means \"verify\". Preserve that encoding on an\n // unchanged import so executing it does not silently replace its release.\n const preserveDefault = imported.success && imported.data.kind === \"custom_verifier\"\n && imported.data.exportName === undefined && grader.exportName === \"verify\";\n return {\n ...base,\n kind: \"custom_verifier\",\n ...(grader.runtime === undefined ? {} : { runtime: grader.runtime }),\n verifierRef: ImmutableAssetRefSchema.parse(grader.metadata.portableVerifierRef),\n timeoutMs: grader.timeoutMs,\n ...(preserveDefault ? {} : { exportName: grader.exportName }),\n networkPolicy: \"none\",\n };\n }\n if (grader.kind === \"human\") return {\n ...base,\n kind: \"human\",\n rubricRef: rubricAsset(grader),\n reviewerRole: grader.reviewerRole,\n ...(grader.form ? { form: grader.form } : {}),\n };\n return {\n ...base,\n ...portableDeterministicCheck(grader),\n };\n}\n\nfunction portableCapabilities(taskset: Taskset) {\n const admitted = taskset.metadata.portableCapabilities;\n if (admitted !== undefined) {\n return CapabilityRequirementSchema.array().max(200).parse(admitted);\n }\n return [\n ...(taskset.capabilities.requiresTools\n ? [{ id: \"tools\", required: true, scopes: taskset.environment.toolNames }]\n : []),\n ...(taskset.capabilities.requiresState\n ? [{ id: \"local-state\", required: true, scopes: [] }]\n : []),\n ...(taskset.capabilities.requiresPrivilegedGrading\n ? [{ id: \"private-verifier\", required: true, scopes: taskset.policy.hiddenGraderRefs }]\n : []),\n ...taskset.policy.connectedAppScopes.map((scope) => ({\n id: `connected-app-${segment(scope)}`,\n required: true,\n scopes: [scope],\n })),\n ].map((requirement) => ({\n ...requirement,\n portability: requirement.id === \"local-state\" ? \"host_adapter\" as const : \"portable\" as const,\n }));\n}\n\nfunction assertReleaseBindings(input: {\n draft: TasksetRelease;\n environmentRelease: ReturnType<typeof createEnvironmentRelease>;\n verifierSetRelease: ReturnType<typeof createVerifierSetRelease>;\n}): TasksetRelease {\n if (\n input.draft.environmentRelease?.id !== input.environmentRelease.id\n || input.draft.environmentRelease.contentHash !== input.environmentRelease.contentHash\n ) {\n throw new Error(\"Admitted Taskset Release binds a different Environment Release.\");\n }\n if (\n input.draft.verifierSetRelease?.id !== input.verifierSetRelease.id\n || input.draft.verifierSetRelease.contentHash !== input.verifierSetRelease.contentHash\n ) {\n throw new Error(\"Admitted Taskset Release binds a different Verifier Set Release.\");\n }\n if (contentHash(input.draft.environment) !== contentHash(input.environmentRelease.contract)) {\n throw new Error(\"Admitted Taskset Environment differs from its bound Environment Release.\");\n }\n if (contentHash(input.draft.graders) !== contentHash(input.verifierSetRelease.graders)) {\n throw new Error(\"Admitted Taskset graders differ from its bound Verifier Set Release.\");\n }\n return input.draft;\n}\n\nfunction modelJudgeRef(grader: Extract<GraderSpec, { kind: \"model_judge\" }>) {\n const previous = grader.metadata.portableGrader === undefined ? null : PortableGraderSpecSchema.parse(grader.metadata.portableGrader);\n const revision = previous?.kind === \"model_judge\" && previous.model?.providerId === grader.judge.providerId && previous.model.modelId === grader.judge.modelId ? previous.model.revision : null;\n return { ...grader.judge, revision };\n}\n\nfunction rubricAsset(grader: Extract<GraderSpec, { kind: \"human\" | \"model_judge\" }>): ImmutableAssetRef {\n const contentHash = sha256(grader.rubric);\n const sizeBytes = new TextEncoder().encode(grader.rubric).byteLength;\n const reference = grader.metadata.portableRubricRef;\n if (reference !== undefined) {\n const asset = ImmutableAssetRefSchema.parse(reference);\n if (asset.contentHash !== contentHash || asset.sizeBytes !== sizeBytes || asset.visibility === \"policy\") throw new Error(\"Taskset rubric differs from its published private source.\");\n return asset;\n }\n return { id: `rubric-${grader.id}`, path: `graders/${segment(grader.id)}/rubric.md`, contentHash, sizeBytes, mediaType: \"text/markdown\", visibility: \"verifier\" };\n}\n\nfunction hash(value: string): string {\n return /^[a-f0-9]{64}$/.test(value) ? value : contentHash(value);\n}\n\nfunction segment(value: string): string {\n const normalized = value.trim().replace(/[^a-zA-Z0-9._-]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n return normalized || \"asset\";\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["contentHash"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/connected-evidence-http.ts"],
|
|
4
|
-
"sourcesContent": ["const MAX_RESPONSE_BYTES = 8 * 1024 * 1024;\n/** Bounds real streaming responses, including custom fetch adapters that do not honor abort themselves. */\nexport async function fetchConnectedJson(fetcher: typeof fetch, url: string, init: RequestInit, error: (status: number, code: string, message: string) => Error) {\n const controller = new AbortController(), external = init.signal;\n const forward = () => controller.abort(external?.reason);\n if (external?.aborted) forward(); else external?.addEventListener(\"abort\", forward, { once: true });\n const timer = setTimeout(() => controller.abort(new Error(\"Connected evidence request timed out.\")), 60_000);\n let reader: ReadableStreamDefaultReader<Uint8Array> | undefined;\n const abortReader = () => { if (reader) void reader.cancel(controller.signal.reason).catch(() => undefined); };\n controller.signal.addEventListener(\"abort\", abortReader, { once: true });\n const abortPromise = new Promise<never>((_, reject) => {\n const abort = () => reject(controller.signal.reason ?? new DOMException(\"Request aborted\", \"AbortError\"));\n if (controller.signal.aborted) abort(); else controller.signal.addEventListener(\"abort\", abort, { once: true });\n });\n try {\n const pendingResponse = fetcher(url, { ...init, signal: controller.signal }).then(response => {\n if (controller.signal.aborted) { void response.body?.cancel(controller.signal.reason).catch(() => undefined); throw controller.signal.reason; }\n return response;\n });\n const response = await Promise.race([pendingResponse, abortPromise]);\n const declared = response.headers.get(\"content-length\");\n reader = response.body?.getReader();\n if (controller.signal.aborted) { await reader?.cancel(controller.signal.reason); throw controller.signal.reason; }\n if (declared && Number(declared) > MAX_RESPONSE_BYTES) { await reader?.cancel(); throw error(502, \"connected_response_too_large\", \"Connected evidence response exceeds 8 MiB.\"); }\n const chunks: Uint8Array[] = []; let size = 0;\n if (reader) while (true) {\n const part = await Promise.race([reader.read(), abortPromise]);\n if (part.done) break;\n size += part.value.byteLength;\n if (size > MAX_RESPONSE_BYTES) { await reader.cancel(); throw error(502, \"connected_response_too_large\", \"Connected evidence response exceeds 8 MiB.\"); }\n chunks.push(part.value);\n }\n const bytes = new Uint8Array(size); let offset = 0;\n for (const chunk of chunks) { bytes.set(chunk, offset); offset += chunk.byteLength; }\n let value: unknown;\n try { value = JSON.parse(new TextDecoder(\"utf-8\", { fatal: true }).decode(bytes)); }\n catch { throw error(502, \"connected_response_invalid\", \"Connected evidence response is not valid JSON.\"); }\n return { response, value };\n } finally { clearTimeout(timer); external?.removeEventListener(\"abort\", forward); controller.signal.removeEventListener(\"abort\", abortReader); reader?.releaseLock(); }\n}\n"],
|
|
5
|
-
"mappings": ";AAAA,IAAM,qBAAqB,IAAI,OAAO;AAEtC,eAAsB,mBAAmB,SAAuB,KAAa,MAAmB,OAAiE;AAC/J,QAAM,aAAa,IAAI,gBAAgB,GAAG,WAAW,KAAK;AAC1D,QAAM,UAAU,MAAM,WAAW,MAAM,UAAU,MAAM;AACvD,MAAI,UAAU,QAAS,SAAQ;AAAA,MAAQ,WAAU,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AAClG,QAAM,QAAQ,WAAW,MAAM,WAAW,MAAM,IAAI,MAAM,uCAAuC,CAAC,GAAG,GAAM;AAC3G,MAAI;AACJ,QAAM,cAAc,MAAM;AAAE,QAAI,OAAQ,MAAK,OAAO,OAAO,WAAW,OAAO,MAAM,EAAE,MAAM,MAAM,MAAS;AAAA,EAAG;AAC7G,aAAW,OAAO,iBAAiB,SAAS,aAAa,EAAE,MAAM,KAAK,CAAC;AACvE,QAAM,eAAe,IAAI,QAAe,CAAC,GAAG,WAAW;AACrD,UAAM,QAAQ,MAAM,OAAO,WAAW,OAAO,UAAU,IAAI,aAAa,mBAAmB,YAAY,CAAC;AACxG,QAAI,WAAW,OAAO,QAAS,OAAM;AAAA,QAAQ,YAAW,OAAO,iBAAiB,SAAS,OAAO,EAAE,MAAM,KAAK,CAAC;AAAA,EAChH,CAAC;AACD,MAAI;AACF,UAAM,kBAAkB,QAAQ,KAAK,EAAE,GAAG,MAAM,QAAQ,WAAW,OAAO,CAAC,EAAE,KAAK,CAAAA,cAAY;AAC5F,UAAI,WAAW,OAAO,SAAS;AAAE,aAAKA,UAAS,MAAM,OAAO,WAAW,OAAO,MAAM,EAAE,MAAM,MAAM,MAAS;AAAG,cAAM,WAAW,OAAO;AAAA,MAAQ;AAC9I,aAAOA;AAAA,IACT,CAAC;AACD,UAAM,WAAW,MAAM,QAAQ,KAAK,CAAC,iBAAiB,YAAY,CAAC;AACnE,UAAM,WAAW,SAAS,QAAQ,IAAI,gBAAgB;AACtD,aAAS,SAAS,MAAM,UAAU;AAClC,QAAI,WAAW,OAAO,SAAS;AAAE,YAAM,QAAQ,OAAO,WAAW,OAAO,MAAM;AAAG,YAAM,WAAW,OAAO;AAAA,IAAQ;AACjH,QAAI,YAAY,OAAO,QAAQ,IAAI,oBAAoB;AAAE,YAAM,QAAQ,OAAO;AAAG,YAAM,MAAM,KAAK,gCAAgC,4CAA4C;AAAA,IAAG;AACjL,UAAM,SAAuB,CAAC;AAAG,QAAI,OAAO;AAC5C,QAAI,OAAQ,QAAO,MAAM;AACvB,YAAM,OAAO,MAAM,QAAQ,KAAK,CAAC,OAAO,KAAK,GAAG,YAAY,CAAC;AAC7D,UAAI,KAAK,KAAM;AACf,cAAQ,KAAK,MAAM;AACnB,UAAI,OAAO,oBAAoB;AAAE,cAAM,OAAO,OAAO;AAAG,cAAM,MAAM,KAAK,gCAAgC,4CAA4C;AAAA,MAAG;AACxJ,aAAO,KAAK,KAAK,KAAK;AAAA,IACxB;AACA,UAAM,QAAQ,IAAI,WAAW,IAAI;AAAG,QAAI,SAAS;AACjD,eAAW,SAAS,QAAQ;AAAE,YAAM,IAAI,OAAO,MAAM;AAAG,gBAAU,MAAM;AAAA,IAAY;AACpF,QAAI;AACJ,QAAI;AAAE,cAAQ,KAAK,MAAM,IAAI,YAAY,SAAS,EAAE,OAAO,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;AAAA,IAAG,QAC7E;AAAE,YAAM,MAAM,KAAK,8BAA8B,gDAAgD;AAAA,IAAG;AAC1G,WAAO,EAAE,UAAU,MAAM;AAAA,EAC3B,UAAE;AAAU,iBAAa,KAAK;AAAG,cAAU,oBAAoB,SAAS,OAAO;AAAG,eAAW,OAAO,oBAAoB,SAAS,WAAW;AAAG,YAAQ,YAAY;AAAA,EAAG;AACxK;",
|
|
6
|
-
"names": ["response"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/model-projects.ts", "../src/protocol.ts"],
|
|
4
|
-
"sourcesContent": ["import { z } from \"zod\";\nimport { ModelInitialLearningSchema, type ModelInitialLearning } from \"./model-learning-intent.js\";\nexport { ModelInitialLearningSchema, type ModelInitialLearning } from \"./model-learning-intent.js\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\n\nimport {\n MODEL_PROJECT_API_RESPONSE_MAX_BYTES,\n MODEL_PROJECT_SYNC_MAX_BYTES,\n OPENPOND_MODEL_PROJECT_MEDIA_TYPE,\n OpenPondProtocolError,\n assertCanonicalPayloadSize,\n canonicalSha256,\n parseBoundedJson,\n} from \"./protocol.js\";\n\nexport {\n MODEL_PROJECT_API_RESPONSE_MAX_BYTES,\n MODEL_PROJECT_SYNC_MAX_BYTES,\n OPENPOND_MODEL_PROJECT_MEDIA_TYPE,\n} from \"./protocol.js\";\n\nconst IdSchema = z.string().trim().min(1).max(500);\nconst HashSchema = z.string().regex(/^[a-f0-9]{64}$/);\nconst TimestampSchema = z.string().datetime({ offset: true });\n\nexport const ModelProjectImmutableRefSchema = z\n .object({\n id: IdSchema,\n contentHash: HashSchema,\n })\n .strict();\n\nexport const ModelProjectVersionedRefSchema =\n ModelProjectImmutableRefSchema.extend({\n revision: z.number().int().positive(),\n }).strict();\n\nexport const ModelProjectBaseModelSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.baseModelPreference.v1\"),\n modelId: IdSchema,\n revision: z.string().trim().min(1).max(256).nullable(),\n tokenizerRevision: z.string().trim().min(1).max(256).nullable(),\n chatTemplateHash: z.string().trim().min(8).max(256).nullable(),\n modelAssetId: IdSchema.nullable(),\n source: z.enum([\"managed\", \"local\", \"builtin\"]),\n })\n .strict();\n\nexport const ModelProjectTrainingMethodSchema = z.enum([\n \"sft\",\n \"dpo\",\n \"grpo\",\n \"ppo\",\n \"sdft\",\n \"opd\",\n \"opsd\",\n \"sdpo\",\n]);\n\n/**\n * A versioned recipe document stored while a Project is still mutable.\n * The training endpoint validates the selected recipe version in full before\n * accepting an immutable Job; Project sync preserves newer recipe fields.\n */\nexport const ModelProjectRecipeDocumentSchema = z\n .object({\n schemaVersion: z.string().regex(/^openpond\\.[A-Za-z0-9]+Recipe\\.v\\d+$/),\n method: ModelProjectTrainingMethodSchema,\n parameterization: z.enum([\"lora\", \"full\"]),\n })\n .catchall(z.unknown());\n\n/** The published Profile source selected for this Model's Harness. */\nexport const ModelProfileSourceSelectionSchema = z.object({\n profileProjectId: IdSchema,\n sourceRevision: z.string().regex(/^[a-f0-9]{40,64}$/),\n harnessRelease: ModelProjectImmutableRefSchema,\n}).strict();\n\n/** A held-out check selected from an exact released Profile catalog. Its\n * Taskset and grader stay in the evaluation runtime, outside training input. */\nexport const ModelProfileEvaluationSelectionSchema = z.object({\n profileProjectId: IdSchema,\n sourceRevision: z.string().regex(/^[a-f0-9]{40,64}$/),\n catalogHash: HashSchema,\n definitionId: IdSchema,\n harnessRelease: ModelProjectImmutableRefSchema,\n tasksetRelease: ModelProjectImmutableRefSchema,\n}).strict();\n\nexport const ModelProjectTrainingSetupSchema = z\n .object({\n tasksetRef: ModelProjectVersionedRefSchema.nullable().default(null),\n evaluationTasksetRef: ModelProjectVersionedRefSchema.nullable().optional(),\n profileSource: ModelProfileSourceSelectionSchema.nullable().optional(),\n profileEvaluation: ModelProfileEvaluationSelectionSchema.nullable().optional(),\n rewardBindingRef: ModelProjectVersionedRefSchema.nullable().optional(),\n tasksetRelease: ModelProjectImmutableRefSchema.nullable().default(null),\n harnessRelease: ModelProjectImmutableRefSchema.nullable().default(null),\n baseModel: ModelProjectBaseModelSchema.nullable().default(null),\n method: ModelProjectTrainingMethodSchema.nullable().default(null),\n destinationId: IdSchema.nullable().default(null),\n managedRolloutPlacement: z\n .enum([\"local\", \"remote\"])\n .default(\"remote\"),\n managedGpuPlacementObjective: z\n .enum([\"fast\", \"balanced\", \"economical\"])\n .default(\"balanced\"),\n managedGpuRequirement: z\n .enum([\"any\", \"h100_hbm3\"])\n .default(\"any\"),\n runPreset: z\n .enum([\"small\", \"standard\", \"custom\", \"small_experiment\"])\n .nullable()\n .default(null),\n recipe: ModelProjectRecipeDocumentSchema.nullable().default(null),\n preferredMaximumSpendUsd: z.number().nonnegative().nullable().default(null),\n preferredRetentionDays: z\n .number()\n .int()\n .nonnegative()\n .nullable()\n .default(null),\n })\n .strict();\n\nexport const HostedModelProjectTrainingSetupSchema =\n ModelProjectTrainingSetupSchema.omit({ managedGpuRequirement: true });\n\nexport const HostedModelProjectLinkSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.hostedModelProjectLink.v1\"),\n apiOrigin: z.string().url().refine(value => new URL(value).origin === value, \"Use a canonical API origin.\").nullable().default(null),\n teamId: IdSchema,\n projectId: IdSchema,\n portableProjectId: IdSchema,\n revision: z.number().int().positive(),\n etag: HashSchema,\n syncedSourceRevision: z.number().int().positive(),\n syncedAt: TimestampSchema,\n tasksets: z\n .array(\n z\n .object({\n localTasksetId: IdSchema,\n localTasksetHash: HashSchema.nullable().default(null),\n releaseId: IdSchema,\n releaseRevision: z.number().int().positive(),\n releaseHash: HashSchema,\n packageHash: HashSchema.nullable().default(null),\n hostedTasksetId: IdSchema,\n syncedAt: TimestampSchema,\n })\n .strict(),\n )\n .max(10_000)\n .default([]),\n })\n .strict();\n\nexport const ModelProjectTasksetSyncSchema = z\n .object({\n localTasksetId: IdSchema,\n releaseId: IdSchema,\n releaseRevision: z.number().int().positive(),\n releaseHash: HashSchema,\n state: z.enum([\"syncing\", \"synced\", \"sync_failed\"]),\n hostedTasksetId: IdSchema.nullable().default(null),\n lastAttemptAt: TimestampSchema,\n syncedAt: TimestampSchema.nullable().default(null),\n lastError: z.string().trim().min(1).max(5_000).nullable().default(null),\n })\n .strict();\n\nexport const ModelProjectSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.modelProject.v2\"),\n id: IdSchema,\n profileId: IdSchema,\n revision: z.number().int().positive().default(1),\n name: z.string().trim().min(1).max(200),\n objective: z.string().trim().max(5_000).nullable(),\n defaultBaseModel: ModelProjectBaseModelSchema.nullable(),\n defaultDestinationId: IdSchema.nullable(),\n trainingSetup: ModelProjectTrainingSetupSchema,\n hosted: HostedModelProjectLinkSchema.nullable().default(null),\n tasksetSyncs: z\n .array(ModelProjectTasksetSyncSchema)\n .max(10_000)\n .default([]),\n createdAt: TimestampSchema,\n updatedAt: TimestampSchema,\n })\n .strict();\n\n/** User-editable configuration. Execution and hosting receipts are server-owned. */\nexport const ModelProjectEditableSchema = ModelProjectSchema.pick({\n id: true,\n profileId: true,\n name: true,\n objective: true,\n defaultBaseModel: true,\n defaultDestinationId: true,\n trainingSetup: true,\n});\n\n/** Zero creates a new Model; a positive revision updates that exact revision. */\nexport const ModelProjectSaveRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelProjectSave.v1\"),\n operationId: IdSchema,\n expectedRevision: z.number().int().nonnegative(),\n project: ModelProjectEditableSchema,\n learning: ModelInitialLearningSchema.optional(),\n}).strict().superRefine((value, context) => {\n if (value.learning && value.expectedRevision !== 0) context.addIssue({ code: \"custom\", path: [\"learning\"], message: \"Use learning settings to edit an existing Model's policy.\" });\n});\n\nexport type ModelProjectSaveRequest = z.infer<typeof ModelProjectSaveRequestSchema>;\n\n/** A read-only configuration check; it does not establish training or grader quality. */\nexport const ModelProjectConfigurationCheckSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelProjectConfigurationCheck.v1\"),\n configurationHash: HashSchema,\n projectId: IdSchema,\n expectedRevision: z.number().int().nonnegative(),\n checkedAt: TimestampSchema,\n canSave: z.boolean(),\n deferred: z.array(z.enum([\"base_model\", \"taskset\"])).max(2),\n findings: z.array(z.object({\n code: IdSchema,\n severity: z.enum([\"error\", \"warning\"]),\n message: z.string().min(1).max(5000),\n field: z.string().min(1).max(500).nullable(),\n }).strict()).max(100),\n}).strict();\n\nexport type ModelProjectConfigurationCheck = z.infer<typeof ModelProjectConfigurationCheckSchema>;\n\nexport const ModelProjectBaseModelCandidateSchema = z.object({\n id: IdSchema, name: z.string().min(1).max(500), available: z.boolean(), preference: ModelProjectBaseModelSchema,\n}).strict();\n\nexport async function modelProjectConfigurationHash(request: ModelProjectSaveRequest): Promise<string> {\n const parsed = parseModelProjectSaveRequest(request);\n return canonicalSha256({ project: parsed.project, expectedRevision: parsed.expectedRevision, ...(parsed.learning ? { learning: parsed.learning } : {}) });\n}\n\nexport function parseModelProjectSaveRequest(value: unknown): ModelProjectSaveRequest {\n try {\n assertBoundedTaskJson(value, MODEL_PROJECT_SYNC_MAX_BYTES);\n } catch {\n throw new OpenPondModelProjectApiError(400, {\n schemaVersion: \"openpond.modelProjectApiError.v2\", code: \"model_configuration_json_invalid\",\n message: \"Model configuration must be bounded JSON data.\", retryable: false, requestId: null, details: {},\n });\n }\n return ModelProjectSaveRequestSchema.parse(value);\n}\n\n/** Stable across transport retries; excludes server-owned revision/timestamps. */\nexport async function createModelProjectSaveRequest(\n project: z.input<typeof ModelProjectEditableSchema>,\n expectedRevision: number,\n learning?: ModelInitialLearning,\n): Promise<ModelProjectSaveRequest> {\n assertBoundedTaskJson(project, MODEL_PROJECT_SYNC_MAX_BYTES);\n const editable = ModelProjectEditableSchema.parse(project);\n assertCanonicalPayloadSize(editable, MODEL_PROJECT_SYNC_MAX_BYTES, \"Model configuration\");\n const initialLearning = learning ? ModelInitialLearningSchema.parse(learning) : undefined;\n const hash = await canonicalSha256({ project: editable, expectedRevision, ...(initialLearning ? { learning: initialLearning } : {}) });\n return parseModelProjectSaveRequest({\n schemaVersion: \"openpond.modelProjectSave.v1\",\n operationId: `model-save:${hash}`,\n expectedRevision,\n project: editable,\n ...(initialLearning ? { learning: initialLearning } : {}),\n });\n}\n\nexport const HostedModelProjectSyncSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.hostedModelProjectSync.v2\"),\n portableProjectId: IdSchema,\n name: z.string().trim().min(1).max(200),\n objective: z.string().trim().max(5_000).nullable(),\n defaultBaseModel: ModelProjectBaseModelSchema.nullable(),\n defaultDestinationId: IdSchema.nullable(),\n trainingSetup: HostedModelProjectTrainingSetupSchema,\n sourceRevision: z.number().int().positive(),\n sourceUpdatedAt: TimestampSchema,\n expectedEtag: HashSchema.nullable().default(null),\n })\n .strict();\n\nexport const HostedModelProjectSummarySchema = z\n .object({\n id: IdSchema,\n teamId: IdSchema,\n portableProjectId: IdSchema,\n name: z.string().trim().min(1).max(200),\n objective: z.string().trim().max(5_000).nullable(),\n defaultBaseModel: ModelProjectBaseModelSchema.nullable(),\n defaultDestinationId: IdSchema.nullable(),\n trainingSetup: HostedModelProjectTrainingSetupSchema,\n sourceRevision: z.number().int().positive(),\n sourceUpdatedAt: TimestampSchema,\n revision: z.number().int().positive(),\n etag: HashSchema,\n createdAt: TimestampSchema,\n updatedAt: TimestampSchema,\n })\n .strict();\n\nexport const ModelProjectResourceSummarySchema = z\n .object({\n kind: z.enum([\n \"taskset_release\",\n \"harness_release\",\n \"dataset_release\",\n \"evidence_set\",\n \"model_version\",\n \"reward_model_version\",\n \"evaluation_receipt\",\n ]),\n ref: ModelProjectImmutableRefSchema,\n role: z.string().trim().min(1).max(200).nullable().default(null),\n updatedAt: TimestampSchema,\n })\n .strict();\n\nexport const HostedModelProjectDetailSchema = z\n .object({\n project: HostedModelProjectSummarySchema,\n resources: z.array(ModelProjectResourceSummarySchema).max(10_000),\n jobCount: z.number().int().nonnegative(),\n latestJobIds: z.array(IdSchema).max(100),\n })\n .strict();\n\nexport const ModelProjectApiErrorSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.modelProjectApiError.v2\"),\n code: z.string().trim().min(1).max(200),\n message: z.string().trim().min(1).max(5_000),\n retryable: z.boolean().default(false),\n requestId: z.string().trim().min(1).max(500).nullable().default(null),\n details: z.record(z.string(), z.unknown()).default({}),\n })\n .strict();\n\nexport class OpenPondModelProjectApiError extends Error {\n readonly status: number;\n readonly code: string;\n readonly retryable: boolean;\n readonly requestId: string | null;\n readonly details: Record<string, unknown>;\n\n constructor(status: number, error: z.infer<typeof ModelProjectApiErrorSchema>) {\n super(error.message);\n this.name = \"OpenPondModelProjectApiError\";\n this.status = status;\n this.code = error.code;\n this.retryable = error.retryable;\n this.requestId = error.requestId;\n this.details = error.details;\n }\n}\n\nexport type ModelProject = z.infer<typeof ModelProjectSchema>;\nexport type ModelProjectTrainingSetup = z.infer<\n typeof ModelProjectTrainingSetupSchema\n>;\nexport type HostedModelProjectSync = z.infer<\n typeof HostedModelProjectSyncSchema\n>;\nexport type HostedModelProjectSummary = z.infer<\n typeof HostedModelProjectSummarySchema\n>;\nexport type HostedModelProjectDetail = z.infer<\n typeof HostedModelProjectDetailSchema\n>;\n\ntype ModelProjectsFetch = typeof fetch;\n\nfunction headersRecord(headers: HeadersInit | undefined): Record<string, string> {\n const result: Record<string, string> = {};\n new Headers(headers).forEach((value, key) => {\n result[key] = value;\n });\n return result;\n}\n\nexport function createModelProjectsClient(input: {\n baseUrl: string;\n fetch?: ModelProjectsFetch;\n headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);\n}) {\n const fetchImpl = input.fetch ?? fetch;\n const baseUrl = input.baseUrl.replace(/\\/$/, \"\");\n\n async function request(pathname: string, init?: RequestInit): Promise<unknown> {\n const configuredHeaders =\n typeof input.headers === \"function\"\n ? await input.headers()\n : (input.headers ?? {});\n const response = await fetchImpl(`${baseUrl}${pathname}`, {\n ...init,\n headers: {\n accept: OPENPOND_MODEL_PROJECT_MEDIA_TYPE,\n ...(init?.body\n ? { \"content-type\": OPENPOND_MODEL_PROJECT_MEDIA_TYPE }\n : {}),\n ...headersRecord(configuredHeaders),\n ...headersRecord(init?.headers),\n },\n });\n const body = parseBoundedJson(\n await response.text(),\n MODEL_PROJECT_API_RESPONSE_MAX_BYTES,\n \"Model Project API response\",\n );\n if (!response.ok) {\n const parsed = ModelProjectApiErrorSchema.safeParse(body);\n if (parsed.success) {\n throw new OpenPondModelProjectApiError(response.status, parsed.data);\n }\n throw new OpenPondProtocolError(\n \"invalid_error_response\",\n `Model Project request failed with HTTP ${response.status} and an invalid error envelope.`,\n );\n }\n return body;\n }\n\n return {\n async configurationCandidates() {\n return z.object({ candidates: z.array(ModelProjectBaseModelCandidateSchema).max(1000) }).strict().parse(\n await request(\"/v1/model-projects/configuration/candidates\", { headers: { accept: \"application/json\" } }),\n ).candidates;\n },\n async checkConfiguration(value: ModelProjectSaveRequest) {\n const parsed = parseModelProjectSaveRequest(value);\n return ModelProjectConfigurationCheckSchema.parse(await request(\"/v1/model-projects/configuration/check\", {\n method: \"POST\", headers: { accept: \"application/json\", \"content-type\": \"application/json\" }, body: JSON.stringify(parsed),\n }));\n },\n async saveConfiguration(value: ModelProjectSaveRequest) {\n const parsed = parseModelProjectSaveRequest(value);\n return HostedModelProjectSummarySchema.parse(await request(\"/v1/model-projects/configuration/save\", {\n method: \"POST\", headers: { accept: \"application/json\", \"content-type\": \"application/json\" }, body: JSON.stringify(parsed),\n }));\n },\n async upsert(project: HostedModelProjectSync) {\n assertCanonicalPayloadSize(\n project,\n MODEL_PROJECT_SYNC_MAX_BYTES,\n \"Model Project sync\",\n );\n const parsed = HostedModelProjectSyncSchema.parse(project);\n const body = await request(\n `/v1/model-projects/${encodeURIComponent(parsed.portableProjectId)}`,\n { method: \"PUT\", body: JSON.stringify(parsed) },\n );\n return HostedModelProjectSummarySchema.parse(\n unwrapObject(body, \"project\"),\n );\n },\n async list() {\n const body = await request(\"/v1/model-projects\");\n return z\n .array(HostedModelProjectSummarySchema)\n .parse(unwrapObject(body, \"projects\"));\n },\n async get(projectId: string) {\n const body = await request(\n `/v1/model-projects/${encodeURIComponent(IdSchema.parse(projectId))}`,\n );\n return HostedModelProjectDetailSchema.parse(body);\n },\n };\n}\n\nfunction unwrapObject(value: unknown, key: string): unknown {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return value;\n return key in value ? (value as Record<string, unknown>)[key] : value;\n}\n", "export type CanonicalJsonValue =\n | null\n | boolean\n | number\n | string\n | CanonicalJsonValue[]\n | { [key: string]: CanonicalJsonValue };\n\nexport const OPENPOND_TRAINING_PROTOCOL_MAJOR = 2 as const;\nexport const OPENPOND_TRAINING_MEDIA_TYPE =\n \"application/vnd.openpond.training+json;version=2\" as const;\nexport const OPENPOND_MODEL_PROJECT_MEDIA_TYPE =\n \"application/vnd.openpond.model-project+json;version=2\" as const;\n\nexport const TRAINING_JOB_SUBMISSION_MAX_BYTES = 1_048_576;\nexport const TRAINING_INPUT_ARTIFACT_MAX_BYTES = 67_108_864;\nexport const TRAINING_API_RESPONSE_MAX_BYTES = 8_388_608;\nexport const MODEL_PROJECT_SYNC_MAX_BYTES = 524_288;\nexport const MODEL_PROJECT_API_RESPONSE_MAX_BYTES = 8_388_608;\n\nexport class OpenPondProtocolError extends Error {\n readonly code: string;\n\n constructor(code: string, message: string) {\n super(message);\n this.name = \"OpenPondProtocolError\";\n this.code = code;\n }\n}\n\n/**\n * Deterministic JSON used for content-addressed OpenPond protocol objects.\n * Object keys are sorted by Unicode code point, arrays retain their authored\n * order, and non-JSON/non-finite values are rejected rather than coerced.\n */\nexport function canonicalJson(value: unknown): string {\n return JSON.stringify(normalizeCanonicalJson(value));\n}\n\nexport function canonicalJsonByteLength(value: unknown): number {\n return new TextEncoder().encode(canonicalJson(value)).byteLength;\n}\n\nexport async function canonicalSha256(value: unknown): Promise<string> {\n const bytes = new TextEncoder().encode(canonicalJson(value));\n const digest = await globalThis.crypto.subtle.digest(\"SHA-256\", bytes);\n return Array.from(new Uint8Array(digest), (byte) =>\n byte.toString(16).padStart(2, \"0\"),\n ).join(\"\");\n}\n\nexport function assertCanonicalPayloadSize(\n value: unknown,\n maximumBytes: number,\n label: string,\n): void {\n const actualBytes = canonicalJsonByteLength(value);\n if (actualBytes > maximumBytes) {\n throw new OpenPondProtocolError(\n \"payload_too_large\",\n `${label} is ${actualBytes} bytes; the maximum is ${maximumBytes} bytes.`,\n );\n }\n}\n\nexport function parseBoundedJson(\n text: string,\n maximumBytes: number,\n label: string,\n): unknown {\n const actualBytes = new TextEncoder().encode(text).byteLength;\n if (actualBytes > maximumBytes) {\n throw new OpenPondProtocolError(\n \"response_too_large\",\n `${label} is ${actualBytes} bytes; the maximum is ${maximumBytes} bytes.`,\n );\n }\n try {\n return JSON.parse(text) as unknown;\n } catch {\n throw new OpenPondProtocolError(\n \"invalid_json\",\n `${label} was not valid JSON.`,\n );\n }\n}\n\nfunction normalizeCanonicalJson(value: unknown): CanonicalJsonValue {\n if (\n value === null ||\n typeof value === \"string\" ||\n typeof value === \"boolean\"\n ) {\n return value;\n }\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) {\n throw new OpenPondProtocolError(\n \"non_json_value\",\n \"Canonical JSON cannot contain a non-finite number.\",\n );\n }\n return Object.is(value, -0) ? 0 : value;\n }\n if (Array.isArray(value)) {\n return value.map((entry) => normalizeCanonicalJson(entry));\n }\n if (typeof value === \"object\") {\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) {\n throw new OpenPondProtocolError(\n \"non_json_value\",\n \"Canonical JSON accepts only plain objects.\",\n );\n }\n const result: Record<string, CanonicalJsonValue> = {};\n for (const key of Object.keys(value as Record<string, unknown>).sort()) {\n const entry = (value as Record<string, unknown>)[key];\n if (entry === undefined || typeof entry === \"function\" || typeof entry === \"symbol\") {\n throw new OpenPondProtocolError(\n \"non_json_value\",\n `Canonical JSON cannot contain ${typeof entry} at ${key}.`,\n );\n }\n result[key] = normalizeCanonicalJson(entry);\n }\n return result;\n }\n throw new OpenPondProtocolError(\n \"non_json_value\",\n `Canonical JSON cannot contain ${typeof value}.`,\n );\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/training-acceptance.ts", "../src/training.ts", "../src/training-preparations.ts", "../src/training-harness-sources.ts", "../src/training-candidate-decisions.ts", "../src/training-evaluation-results.ts", "../src/training-grading-plan.ts", "../src/training-evaluation-source.ts"],
|
|
4
|
-
"sourcesContent": ["import { z } from \"zod\";\nimport { assertAcceptanceGroupSnapshot, AcceptanceGroupSnapshotSchema } from \"@openpond/evals/learning\";\nimport { ModelProjectImmutableRefSchema } from \"./model-projects.js\";\nimport { OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(240);\nexport const TrainingAcceptanceGroupReferenceSchema = ModelProjectImmutableRefSchema.extend({ revision: z.number().int().positive() }).strict();\nexport const TrainingAcceptanceGroupSummarySchema = TrainingAcceptanceGroupReferenceSchema.extend({\n teamId: Id, jobId: Id,\n plan: ModelProjectImmutableRefSchema,\n baseline: ModelProjectImmutableRefSchema,\n candidate: ModelProjectImmutableRefSchema,\n state: AcceptanceGroupSnapshotSchema.shape.state,\n updatedAt: z.string().datetime(),\n}).strict();\nexport const TrainingAcceptanceGroupPageSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingAcceptanceGroupPage.v1\"),\n teamId: Id, jobId: Id, groups: z.array(TrainingAcceptanceGroupSummarySchema).max(100), nextCursor: Id.nullable(),\n}).strict();\nexport const TrainingAcceptanceGroupQuerySchema = z.object({\n cursor: Id.optional(), limit: z.number().int().min(1).max(100).default(25),\n}).strict();\nexport type TrainingAcceptanceGroupReference = z.infer<typeof TrainingAcceptanceGroupReferenceSchema>;\nexport type TrainingAcceptanceGroupSummary = z.infer<typeof TrainingAcceptanceGroupSummarySchema>;\nexport type TrainingAcceptanceGroupPage = z.infer<typeof TrainingAcceptanceGroupPageSchema>;\nexport type TrainingAcceptanceGroupQuery = z.input<typeof TrainingAcceptanceGroupQuerySchema>;\nexport type TrainingAcceptanceTarget = { teamId: string; jobId: string };\n\n/** Read retained evidence. These operations do not create, retry or dispatch checks. */\nexport function createTrainingAcceptanceClient(request: (path: string, init?: RequestInit) => Promise<unknown>) {\n const route = (target: TrainingAcceptanceTarget) => {\n Id.parse(target.teamId);\n return `/v1/training/jobs/${encodeURIComponent(Id.parse(target.jobId))}/acceptance-groups`;\n };\n return {\n async acceptanceGroups(target: TrainingAcceptanceTarget, input: TrainingAcceptanceGroupQuery = {}) {\n const query = TrainingAcceptanceGroupQuerySchema.parse(input);\n const params = new URLSearchParams({ limit: String(query.limit) });\n if (query.cursor) params.set(\"cursor\", query.cursor);\n const page = TrainingAcceptanceGroupPageSchema.parse(await request(`${route(target)}?${params}`));\n if (page.teamId !== target.teamId || page.jobId !== target.jobId || page.groups.length > query.limit ||\n page.groups.some(group => group.teamId !== target.teamId || group.jobId !== target.jobId || (query.cursor && group.id <= query.cursor)) ||\n new Set(page.groups.map(group => group.id)).size !== page.groups.length ||\n (page.nextCursor !== null && page.nextCursor !== page.groups.at(-1)?.id))\n throw new OpenPondProtocolError(\"acceptance_group_scope_mismatch\", \"Acceptance groups do not match the requested workspace, job or cursor.\");\n return page;\n },\n async acceptanceGroup(target: TrainingAcceptanceTarget, groupId: string, expected?: TrainingAcceptanceGroupReference) {\n const reference = expected ? TrainingAcceptanceGroupReferenceSchema.parse({ id: expected.id, revision: expected.revision, contentHash: expected.contentHash }) : null;\n if (reference && reference.id !== groupId) throw new OpenPondProtocolError(\"acceptance_group_identity_mismatch\", \"The retained group reference differs from the requested group.\");\n const suffix = reference ? `?revision=${reference.revision}` : \"\";\n const snapshot = assertAcceptanceGroupSnapshot(await request(`${route(target)}/${encodeURIComponent(Id.parse(groupId))}${suffix}`));\n if (snapshot.manifest.teamId !== target.teamId || snapshot.manifest.trainingJob.id !== target.jobId || snapshot.manifest.id !== groupId ||\n (reference && (snapshot.revision !== reference.revision || snapshot.contentHash !== reference.contentHash)))\n throw new OpenPondProtocolError(\"acceptance_group_identity_mismatch\", \"Acceptance evidence does not match the requested workspace, job or retained revision.\");\n return snapshot;\n },\n };\n}\n", "import { createTrainingAcceptanceClient } from \"./training-acceptance.js\";\nimport { TrainingHandoffOriginSchema } from \"./post-training.js\";\nimport { createPostTrainingClient } from \"./post-training.js\";\nexport {\n TrainingAcceptanceGroupReferenceSchema,\n TrainingAcceptanceGroupSummarySchema,\n TrainingAcceptanceGroupPageSchema,\n TrainingAcceptanceGroupQuerySchema,\n type TrainingAcceptanceGroupReference,\n type TrainingAcceptanceGroupSummary,\n type TrainingAcceptanceGroupPage,\n type TrainingAcceptanceGroupQuery,\n type TrainingAcceptanceTarget,\n} from \"./training-acceptance.js\";\nimport { z } from \"zod\";\nimport { createTrainingPreparationClient } from \"./training-preparations.js\";\nexport {\n TrainingPreparationRequestSchema,\n TrainingPreparationPlanContentSchema,\n TrainingPreparationPlanSchema,\n TrainingPreparationReceiptSchema,\n TrainingPreparationControlSchema,\n parseAndVerifyTrainingPreparationReceipt,\n type TrainingPreparationRequest,\n type TrainingPreparationPlan,\n type TrainingPreparationReceipt,\n type TrainingPreparationControl,\n} from \"./training-preparations.js\";\nexport {\n TrainingPreparationListQuerySchema,\n TrainingPreparationPageSchema,\n type TrainingPreparationListQuery,\n type TrainingPreparationPage,\n} from \"./training-preparations.js\";\nimport { createTrainingHarnessSourceClient } from \"./training-harness-sources.js\";\nexport { TrainingHarnessSourcePublicationSchema } from \"./training-harness-sources.js\";\nimport { createTrainingCandidateDecisionClient } from \"./training-candidate-decisions.js\";\nexport {\n TrainingCandidateDecisionRequestSchema,\n TrainingCandidateDecisionSchema,\n trainingCandidateDecisionHash,\n parseAndVerifyTrainingCandidateDecision,\n type TrainingCandidateDecisionRequest,\n type TrainingCandidateDecision,\n type TrainingCandidateDecisionTarget,\n} from \"./training-candidate-decisions.js\";\nimport { parseAndVerifyTrainingEvaluationTaskPage } from \"./training-evaluation-results.js\";\n\nexport { deterministicTrainingRewardSource } from \"./training-grading-plan.js\";\nexport {\n TRAINING_EVALUATION_SOURCE_PATH,\n TrainingEvaluationSourceSchema,\n assertTrainingEvaluationIsolation,\n trainingEvaluationSourceRef,\n type TrainingEvaluationSource,\n} from \"./training-evaluation-source.js\";\nexport {\n TrainingEvaluationTaskResultSchema,\n TrainingEvaluationTaskPageSchema,\n trainingEvaluationTaskPageHash,\n parseAndVerifyTrainingEvaluationTaskPage,\n type TrainingEvaluationTaskResult,\n type TrainingEvaluationTaskPage,\n} from \"./training-evaluation-results.js\";\n\nimport {\n ModelProjectBaseModelSchema,\n ModelProjectImmutableRefSchema,\n ModelProjectRecipeDocumentSchema,\n ModelProjectVersionedRefSchema,\n} from \"./model-projects.js\";\nimport {\n OPENPOND_TRAINING_MEDIA_TYPE,\n TRAINING_API_RESPONSE_MAX_BYTES,\n TRAINING_INPUT_ARTIFACT_MAX_BYTES,\n TRAINING_JOB_SUBMISSION_MAX_BYTES,\n OpenPondProtocolError,\n assertCanonicalPayloadSize,\n canonicalSha256,\n parseBoundedJson,\n} from \"./protocol.js\";\n\nexport {\n OPENPOND_TRAINING_MEDIA_TYPE,\n OPENPOND_TRAINING_PROTOCOL_MAJOR,\n TRAINING_API_RESPONSE_MAX_BYTES,\n TRAINING_INPUT_ARTIFACT_MAX_BYTES,\n TRAINING_JOB_SUBMISSION_MAX_BYTES,\n OpenPondProtocolError,\n assertCanonicalPayloadSize,\n canonicalJson,\n canonicalJsonByteLength,\n canonicalSha256,\n parseBoundedJson,\n} from \"./protocol.js\";\n\nconst IdSchema = z.string().trim().min(1).max(500);\nconst HashSchema = z.string().regex(/^[a-f0-9]{64}$/);\nconst TimestampSchema = z.string().datetime({ offset: true });\n\n/**\n * Stages a content-addressed immutable input before Job admission. The payload\n * is deliberately opaque to the transport contract: its declared kind owns\n * the executable schema, while the envelope provides bounded bytes,\n * idempotency, and a stable manifest lookup key.\n */\nexport const TrainingInputArtifactUploadSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingInputArtifactUpload.v2\"),\n kind: z.enum([\"portable_training_bundle\", \"reward_model_dataset\"]),\n idempotencyKey: z.string().trim().min(1).max(500),\n sourceManifest: ModelProjectImmutableRefSchema,\n payload: z.unknown(),\n contentHash: HashSchema,\n })\n .strict();\n\nexport const TrainingInputArtifactSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingInputArtifact.v2\"),\n kind: z.enum([\"portable_training_bundle\", \"reward_model_dataset\"]),\n sourceManifest: ModelProjectImmutableRefSchema,\n artifactRef: z.string().trim().min(1).max(2_000),\n contentHash: HashSchema,\n sizeBytes: z.number().int().positive(),\n createdAt: TimestampSchema,\n })\n .strict();\n\nexport async function trainingInputArtifactUploadHash(\n upload: Omit<TrainingInputArtifactUpload, \"contentHash\"> | TrainingInputArtifactUpload,\n): Promise<string> {\n const { contentHash: _contentHash, ...content } = upload as TrainingInputArtifactUpload;\n return canonicalSha256(content);\n}\n\nexport async function parseAndVerifyTrainingInputArtifactUpload(\n value: unknown,\n): Promise<TrainingInputArtifactUpload> {\n assertCanonicalPayloadSize(value, TRAINING_INPUT_ARTIFACT_MAX_BYTES, \"Training input artifact\");\n const parsed = TrainingInputArtifactUploadSchema.parse(value);\n const expectedHash = await trainingInputArtifactUploadHash(parsed);\n if (parsed.contentHash !== expectedHash) {\n throw new OpenPondProtocolError(\n \"content_hash_mismatch\",\n `Training input artifact contentHash ${parsed.contentHash} does not match ${expectedHash}.`,\n );\n }\n return parsed;\n}\n\nexport const TrainingJobKindSchema = z.enum([\"reward_model_train\", \"policy_optimize\"]);\n\nexport const TrainingJobStateSchema = z.enum([\n \"queued\",\n \"admitting\",\n \"provisioning\",\n \"running\",\n \"stopping\",\n \"cancelling\",\n \"succeeded\",\n \"failed\",\n \"cancelled\",\n]);\n\nexport const TrainingCapabilityRequirementSchema = z\n .object({\n id: IdSchema,\n version: z.string().trim().min(1).max(200).nullable().default(null),\n required: z.boolean().default(true),\n })\n .strict();\n\nexport const TrainingJobSourceSchema = z\n .object({\n origin: TrainingHandoffOriginSchema.optional(),\n modelProject: z\n .object({\n id: IdSchema,\n portableProjectId: IdSchema,\n revision: z.number().int().positive(),\n contentHash: HashSchema,\n })\n .strict(),\n harnessRunManifest: ModelProjectImmutableRefSchema,\n harnessRelease: ModelProjectImmutableRefSchema,\n taskset: ModelProjectVersionedRefSchema,\n tasksetRelease: ModelProjectImmutableRefSchema,\n evaluation: z\n .object({\n taskset: ModelProjectVersionedRefSchema,\n dataset: ModelProjectImmutableRefSchema,\n })\n .strict()\n .nullable()\n .optional(),\n dataset: ModelProjectImmutableRefSchema,\n evidenceSets: z.array(ModelProjectImmutableRefSchema).max(10_000),\n })\n .strict();\n\nexport const RewardModelTrainingRequestSchema = z\n .object({\n kind: z.literal(\"reward_model_train\"),\n baseModel: ModelProjectBaseModelSchema,\n preferenceDatasetRelease: ModelProjectImmutableRefSchema,\n processorRelease: ModelProjectImmutableRefSchema,\n recipe: z\n .object({\n schemaVersion: z.literal(\"openpond.rewardModelRecipe.v1\"),\n method: z.literal(\"reward_model\"),\n parameterization: z.literal(\"lora_with_scalar_head\"),\n })\n .catchall(z.unknown()),\n })\n .strict();\n\nconst DeterministicRewardSourceSchema = z\n .object({\n kind: z.literal(\"deterministic\"),\n grader: ModelProjectImmutableRefSchema,\n composer: ModelProjectImmutableRefSchema.nullable().default(null),\n })\n .strict();\n\nconst LearnedRewardSourceSchema = z\n .object({\n kind: z.literal(\"learned_reward\"),\n rewardModelVersion: ModelProjectImmutableRefSchema,\n qualificationReport: ModelProjectImmutableRefSchema.nullable().default(null),\n evaluationReferences: z.array(ModelProjectImmutableRefSchema).max(1_000).default([]),\n scorerArtifact: z\n .object({\n artifactRef: z.string().trim().min(1).max(2_000),\n contentHash: HashSchema,\n executionReceipt: ModelProjectImmutableRefSchema,\n })\n .strict(),\n processorRelease: ModelProjectImmutableRefSchema,\n rewardComposerRelease: ModelProjectImmutableRefSchema,\n })\n .strict();\n\nexport const TrainingQualificationBaseModelSchema = ModelProjectBaseModelSchema.extend({\n revision: z.string().regex(/^[a-f0-9]{40,64}$/),\n tokenizerRevision: z.string().regex(/^[a-f0-9]{40,64}$/),\n chatTemplateHash: HashSchema,\n}).strict();\n\nexport const PolicyOptimizationRequestSchema = z\n .object({\n kind: z.literal(\"policy_optimize\"),\n /** Collect and grade one original-learner group without optimizer work. */\n executionMode: z.literal(\"qualification\").optional(),\n baseModel: ModelProjectBaseModelSchema,\n recipe: ModelProjectRecipeDocumentSchema,\n rewardSource: z.discriminatedUnion(\"kind\", [\n DeterministicRewardSourceSchema,\n LearnedRewardSourceSchema,\n ]),\n resumeFrom: ModelProjectImmutableRefSchema.nullable().default(null),\n })\n .strict();\n\nexport const TrainingJobRequestSchema = z.discriminatedUnion(\"kind\", [\n RewardModelTrainingRequestSchema,\n PolicyOptimizationRequestSchema,\n]);\n\nexport const TrainingJobApprovalSchema = z\n .object({\n approvalHash: HashSchema,\n approvedAt: TimestampSchema,\n exportApproved: z.boolean(),\n maximumSpendUsd: z.number().nonnegative(),\n retentionDays: z.number().int().nonnegative().nullable(),\n region: z.string().trim().min(1).max(200).nullable().default(null),\n })\n .strict();\n\nexport const TrainingJobSubmissionSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJobSubmission.v2\"),\n idempotencyKey: z.string().trim().min(1).max(500),\n name: z.string().trim().min(1).max(200),\n source: TrainingJobSourceSchema,\n job: TrainingJobRequestSchema,\n requestedCapabilities: z.array(TrainingCapabilityRequirementSchema).max(1_000),\n placementObjective: z.enum([\"fast\", \"balanced\", \"economical\"]),\n budget: z\n .object({\n maximumSpendUsd: z.number().nonnegative(),\n maximumWallSeconds: z.number().int().positive(),\n })\n .strict(),\n approval: TrainingJobApprovalSchema,\n contentHash: HashSchema,\n })\n .strict()\n .superRefine((submission, context) => {\n if (submission.job.kind === \"policy_optimize\" && submission.job.executionMode === \"qualification\") {\n const job = submission.job;\n if (!TrainingQualificationBaseModelSchema.safeParse(job.baseModel).success) {\n context.addIssue({ code: \"custom\", path: [\"job\", \"baseModel\"], message: \"Qualification requires immutable model and tokenizer revisions and a SHA-256 chat-template pin.\" });\n }\n if (job.resumeFrom || job.recipe.continuation !== undefined || job.rewardSource.kind !== \"deterministic\" || job.recipe.method !== \"grpo\") {\n context.addIssue({\n code: \"custom\", path: [\"job\"],\n message: \"Qualification requires the original GRPO learner, deterministic reward, and no resume or continuation.\",\n });\n }\n if (!submission.requestedCapabilities.some(requirement => requirement.required && requirement.id === \"managed_rl.policy.qualification\" && requirement.version === \"1\")) {\n context.addIssue({\n code: \"custom\", path: [\"requestedCapabilities\"],\n message: \"Qualification must require managed_rl.policy.qualification@1.\",\n });\n }\n }\n if (submission.approval.maximumSpendUsd !== submission.budget.maximumSpendUsd) {\n context.addIssue({\n code: \"custom\",\n path: [\"approval\", \"maximumSpendUsd\"],\n message: \"Approved spend must equal the immutable Job budget.\",\n });\n }\n });\n\nexport async function trainingJobSubmissionHash(\n submission: Omit<TrainingJobSubmission, \"contentHash\"> | TrainingJobSubmission,\n): Promise<string> {\n const { contentHash: _contentHash, ...content } = submission as TrainingJobSubmission;\n return canonicalSha256(content);\n}\n\nexport async function parseAndVerifyTrainingJobSubmission(\n value: unknown,\n): Promise<TrainingJobSubmission> {\n assertCanonicalPayloadSize(value, TRAINING_JOB_SUBMISSION_MAX_BYTES, \"Training Job submission\");\n const parsed = TrainingJobSubmissionSchema.parse(value);\n const expectedHash = await trainingJobSubmissionHash(parsed);\n if (parsed.contentHash !== expectedHash) {\n throw new OpenPondProtocolError(\n \"content_hash_mismatch\",\n `Training Job contentHash ${parsed.contentHash} does not match ${expectedHash}.`,\n );\n }\n return parsed;\n}\n\nexport const TrainingJobSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJob.v2\"),\n id: IdSchema,\n teamId: IdSchema,\n kind: TrainingJobKindSchema,\n executionMode: z.literal(\"qualification\").optional(),\n modelProjectId: IdSchema,\n portableProjectId: IdSchema,\n sourceProjectRevision: z.number().int().positive(),\n submissionHash: HashSchema,\n state: TrainingJobStateSchema,\n phase: z.string().trim().min(1).max(200),\n version: z.number().int().nonnegative(),\n progress: z.number().min(0).max(1),\n rolloutProgress: z\n .object({\n groupsCompleted: z.number().int().nonnegative(),\n groupsTarget: z.number().int().nonnegative(),\n optimizerUpdatesApplied: z.number().int().nonnegative(),\n optimizerUpdatesSkipped: z.number().int().nonnegative(),\n })\n .strict(),\n accruedSpendUsd: z.number().nonnegative(),\n terminalReason: z.string().trim().min(1).max(5_000).nullable(),\n createdAt: TimestampSchema,\n updatedAt: TimestampSchema,\n completedAt: TimestampSchema.nullable(),\n })\n .strict();\n\nexport const TrainingJobPageSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJobPage.v2\"),\n jobs: z.array(TrainingJobSchema).max(1_000),\n nextCursor: z.string().trim().min(1).max(2_000).nullable(),\n })\n .strict();\n\nexport const TrainingJobEventSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJobEvent.v2\"),\n id: IdSchema,\n jobId: IdSchema,\n sequence: z.number().int().nonnegative(),\n type: IdSchema,\n phase: z.string().trim().min(1).max(200),\n message: z.string().trim().min(1).max(5_000).nullable(),\n data: z.record(z.string(), z.unknown()).default({}),\n createdAt: TimestampSchema,\n })\n .strict();\n\nexport const TrainingJobLogSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJobLog.v2\"),\n jobId: IdSchema,\n sequence: z.number().int().nonnegative(),\n level: z.enum([\"debug\", \"info\", \"warning\", \"error\"]),\n message: z.string().max(20_000),\n createdAt: TimestampSchema,\n })\n .strict();\n\nexport const TrainingJobControlRequestSchema = z\n .object({ expectedVersion: z.number().int().nonnegative() })\n .strict();\n\nexport const TrainingJobOutputSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJobOutput.v2\"),\n id: IdSchema,\n jobId: IdSchema,\n kind: z.enum([\"checkpoint\", \"adapter\", \"scorer\", \"metrics\", \"evaluation\", \"trace\", \"receipt\"]),\n artifactRef: z.string().trim().min(1).max(2_000),\n contentHash: HashSchema,\n sizeBytes: z.number().int().nonnegative(),\n metadata: z.record(z.string(), z.unknown()).default({}),\n createdAt: TimestampSchema,\n })\n .strict();\n\n/** Evidence that collection used the pinned original learner and never updated it. */\nexport const TrainingQualificationEvidenceSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingQualificationEvidence.v1\"),\n baseModel: TrainingQualificationBaseModelSchema,\n group: ModelProjectImmutableRefSchema,\n rolloutReceipts: z.array(ModelProjectImmutableRefSchema).min(1).max(1_000),\n rewardEvidenceHash: HashSchema,\n groupsCompleted: z.literal(1),\n optimizerUpdatesApplied: z.literal(0),\n optimizerUpdatesSkipped: z.literal(0),\n trainingStepsCreated: z.literal(0),\n checkpointsCreated: z.literal(0),\n artifactsCreated: z.literal(0),\n}).strict().superRefine((evidence, context) => {\n if (new Set(evidence.rolloutReceipts.map(receipt => receipt.id)).size !== evidence.rolloutReceipts.length) {\n context.addIssue({ code: \"custom\", path: [\"rolloutReceipts\"], message: \"Qualification rollout receipt identities must be unique.\" });\n }\n});\n\nexport const TrainingExecutionReceiptSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingExecutionReceipt.v2\"),\n id: IdSchema,\n teamId: IdSchema,\n jobId: IdSchema,\n submissionHash: HashSchema,\n manifestHash: HashSchema,\n recipeHash: HashSchema,\n capabilityHash: HashSchema,\n runtimeRelease: ModelProjectImmutableRefSchema,\n inputs: z.array(ModelProjectImmutableRefSchema).max(10_000),\n outputs: z.array(ModelProjectImmutableRefSchema).max(10_000),\n spendUsd: z.number().nonnegative(),\n durationSeconds: z.number().nonnegative(),\n cleanupComplete: z.boolean(),\n qualification: TrainingQualificationEvidenceSchema.optional(),\n issuer: IdSchema,\n issuedAt: TimestampSchema,\n signature: z.string().trim().min(1).max(10_000).nullable(),\n })\n .strict();\n\nexport async function trainingExecutionReceiptHash(\n receipt: TrainingExecutionReceipt,\n): Promise<string> {\n return canonicalSha256(TrainingExecutionReceiptSchema.parse(receipt));\n}\n\nexport async function parseAndVerifyTrainingExecutionReceipt(\n value: unknown,\n expected: {\n id: string;\n contentHash: string;\n teamId?: string;\n jobId?: string;\n requireCleanup?: boolean;\n qualificationSubmission?: TrainingJobSubmission;\n outputs?: TrainingJobOutput[];\n },\n): Promise<TrainingExecutionReceipt> {\n const receipt = TrainingExecutionReceiptSchema.parse(value);\n const expectedId = IdSchema.parse(expected.id);\n const expectedHash = HashSchema.parse(expected.contentHash);\n const actualHash = await trainingExecutionReceiptHash(receipt);\n if (receipt.id !== expectedId || actualHash !== expectedHash) {\n throw new OpenPondProtocolError(\n \"execution_receipt_mismatch\",\n \"The execution receipt identity or canonical content hash did not match.\",\n );\n }\n if (expected.teamId !== undefined && receipt.teamId !== IdSchema.parse(expected.teamId)) {\n throw new OpenPondProtocolError(\n \"execution_receipt_team_mismatch\",\n \"The execution receipt belongs to a different team.\",\n );\n }\n if (expected.jobId !== undefined && receipt.jobId !== IdSchema.parse(expected.jobId)) {\n throw new OpenPondProtocolError(\n \"execution_receipt_job_mismatch\",\n \"The execution receipt belongs to a different Training Job.\",\n );\n }\n if ((expected.requireCleanup ?? true) && !receipt.cleanupComplete) {\n throw new OpenPondProtocolError(\n \"execution_cleanup_incomplete\",\n \"The execution receipt does not attest complete terminal cleanup.\",\n );\n }\n if (expected.qualificationSubmission) {\n const submission = await parseAndVerifyTrainingJobSubmission(expected.qualificationSubmission);\n if (submission.job.kind !== \"policy_optimize\" || submission.job.executionMode !== \"qualification\") {\n throw new OpenPondProtocolError(\"qualification_submission_required\", \"Expected an immutable qualification submission.\");\n }\n await assertTrainingQualificationReceipt(receipt, { submissionHash: submission.contentHash, baseModel: submission.job.baseModel, outputs: expected.outputs });\n }\n return receipt;\n}\n\nexport async function assertTrainingQualificationReceipt(\n receipt: TrainingExecutionReceipt,\n expected: { submissionHash: string; baseModel?: z.infer<typeof ModelProjectBaseModelSchema>; outputs?: TrainingJobOutput[] },\n): Promise<void> {\n const evidence = TrainingQualificationEvidenceSchema.parse(receipt.qualification);\n if (receipt.submissionHash !== expected.submissionHash || !receipt.cleanupComplete) {\n throw new OpenPondProtocolError(\"qualification_receipt_mismatch\", \"Qualification must attest the expected submission and complete cleanup.\");\n }\n if (expected.baseModel && await canonicalSha256(evidence.baseModel) !== await canonicalSha256(expected.baseModel)) {\n throw new OpenPondProtocolError(\"qualification_learner_mismatch\", \"Qualification used a different original learner or tokenizer.\");\n }\n if (expected.outputs?.some(output => [\"checkpoint\", \"adapter\", \"scorer\"].includes(output.kind))) {\n throw new OpenPondProtocolError(\"qualification_updated_artifact\", \"Qualification must not publish trained artifacts or checkpoints.\");\n }\n}\n\nexport const TrainingJobOutputsSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJobOutputs.v2\"),\n outputs: z.array(TrainingJobOutputSchema).max(10_000),\n receipt: TrainingExecutionReceiptSchema.nullable(),\n })\n .strict();\n\nexport const TrainingApiErrorSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingApiError.v2\"),\n code: z.string().trim().min(1).max(200),\n message: z.string().trim().min(1).max(5_000),\n retryable: z.boolean().default(false),\n requestId: z.string().trim().min(1).max(500).nullable().default(null),\n details: z.record(z.string(), z.unknown()).default({}),\n })\n .strict();\n\nexport class OpenPondTrainingApiError extends Error {\n readonly status: number;\n readonly code: string;\n readonly retryable: boolean;\n readonly requestId: string | null;\n readonly details: Record<string, unknown>;\n\n constructor(status: number, error: z.infer<typeof TrainingApiErrorSchema>) {\n super(error.message);\n this.name = \"OpenPondTrainingApiError\";\n this.status = status;\n this.code = error.code;\n this.retryable = error.retryable;\n this.requestId = error.requestId;\n this.details = error.details;\n }\n}\n\nexport const TrainingCapabilitiesSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingCapabilities.v2\"),\n capabilityHash: HashSchema,\n jobKinds: z.array(TrainingJobKindSchema),\n methods: z.array(z.string().trim().min(1).max(200)),\n executionModes: z.array(z.enum([\"training\", \"qualification\"])).optional(),\n placements: z.array(z.enum([\"local\", \"remote\", \"colocated\", \"provider_native\"])),\n controls: z\n .object({\n cancel: z.boolean(),\n stopAfterGroup: z.boolean(),\n resumeFromCheckpoint: z.boolean(),\n })\n .strict(),\n limits: z\n .object({\n maximumSpendUsd: z.number().nonnegative(),\n maximumWallSeconds: z.number().int().positive(),\n maximumArtifactBytes: z.number().int().positive(),\n })\n .strict(),\n checkedAt: TimestampSchema,\n expiresAt: TimestampSchema,\n })\n .strict();\n\nexport type TrainingJobSubmission = z.infer<typeof TrainingJobSubmissionSchema>;\nexport type TrainingQualificationEvidence = z.infer<typeof TrainingQualificationEvidenceSchema>;\nexport type TrainingInputArtifactUpload = z.infer<typeof TrainingInputArtifactUploadSchema>;\nexport type TrainingInputArtifact = z.infer<typeof TrainingInputArtifactSchema>;\nexport type TrainingJob = z.infer<typeof TrainingJobSchema>;\nexport type TrainingJobPage = z.infer<typeof TrainingJobPageSchema>;\nexport type TrainingJobEvent = z.infer<typeof TrainingJobEventSchema>;\nexport type TrainingJobLog = z.infer<typeof TrainingJobLogSchema>;\nexport type TrainingJobOutput = z.infer<typeof TrainingJobOutputSchema>;\nexport type TrainingJobOutputs = z.infer<typeof TrainingJobOutputsSchema>;\nexport type TrainingExecutionReceipt = z.infer<typeof TrainingExecutionReceiptSchema>;\nexport type TrainingCapabilities = z.infer<typeof TrainingCapabilitiesSchema>;\n\nfunction headersRecord(headers: HeadersInit | undefined): Record<string, string> {\n const result: Record<string, string> = {};\n new Headers(headers).forEach((value, key) => {\n result[key] = value;\n });\n return result;\n}\n\nexport function createTrainingClient(input: {\n baseUrl: string;\n fetch?: typeof fetch;\n headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);\n}) {\n const fetchImpl = input.fetch ?? fetch;\n const baseUrl = input.baseUrl.replace(/\\/$/, \"\");\n\n async function request(\n pathname: string,\n init?: RequestInit,\n responseLimit = TRAINING_API_RESPONSE_MAX_BYTES,\n ): Promise<unknown> {\n const readOnly = init?.method === undefined || init.method.toUpperCase() === \"GET\";\n const maximumAttempts = readOnly ? 3 : 1;\n for (let attempt = 1; attempt <= maximumAttempts; attempt += 1) {\n let response: Response;\n try {\n const configuredHeaders =\n typeof input.headers === \"function\" ? await input.headers() : (input.headers ?? {});\n response = await fetchImpl(`${baseUrl}${pathname}`, {\n ...init,\n headers: {\n accept: OPENPOND_TRAINING_MEDIA_TYPE,\n ...(init?.body ? { \"content-type\": OPENPOND_TRAINING_MEDIA_TYPE } : {}),\n ...headersRecord(configuredHeaders),\n ...headersRecord(init?.headers),\n },\n });\n } catch (error) {\n if (\n attempt === maximumAttempts ||\n init?.signal?.aborted ||\n !trainingReadFailureIsRetryable(null, error)\n ) {\n throw error;\n }\n await new Promise((resolve) => setTimeout(resolve, 250 * 2 ** (attempt - 1)));\n continue;\n }\n const body = parseBoundedJson(await response.text(), responseLimit, \"Training API response\");\n if (response.ok) return body;\n const error = trainingApiError(body, response.status);\n if (attempt === maximumAttempts || !trainingReadFailureIsRetryable(response.status, error)) {\n throw error;\n }\n await new Promise((resolve) => setTimeout(resolve, 250 * 2 ** (attempt - 1)));\n }\n throw new OpenPondProtocolError(\n \"training_read_retry_exhausted\",\n \"Training read retry loop exhausted without a response.\",\n );\n }\n\n return {\n postTraining: createPostTrainingClient({ request }),\n ...createTrainingPreparationClient(request),\n ...createTrainingAcceptanceClient(request),\n ...createTrainingHarnessSourceClient(request),\n ...createTrainingCandidateDecisionClient(request),\n async capabilities() {\n return TrainingCapabilitiesSchema.parse(\n unwrapObject(await request(\"/v1/training/capabilities\"), \"capabilities\"),\n );\n },\n async stageArtifact(upload: TrainingInputArtifactUpload) {\n const parsed = await parseAndVerifyTrainingInputArtifactUpload(upload);\n return TrainingInputArtifactSchema.parse(\n unwrapObject(\n await request(\"/v1/training/artifacts\", {\n method: \"POST\",\n body: JSON.stringify(parsed),\n }),\n \"artifact\",\n ),\n );\n },\n async createJob(submission: TrainingJobSubmission) {\n const parsed = await parseAndVerifyTrainingJobSubmission(submission);\n return TrainingJobSchema.parse(\n unwrapObject(\n await request(\"/v1/training/jobs\", {\n method: \"POST\",\n body: JSON.stringify(parsed),\n }),\n \"job\",\n ),\n );\n },\n async listJobs(\n options: {\n modelProjectId?: string;\n cursor?: string;\n limit?: number;\n } = {},\n ) {\n const parameters = new URLSearchParams();\n if (options.modelProjectId) {\n parameters.set(\"modelProjectId\", IdSchema.parse(options.modelProjectId));\n }\n if (options.cursor) {\n parameters.set(\"cursor\", z.string().trim().min(1).max(2_000).parse(options.cursor));\n }\n if (options.limit !== undefined) {\n parameters.set(\"limit\", String(z.number().int().min(1).max(1_000).parse(options.limit)));\n }\n const query = parameters.size > 0 ? `?${parameters.toString()}` : \"\";\n return TrainingJobPageSchema.parse(await request(`/v1/training/jobs${query}`));\n },\n async getJob(jobId: string) {\n return TrainingJobSchema.parse(\n unwrapObject(\n await request(`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}`),\n \"job\",\n ),\n );\n },\n async cancelJob(jobId: string, expectedVersion: number) {\n const control = TrainingJobControlRequestSchema.parse({ expectedVersion });\n return TrainingJobSchema.parse(\n unwrapObject(\n await request(`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/cancel`, {\n method: \"POST\",\n body: JSON.stringify(control),\n }),\n \"job\",\n ),\n );\n },\n async stopAfterGroup(jobId: string, expectedVersion: number) {\n const control = TrainingJobControlRequestSchema.parse({ expectedVersion });\n return TrainingJobSchema.parse(\n unwrapObject(\n await request(\n `/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/stop-after-group`,\n { method: \"POST\", body: JSON.stringify(control) },\n ),\n \"job\",\n ),\n );\n },\n async events(jobId: string) {\n return z\n .array(TrainingJobEventSchema)\n .parse(\n unwrapObject(\n await request(`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/events`),\n \"events\",\n ),\n );\n },\n async outputs(jobId: string) {\n return TrainingJobOutputsSchema.parse(\n await request(`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/outputs`),\n );\n },\n async evaluationTasks(\n jobId: string,\n evaluation: { id: string; contentHash: string },\n options: { cursor?: string; limit?: number } = {},\n ) {\n const id = IdSchema.parse(jobId);\n const reference = ModelProjectImmutableRefSchema.parse(evaluation);\n const parameters = new URLSearchParams();\n const cursor =\n options.cursor === undefined\n ? undefined\n : z\n .string()\n .regex(/^[1-9]\\d*$/)\n .parse(options.cursor);\n const offset =\n cursor === undefined ? 0 : z.number().int().min(1).max(9_999).parse(Number(cursor));\n if (cursor !== undefined) parameters.set(\"cursor\", cursor);\n if (options.limit !== undefined)\n parameters.set(\"limit\", String(z.number().int().min(1).max(100).parse(options.limit)));\n const query = parameters.size ? `?${parameters.toString()}` : \"\";\n return parseAndVerifyTrainingEvaluationTaskPage(\n await request(\n `/v1/training/jobs/${encodeURIComponent(id)}/evaluations/${encodeURIComponent(reference.id)}/tasks${query}`,\n ),\n { jobId: id, evaluation: reference, offset },\n );\n },\n async logs(jobId: string) {\n return z\n .array(TrainingJobLogSchema)\n .max(100_000)\n .parse(\n unwrapObject(\n await request(`/v1/training/jobs/${encodeURIComponent(IdSchema.parse(jobId))}/logs`),\n \"logs\",\n ),\n );\n },\n };\n}\n\nfunction trainingReadFailureIsRetryable(status: number | null, error: unknown): boolean {\n if (status !== null) {\n return status === 408 || status === 429 || status >= 500;\n }\n if (error instanceof OpenPondTrainingApiError) return error.retryable;\n if (error instanceof OpenPondProtocolError) {\n return error.code === \"invalid_error_response\";\n }\n return error instanceof TypeError;\n}\n\nfunction unwrapObject(value: unknown, key: string): unknown {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return value;\n return key in value ? (value as Record<string, unknown>)[key] : value;\n}\n\nfunction trainingApiError(value: unknown, status: number): Error {\n const parsed = TrainingApiErrorSchema.safeParse(value);\n if (parsed.success) {\n return new OpenPondTrainingApiError(status, parsed.data);\n }\n return new OpenPondProtocolError(\n \"invalid_error_response\",\n `Training request failed with HTTP ${status} and an invalid error envelope.`,\n );\n}\n", "import { TrainingHandoffOriginSchema } from \"./post-training.js\";\nimport { z } from \"zod\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { TrainingJobSourceSchema } from \"./training.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().trim().min(1).max(191);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\n\n/** Manual training compiles an already reviewed batch. It creates no recurring policy. */\nexport const TrainingPreparationRequestSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingPreparationRequest.v1\"),\n teamId: Id,\n operationId: Id,\n projectId: Id.nullable(),\n configuration: z\n .object({ id: Id, expectedRevision: z.number().int().positive(), expectedEtag: Hash })\n .strict(),\n origin: TrainingHandoffOriginSchema.optional(),\n batch: ModelProjectVersionedRefSchema,\n name: z.string().trim().min(1).max(191),\n maximumSpendUsd: z.number().finite().positive().max(1_000_000),\n })\n .strict();\nexport const TrainingPreparationPlanContentSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingPreparationPlan.v1\"),\n id: Id,\n creatorUserId: Id,\n request: TrainingPreparationRequestSchema,\n requestHash: Hash,\n source: z.lazy(() => TrainingJobSourceSchema),\n submissionHash: Hash,\n createdAt: z.string().datetime({ offset: true }),\n })\n .strict();\nexport const TrainingPreparationPlanSchema = TrainingPreparationPlanContentSchema.extend({\n contentHash: Hash,\n}).strict();\nexport const TrainingPreparationReceiptSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingPreparationReceipt.v1\"),\n plan: TrainingPreparationPlanSchema,\n revision: z.number().int().positive(),\n state: z.enum([\"prepared\", \"submitted\", \"cancelled\"]),\n jobId: Id.nullable(),\n })\n .strict()\n .superRefine((value, context) => {\n if ((value.state === \"submitted\") !== Boolean(value.jobId))\n context.addIssue({\n code: \"custom\",\n path: [\"jobId\"],\n message: \"Only submitted preparations identify a job.\",\n });\n });\nexport const TrainingPreparationControlSchema = z\n .object({\n teamId: Id,\n planHash: Hash,\n expectedRevision: z.number().int().positive(),\n })\n .strict();\nexport const TrainingPreparationListQuerySchema = z\n .object({\n projectId: Id.optional(),\n state: z.enum([\"prepared\", \"submitted\", \"cancelled\"]).optional(),\n afterId: Id.optional(),\n limit: z.number().int().min(1).max(100).default(25),\n })\n .strict();\nexport const TrainingPreparationPageSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingPreparationPage.v1\"),\n teamId: Id,\n items: z.array(TrainingPreparationReceiptSchema).max(100),\n nextCursor: Id.nullable(),\n })\n .strict();\nexport type TrainingPreparationRequest = z.infer<typeof TrainingPreparationRequestSchema>;\nexport type TrainingPreparationPlan = z.infer<typeof TrainingPreparationPlanSchema>;\nexport type TrainingPreparationReceipt = z.infer<typeof TrainingPreparationReceiptSchema>;\nexport type TrainingPreparationControl = z.infer<typeof TrainingPreparationControlSchema>;\nexport type TrainingPreparationListQuery = z.input<typeof TrainingPreparationListQuerySchema>;\nexport type TrainingPreparationPage = z.infer<typeof TrainingPreparationPageSchema>;\n\nexport async function parseAndVerifyTrainingPreparationReceipt(value: unknown) {\n const receipt = TrainingPreparationReceiptSchema.parse(value);\n const { contentHash, ...plan } = receipt.plan;\n if (\n (await canonicalSha256(plan)) !== contentHash ||\n (await canonicalSha256(plan.request)) !== plan.requestHash ||\n plan.source.modelProject.id !== plan.request.configuration.id ||\n (await canonicalSha256(plan.source.origin ?? null)) !==\n (await canonicalSha256(plan.request.origin ?? null))\n ) {\n throw new OpenPondProtocolError(\n \"training_preparation_mismatch\",\n \"The prepared training inputs changed.\",\n );\n }\n return receipt;\n}\n\nexport function createTrainingPreparationClient(\n request: (path: string, init?: RequestInit) => Promise<unknown>,\n) {\n async function read(value: unknown, teamId: string, id?: string) {\n const receipt = await parseAndVerifyTrainingPreparationReceipt(value);\n if (receipt.plan.request.teamId !== teamId || (id && receipt.plan.id !== id))\n throw new OpenPondProtocolError(\n \"training_preparation_scope_mismatch\",\n \"The training preparation belongs to a different workspace or request.\",\n );\n return receipt;\n }\n return {\n /** Discover the authenticated user's retained preparations without creating jobs. */\n async listPreparations(teamId: string, input: TrainingPreparationListQuery = {}) {\n const scope = Id.parse(teamId);\n const query = TrainingPreparationListQuerySchema.parse(input);\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(query)) params.set(key, String(value));\n const page = TrainingPreparationPageSchema.parse(\n await request(`/v1/training/preparations?${params}`),\n );\n if (\n page.teamId !== scope ||\n page.items.length > query.limit ||\n new Set(page.items.map((item) => item.plan.id)).size !== page.items.length ||\n (page.nextCursor !== null &&\n (page.nextCursor !== page.items.at(-1)?.plan.id || page.nextCursor === query.afterId))\n ) {\n throw new OpenPondProtocolError(\n \"training_preparation_page_mismatch\",\n \"The preparation page does not match its workspace or cursor.\",\n );\n }\n const items = await Promise.all(\n page.items.map(async (item) => {\n const receipt = await read(item, scope);\n if (\n (query.projectId && receipt.plan.request.projectId !== query.projectId) ||\n (query.state && receipt.state !== query.state)\n ) {\n throw new OpenPondProtocolError(\n \"training_preparation_page_mismatch\",\n \"A preparation does not match the requested Project or state.\",\n );\n }\n return receipt;\n }),\n );\n return { ...page, items };\n },\n async prepareRun(input: TrainingPreparationRequest) {\n const parsed = TrainingPreparationRequestSchema.parse(input);\n const receipt = await read(\n await request(\"/v1/training/preparations\", {\n method: \"POST\",\n body: JSON.stringify(parsed),\n }),\n parsed.teamId,\n );\n if (receipt.plan.requestHash !== (await canonicalSha256(parsed)))\n throw new OpenPondProtocolError(\n \"training_preparation_request_mismatch\",\n \"The preparation does not match the requested run.\",\n );\n return receipt;\n },\n async getPreparation(teamId: string, id: string) {\n return read(\n await request(`/v1/training/preparations/${encodeURIComponent(Id.parse(id))}`),\n Id.parse(teamId),\n id,\n );\n },\n async startPreparation(id: string, input: TrainingPreparationControl) {\n const parsed = TrainingPreparationControlSchema.parse(input);\n const receipt = await read(\n await request(`/v1/training/preparations/${encodeURIComponent(Id.parse(id))}/start`, {\n method: \"POST\",\n body: JSON.stringify(parsed),\n }),\n parsed.teamId,\n id,\n );\n if (receipt.plan.contentHash !== parsed.planHash || receipt.state !== \"submitted\")\n throw new OpenPondProtocolError(\n \"training_preparation_start_mismatch\",\n \"The submitted run does not match the approved preparation.\",\n );\n return receipt;\n },\n async cancelPreparation(id: string, input: TrainingPreparationControl) {\n const parsed = TrainingPreparationControlSchema.parse(input);\n const receipt = await read(\n await request(`/v1/training/preparations/${encodeURIComponent(Id.parse(id))}/cancel`, {\n method: \"POST\",\n body: JSON.stringify(parsed),\n }),\n parsed.teamId,\n id,\n );\n if (receipt.plan.contentHash !== parsed.planHash || receipt.state !== \"cancelled\")\n throw new OpenPondProtocolError(\n \"training_preparation_cancel_mismatch\",\n \"The preparation cancellation could not be verified.\",\n );\n return receipt;\n },\n };\n}\n", "import { z } from \"zod\";\nimport { ImmutableReleaseRefSchema, validateHarnessSourcePackage, validateHarnessPolicySourcePackage, type HarnessPolicySourcePackage, type HarnessSourcePackage, type ImmutableReleaseRef } from \"@openpond/harness\";\nimport { assertCanonicalPayloadSize, TRAINING_INPUT_ARTIFACT_MAX_BYTES } from \"./protocol.js\";\n\nexport const TrainingHarnessSourcePublicationSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingHarnessSourcePublication.v1\"),\n harnessRelease: ImmutableReleaseRefSchema,\n sourcePackageHash: z.string().regex(/^[a-f0-9]{64}$/),\n sizeBytes: z.number().int().positive().max(TRAINING_INPUT_ARTIFACT_MAX_BYTES),\n}).strict();\n\n/** Publication stores immutable source only; it never starts training. */\nexport function createTrainingHarnessSourceClient(request: (path: string, init?: RequestInit, responseLimit?: number) => Promise<unknown>) {\n const route = (reference: ImmutableReleaseRef) => {\n const ref = ImmutableReleaseRefSchema.parse(reference);\n return `/v1/training/harness-sources/${encodeURIComponent(ref.id)}/${ref.contentHash}`;\n };\n return {\n async publishHarnessSource(value: HarnessSourcePackage | HarnessPolicySourcePackage) {\n assertCanonicalPayloadSize(value, TRAINING_INPUT_ARTIFACT_MAX_BYTES, \"Training Harness source\");\n const source = validateSource(value);\n const portability = source.agentSnapshot.portability;\n if (!portability.portable || portability.blockers.length || portability.localOnlyAssetRefs.length || portability.hostPrivateAssetRefs.length || (source.schemaVersion === \"openpond.harnessSourcePackage.v1\" && source.harnessRelease.files.some(file => file.visibility !== \"policy\"))) {\n throw new Error(\"Hosted training Harness publication requires portable, policy-visible source.\");\n }\n const result = TrainingHarnessSourcePublicationSchema.parse(await request(route({ id: source.harnessRelease.id, contentHash: source.harnessRelease.contentHash }), { method: \"PUT\", body: JSON.stringify(source) }));\n if (result.harnessRelease.id !== source.harnessRelease.id || result.harnessRelease.contentHash !== source.harnessRelease.contentHash || result.sourcePackageHash !== source.contentHash) {\n throw new Error(\"Published Harness source differs from the selected immutable package.\");\n }\n return result;\n },\n async getHarnessSource(reference: ImmutableReleaseRef) {\n const value = await request(route(reference), undefined, TRAINING_INPUT_ARTIFACT_MAX_BYTES);\n assertCanonicalPayloadSize(value, TRAINING_INPUT_ARTIFACT_MAX_BYTES, \"Training Harness source\");\n return validateSource(value, reference);\n },\n };\n}\n\nfunction validateSource(value: unknown, reference?: ImmutableReleaseRef) {\n return typeof value === \"object\" && value !== null\n && Reflect.get(value, \"schemaVersion\") === \"openpond.harnessPolicySourcePackage.v1\"\n ? validateHarnessPolicySourcePackage(value, reference)\n : validateHarnessSourcePackage(value, reference);\n}\n", "import { z } from \"zod\";\nimport { ModelProjectImmutableRefSchema } from \"./model-projects.js\";\nimport {\n OpenPondProtocolError,\n assertCanonicalPayloadSize,\n canonicalSha256,\n} from \"./protocol.js\";\n\nconst IdSchema = /* @__PURE__ */ (() => z.string().trim().min(1).max(500))();\nconst HashSchema = /* @__PURE__ */ (() => z.string().regex(/^[a-f0-9]{64}$/))();\n\n/** A reviewed candidate decision never activates serving or alters training evidence. */\nexport const TrainingCandidateDecisionRequestSchema = /* @__PURE__ */ (() => z.object({\n schemaVersion: z.literal(\"openpond.trainingCandidateDecisionRequest.v1\"),\n teamId: IdSchema,\n jobId: IdSchema,\n artifact: ModelProjectImmutableRefSchema,\n evaluation: ModelProjectImmutableRefSchema,\n executionReceipt: ModelProjectImmutableRefSchema,\n decision: z.enum([\"accepted\", \"rejected\"]),\n reason: z.string().trim().min(1).max(5_000),\n idempotencyKey: IdSchema,\n expectedDecision: ModelProjectImmutableRefSchema.nullable(),\n}).strict())();\n\n/** Append-only, authenticated hosted record. Hash verification is not a signature. */\nexport const TrainingCandidateDecisionSchema = /* @__PURE__ */ (() => z.object({\n schemaVersion: z.literal(\"openpond.trainingCandidateDecision.v1\"),\n id: IdSchema,\n request: TrainingCandidateDecisionRequestSchema,\n revision: z.number().int().positive(),\n actor: z.object({ userId: IdSchema, kind: z.enum([\"user\", \"api_key\", \"agent_delegate\"]), id: IdSchema }).strict(),\n decidedAt: z.string().datetime({ offset: true }),\n contentHash: HashSchema,\n}).strict().superRefine((value, context) => {\n if ((value.revision === 1) !== (value.request.expectedDecision === null)) {\n context.addIssue({ code: \"custom\", path: [\"revision\"], message: \"A first decision has no predecessor; later decisions must reference the prior decision.\" });\n }\n if (value.request.expectedDecision?.id === value.id) {\n context.addIssue({ code: \"custom\", path: [\"request\", \"expectedDecision\"], message: \"A decision cannot supersede itself.\" });\n }\n}))();\n\nexport type TrainingCandidateDecisionRequest = z.infer<typeof TrainingCandidateDecisionRequestSchema>;\nexport type TrainingCandidateDecision = z.infer<typeof TrainingCandidateDecisionSchema>;\nexport type TrainingCandidateDecisionTarget = Pick<TrainingCandidateDecisionRequest, \"teamId\" | \"jobId\" | \"artifact\">;\n\nexport async function trainingCandidateDecisionHash(\n value: Omit<TrainingCandidateDecision, \"contentHash\"> | TrainingCandidateDecision,\n): Promise<string> {\n const { contentHash: _contentHash, ...content } = value as TrainingCandidateDecision;\n return canonicalSha256(content);\n}\n\nexport async function parseAndVerifyTrainingCandidateDecision(\n value: unknown,\n expected: TrainingCandidateDecisionTarget & { request?: TrainingCandidateDecisionRequest },\n): Promise<TrainingCandidateDecision> {\n assertCanonicalPayloadSize(value, 32_768, \"Training candidate decision\");\n const parsed = TrainingCandidateDecisionSchema.parse(value);\n if (parsed.contentHash !== await trainingCandidateDecisionHash(parsed)) {\n throw new OpenPondProtocolError(\"content_hash_mismatch\", \"Training candidate decision content hash does not match.\");\n }\n if (parsed.request.teamId !== expected.teamId || parsed.request.jobId !== expected.jobId\n || parsed.request.artifact.id !== expected.artifact.id\n || parsed.request.artifact.contentHash !== expected.artifact.contentHash) {\n throw new OpenPondProtocolError(\"candidate_decision_identity_mismatch\", \"Training candidate decision belongs to a different team, Job or artifact.\");\n }\n if (expected.request && await canonicalSha256(parsed.request) !== await canonicalSha256(TrainingCandidateDecisionRequestSchema.parse(expected.request))) {\n throw new OpenPondProtocolError(\"candidate_decision_request_mismatch\", \"Training candidate decision does not match the submitted review.\");\n }\n return parsed;\n}\n\nexport function createTrainingCandidateDecisionClient(\n request: (path: string, init?: RequestInit) => Promise<unknown>,\n) {\n function route(target: TrainingCandidateDecisionTarget) {\n return `/v1/training/jobs/${encodeURIComponent(IdSchema.parse(target.jobId))}/candidates/${encodeURIComponent(ModelProjectImmutableRefSchema.parse(target.artifact).id)}/decision`;\n }\n return {\n async candidateDecision(\n target: TrainingCandidateDecisionTarget,\n options: { decision?: { id: string; contentHash: string } } = {},\n ): Promise<TrainingCandidateDecision | null> {\n IdSchema.parse(target.teamId);\n const reference = options.decision ? ModelProjectImmutableRefSchema.parse(options.decision) : undefined;\n const query = reference ? `?decisionId=${encodeURIComponent(reference.id)}` : \"\";\n const response = z.object({ decision: z.unknown().nullable() }).strict().parse(await request(`${route(target)}${query}`));\n if (response.decision === null && !reference) return null;\n const decision = await parseAndVerifyTrainingCandidateDecision(response.decision, target);\n if (reference && (decision.id !== reference.id || decision.contentHash !== reference.contentHash)) {\n throw new OpenPondProtocolError(\"candidate_decision_identity_mismatch\", \"Training candidate decision does not match the requested history entry.\");\n }\n return decision;\n },\n async recordCandidateDecision(input: TrainingCandidateDecisionRequest): Promise<TrainingCandidateDecision> {\n const parsed = TrainingCandidateDecisionRequestSchema.parse(input);\n const response = await request(route(parsed), { method: \"POST\", body: JSON.stringify(parsed) });\n return parseAndVerifyTrainingCandidateDecision(response, { ...parsed, request: parsed });\n },\n };\n}\n", "import { z } from \"zod\";\nimport { ModelProjectImmutableRefSchema, ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport {\n OpenPondProtocolError,\n TRAINING_API_RESPONSE_MAX_BYTES,\n assertCanonicalPayloadSize,\n canonicalSha256,\n} from \"./protocol.js\";\n\nconst IdSchema = /* @__PURE__ */ (() => z.string().trim().min(1).max(500))();\nconst HashSchema = /* @__PURE__ */ (() => z.string().regex(/^[a-f0-9]{64}$/))();\n\n/** Reviewer-facing evidence only: never a worker response or training sample. */\nexport const TrainingEvaluationTaskResultSchema = /* @__PURE__ */ (() => z.object({\n taskId: IdSchema,\n taskSha256: HashSchema,\n resultSha256: HashSchema,\n input: z.object({\n instruction: z.string().max(1_000_000),\n context: z.record(z.string(), z.unknown()),\n }).strict(),\n output: z.string().max(1_000_000),\n outputSha256: HashSchema,\n score: z.number().finite().min(0).max(1),\n evidence: z.object({\n kind: z.enum([\"worker_command\", \"hosted_trace\", \"local_trace\"]),\n id: IdSchema,\n }).strict(),\n}).strict())();\n\n/** Supplements an existing evaluation; does not replace its terminal receipt. */\nexport const TrainingEvaluationTaskPageSchema = /* @__PURE__ */ (() => z.object({\n schemaVersion: z.literal(\"openpond.trainingEvaluationTaskPage.v1\"),\n jobId: IdSchema,\n teamId: IdSchema,\n evaluation: ModelProjectImmutableRefSchema,\n kind: z.enum([\"baseline\", \"candidate\"]),\n policyVersion: z.number().int().nonnegative(),\n taskset: ModelProjectVersionedRefSchema,\n panelSha256: HashSchema,\n offset: z.number().int().nonnegative(),\n total: z.number().int().min(1).max(10_000),\n tasks: z.array(TrainingEvaluationTaskResultSchema).min(1).max(100),\n nextCursor: z.string().regex(/^[1-9]\\d*$/).nullable(),\n contentHash: HashSchema,\n}).strict().superRefine((page, context) => {\n const end = page.offset + page.tasks.length;\n const expectedCursor = end < page.total ? String(end) : null;\n if (end > page.total || page.nextCursor !== expectedCursor) {\n context.addIssue({ code: \"custom\", path: [\"nextCursor\"], message: \"Evaluation pagination must cover consecutive task positions.\" });\n }\n if (new Set(page.tasks.map((task) => task.taskId)).size !== page.tasks.length) {\n context.addIssue({ code: \"custom\", path: [\"tasks\"], message: \"Evaluation task identities must be unique.\" });\n }\n}))();\n\nexport type TrainingEvaluationTaskResult = z.infer<typeof TrainingEvaluationTaskResultSchema>;\nexport type TrainingEvaluationTaskPage = z.infer<typeof TrainingEvaluationTaskPageSchema>;\n\nexport async function trainingEvaluationTaskPageHash(\n value: Omit<TrainingEvaluationTaskPage, \"contentHash\"> | TrainingEvaluationTaskPage,\n): Promise<string> {\n const { contentHash: _contentHash, ...content } = value as TrainingEvaluationTaskPage;\n return canonicalSha256(content);\n}\n\nexport async function parseAndVerifyTrainingEvaluationTaskPage(\n value: unknown,\n expected: {\n jobId: string;\n evaluation: { id: string; contentHash: string };\n offset?: number;\n teamId?: string;\n },\n): Promise<TrainingEvaluationTaskPage> {\n assertCanonicalPayloadSize(value, TRAINING_API_RESPONSE_MAX_BYTES, \"Training evaluation task page\");\n const page = TrainingEvaluationTaskPageSchema.parse(value);\n const reference = ModelProjectImmutableRefSchema.parse(expected.evaluation);\n if (page.jobId !== IdSchema.parse(expected.jobId)\n || page.evaluation.id !== reference.id\n || page.evaluation.contentHash !== reference.contentHash\n || page.offset !== (expected.offset ?? 0)\n || (expected.teamId !== undefined && page.teamId !== IdSchema.parse(expected.teamId))) {\n throw new OpenPondProtocolError(\"evaluation_page_identity_mismatch\", \"Evaluation results differ from the requested Job, evaluation, or page.\");\n }\n if (await trainingEvaluationTaskPageHash(page) !== page.contentHash) {\n throw new OpenPondProtocolError(\"evaluation_page_hash_mismatch\", \"Evaluation task page content hash did not match.\");\n }\n for (const task of page.tasks) {\n if (await canonicalSha256(task.output) !== task.outputSha256) {\n throw new OpenPondProtocolError(\"evaluation_output_hash_mismatch\", \"A retained evaluation output hash did not match.\");\n }\n }\n return page;\n}\n", "import { z } from \"zod\";\nimport { compileBoundGraders, RewardBindingSchema, RewardReleaseSchema } from \"@openpond/evals/rewards\";\nimport { canonicalSha256 } from \"./protocol.js\";\n\nconst GradersSchema = z.array(z.object({ id: z.string().trim().min(1) }).catchall(z.unknown())).min(1).max(1_000);\nconst RewardExecutionSchema = z.object({\n binding: RewardBindingSchema,\n rewards: z.array(RewardReleaseSchema).min(1).max(100),\n}).strict();\n\n/**\n * The grader reference identifies the entire executed set, including order and\n * configuration. A bound plan additionally identifies its immutable composer,\n * whose sources pin roles, normalization, gates and required-score semantics.\n * Callers must obtain these inputs from their verified immutable bundle.\n */\nexport async function deterministicTrainingRewardSource(input: {\n graders: unknown;\n rewardExecution?: unknown;\n}) {\n const execution = input.rewardExecution ? RewardExecutionSchema.parse(input.rewardExecution) : null;\n const graders = GradersSchema.parse(execution\n ? compileBoundGraders(execution.binding, execution.rewards)\n : input.graders);\n if (new Set(graders.map(grader => grader.id)).size !== graders.length) {\n throw new Error(\"Training grader identities must be unique.\");\n }\n const hash = await canonicalSha256({ schemaVersion: \"openpond.trainingGraderSet.v1\", graders });\n return {\n kind: \"deterministic\" as const,\n grader: { id: `training-graders-${hash.slice(0, 32)}`, contentHash: hash },\n composer: execution ? { id: execution.binding.id, contentHash: execution.binding.contentHash } : null,\n };\n}\n", "import { z } from \"zod\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { canonicalSha256 } from \"./protocol.js\";\n\nexport const TRAINING_EVALUATION_SOURCE_PATH = \"evaluation-source.json\";\n\nconst TaskIdentitySchema = z.object({\n id: z.string().trim().min(1),\n clusterKey: z.string().trim().min(1),\n split: z.enum([\"train\", \"validation\", \"frozen_eval\"]),\n}).passthrough();\n\n/** Evaluator-only payload. The enclosing resolved bundle pins every byte. */\nexport const TrainingEvaluationSourceSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingEvaluationSource.v1\"),\n taskset: ModelProjectVersionedRefSchema,\n tasks: z.array(TaskIdentitySchema).min(1).max(10_000),\n assets: z.array(z.object({\n path: z.string().trim().min(1).max(2_000),\n sha256: z.string().regex(/^[a-f0-9]{64}$/),\n sizeBytes: z.number().int().nonnegative(),\n encoding: z.literal(\"base64\"),\n content: z.string().max(32 * 1024 * 1024),\n }).strict()).max(10_000),\n}).strict().superRefine((source, context) => {\n const ids = new Set<string>();\n source.tasks.forEach((task, index) => {\n if (task.split === \"train\") context.addIssue({ code: \"custom\", path: [\"tasks\", index, \"split\"], message: \"Evaluation sources require held-out tasks.\" });\n if (ids.has(task.id)) context.addIssue({ code: \"custom\", path: [\"tasks\", index, \"id\"], message: \"Evaluation task identities must be unique.\" });\n ids.add(task.id);\n });\n});\n\nexport type TrainingEvaluationSource = z.infer<typeof TrainingEvaluationSourceSchema>;\n\nexport function assertTrainingEvaluationIsolation(trainingTasks: unknown, evaluationTasks: unknown): void {\n const training = z.array(TaskIdentitySchema).min(1).max(10_000).parse(trainingTasks);\n const evaluation = z.array(TaskIdentitySchema).min(1).max(10_000).parse(evaluationTasks);\n const trainIds = new Set<string>();\n const trainFamilies = new Set<string>();\n for (const task of training) {\n if (task.split !== \"train\") throw new Error(\"The training population contains a held-out task.\");\n if (trainIds.has(task.id)) throw new Error(\"Training task identities must be unique.\");\n trainIds.add(task.id);\n trainFamilies.add(task.clusterKey);\n }\n const evaluationIds = new Set<string>();\n for (const task of evaluation) {\n if (task.split === \"train\") throw new Error(\"The evaluation population contains a training task.\");\n if (evaluationIds.has(task.id)) throw new Error(\"Evaluation task identities must be unique.\");\n if (trainIds.has(task.id) || trainFamilies.has(task.clusterKey)) {\n throw new Error(\"Training and evaluation tasks or families overlap.\");\n }\n evaluationIds.add(task.id);\n }\n}\n\nexport async function trainingEvaluationSourceRef(input: unknown) {\n const source = TrainingEvaluationSourceSchema.parse(input);\n const hash = await canonicalSha256(source);\n return { taskset: source.taskset, dataset: { id: `training-evaluation-${hash.slice(0, 32)}`, contentHash: hash } };\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["z", "z", "Id", "z", "z", "z", "z", "z", "z", "IdSchema", "z", "HashSchema", "z", "z", "z", "z", "IdSchema", "z", "HashSchema", "error"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/experiment-improvement-contracts.ts"],
|
|
4
|
-
"sourcesContent": ["import { z } from \"zod\";\nimport {HumanComparisonSelectionsSchema,HumanComparisonProjectionSchema,verifyHumanComparisonProjection} from \"@openpond/evals/human-review\";\nimport { contentHash, ImmutableReleaseRefSchema } from \"@openpond/harness\";\nimport { ExperimentManifestSchema, ExperimentResultSchema, verifyExperimentEvidence, compareExperiments } from \"@openpond/evals/experiments\";\nimport {ExperimentScoringRequestSchema} from \"./experiment-scoring-contracts.js\";\nimport {ProfileExternalDatasetBindingSchema,verifyProfileExternalDatasetBinding} from \"@openpond/evals\";\nexport const ExperimentImprovementScoringSchema=z.object({sourcePass:ImmutableReleaseRefSchema,graders:ExperimentScoringRequestSchema.shape.graders,mappings:ExperimentScoringRequestSchema.shape.mappings,maximumCostUsd:z.number().finite().positive().max(10000)}).strict();\nexport const ExperimentImprovementTestRecipeSchema=z.object({externalDatasetBinding:ProfileExternalDatasetBindingSchema,scoring:ExperimentImprovementScoringSchema.optional(),modelId:z.string().min(1).max(300),maximumCostUsd:z.number().finite().positive().max(10000)}).strict();\nexport type ExperimentImprovementTestRecipe=z.infer<typeof ExperimentImprovementTestRecipeSchema>;\nconst OpenPondProfileRefSchema=z.object({source:z.enum([\"local\",\"github\",\"openpond_git\"]),repositoryId:z.string().trim().min(1),profileId:z.string().trim().min(1)}).strict();\nconst Id=z.string().min(1).max(240),Hash=z.string().regex(/^[a-f0-9]{64}$/);\nexport const ExperimentImprovementStateSchema=z.object({schemaVersion:z.literal(\"openpond.experimentImprovement.v1\"),id:Id,operationId:Id,requestHash:Hash,\n actorId:Id,teamId:Id,projectId:Id.nullable(),ownerWorkspaceId:Id,ownerRevision:z.number().int().nonnegative(),ownerSourceRevision:z.string().min(1).max(500),baseRelease:ImmutableReleaseRefSchema,\n profileRef:OpenPondProfileRefSchema,baseProfileSourceRevision:z.string().min(1).max(500),\n evidence:z.object({manifest:ExperimentManifestSchema,result:ExperimentResultSchema}).strict(),\n component:z.object({kind:z.enum([\"skill\",\"workflow\",\"agent\",\"instruction\"]),path:z.string().min(1).max(2000),workflowId:Id.optional()}).strict(),\n mode:z.enum([\"manual\",\"llm_assisted\"]),status:z.enum([\"draft\",\"authoring_queued\",\"authoring\",\"frozen\",\"testing\",\"ready_for_review\",\"adopting\",\"accepted\",\"rolled_back\",\"declined\",\"failed\",\"cancelled\"]),revision:z.number().int().positive(),\n limits:z.object({maximumCostUsd:z.number().finite().positive(),maximumAuthoringSteps:z.number().int().min(1).max(500),maximumDurationMs:z.number().int().min(1000).max(86400000)}).strict(),\n authoringSteps:z.number().int().nonnegative().max(500),\n work:z.object({sessionId:Id,turnId:Id,revision:z.number().int().positive(),startedAt:z.string().datetime()}).strict().nullable(),\n frozen:z.object({release:ImmutableReleaseRefSchema,sourceRevision:z.string().min(1).max(500),profileSourceRevision:z.string().min(1).max(500),authoringHash:Hash,partitionHash:Hash,executableSourceHash:Hash,protectedClosureHash:Hash,\n candidateRevision:z.number().int().positive(),diff:z.array(z.object({path:z.string(),before:Hash.nullable(),after:Hash.nullable()}).strict()).max(10000)}).strict().nullable(),\n test:z.object({recipe:ExperimentImprovementTestRecipeSchema,recipeHash:z.string().regex(/^[a-f0-9]{64}$/),baselineOperationId:z.string(),candidateOperationId:z.string(),cancelRequestedAt:z.string().datetime().nullable(),dispatching:z.object({kind:z.enum([\"baseline\",\"candidate\"]),token:Id,pid:z.number().int().positive(),processStart:z.string().nullable(),startedAt:z.string().datetime()}).strict().nullable()}).strict().nullable(),\n comparison:z.object({baseline:z.object({manifest:ExperimentManifestSchema,result:ExperimentResultSchema}).strict(),candidate:z.object({manifest:ExperimentManifestSchema,result:ExperimentResultSchema}).strict(),frozenHash:Hash,humanProjection:HumanComparisonProjectionSchema.optional()}).strict().nullable(),\n adoptionIntent:z.object({operationId:Id,expectedOwnerRevision:z.number().int().nonnegative(),frozenHash:Hash,humanProjection:HumanComparisonProjectionSchema.optional()}).strict().nullable(),\n acceptance:ImmutableReleaseRefSchema.nullable(),rollback:ImmutableReleaseRefSchema.nullable(),error:z.string().max(2000).nullable(),createdAt:z.string().datetime(),updatedAt:z.string().datetime(),contentHash:Hash}).strict();\nexport type ExperimentImprovementState=z.infer<typeof ExperimentImprovementStateSchema>;\nexport function verifyExperimentImprovementState(raw:unknown) {\n const value=ExperimentImprovementStateSchema.parse(raw),{contentHash:hash,...body}=value;\n if(contentHash(body)!==hash)throw new Error(\"Improvement state integrity failed.\");\n verifyExperimentEvidence(value.evidence);\n if(value.evidence.manifest.teamId!==value.teamId || value.evidence.result.status!==\"completed\" || !value.evidence.result.cases.some(row=>row.status===\"completed\"))throw new Error(\"Improvement requires usable completed owner evidence.\");\n if(value.test&&(contentHash(value.test.recipe)!==value.test.recipeHash||verifyProfileExternalDatasetBinding(value.test.recipe.externalDatasetBinding).profileId!==value.profileRef.profileId))throw new Error(\"The test recipe changed its exact selected Profile.\");\n if(value.comparison?.humanProjection){const projection=verifyHumanComparisonProjection(value.comparison.humanProjection);if(projection.teamId!==value.teamId||projection.projectId!==value.projectId||contentHash(projection.baseline)!==contentHash(value.comparison.baseline)||contentHash(projection.candidate)!==contentHash(value.comparison.candidate))throw new Error(\"Human comparison projection differs from its exact owner evidence.\");}\n if(value.comparison){verifyExperimentEvidence(value.comparison.baseline);verifyExperimentEvidence(value.comparison.candidate);\n if(!value.frozen||value.comparison.frozenHash!==contentHash(value.frozen)||!compareExperiments(value.comparison.baseline,value.comparison.candidate).comparable)throw new Error(\"Improvement comparison is not bound to a comparable frozen candidate.\");}\n if(value.status===\"ready_for_review\"&&(!value.frozen||!value.comparison))throw new Error(\"Improvement is missing qualification.\");\n if(value.status===\"adopting\"&&(!value.adoptionIntent||!value.frozen||value.adoptionIntent.frozenHash!==contentHash(value.frozen)))throw new Error(\"Improvement adoption intent is not bound to its tested revision.\");\n if(value.status===\"accepted\"&&(!value.acceptance||!value.comparison||!value.frozen))throw new Error(\"Improvement acceptance is missing its exact qualification receipt.\");\n if(value.status===\"rolled_back\"&&(!value.acceptance||!value.rollback))throw new Error(\"Profile rollback is missing its durable owner receipt.\");\n return value;\n}\nexport function sealExperimentImprovementState(input:Omit<ExperimentImprovementState,\"contentHash\">){return verifyExperimentImprovementState({...input,contentHash:contentHash(input)});}\n\nexport const ExperimentImprovementListSchema=z.object({states:z.array(ExperimentImprovementStateSchema).max(50),nextCursor:Id.nullable()}).strict();\nexport const StartExperimentImprovementSchema=z.object({operationId:Id,ownerWorkspaceId:Id,expectedOwnerRevision:z.number().int().nonnegative(),baseRelease:ImmutableReleaseRefSchema,\n profileRef:OpenPondProfileRefSchema,profileSourceRevision:z.string().min(1).max(500),projectId:Id.nullable(),evidence:ImmutableReleaseRefSchema,\n component:ExperimentImprovementStateSchema.shape.component,mode:ExperimentImprovementStateSchema.shape.mode,limits:ExperimentImprovementStateSchema.shape.limits}).strict();\nexport const ExperimentImprovementCommandSchema=z.discriminatedUnion(\"operation\",[\n z.object({operation:z.literal(\"list\"),limit:z.number().int().min(1).max(50).default(30),cursor:Id.optional()}).strict(),\n z.object({operation:z.literal(\"options\"),evidence:ImmutableReleaseRefSchema}).strict(),\n z.object({operation:z.literal(\"start\"),request:StartExperimentImprovementSchema}).strict(),\n z.object({operation:z.enum([\"read\",\"humanComparisonOptions\"]),id:Id}).strict(),\n z.object({operation:z.literal(\"instructions\"),id:Id}).strict(),\n z.object({operation:z.literal(\"edit\"),id:Id,revision:z.number().int().positive(),expectedFileHash:Hash,text:z.string().max(250000)}).strict(),\n z.object({operation:z.literal(\"mode\"),id:Id,revision:z.number().int().positive(),mode:z.enum([\"manual\",\"llm_assisted\"])}).strict(),\n z.object({operation:z.literal(\"author\"),id:Id,revision:z.number().int().positive(),modelId:Id,prompt:z.string().min(1).max(20000)}).strict(),\n z.object({operation:z.enum([\"freeze\",\"finishAuthoring\",\"useCandidate\",\"discard\",\"cancel\",\"rollback\"]),id:Id,revision:z.number().int().positive()}).strict(),\n z.object({operation:z.literal(\"test\"),id:Id,revision:z.number().int().positive(),recipe:ExperimentImprovementTestRecipeSchema}).strict(),\n z.object({operation:z.literal(\"compare\"),id:Id,revision:z.number().int().positive(),baseline:ImmutableReleaseRefSchema,candidate:ImmutableReleaseRefSchema,humanSelections:HumanComparisonSelectionsSchema.optional()}).strict(),\n]);\nexport type ExperimentImprovementCommand=z.input<typeof ExperimentImprovementCommandSchema>;\n\nexport const ExperimentImprovementOptionsSchema=z.object({teamId:Id,evidence:ImmutableReleaseRefSchema,scoring:ExperimentImprovementScoringSchema.optional(),profiles:z.array(z.object({id:Hash,name:z.string(),profileRef:OpenPondProfileRefSchema,ownerWorkspaceId:Id,ownerRevision:z.number().int().nonnegative(),baseRelease:ImmutableReleaseRefSchema,profileSourceRevision:z.string(),components:z.array(z.object({kind:z.enum([\"skill\",\"instruction\",\"agent\",\"workflow\"]),path:z.string(),agentId:z.string().optional(),workflowId:z.string().optional(),label:z.string(),binding:ProfileExternalDatasetBindingSchema}).strict()).max(500)}).strict()).max(100)}).strict();\n\nexport const ExperimentImprovementHumanOptionsSchema=z.object({candidateId:Id,actorId:Id,teamId:Id,projectId:Id.nullable(),candidateRevision:z.number().int().positive(),recipeHash:Hash,baseline:z.object({manifest:ExperimentManifestSchema,result:ExperimentResultSchema}).strict(),candidate:z.object({manifest:ExperimentManifestSchema,result:ExperimentResultSchema}).strict(),contentHash:Hash}).strict();\nexport type ExperimentImprovementHumanOptions=z.infer<typeof ExperimentImprovementHumanOptionsSchema>;\nexport function verifyExperimentImprovementHumanOptions(raw:unknown){const value=ExperimentImprovementHumanOptionsSchema.parse(raw),{contentHash:hash,...body}=value;if(contentHash(body)!==hash)throw new Error(\"Accepted Human discovery integrity failed.\");for(const lane of [value.baseline,value.candidate]){verifyExperimentEvidence(lane);if(lane.manifest.teamId!==value.teamId||lane.manifest.lineage?.humanProjection)throw new Error(\"Discovery must retain original owner evidence.\");}return value;}\nexport function sealExperimentImprovementHumanOptions(state:ExperimentImprovementState,pair:{baseline:{manifest:z.infer<typeof ExperimentManifestSchema>;result:z.infer<typeof ExperimentResultSchema>};candidate:{manifest:z.infer<typeof ExperimentManifestSchema>;result:z.infer<typeof ExperimentResultSchema>}}){if(!state.test||state.test.cancelRequestedAt)throw new Error(\"The paired test is unavailable.\");const body={candidateId:state.id,actorId:state.actorId,teamId:state.teamId,projectId:state.projectId,candidateRevision:state.revision,recipeHash:state.test.recipeHash,...pair};return verifyExperimentImprovementHumanOptions({...body,contentHash:contentHash(body)});}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|