openpond-sdk 0.12.26 → 0.12.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/PRODUCT_INTEGRATION.md +13 -6
- package/README.md +2 -10
- package/SERVERLESS_SERVING.md +52 -35
- package/TASK_INGESTION.md +0 -4
- package/dist/advanced-refiner-evaluations.js +7 -7
- package/dist/ai-sdk.js +20 -83
- package/dist/ai-sdk.js.map +1 -1
- package/dist/candidate-evaluations.js +6 -6
- package/dist/{chunk-UZAVG2WK.js → chunk-3HOGOWKU.js} +8 -6
- package/dist/chunk-3HOGOWKU.js.map +1 -0
- package/dist/{chunk-YV6PPDXZ.js → chunk-3Z5IK2UK.js} +27 -2
- package/dist/chunk-3Z5IK2UK.js.map +1 -0
- package/dist/{chunk-4REK5TTE.js → chunk-4D4QSQC3.js} +2 -2
- package/dist/{chunk-AMZ2SWHR.js → chunk-534W2O2S.js} +2 -2
- package/dist/{chunk-6LVLWRBJ.js → chunk-54BJJL7G.js} +2 -2
- package/dist/{chunk-XWUTYFOU.js → chunk-5KJY44FB.js} +3 -3
- package/dist/{chunk-QKLZZOZD.js → chunk-7MLFWVDI.js} +29 -10
- package/dist/chunk-7MLFWVDI.js.map +1 -0
- package/dist/{chunk-4A4FNG4R.js → chunk-7ZV626YS.js} +2 -2
- package/dist/{chunk-57ROW3XF.js → chunk-ABOZV47D.js} +2 -2
- package/dist/{chunk-3BILL33A.js → chunk-BIQ5TG3T.js} +4 -4
- package/dist/{chunk-JINWKUKR.js → chunk-BT6CC6QB.js} +3 -3
- package/dist/{chunk-4PEK3YOW.js → chunk-CNFN6GHY.js} +2 -2
- package/dist/{chunk-X5AT253K.js → chunk-CVYGJUWM.js} +2 -2
- package/dist/{chunk-D26RJQU7.js → chunk-CX7ETU2F.js} +2 -2
- package/dist/{chunk-4CDLPMJK.js → chunk-D7LV3USE.js} +2 -2
- package/dist/{chunk-WZKKQNYY.js → chunk-GA7OSSEA.js} +2 -2
- package/dist/{chunk-EL6KZO43.js → chunk-GFWXDWEE.js} +3 -3
- package/dist/{chunk-XYK3MAIC.js → chunk-JYWIKBGD.js} +122 -112
- package/dist/chunk-JYWIKBGD.js.map +1 -0
- package/dist/{chunk-AQV7RQZH.js → chunk-K4WU4JOP.js} +2 -2
- package/dist/{chunk-CAOMKM55.js → chunk-L7MVGGBH.js} +2 -2
- package/dist/{chunk-P56JWQYV.js → chunk-LRFVISLA.js} +3 -3
- package/dist/{chunk-2U6BQ5C4.js → chunk-MJHQMQEW.js} +3 -3
- package/dist/chunk-ON3KSXWR.js +639 -0
- package/dist/chunk-ON3KSXWR.js.map +1 -0
- package/dist/{chunk-PMVSO23F.js → chunk-RMXZISHK.js} +10 -1
- package/dist/chunk-RMXZISHK.js.map +1 -0
- package/dist/{chunk-JWEIAEQ6.js → chunk-TMNEDWA7.js} +10 -3
- package/dist/chunk-TMNEDWA7.js.map +1 -0
- package/dist/{chunk-C7I4ZG6Q.js → chunk-TX552FQG.js} +3 -3
- package/dist/{chunk-4CRLQMJ2.js → chunk-VIDRZCPQ.js} +6 -6
- package/dist/{chunk-MN4FE52A.js → chunk-VRUAIMM3.js} +7 -7
- package/dist/chunk-VRUAIMM3.js.map +1 -0
- package/dist/{chunk-H5KHLBC5.js → chunk-WJZHSIGD.js} +6 -8
- package/dist/{chunk-H5KHLBC5.js.map → chunk-WJZHSIGD.js.map} +1 -1
- package/dist/{chunk-HCUZYGUK.js → chunk-WPTFJZ4L.js} +3 -3
- package/dist/connected-evidence.js +7 -7
- package/dist/dataset-workspaces.js +10 -10
- package/dist/errors.js +1 -1
- package/dist/experiment-evaluation-schedules.js +16 -16
- package/dist/experiment-improvements.js +7 -7
- package/dist/experiments.js +15 -15
- package/dist/index.js +23 -23
- package/dist/learning.js +15 -4
- package/dist/learning.js.map +1 -1
- package/dist/model-projects.js +1 -1
- package/dist/model-starter-attempts.js +2 -2
- package/dist/model-starter-catalog.js +4 -4
- package/dist/model-starters.js +4 -4
- package/dist/model-taskset-runs.js +3 -3
- package/dist/post-training.js +6 -6
- package/dist/taskset-drafts.js +6 -6
- package/dist/taskset-packages.js +12 -10
- package/dist/training-bundle.js +46 -20
- package/dist/training-bundle.js.map +1 -1
- package/dist/training-hardware.js +2 -2
- package/dist/training.js +5620 -4342
- package/dist/training.js.map +1 -1
- package/dist/types/packages/sdk/src/ai-sdk.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/alphaedit-model-serving.d.ts +8 -4
- package/dist/types/packages/sdk/src/alphaedit-model-serving.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/candidate-evaluation-client.d.ts +162 -162
- package/dist/types/packages/sdk/src/decision-model-serving.d.ts +4 -2
- package/dist/types/packages/sdk/src/decision-model-serving.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/engram-model-serving.d.ts +3 -1
- package/dist/types/packages/sdk/src/engram-model-serving.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/experiment-client.d.ts +699 -691
- package/dist/types/packages/sdk/src/experiment-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/experiment-draft-storage.d.ts +34 -28
- package/dist/types/packages/sdk/src/experiment-draft-storage.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/experiment-improvement-client.d.ts +1889 -1889
- package/dist/types/packages/sdk/src/experiment-run-details.d.ts +7 -7
- package/dist/types/packages/sdk/src/experiment-scoring-contracts.d.ts +21 -3
- package/dist/types/packages/sdk/src/experiment-scoring-contracts.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/learning.d.ts +1 -0
- package/dist/types/packages/sdk/src/learning.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/managed-alphaedit-executions.d.ts +272 -16
- package/dist/types/packages/sdk/src/managed-alphaedit-executions.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/managed-compute-price.d.ts +53 -1
- package/dist/types/packages/sdk/src/managed-compute-price.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/managed-decision-executions.d.ts +612 -356
- package/dist/types/packages/sdk/src/managed-decision-executions.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/managed-engram-executions.d.ts +272 -16
- package/dist/types/packages/sdk/src/managed-engram-executions.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/managed-modification-executions.d.ts +208 -16
- package/dist/types/packages/sdk/src/managed-modification-executions.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/managed-neuron-training-executions.d.ts +272 -16
- package/dist/types/packages/sdk/src/managed-neuron-training-executions.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/managed-serving-usage.d.ts +3 -0
- package/dist/types/packages/sdk/src/managed-serving-usage.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/managed-training-preparation.d.ts +25 -25
- package/dist/types/packages/sdk/src/managed-training-preparation.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-learning-capabilities.d.ts +4 -0
- package/dist/types/packages/sdk/src/model-learning-capabilities.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/model-learning-policy.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-supervised-training-defaults.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-training-defaults.d.ts +5 -2
- package/dist/types/packages/sdk/src/model-training-defaults.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/neuron-training-model-serving.d.ts +8 -4
- package/dist/types/packages/sdk/src/neuron-training-model-serving.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/post-training.d.ts +7 -7
- package/dist/types/packages/sdk/src/product-model-response.d.ts +6 -2
- package/dist/types/packages/sdk/src/product-model-response.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/product-model-transport.d.ts +99 -0
- package/dist/types/packages/sdk/src/product-model-transport.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/product-model-wire.d.ts +104 -0
- package/dist/types/packages/sdk/src/product-model-wire.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/product-models.d.ts +18 -15
- package/dist/types/packages/sdk/src/product-models.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/serverless-serving.d.ts +416 -9
- package/dist/types/packages/sdk/src/serverless-serving.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/steering-model-serving.d.ts +2144 -703
- package/dist/types/packages/sdk/src/steering-model-serving.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/steering-profile-publication.d.ts +631 -0
- package/dist/types/packages/sdk/src/steering-profile-publication.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-client.d.ts +120 -120
- package/dist/types/packages/sdk/src/taskset-package-projection.d.ts +20 -20
- package/dist/types/packages/sdk/src/taskset-packages.d.ts +1 -0
- package/dist/types/packages/sdk/src/taskset-packages.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-text-policy.d.ts +11 -0
- package/dist/types/packages/sdk/src/taskset-text-policy.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/training-compute-selection.d.ts +6 -19
- package/dist/types/packages/sdk/src/training-compute-selection.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training-estimates.d.ts +1 -1
- package/dist/types/packages/sdk/src/training-experiment-setup.d.ts +4 -1
- package/dist/types/packages/sdk/src/training-experiment-setup.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training-harness-sources.d.ts +2 -2
- package/dist/types/packages/sdk/src/training-learning-batch.d.ts +40 -40
- package/dist/types/packages/sdk/src/training-model-serving-control.d.ts +406 -8
- package/dist/types/packages/sdk/src/training-model-serving-control.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training-model-serving.d.ts +1136 -30
- package/dist/types/packages/sdk/src/training-model-serving.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training-operations.d.ts +11197 -0
- package/dist/types/packages/sdk/src/training-operations.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/training-qualification-preparation.d.ts +25 -25
- package/dist/types/packages/sdk/src/training-supervised.d.ts +13 -0
- package/dist/types/packages/sdk/src/training-supervised.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training-transport.d.ts +4 -1
- package/dist/types/packages/sdk/src/training-transport.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training.d.ts +15885 -4662
- package/dist/types/packages/sdk/src/training.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/weight-inference.d.ts +8 -5
- package/dist/types/packages/sdk/src/weight-inference.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/weight-model-versions.d.ts +2089 -398
- package/dist/types/packages/sdk/src/weight-model-versions.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/weight-space-artifact.d.ts +433 -0
- package/dist/types/packages/sdk/src/weight-space-artifact.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/weight-space-evaluation.d.ts +1437 -0
- package/dist/types/packages/sdk/src/weight-space-evaluation.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/weight-space-model-serving.d.ts +2910 -0
- package/dist/types/packages/sdk/src/weight-space-model-serving.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/weight-space-programming.d.ts +845 -0
- package/dist/types/packages/sdk/src/weight-space-programming.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/weight-space-sessions.d.ts +4600 -0
- package/dist/types/packages/sdk/src/weight-space-sessions.d.ts.map +1 -0
- package/fixtures/python-foundation/operation-matrix.json +369 -0
- package/fixtures/python-foundation/schemas.json +34304 -27905
- package/fixtures/python-foundation/training-estimate-http-workflow.json +1 -1
- package/package.json +2 -2
- package/dist/chunk-JWEIAEQ6.js.map +0 -1
- package/dist/chunk-MN4FE52A.js.map +0 -1
- package/dist/chunk-PMVSO23F.js.map +0 -1
- package/dist/chunk-QKLZZOZD.js.map +0 -1
- package/dist/chunk-UZAVG2WK.js.map +0 -1
- package/dist/chunk-XYK3MAIC.js.map +0 -1
- package/dist/chunk-YV6PPDXZ.js.map +0 -1
- package/dist/chunk-ZG4HVCJB.js +0 -248
- package/dist/chunk-ZG4HVCJB.js.map +0 -1
- /package/dist/{chunk-4REK5TTE.js.map → chunk-4D4QSQC3.js.map} +0 -0
- /package/dist/{chunk-AMZ2SWHR.js.map → chunk-534W2O2S.js.map} +0 -0
- /package/dist/{chunk-6LVLWRBJ.js.map → chunk-54BJJL7G.js.map} +0 -0
- /package/dist/{chunk-XWUTYFOU.js.map → chunk-5KJY44FB.js.map} +0 -0
- /package/dist/{chunk-4A4FNG4R.js.map → chunk-7ZV626YS.js.map} +0 -0
- /package/dist/{chunk-57ROW3XF.js.map → chunk-ABOZV47D.js.map} +0 -0
- /package/dist/{chunk-3BILL33A.js.map → chunk-BIQ5TG3T.js.map} +0 -0
- /package/dist/{chunk-JINWKUKR.js.map → chunk-BT6CC6QB.js.map} +0 -0
- /package/dist/{chunk-4PEK3YOW.js.map → chunk-CNFN6GHY.js.map} +0 -0
- /package/dist/{chunk-X5AT253K.js.map → chunk-CVYGJUWM.js.map} +0 -0
- /package/dist/{chunk-D26RJQU7.js.map → chunk-CX7ETU2F.js.map} +0 -0
- /package/dist/{chunk-4CDLPMJK.js.map → chunk-D7LV3USE.js.map} +0 -0
- /package/dist/{chunk-WZKKQNYY.js.map → chunk-GA7OSSEA.js.map} +0 -0
- /package/dist/{chunk-EL6KZO43.js.map → chunk-GFWXDWEE.js.map} +0 -0
- /package/dist/{chunk-AQV7RQZH.js.map → chunk-K4WU4JOP.js.map} +0 -0
- /package/dist/{chunk-CAOMKM55.js.map → chunk-L7MVGGBH.js.map} +0 -0
- /package/dist/{chunk-P56JWQYV.js.map → chunk-LRFVISLA.js.map} +0 -0
- /package/dist/{chunk-2U6BQ5C4.js.map → chunk-MJHQMQEW.js.map} +0 -0
- /package/dist/{chunk-C7I4ZG6Q.js.map → chunk-TX552FQG.js.map} +0 -0
- /package/dist/{chunk-4CRLQMJ2.js.map → chunk-VIDRZCPQ.js.map} +0 -0
- /package/dist/{chunk-HCUZYGUK.js.map → chunk-WPTFJZ4L.js.map} +0 -0
package/dist/learning.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/learning.ts","../src/model-learning-policy.ts","../src/grader-inspection.ts","../src/grader-feedback-key.ts","../src/learning-correction-metrics.ts"],"sourcesContent":["export * from \"@openpond/evals/learning\";\nexport * from \"@openpond/evals/rewards\";\nexport * from \"./learning-credentials.js\";\nexport * from \"./learning-client.js\";\nexport * from \"./model-learning-policy.js\";\n\nexport * from \"./grader-inspection.js\";\n\nexport * from \"./grader-feedback-key.js\";\nexport * from \"./learning-correction-metrics.js\";\n","import { LearningDomainError, LearningPolicyContentSchema, LearningSourceContentSchema, learningRef, sameLearningRef, sealLearningContent, type TaskDefinition, type LearningPolicy, type LearningRevisionRef } from \"@openpond/evals/learning\";\nimport { contentHash } from \"@openpond/harness\";\n\nimport type { HostedModelProjectSummary } from \"./model-projects.js\";\nimport { ModelInitialLearningSchema, type ModelInitialLearning } from \"./model-learning-intent.js\";\n\n/** Compile the simple creation choice into exact source and policy releases.\n * Hosts commit these with the new Model and its idempotency receipt. */\nexport function initialHostedModelLearning(input: { project: HostedModelProjectSummary; definition: TaskDefinition; learning: ModelInitialLearning }) {\n const learning = ModelInitialLearningSchema.parse(input.learning);\n const { project, definition } = input;\n if (!project.trainingSetup.rewardBindingRef || !sameLearningRef(definition.rewardBinding, project.trainingSetup.rewardBindingRef)) throw new LearningDomainError(\"learning_policy_binding_mismatch\", 422, \"The task format must use the Model's selected grader.\");\n const source = LearningSourceContentSchema.parse({ schemaVersion: \"openpond.learningSource.v1\", id: `model-source-${contentHash([project.portableProjectId, learningRef(definition)])}`,\n revision: 1, name: `${project.name} tasks`, kind: \"direct\", taskDefinition: learningRef(definition), enabled: true,\n allowedSplits: [\"train\", \"validation\", \"test\", \"frozen_eval\"], mapping: null, adapterVersion: null });\n const policy = createHostedLearningPolicyContent({ project, previous: null, policyId: `model-policy-${contentHash(project.portableProjectId)}`,\n applyModelConfiguration: true, sources: [learningRef(sealLearningContent(source))], taskDefinition: learningRef(definition),\n settings: { ...hostedLearningPolicyDefaults(project, null), enabled: true, scheduled: true,\n trigger: learning.mode === \"nightly\" ? { kind: \"nightly\", localTime: learning.localTime, timeZone: learning.timeZone } : { kind: \"approved_count\" },\n minimumApprovedExamples: learning.minimumTasks, maxBatchExamples: learning.minimumTasks,\n maxIterationSpendUsd: learning.maximumSpendUsd, maxDailySpendUsd: learning.maximumDailySpendUsd,\n cooldownSeconds: 0, maxBacklogExamples: Math.max(1_000, learning.minimumTasks * 10),\n } });\n return { source, policy };\n}\n\n/** Shared starting values for both Model clients. Existing policies retain\n * their exact limits; opening settings must never silently increase spending. */\nexport function hostedLearningPolicyDefaults(project: HostedModelProjectSummary, policy: LearningPolicy | null) {\n const maximumSpend = policy?.limits.maxIterationSpendUsd ?? project.trainingSetup.preferredMaximumSpendUsd ?? 1;\n return {\n enabled: policy?.enabled ?? false,\n scheduled: Boolean(policy && [\"schedule\", \"nightly\", \"approved_count\"].includes(policy.trigger.kind)),\n intervalSeconds: policy?.trigger.kind === \"schedule\" ? policy.trigger.intervalSeconds : 86_400,\n humanReviewRequired: policy?.admission.mode !== \"qualified_automatic\",\n minimumApprovedExamples: policy?.admission.minimumApprovedExamples ?? 10,\n maxBatchExamples: policy?.limits.maxBatchExamples ?? 10,\n maxIterationSpendUsd: maximumSpend,\n maxDailySpendUsd: policy?.limits.maxDailySpendUsd ?? maximumSpend,\n cooldownSeconds: policy?.limits.cooldownSeconds ?? 3_600,\n maxRetries: policy?.limits.maxRetries ?? 0,\n maxBacklogExamples: policy?.limits.maxBacklogExamples ?? 1_000,\n };\n}\n\nexport interface HostedLearningPolicySettings {\n enabled: boolean;\n scheduled: boolean;\n intervalSeconds: number;\n trigger?: Exclude<LearningPolicy[\"trigger\"], { kind: \"upstream_accepted\" }>;\n humanReviewRequired: boolean;\n minimumApprovedExamples: number;\n maxBatchExamples: number;\n maxIterationSpendUsd: number;\n maxDailySpendUsd: number;\n cooldownSeconds: number;\n maxRetries: number;\n maxBacklogExamples: number;\n}\n\n/** Compile reviewed settings without following mutable Model configuration\n * unless the caller explicitly chooses to apply it. Publication still owns\n * authorization, revision comparison and source/qualification validation. */\nexport function createHostedLearningPolicyContent(input: {\n project: HostedModelProjectSummary;\n previous: LearningPolicy | null;\n policyId: string;\n applyModelConfiguration: boolean;\n sources: LearningRevisionRef[];\n taskDefinition: LearningRevisionRef;\n settings: HostedLearningPolicySettings;\n}) {\n const { project, previous, settings } = input;\n if (previous && (previous.id !== input.policyId || previous.modelProjectId !== project.portableProjectId || previous.executionOwner !== \"hosted\")) {\n throw new LearningDomainError(\"learning_policy_model_mismatch\", 422, \"Learning settings must belong to this hosted Model.\");\n }\n const applyModel = input.applyModelConfiguration || !previous;\n const refs = applyModel ? hostedLearningPolicyReferences(project) : null;\n const method = applyModel ? project.trainingSetup.recipe?.method : previous?.training.method;\n const trigger = settings.trigger ?? (settings.scheduled ? { kind: \"schedule\" as const, intervalSeconds: settings.intervalSeconds } : { kind: \"manual\" as const });\n if (settings.enabled && method !== \"grpo\" && method !== \"sft\") {\n throw new LearningDomainError(\"learning_training_method_unsupported\", 422, \"Hosted continual learning supports reviewed SFT and GRPO.\");\n }\n return LearningPolicyContentSchema.parse({\n schemaVersion: \"openpond.learningPolicy.v1\", id: input.policyId, revision: (previous?.revision ?? 0) + 1,\n modelProjectId: project.portableProjectId, executionOwner: \"hosted\", enabled: settings.enabled,\n sources: input.sources, taskDefinition: input.taskDefinition,\n rewardBinding: applyModel ? project.trainingSetup.rewardBindingRef : previous?.rewardBinding,\n admission: { mode: settings.humanReviewRequired ? \"human\" : \"qualified_automatic\",\n qualification: settings.humanReviewRequired ? null : previous?.admission.qualification ?? null,\n minimumApprovedExamples: settings.minimumApprovedExamples },\n trigger,\n trainingParent: refs?.trainingParent ?? previous?.trainingParent,\n teacher: previous?.teacher ?? null,\n training: { method, recipe: refs?.recipe ?? previous?.training.recipe,\n retentionEvaluation: refs?.retentionEvaluation ?? previous?.training.retentionEvaluation,\n replayBatches: previous?.training.replayBatches ?? [] },\n limits: { maxIterationSpendUsd: settings.maxIterationSpendUsd, maxDailySpendUsd: settings.maxDailySpendUsd,\n cooldownSeconds: settings.cooldownSeconds, maxRetries: settings.maxRetries,\n maxBatchExamples: settings.maxBatchExamples, maxBacklogExamples: settings.maxBacklogExamples },\n automation: { collect: false, train: trigger.kind !== \"manual\", accept: false, serve: false },\n acceptance: previous?.acceptance ?? { minimumScore: 0, maximumRetentionRegression: 0, requireImprovement: true, rollbackVersion: null },\n });\n}\n\n/** Bind a reviewed hosted Model configuration before asynchronous preparation.\n * Keep the established recipe identity: its id binds the whole Model revision,\n * including Harness and retention selections, while its hash binds the recipe.\n * Callers must obtain the summary from the authenticated Model API. */\nexport function hostedLearningPolicyReferences(project: HostedModelProjectSummary) {\n const setup = project.trainingSetup;\n const base = setup.baseModel ?? project.defaultBaseModel;\n if (!setup.recipe || !base || !setup.evaluationTasksetRef) {\n throw new LearningDomainError(\"learning_model_configuration_incomplete\", 422,\n \"Select a training recipe, starting model and retained evaluation before enabling hosted learning.\");\n }\n return {\n recipe: { id: `model-recipe-${project.etag}`, contentHash: contentHash(setup.recipe) },\n trainingParent: { id: base.modelId, contentHash: contentHash(base) },\n retentionEvaluation: { id: setup.evaluationTasksetRef.id, contentHash: setup.evaluationTasksetRef.contentHash },\n };\n}\n","import { DEFAULT_API_BASE_URL } from \"./endpoints.js\";\nimport { z } from \"zod\";\nimport { RewardReleaseSchema } from \"@openpond/evals/rewards\";\nconst Id = z.string().trim().min(1).max(240);\nexport const GraderCatalogQuerySchema = z.object({ projectId: Id.optional(), search: z.string().max(300).optional(), kind: z.string().max(100).optional(), sort: z.enum([\"name\", \"type\", \"version\", \"projects\", \"datasets\", \"runs\"]).optional(), direction: z.enum([\"asc\", \"desc\"]).optional(), after: z.string().max(3000).optional(), limit: z.number().int().min(1).max(100).default(30) }).strict();\nexport const GraderCatalogPageSchema = z.object({ teamId: Id, items: z.array(z.object({ reward: RewardReleaseSchema, projects: z.number().int().nonnegative(), datasets: z.number().int().nonnegative(), runs: z.number().int().nonnegative() }).strict()).max(100), nextCursor: z.string().nullable() }).strict();\nexport const GraderVersionsPageSchema = z.object({ teamId: Id, id: Id, items: z.array(RewardReleaseSchema).max(100), nextRevision: z.number().int().positive().nullable() }).strict();\nexport const GraderUsageQuerySchema = z.object({ section: z.enum([\"projects\", \"datasets\", \"runs\"]), after: Id.optional(), limit: z.number().int().min(1).max(100).default(25) }).strict();\nexport const GraderUsagePageSchema = z.object({ teamId: Id, id: Id, section: GraderUsageQuerySchema.shape.section, items: z.array(z.union([\n z.object({ id: Id, name: z.string(), graderRevisions: z.array(z.number().int().positive()), archived: z.boolean() }).strict(),\n z.object({ id: Id, name: z.string(), revision: z.number().int().positive(), graderRevisions: z.array(z.number().int().positive()) }).strict(),\n z.object({ id: Id, name: z.string(), status: z.string() }).strict(),\n])).max(100), nextCursor: Id.nullable() }).strict();\nexport class OpenPondGraderInspectionClient {\n private readonly baseUrl: string;\n constructor(private readonly options: { baseUrl?: string; apiKey: string; teamId: string; fetch?: typeof fetch }) {\n const url = new URL(options.baseUrl ?? DEFAULT_API_BASE_URL);\n if (![\"http:\", \"https:\"].includes(url.protocol) || url.username || url.password || url.search || url.hash || !options.apiKey.trim() || !options.teamId.trim()) throw new Error(\"A clean API origin and workspace credentials are required.\");\n this.baseUrl = url.toString().replace(/\\/+$/, \"\");\n }\n async catalog(value: z.input<typeof GraderCatalogQuerySchema> = {}, signal?: AbortSignal) {\n const query = GraderCatalogQuerySchema.parse(value);\n const page = GraderCatalogPageSchema.parse(await this.read(\"\", query, signal));\n if (page.teamId !== this.options.teamId || page.items.length > query.limit || new Set(page.items.map(item => item.reward.id)).size !== page.items.length) throw new Error(\"Grader catalog differs from its requested workspace or bounds.\");\n return page;\n }\n async versions(id: string, query: { beforeRevision?: number; limit?: number } = {}, signal?: AbortSignal) {\n const options = z.object({ beforeRevision: z.number().int().positive().optional(), limit: z.number().int().min(1).max(100).default(25) }).strict().parse(query);\n const page = GraderVersionsPageSchema.parse(await this.read(`/${encodeURIComponent(Id.parse(id))}/versions`, options, signal));\n if (page.teamId !== this.options.teamId || page.id !== id || page.items.length > options.limit || page.items.some((item, index) => item.id !== id || options.beforeRevision && item.revision >= options.beforeRevision || index > 0 && item.revision >= page.items[index - 1]!.revision)) throw new Error(\"Grader versions differ from their requested identity or revision order.\");\n return page;\n }\n async usage(id: string, value: z.input<typeof GraderUsageQuerySchema>, signal?: AbortSignal) {\n const query = GraderUsageQuerySchema.parse(value);\n const page = GraderUsagePageSchema.parse(await this.read(`/${encodeURIComponent(Id.parse(id))}/usage`, query, signal));\n if (page.teamId !== this.options.teamId || page.id !== id || page.section !== query.section || page.items.length > query.limit) throw new Error(\"Grader usage differs from its requested workspace, identity or bounds.\");\n return page;\n }\n private async read(path: string, query: Record<string, unknown>, signal?: AbortSignal) {\n const params = new URLSearchParams(Object.entries(query).filter(([, value]) => value !== undefined).map(([key, value]) => [key, String(value)]));\n const response = await (this.options.fetch ?? fetch)(`${this.baseUrl}/v1/learning/read/graders${path}?${params}`, { signal, redirect: \"error\", headers: { Authorization: `Bearer ${this.options.apiKey}`, \"X-OpenPond-Team-Id\": this.options.teamId, Accept: \"application/json\" } });\n const value: unknown = await response.json();\n if (!response.ok) throw new Error(z.object({ error: z.string() }).parse(value).error);\n return value;\n }\n}\n","import { contentHash } from \"@openpond/harness\";\n\n/** Draft presentation default. Published keys must retain their released value. */\nexport function graderFeedbackKeyFromName(name: string, rewardId: string): string {\n const slug = name.normalize(\"NFKD\").toLowerCase().replace(/[^a-z0-9]+/g, \"_\").replace(/^_+|_+$/g, \"\");\n const prefix = /^[a-z]/.test(slug) ? slug : `grader_${slug}`;\n return `${(prefix || \"grader\").slice(0, 55).replace(/_+$/g, \"\")}_${contentHash(rewardId).slice(0, 24)}`;\n}\n","import { DEFAULT_API_BASE_URL } from \"./endpoints.js\";\nimport { z } from \"zod\";\nimport { CorrectionVerificationPlanContentSchema, CorrectionVerificationPlanSchema, CorrectionOpportunitySchema, CorrectionMetricSummarySchema, CorrectionMetricObservationSchema, assertLearningRequestJson } from \"@openpond/evals/learning\";\nimport { OpenPondLearningError, readBoundedLearningResponse, type LearningRequestOptions } from \"./learning-client.js\";\nexport { CorrectionVerificationPlanSchema, CorrectionMetricSummarySchema, CorrectionMetricObservationSchema } from \"@openpond/evals/learning\";\nexport type { CorrectionVerificationPlan, CorrectionMetricSummary, CorrectionMetricObservation } from \"@openpond/evals/learning\";\nconst id = z.string().trim().min(1).max(500);\nconst ref = z.object({ id, contentHash: z.string().regex(/^[a-f0-9]{64}$/) }).strict();\nexport const CorrectionMetricsReadSchema = z.object({ teamId: id, modelId: id, runId: id.optional(), from: z.string().datetime().optional(), to: z.string().datetime().optional() }).strict();\nexport const CorrectionMetricsCommandSchema = z.discriminatedUnion(\"action\", [\n z.object({ action: z.literal(\"declare_verification\"), teamId: id, operationId: id,\n plan: z.object({\n modelId: CorrectionVerificationPlanContentSchema.shape.modelId,\n classification: CorrectionVerificationPlanContentSchema.shape.classification,\n feedback: CorrectionVerificationPlanContentSchema.shape.feedback,\n evidence: CorrectionVerificationPlanContentSchema.shape.evidence,\n trainingJobId: CorrectionVerificationPlanContentSchema.shape.trainingJobId,\n checkpoint: CorrectionVerificationPlanContentSchema.shape.checkpoint,\n artifact: CorrectionVerificationPlanContentSchema.shape.artifact,\n taskset: CorrectionVerificationPlanContentSchema.shape.taskset,\n checks: CorrectionVerificationPlanContentSchema.shape.checks,\n baselineOperationId: CorrectionVerificationPlanContentSchema.shape.baselineOperationId,\n candidateOperationId: CorrectionVerificationPlanContentSchema.shape.candidateOperationId,\n criterion: CorrectionVerificationPlanContentSchema.shape.criterion,\n }).strict() }).strict(),\n z.object({ action: z.literal(\"link_live_opportunity\"), teamId: id, operationId: id, correction: ref, inferenceRequestId: id,\n grade: z.object({ id, revision: z.number().int().positive() }).strict(), checkIds: z.array(id).min(1).max(1000) }).strict(),\n]);\nexport const CorrectionMetricsDetailSchema = z.object({ summary: CorrectionMetricSummarySchema.nullable(), observations: z.array(CorrectionMetricObservationSchema).max(1000) }).strict();\nexport type CorrectionMetricsRead = z.infer<typeof CorrectionMetricsReadSchema>;\nexport type CorrectionMetricsCommand = z.infer<typeof CorrectionMetricsCommandSchema>;\nexport class OpenPondCorrectionMetricsClient {\n private readonly options: { baseUrl: string; apiKey: string; fetch?: typeof globalThis.fetch };\n constructor(options: { baseUrl?: string; apiKey: string; fetch?: typeof globalThis.fetch }) {\n if (!options.apiKey.trim()) throw new Error(\"Learning API key is required.\");\n const url = new URL(options.baseUrl ?? DEFAULT_API_BASE_URL);\n if (![\"http:\", \"https:\"].includes(url.protocol) || url.username || url.password || url.search || url.hash)\n throw new Error(\"Learning base URL must be an HTTP(S) endpoint without credentials, query, or fragment.\");\n this.options = { ...options, baseUrl: url.toString().replace(/\\/+$/, \"\") };\n }\n private async request(path: string, teamId: string, init: RequestInit) {\n const response = await (this.options.fetch ?? globalThis.fetch)(`${this.options.baseUrl}${path}`, {\n ...init, redirect: \"error\", headers: { Authorization: `Bearer ${this.options.apiKey}`, \"Content-Type\": \"application/json\", Accept: \"application/json\", \"X-OpenPond-Team-Id\": teamId },\n });\n let payload: unknown;\n try { payload = await readBoundedLearningResponse(response); }\n catch (error) {\n if (error instanceof OpenPondLearningError) throw error;\n throw new OpenPondLearningError(response.ok ? 502 : response.status, \"invalid_response\", \"Correction metrics returned an invalid response.\", null);\n }\n if (!response.ok) {\n const error = z.object({ code: z.string().optional(), error: z.string().optional() }).passthrough().safeParse(payload);\n throw new OpenPondLearningError(response.status, error.success ? error.data.code ?? \"correction_request_failed\" : \"correction_request_failed\",\n error.success ? error.data.error ?? `Correction metrics request failed (${response.status}).` : `Correction metrics request failed (${response.status}).`, payload);\n }\n return payload;\n }\n async read(input: CorrectionMetricsRead, options: LearningRequestOptions = {}) {\n const query = CorrectionMetricsReadSchema.parse(input);\n const result = CorrectionMetricsDetailSchema.parse(await this.request(`/v1/learning/corrections?query=${encodeURIComponent(JSON.stringify(query))}`, query.teamId, { method: \"GET\", signal: options.signal }));\n if (result.summary && (result.summary.scope.teamId !== query.teamId || result.summary.scope.modelId !== query.modelId || query.runId && result.summary.scope.runId !== query.runId)\n || result.observations.some(observation => observation.modelId !== query.modelId || query.runId && observation.trainingJobId !== query.runId))\n throw new OpenPondLearningError(502, \"correction_scope_mismatch\", \"Correction metrics did not match the requested workspace, Model or run.\", null);\n return result;\n }\n async command(input: CorrectionMetricsCommand, options: LearningRequestOptions = {}) {\n const command = CorrectionMetricsCommandSchema.parse(input);\n assertLearningRequestJson(command);\n const payload = await this.request(\"/v1/learning/corrections\", command.teamId, { method: \"POST\", body: JSON.stringify(command), signal: options.signal });\n if (command.action === \"declare_verification\") {\n const result = CorrectionVerificationPlanSchema.parse(payload);\n if (result.teamId !== command.teamId || result.modelId !== command.plan.modelId || result.trainingJobId !== command.plan.trainingJobId)\n throw new OpenPondLearningError(502, \"correction_scope_mismatch\", \"Correction declaration did not match the requested workspace, Model or run.\", null);\n return result;\n }\n const result = CorrectionOpportunitySchema.parse(payload);\n if (result.correction.id !== command.correction.id || result.correction.contentHash !== command.correction.contentHash || result.attempt.id !== command.inferenceRequestId)\n throw new OpenPondLearningError(502, \"correction_scope_mismatch\", \"Correction opportunity did not match the declared correction and serving request.\", null);\n return result;\n }\n}\n"],"mappings":"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","names":["id","value","z","CorrectionVerificationPlanSchema","CorrectionMetricSummarySchema","CorrectionMetricObservationSchema","z","result"]}
|
|
1
|
+
{"version":3,"sources":["../src/learning.ts","../src/model-learning-policy.ts","../src/model-learning-capabilities.ts","../src/grader-inspection.ts","../src/grader-feedback-key.ts","../src/learning-correction-metrics.ts"],"sourcesContent":["export * from \"@openpond/evals/learning\";\nexport * from \"@openpond/evals/rewards\";\nexport * from \"./learning-credentials.js\";\nexport * from \"./learning-client.js\";\nexport * from \"./model-learning-policy.js\";\n\nexport * from \"./grader-inspection.js\";\n\nexport * from \"./grader-feedback-key.js\";\nexport * from \"./learning-correction-metrics.js\";\nexport * from \"./model-learning-capabilities.js\";\n","import { LearningDomainError, LearningPolicyContentSchema, LearningSourceContentSchema, learningRef, sameLearningRef, sealLearningContent, type TaskDefinition, type LearningPolicy, type LearningRevisionRef } from \"@openpond/evals/learning\";\nimport { contentHash } from \"@openpond/harness\";\n\nimport { supportsRecurringModelTraining } from \"./model-learning-capabilities.js\";\nimport type { HostedModelProjectSummary } from \"./model-projects.js\";\nimport { ModelInitialLearningSchema, type ModelInitialLearning } from \"./model-learning-intent.js\";\n\n/** Compile the simple creation choice into exact source and policy releases.\n * Hosts commit these with the new Model and its idempotency receipt. */\nexport function initialHostedModelLearning(input: { project: HostedModelProjectSummary; definition: TaskDefinition; learning: ModelInitialLearning }) {\n const learning = ModelInitialLearningSchema.parse(input.learning);\n const { project, definition } = input;\n if (!project.trainingSetup.rewardBindingRef || !sameLearningRef(definition.rewardBinding, project.trainingSetup.rewardBindingRef)) throw new LearningDomainError(\"learning_policy_binding_mismatch\", 422, \"The task format must use the Model's selected grader.\");\n const source = LearningSourceContentSchema.parse({ schemaVersion: \"openpond.learningSource.v1\", id: `model-source-${contentHash([project.portableProjectId, learningRef(definition)])}`,\n revision: 1, name: `${project.name} tasks`, kind: \"direct\", taskDefinition: learningRef(definition), enabled: true,\n allowedSplits: [\"train\", \"validation\", \"test\", \"frozen_eval\"], mapping: null, adapterVersion: null });\n const policy = createHostedLearningPolicyContent({ project, previous: null, policyId: `model-policy-${contentHash(project.portableProjectId)}`,\n applyModelConfiguration: true, sources: [learningRef(sealLearningContent(source))], taskDefinition: learningRef(definition),\n settings: { ...hostedLearningPolicyDefaults(project, null), enabled: true, scheduled: true,\n trigger: learning.mode === \"nightly\" ? { kind: \"nightly\", localTime: learning.localTime, timeZone: learning.timeZone } : { kind: \"approved_count\" },\n minimumApprovedExamples: learning.minimumTasks, maxBatchExamples: learning.minimumTasks,\n maxIterationSpendUsd: learning.maximumSpendUsd, maxDailySpendUsd: learning.maximumDailySpendUsd,\n cooldownSeconds: 0, maxBacklogExamples: Math.max(1_000, learning.minimumTasks * 10),\n } });\n return { source, policy };\n}\n\n/** Shared starting values for both Model clients. Existing policies retain\n * their exact limits; opening settings must never silently increase spending. */\nexport function hostedLearningPolicyDefaults(project: HostedModelProjectSummary, policy: LearningPolicy | null) {\n const maximumSpend = policy?.limits.maxIterationSpendUsd ?? project.trainingSetup.preferredMaximumSpendUsd ?? 1;\n return {\n enabled: policy?.enabled ?? false,\n scheduled: Boolean(policy && [\"schedule\", \"nightly\", \"approved_count\"].includes(policy.trigger.kind)),\n intervalSeconds: policy?.trigger.kind === \"schedule\" ? policy.trigger.intervalSeconds : 86_400,\n humanReviewRequired: policy?.admission.mode !== \"qualified_automatic\",\n minimumApprovedExamples: policy?.admission.minimumApprovedExamples ?? 10,\n maxBatchExamples: policy?.limits.maxBatchExamples ?? 10,\n maxIterationSpendUsd: maximumSpend,\n maxDailySpendUsd: policy?.limits.maxDailySpendUsd ?? maximumSpend,\n cooldownSeconds: policy?.limits.cooldownSeconds ?? 3_600,\n maxRetries: policy?.limits.maxRetries ?? 0,\n maxBacklogExamples: policy?.limits.maxBacklogExamples ?? 1_000,\n };\n}\n\nexport interface HostedLearningPolicySettings {\n enabled: boolean;\n scheduled: boolean;\n intervalSeconds: number;\n trigger?: Exclude<LearningPolicy[\"trigger\"], { kind: \"upstream_accepted\" }>;\n humanReviewRequired: boolean;\n minimumApprovedExamples: number;\n maxBatchExamples: number;\n maxIterationSpendUsd: number;\n maxDailySpendUsd: number;\n cooldownSeconds: number;\n maxRetries: number;\n maxBacklogExamples: number;\n}\n\n/** Compile reviewed settings without following mutable Model configuration\n * unless the caller explicitly chooses to apply it. Publication still owns\n * authorization, revision comparison and source/qualification validation. */\nexport function createHostedLearningPolicyContent(input: {\n project: HostedModelProjectSummary;\n previous: LearningPolicy | null;\n policyId: string;\n applyModelConfiguration: boolean;\n sources: LearningRevisionRef[];\n taskDefinition: LearningRevisionRef;\n settings: HostedLearningPolicySettings;\n}) {\n const { project, previous, settings } = input;\n if (previous && (previous.id !== input.policyId || previous.modelProjectId !== project.portableProjectId || previous.executionOwner !== \"hosted\")) {\n throw new LearningDomainError(\"learning_policy_model_mismatch\", 422, \"Learning settings must belong to this hosted Model.\");\n }\n const applyModel = input.applyModelConfiguration || !previous;\n const refs = applyModel ? hostedLearningPolicyReferences(project) : null;\n const method = applyModel ? project.trainingSetup.recipe?.method : previous?.training.method;\n const retainedTrigger = previous && [\"nightly\", \"approved_count\"].includes(previous.trigger.kind)\n && settings.intervalSeconds === hostedLearningPolicyDefaults(project, previous).intervalSeconds\n ? previous.trigger : null;\n const trigger = settings.trigger ?? (settings.scheduled\n ? retainedTrigger ?? { kind: \"schedule\" as const, intervalSeconds: settings.intervalSeconds }\n : { kind: \"manual\" as const });\n if (settings.enabled && !supportsRecurringModelTraining(method)) {\n throw new LearningDomainError(\"learning_training_method_unsupported\", 422, \"Hosted continual learning supports reviewed SFT and GRPO.\");\n }\n return LearningPolicyContentSchema.parse({\n schemaVersion: \"openpond.learningPolicy.v1\", id: input.policyId, revision: (previous?.revision ?? 0) + 1,\n modelProjectId: project.portableProjectId, executionOwner: \"hosted\", enabled: settings.enabled,\n ...(previous?.origin ? { origin: previous.origin } : {}),\n sources: input.sources, taskDefinition: input.taskDefinition,\n rewardBinding: applyModel ? project.trainingSetup.rewardBindingRef : previous?.rewardBinding,\n admission: { mode: settings.humanReviewRequired ? \"human\" : \"qualified_automatic\",\n qualification: settings.humanReviewRequired ? null : previous?.admission.qualification ?? null,\n minimumApprovedExamples: settings.minimumApprovedExamples },\n trigger,\n trainingParent: refs?.trainingParent ?? previous?.trainingParent,\n teacher: previous?.teacher ?? null,\n training: { method, recipe: refs?.recipe ?? previous?.training.recipe,\n retentionEvaluation: refs?.retentionEvaluation ?? previous?.training.retentionEvaluation,\n replayBatches: previous?.training.replayBatches ?? [],\n ...(!applyModel && previous?.training.continuationMode\n ? { continuationMode: previous.training.continuationMode } : {}) },\n limits: { maxIterationSpendUsd: settings.maxIterationSpendUsd, maxDailySpendUsd: settings.maxDailySpendUsd,\n cooldownSeconds: settings.cooldownSeconds, maxRetries: settings.maxRetries,\n maxBatchExamples: settings.maxBatchExamples, maxBacklogExamples: settings.maxBacklogExamples },\n automation: { collect: false, train: trigger.kind !== \"manual\", accept: false, serve: false },\n acceptance: previous?.acceptance ?? { minimumScore: 0, maximumRetentionRegression: 0, requireImprovement: true, rollbackVersion: null },\n });\n}\n\n/** Bind a reviewed hosted Model configuration before asynchronous preparation.\n * Keep the established recipe identity: its id binds the whole Model revision,\n * including Harness and retention selections, while its hash binds the recipe.\n * Callers must obtain the summary from the authenticated Model API. */\nexport function hostedLearningPolicyReferences(project: HostedModelProjectSummary) {\n const setup = project.trainingSetup;\n const base = setup.baseModel ?? project.defaultBaseModel;\n if (!setup.recipe || !base || !setup.evaluationTasksetRef) {\n throw new LearningDomainError(\"learning_model_configuration_incomplete\", 422,\n \"Select a training recipe, starting model and retained evaluation before enabling hosted learning.\");\n }\n return {\n recipe: { id: `model-recipe-${project.etag}`, contentHash: contentHash(setup.recipe) },\n trainingParent: { id: base.modelId, contentHash: contentHash(base) },\n retentionEvaluation: { id: setup.evaluationTasksetRef.id, contentHash: setup.evaluationTasksetRef.contentHash },\n };\n}\n","/** Recurring training routes supported by the shared policy compiler.\n * One-stage execution and runtime qualification remain separate decisions. */\nexport function supportsRecurringModelTraining(method: string | null | undefined): boolean {\n return method === \"sft\" || method === \"grpo\";\n}\n","import { DEFAULT_API_BASE_URL } from \"./endpoints.js\";\nimport { z } from \"zod\";\nimport { RewardReleaseSchema } from \"@openpond/evals/rewards\";\nconst Id = z.string().trim().min(1).max(240);\nexport const GraderCatalogQuerySchema = z.object({ projectId: Id.optional(), search: z.string().max(300).optional(), kind: z.string().max(100).optional(), sort: z.enum([\"name\", \"type\", \"version\", \"projects\", \"datasets\", \"runs\"]).optional(), direction: z.enum([\"asc\", \"desc\"]).optional(), after: z.string().max(3000).optional(), limit: z.number().int().min(1).max(100).default(30) }).strict();\nexport const GraderCatalogPageSchema = z.object({ teamId: Id, items: z.array(z.object({ reward: RewardReleaseSchema, projects: z.number().int().nonnegative(), datasets: z.number().int().nonnegative(), runs: z.number().int().nonnegative() }).strict()).max(100), nextCursor: z.string().nullable() }).strict();\nexport const GraderVersionsPageSchema = z.object({ teamId: Id, id: Id, items: z.array(RewardReleaseSchema).max(100), nextRevision: z.number().int().positive().nullable() }).strict();\nexport const GraderUsageQuerySchema = z.object({ section: z.enum([\"projects\", \"datasets\", \"runs\"]), after: Id.optional(), limit: z.number().int().min(1).max(100).default(25) }).strict();\nexport const GraderUsagePageSchema = z.object({ teamId: Id, id: Id, section: GraderUsageQuerySchema.shape.section, items: z.array(z.union([\n z.object({ id: Id, name: z.string(), graderRevisions: z.array(z.number().int().positive()), archived: z.boolean() }).strict(),\n z.object({ id: Id, name: z.string(), revision: z.number().int().positive(), graderRevisions: z.array(z.number().int().positive()) }).strict(),\n z.object({ id: Id, name: z.string(), status: z.string() }).strict(),\n])).max(100), nextCursor: Id.nullable() }).strict();\nexport class OpenPondGraderInspectionClient {\n private readonly baseUrl: string;\n constructor(private readonly options: { baseUrl?: string; apiKey: string; teamId: string; fetch?: typeof fetch }) {\n const url = new URL(options.baseUrl ?? DEFAULT_API_BASE_URL);\n if (![\"http:\", \"https:\"].includes(url.protocol) || url.username || url.password || url.search || url.hash || !options.apiKey.trim() || !options.teamId.trim()) throw new Error(\"A clean API origin and workspace credentials are required.\");\n this.baseUrl = url.toString().replace(/\\/+$/, \"\");\n }\n async catalog(value: z.input<typeof GraderCatalogQuerySchema> = {}, signal?: AbortSignal) {\n const query = GraderCatalogQuerySchema.parse(value);\n const page = GraderCatalogPageSchema.parse(await this.read(\"\", query, signal));\n if (page.teamId !== this.options.teamId || page.items.length > query.limit || new Set(page.items.map(item => item.reward.id)).size !== page.items.length) throw new Error(\"Grader catalog differs from its requested workspace or bounds.\");\n return page;\n }\n async versions(id: string, query: { beforeRevision?: number; limit?: number } = {}, signal?: AbortSignal) {\n const options = z.object({ beforeRevision: z.number().int().positive().optional(), limit: z.number().int().min(1).max(100).default(25) }).strict().parse(query);\n const page = GraderVersionsPageSchema.parse(await this.read(`/${encodeURIComponent(Id.parse(id))}/versions`, options, signal));\n if (page.teamId !== this.options.teamId || page.id !== id || page.items.length > options.limit || page.items.some((item, index) => item.id !== id || options.beforeRevision && item.revision >= options.beforeRevision || index > 0 && item.revision >= page.items[index - 1]!.revision)) throw new Error(\"Grader versions differ from their requested identity or revision order.\");\n return page;\n }\n async usage(id: string, value: z.input<typeof GraderUsageQuerySchema>, signal?: AbortSignal) {\n const query = GraderUsageQuerySchema.parse(value);\n const page = GraderUsagePageSchema.parse(await this.read(`/${encodeURIComponent(Id.parse(id))}/usage`, query, signal));\n if (page.teamId !== this.options.teamId || page.id !== id || page.section !== query.section || page.items.length > query.limit) throw new Error(\"Grader usage differs from its requested workspace, identity or bounds.\");\n return page;\n }\n private async read(path: string, query: Record<string, unknown>, signal?: AbortSignal) {\n const params = new URLSearchParams(Object.entries(query).filter(([, value]) => value !== undefined).map(([key, value]) => [key, String(value)]));\n const response = await (this.options.fetch ?? fetch)(`${this.baseUrl}/v1/learning/read/graders${path}?${params}`, { signal, redirect: \"error\", headers: { Authorization: `Bearer ${this.options.apiKey}`, \"X-OpenPond-Team-Id\": this.options.teamId, Accept: \"application/json\" } });\n const value: unknown = await response.json();\n if (!response.ok) throw new Error(z.object({ error: z.string() }).parse(value).error);\n return value;\n }\n}\n","import { contentHash } from \"@openpond/harness\";\n\n/** Draft presentation default. Published keys must retain their released value. */\nexport function graderFeedbackKeyFromName(name: string, rewardId: string): string {\n const slug = name.normalize(\"NFKD\").toLowerCase().replace(/[^a-z0-9]+/g, \"_\").replace(/^_+|_+$/g, \"\");\n const prefix = /^[a-z]/.test(slug) ? slug : `grader_${slug}`;\n return `${(prefix || \"grader\").slice(0, 55).replace(/_+$/g, \"\")}_${contentHash(rewardId).slice(0, 24)}`;\n}\n","import { DEFAULT_API_BASE_URL } from \"./endpoints.js\";\nimport { z } from \"zod\";\nimport { CorrectionVerificationPlanContentSchema, CorrectionVerificationPlanSchema, CorrectionOpportunitySchema, CorrectionMetricSummarySchema, CorrectionMetricObservationSchema, assertLearningRequestJson } from \"@openpond/evals/learning\";\nimport { OpenPondLearningError, readBoundedLearningResponse, type LearningRequestOptions } from \"./learning-client.js\";\nexport { CorrectionVerificationPlanSchema, CorrectionMetricSummarySchema, CorrectionMetricObservationSchema } from \"@openpond/evals/learning\";\nexport type { CorrectionVerificationPlan, CorrectionMetricSummary, CorrectionMetricObservation } from \"@openpond/evals/learning\";\nconst id = z.string().trim().min(1).max(500);\nconst ref = z.object({ id, contentHash: z.string().regex(/^[a-f0-9]{64}$/) }).strict();\nexport const CorrectionMetricsReadSchema = z.object({ teamId: id, modelId: id, runId: id.optional(), from: z.string().datetime().optional(), to: z.string().datetime().optional() }).strict();\nexport const CorrectionMetricsCommandSchema = z.discriminatedUnion(\"action\", [\n z.object({ action: z.literal(\"declare_verification\"), teamId: id, operationId: id,\n plan: z.object({\n modelId: CorrectionVerificationPlanContentSchema.shape.modelId,\n classification: CorrectionVerificationPlanContentSchema.shape.classification,\n feedback: CorrectionVerificationPlanContentSchema.shape.feedback,\n evidence: CorrectionVerificationPlanContentSchema.shape.evidence,\n trainingJobId: CorrectionVerificationPlanContentSchema.shape.trainingJobId,\n checkpoint: CorrectionVerificationPlanContentSchema.shape.checkpoint,\n artifact: CorrectionVerificationPlanContentSchema.shape.artifact,\n taskset: CorrectionVerificationPlanContentSchema.shape.taskset,\n checks: CorrectionVerificationPlanContentSchema.shape.checks,\n baselineOperationId: CorrectionVerificationPlanContentSchema.shape.baselineOperationId,\n candidateOperationId: CorrectionVerificationPlanContentSchema.shape.candidateOperationId,\n criterion: CorrectionVerificationPlanContentSchema.shape.criterion,\n }).strict() }).strict(),\n z.object({ action: z.literal(\"link_live_opportunity\"), teamId: id, operationId: id, correction: ref, inferenceRequestId: id,\n grade: z.object({ id, revision: z.number().int().positive() }).strict(), checkIds: z.array(id).min(1).max(1000) }).strict(),\n]);\nexport const CorrectionMetricsDetailSchema = z.object({ summary: CorrectionMetricSummarySchema.nullable(), observations: z.array(CorrectionMetricObservationSchema).max(1000) }).strict();\nexport type CorrectionMetricsRead = z.infer<typeof CorrectionMetricsReadSchema>;\nexport type CorrectionMetricsCommand = z.infer<typeof CorrectionMetricsCommandSchema>;\nexport class OpenPondCorrectionMetricsClient {\n private readonly options: { baseUrl: string; apiKey: string; fetch?: typeof globalThis.fetch };\n constructor(options: { baseUrl?: string; apiKey: string; fetch?: typeof globalThis.fetch }) {\n if (!options.apiKey.trim()) throw new Error(\"Learning API key is required.\");\n const url = new URL(options.baseUrl ?? DEFAULT_API_BASE_URL);\n if (![\"http:\", \"https:\"].includes(url.protocol) || url.username || url.password || url.search || url.hash)\n throw new Error(\"Learning base URL must be an HTTP(S) endpoint without credentials, query, or fragment.\");\n this.options = { ...options, baseUrl: url.toString().replace(/\\/+$/, \"\") };\n }\n private async request(path: string, teamId: string, init: RequestInit) {\n const response = await (this.options.fetch ?? globalThis.fetch)(`${this.options.baseUrl}${path}`, {\n ...init, redirect: \"error\", headers: { Authorization: `Bearer ${this.options.apiKey}`, \"Content-Type\": \"application/json\", Accept: \"application/json\", \"X-OpenPond-Team-Id\": teamId },\n });\n let payload: unknown;\n try { payload = await readBoundedLearningResponse(response); }\n catch (error) {\n if (error instanceof OpenPondLearningError) throw error;\n throw new OpenPondLearningError(response.ok ? 502 : response.status, \"invalid_response\", \"Correction metrics returned an invalid response.\", null);\n }\n if (!response.ok) {\n const error = z.object({ code: z.string().optional(), error: z.string().optional() }).passthrough().safeParse(payload);\n throw new OpenPondLearningError(response.status, error.success ? error.data.code ?? \"correction_request_failed\" : \"correction_request_failed\",\n error.success ? error.data.error ?? `Correction metrics request failed (${response.status}).` : `Correction metrics request failed (${response.status}).`, payload);\n }\n return payload;\n }\n async read(input: CorrectionMetricsRead, options: LearningRequestOptions = {}) {\n const query = CorrectionMetricsReadSchema.parse(input);\n const result = CorrectionMetricsDetailSchema.parse(await this.request(`/v1/learning/corrections?query=${encodeURIComponent(JSON.stringify(query))}`, query.teamId, { method: \"GET\", signal: options.signal }));\n if (result.summary && (result.summary.scope.teamId !== query.teamId || result.summary.scope.modelId !== query.modelId || query.runId && result.summary.scope.runId !== query.runId)\n || result.observations.some(observation => observation.modelId !== query.modelId || query.runId && observation.trainingJobId !== query.runId))\n throw new OpenPondLearningError(502, \"correction_scope_mismatch\", \"Correction metrics did not match the requested workspace, Model or run.\", null);\n return result;\n }\n async command(input: CorrectionMetricsCommand, options: LearningRequestOptions = {}) {\n const command = CorrectionMetricsCommandSchema.parse(input);\n assertLearningRequestJson(command);\n const payload = await this.request(\"/v1/learning/corrections\", command.teamId, { method: \"POST\", body: JSON.stringify(command), signal: options.signal });\n if (command.action === \"declare_verification\") {\n const result = CorrectionVerificationPlanSchema.parse(payload);\n if (result.teamId !== command.teamId || result.modelId !== command.plan.modelId || result.trainingJobId !== command.plan.trainingJobId)\n throw new OpenPondLearningError(502, \"correction_scope_mismatch\", \"Correction declaration did not match the requested workspace, Model or run.\", null);\n return result;\n }\n const result = CorrectionOpportunitySchema.parse(payload);\n if (result.correction.id !== command.correction.id || result.correction.contentHash !== command.correction.contentHash || result.attempt.id !== command.inferenceRequestId)\n throw new OpenPondLearningError(502, \"correction_scope_mismatch\", \"Correction opportunity did not match the declared correction and serving request.\", null);\n return result;\n }\n}\n"],"mappings":"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","names":["id","value","z","CorrectionVerificationPlanSchema","CorrectionMetricSummarySchema","CorrectionMetricObservationSchema","z","result"]}
|
package/dist/model-projects.js
CHANGED
|
@@ -11,8 +11,8 @@ import {
|
|
|
11
11
|
ModelStarterAttemptSummarySchema,
|
|
12
12
|
OpenPondModelStarterAttemptError,
|
|
13
13
|
OpenPondModelStarterAttemptsClient
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-L7MVGGBH.js";
|
|
15
|
+
import "./chunk-WJZHSIGD.js";
|
|
16
16
|
import "./chunk-CL3IOOVL.js";
|
|
17
17
|
import "./chunk-B3ZHJ2KK.js";
|
|
18
18
|
import "./chunk-H3JZ3P5T.js";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ModelStarterSchema,
|
|
3
3
|
validateResolvedModelStarter
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-3HOGOWKU.js";
|
|
5
|
+
import "./chunk-3Z5IK2UK.js";
|
|
6
|
+
import "./chunk-K4WU4JOP.js";
|
|
7
7
|
import "./chunk-TK3DXH7A.js";
|
|
8
8
|
import "./chunk-H3367ISL.js";
|
|
9
9
|
import {
|
|
10
10
|
ModelProjectVersionedRefSchema
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-WJZHSIGD.js";
|
|
12
12
|
import "./chunk-CL3IOOVL.js";
|
|
13
13
|
import "./chunk-B3ZHJ2KK.js";
|
|
14
14
|
import "./chunk-H3JZ3P5T.js";
|
package/dist/model-starters.js
CHANGED
|
@@ -14,8 +14,8 @@ import {
|
|
|
14
14
|
rebindModelTrainingRecipe,
|
|
15
15
|
validateModelStarterCreation,
|
|
16
16
|
validateResolvedModelStarter
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
} from "./chunk-3HOGOWKU.js";
|
|
18
|
+
import "./chunk-3Z5IK2UK.js";
|
|
19
19
|
import {
|
|
20
20
|
ModelStarterEnvironmentAttemptSchema,
|
|
21
21
|
ModelStarterExecutionSchema,
|
|
@@ -34,10 +34,10 @@ import {
|
|
|
34
34
|
validateModelTasksetPackage,
|
|
35
35
|
verifyModelStarterEnvironmentAttempt,
|
|
36
36
|
verifyNativeHarnessExperimentAttempt
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-K4WU4JOP.js";
|
|
38
38
|
import "./chunk-TK3DXH7A.js";
|
|
39
39
|
import "./chunk-H3367ISL.js";
|
|
40
|
-
import "./chunk-
|
|
40
|
+
import "./chunk-WJZHSIGD.js";
|
|
41
41
|
import "./chunk-CL3IOOVL.js";
|
|
42
42
|
import "./chunk-B3ZHJ2KK.js";
|
|
43
43
|
import "./chunk-H3JZ3P5T.js";
|
|
@@ -10,9 +10,9 @@ import {
|
|
|
10
10
|
verifyHarnessExperimentManifest,
|
|
11
11
|
verifyModelTasksetRunDetails,
|
|
12
12
|
verifyModelTasksetRunResult
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-5KJY44FB.js";
|
|
14
|
+
import "./chunk-L7MVGGBH.js";
|
|
15
|
+
import "./chunk-WJZHSIGD.js";
|
|
16
16
|
import "./chunk-CL3IOOVL.js";
|
|
17
17
|
import {
|
|
18
18
|
canonicalJson
|
package/dist/post-training.js
CHANGED
|
@@ -16,12 +16,12 @@ import {
|
|
|
16
16
|
postTrainingActive,
|
|
17
17
|
postTrainingRecipe,
|
|
18
18
|
verifyPostTrainingPlan
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
19
|
+
} from "./chunk-TX552FQG.js";
|
|
20
|
+
import "./chunk-MJHQMQEW.js";
|
|
21
|
+
import "./chunk-4D4QSQC3.js";
|
|
22
|
+
import "./chunk-5KJY44FB.js";
|
|
23
|
+
import "./chunk-L7MVGGBH.js";
|
|
24
|
+
import "./chunk-WJZHSIGD.js";
|
|
25
25
|
import "./chunk-CL3IOOVL.js";
|
|
26
26
|
import "./chunk-B3ZHJ2KK.js";
|
|
27
27
|
import "./chunk-H3JZ3P5T.js";
|
package/dist/taskset-drafts.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TasksetPackageReceiptSchema
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WPTFJZ4L.js";
|
|
4
4
|
import {
|
|
5
5
|
CapabilityDiagnosisSchema,
|
|
6
6
|
TaskDesignFixtureTemplateSchema,
|
|
7
7
|
TaskDesignProposalSchema,
|
|
8
8
|
TaskExampleProposalSchema,
|
|
9
9
|
TrainingTacticSchema
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-LRFVISLA.js";
|
|
11
11
|
import {
|
|
12
12
|
MAX_TASKSET_DRAFT_EDIT_FILE_BYTES,
|
|
13
13
|
MAX_TASKSET_DRAFT_WORKSPACE_BYTES,
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
saveTasksetDraftWorkspaceFile,
|
|
29
29
|
tasksetDraftFromTaskset,
|
|
30
30
|
validateTasksetDraftWorkspace
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-BT6CC6QB.js";
|
|
32
32
|
import {
|
|
33
33
|
AuthoringProvenanceSchema,
|
|
34
34
|
AuthoringRepairSchema,
|
|
@@ -55,7 +55,7 @@ import {
|
|
|
55
55
|
isTrainingSourceRef,
|
|
56
56
|
validatePortability,
|
|
57
57
|
validateTaskset
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-7ZV626YS.js";
|
|
59
59
|
import {
|
|
60
60
|
ConnectedDatasetSourceRefSchema,
|
|
61
61
|
CorrectionSignalSchema,
|
|
@@ -111,7 +111,7 @@ import {
|
|
|
111
111
|
UploadedFileDatasetSourceRefSchema,
|
|
112
112
|
assertTasksetCalibrationClosures,
|
|
113
113
|
resolveTasksetCalibrationFixture
|
|
114
|
-
} from "./chunk-
|
|
114
|
+
} from "./chunk-K4WU4JOP.js";
|
|
115
115
|
import {
|
|
116
116
|
ModelTasksetDraftRequestSchema,
|
|
117
117
|
TasksetDraftFileInfoSchema,
|
|
@@ -121,7 +121,7 @@ import {
|
|
|
121
121
|
} from "./chunk-TK3DXH7A.js";
|
|
122
122
|
import "./chunk-VE5JD5FN.js";
|
|
123
123
|
import "./chunk-H3367ISL.js";
|
|
124
|
-
import "./chunk-
|
|
124
|
+
import "./chunk-WJZHSIGD.js";
|
|
125
125
|
import "./chunk-CL3IOOVL.js";
|
|
126
126
|
import "./chunk-B3ZHJ2KK.js";
|
|
127
127
|
import {
|
package/dist/taskset-packages.js
CHANGED
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
materializeTasksetDraftWorkspace,
|
|
12
12
|
prepareDatasetTrainingReview,
|
|
13
13
|
prepareTasksetDraftSource
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-VIDRZCPQ.js";
|
|
15
15
|
import {
|
|
16
16
|
OpenPondTasksetPackageClient,
|
|
17
17
|
OpenPondTasksetPackageError,
|
|
@@ -20,13 +20,14 @@ import {
|
|
|
20
20
|
TasksetPackageReadbackSchema,
|
|
21
21
|
TasksetPackageReceiptSchema,
|
|
22
22
|
TasksetReleasePackageReadbackSchema
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-WPTFJZ4L.js";
|
|
24
24
|
import {
|
|
25
25
|
DatasetTrainingReviewReceiptContentSchema,
|
|
26
26
|
DatasetTrainingReviewReceiptSchema,
|
|
27
27
|
DatasetTrainingReviewRequestSchema,
|
|
28
|
-
DatasetTrainingReviewSourceSchema
|
|
29
|
-
|
|
28
|
+
DatasetTrainingReviewSourceSchema,
|
|
29
|
+
textTaskPolicyMessages
|
|
30
|
+
} from "./chunk-RMXZISHK.js";
|
|
30
31
|
import {
|
|
31
32
|
ModelBatchReviewInspectionSchema,
|
|
32
33
|
ModelBatchReviewReceiptSchema,
|
|
@@ -37,7 +38,7 @@ import {
|
|
|
37
38
|
prepareImportedTasksetPackage,
|
|
38
39
|
projectLearningBatchGraders,
|
|
39
40
|
tasksetPackageSourceId
|
|
40
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-GFWXDWEE.js";
|
|
41
42
|
import {
|
|
42
43
|
AuthoredTasksetFileInventorySchema,
|
|
43
44
|
compileModelTasksetDraftWorkspace,
|
|
@@ -45,8 +46,8 @@ import {
|
|
|
45
46
|
prepareAuthoredTasksetSource,
|
|
46
47
|
prepareModelTasksetDraft,
|
|
47
48
|
publishModelTasksetDraftPackage
|
|
48
|
-
} from "./chunk-
|
|
49
|
-
import "./chunk-
|
|
49
|
+
} from "./chunk-BIQ5TG3T.js";
|
|
50
|
+
import "./chunk-BT6CC6QB.js";
|
|
50
51
|
import {
|
|
51
52
|
materializePortableTasksetRelease,
|
|
52
53
|
portableTasksetEnvironment,
|
|
@@ -55,7 +56,7 @@ import {
|
|
|
55
56
|
projectPreferenceComparisonRelease,
|
|
56
57
|
resolvePortableTasksetRewardExecution
|
|
57
58
|
} from "./chunk-GWXJSBWR.js";
|
|
58
|
-
import "./chunk-
|
|
59
|
+
import "./chunk-7ZV626YS.js";
|
|
59
60
|
import {
|
|
60
61
|
MAX_TASKSET_PACKAGE_BYTES,
|
|
61
62
|
TasksetPackageContentSchema,
|
|
@@ -72,7 +73,7 @@ import {
|
|
|
72
73
|
tasksetPackageRewardBinding,
|
|
73
74
|
validateTasksetLearningResources,
|
|
74
75
|
validateTasksetPackage
|
|
75
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-K4WU4JOP.js";
|
|
76
77
|
import {
|
|
77
78
|
ModelTasksetAuthoringOwnerSchema,
|
|
78
79
|
ModelTasksetAuthoringSchema,
|
|
@@ -87,7 +88,7 @@ import {
|
|
|
87
88
|
import "./chunk-VE5JD5FN.js";
|
|
88
89
|
import "./chunk-QTNYXOJW.js";
|
|
89
90
|
import "./chunk-H3367ISL.js";
|
|
90
|
-
import "./chunk-
|
|
91
|
+
import "./chunk-WJZHSIGD.js";
|
|
91
92
|
import "./chunk-CL3IOOVL.js";
|
|
92
93
|
import "./chunk-B3ZHJ2KK.js";
|
|
93
94
|
import "./chunk-H3JZ3P5T.js";
|
|
@@ -158,6 +159,7 @@ export {
|
|
|
158
159
|
resolveTasksetWorkOutputs,
|
|
159
160
|
tasksetPackageRewardBinding,
|
|
160
161
|
tasksetPackageSourceId,
|
|
162
|
+
textTaskPolicyMessages,
|
|
161
163
|
validateTasksetLearningResources,
|
|
162
164
|
validateTasksetPackage
|
|
163
165
|
};
|
package/dist/training-bundle.js
CHANGED
|
@@ -10,10 +10,11 @@ import {
|
|
|
10
10
|
trainingEvaluationSourceRef,
|
|
11
11
|
trainingInputArtifactUploadHash,
|
|
12
12
|
trainingJobSubmissionHash
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-JYWIKBGD.js";
|
|
14
14
|
import {
|
|
15
|
-
ManagedSftRecipeSchema
|
|
16
|
-
|
|
15
|
+
ManagedSftRecipeSchema,
|
|
16
|
+
selectSftValidationTasks
|
|
17
|
+
} from "./chunk-3Z5IK2UK.js";
|
|
17
18
|
import {
|
|
18
19
|
HarnessSourceSelectionSchema,
|
|
19
20
|
createAgentSnapshot,
|
|
@@ -24,7 +25,7 @@ import {
|
|
|
24
25
|
import {
|
|
25
26
|
prepareImportedTasksetPackage,
|
|
26
27
|
projectLearningBatchGraders
|
|
27
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-GFWXDWEE.js";
|
|
28
29
|
import {
|
|
29
30
|
projectPortableTaskRecord,
|
|
30
31
|
resolvePortableTasksetRewardExecution
|
|
@@ -33,26 +34,26 @@ import {
|
|
|
33
34
|
TasksetDraftOutputContractSchema,
|
|
34
35
|
TasksetSchema,
|
|
35
36
|
computeTasksetHash
|
|
36
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-7ZV626YS.js";
|
|
37
38
|
import {
|
|
38
39
|
LearningBatchDatasetSourceRefSchema,
|
|
39
40
|
MAX_TASKSET_PACKAGE_BYTES,
|
|
40
41
|
decodeTasksetPackageFile,
|
|
41
42
|
validateTasksetPackage
|
|
42
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-K4WU4JOP.js";
|
|
43
44
|
import "./chunk-TK3DXH7A.js";
|
|
44
45
|
import "./chunk-QTNYXOJW.js";
|
|
45
46
|
import "./chunk-H3367ISL.js";
|
|
46
47
|
import {
|
|
47
48
|
TrainingHandoffOriginSchema
|
|
48
|
-
} from "./chunk-
|
|
49
|
-
import "./chunk-
|
|
50
|
-
import "./chunk-
|
|
51
|
-
import "./chunk-
|
|
52
|
-
import "./chunk-
|
|
49
|
+
} from "./chunk-TX552FQG.js";
|
|
50
|
+
import "./chunk-MJHQMQEW.js";
|
|
51
|
+
import "./chunk-4D4QSQC3.js";
|
|
52
|
+
import "./chunk-5KJY44FB.js";
|
|
53
|
+
import "./chunk-L7MVGGBH.js";
|
|
53
54
|
import {
|
|
54
55
|
TrainingGpuSelectionSchema
|
|
55
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-WJZHSIGD.js";
|
|
56
57
|
import "./chunk-CL3IOOVL.js";
|
|
57
58
|
import "./chunk-B3ZHJ2KK.js";
|
|
58
59
|
import {
|
|
@@ -377,17 +378,25 @@ async function prepareManagedTrainingSubmission(raw) {
|
|
|
377
378
|
const manifest = HarnessRunManifestSchema.parse(input.manifest);
|
|
378
379
|
const bundle = ResolvedTrainingBundleManifestSchema.parse(input.bundleManifest);
|
|
379
380
|
const qualification = input.executionMode === "qualification";
|
|
380
|
-
const gpuSelection = input.gpuSelection ?? project.trainingSetup.managedGpuSelection ? TrainingGpuSelectionSchema.parse(
|
|
381
|
+
const gpuSelection = input.gpuSelection ?? project.trainingSetup.managedGpuSelection ? TrainingGpuSelectionSchema.parse(
|
|
382
|
+
input.gpuSelection ?? project.trainingSetup.managedGpuSelection
|
|
383
|
+
) : void 0;
|
|
381
384
|
const physicalPlacement = input.physicalPlacement ? TrainingPhysicalPlacementSchema.parse(input.physicalPlacement) : void 0;
|
|
382
|
-
const qualificationGroupSize = manifest.qualificationSamples === void 0 ? null : z2.object({
|
|
385
|
+
const qualificationGroupSize = manifest.qualificationSamples === void 0 ? null : z2.object({
|
|
386
|
+
rollout: z2.object({ groupSize: z2.number().int().min(2).max(32) }).passthrough()
|
|
387
|
+
}).passthrough().parse(recipe).rollout.groupSize;
|
|
383
388
|
if (manifest.qualificationSamples !== bundle.qualificationSamples || manifest.qualificationSamples !== void 0 && (!qualification || manifest.qualificationSamples > qualificationGroupSize)) {
|
|
384
|
-
throw new Error(
|
|
389
|
+
throw new Error(
|
|
390
|
+
"Qualification samples must be within the pinned rollout group and cannot be used for training."
|
|
391
|
+
);
|
|
385
392
|
}
|
|
386
393
|
if (manifest.executionMode !== input.executionMode || bundle.executionMode !== input.executionMode) {
|
|
387
394
|
throw new Error("Managed submission execution mode differs from its immutable bundle.");
|
|
388
395
|
}
|
|
389
396
|
if (qualification && (input.evaluationSource || input.resumeFrom || input.rewardSource.kind !== "deterministic")) {
|
|
390
|
-
throw new Error(
|
|
397
|
+
throw new Error(
|
|
398
|
+
"Qualification requires the original learner, deterministic rewards, and no evaluation source."
|
|
399
|
+
);
|
|
391
400
|
}
|
|
392
401
|
const { contentHash: manifestHash, ...manifestContent } = manifest;
|
|
393
402
|
const { contentHash: bundleHash, ...bundleContent } = bundle;
|
|
@@ -401,7 +410,9 @@ async function prepareManagedTrainingSubmission(raw) {
|
|
|
401
410
|
throw new Error("The synced Model Project base Model does not match the Run manifest.");
|
|
402
411
|
}
|
|
403
412
|
if (!["grpo", "sft"].includes(recipe.method) || contentHash(recipe) !== manifest.recipe.configHash || approval.approvalHash !== manifest.approval.approvalHash || approval.maximumSpendUsd !== manifest.approval.maximumSpendUsd) {
|
|
404
|
-
throw new Error(
|
|
413
|
+
throw new Error(
|
|
414
|
+
"Managed training requires the exact approved supported recipe and spend ceiling."
|
|
415
|
+
);
|
|
405
416
|
}
|
|
406
417
|
if (recipe.method === "sft") {
|
|
407
418
|
const supervised = ManagedSftRecipeSchema.parse(recipe);
|
|
@@ -417,14 +428,25 @@ async function prepareManagedTrainingSubmission(raw) {
|
|
|
417
428
|
z2.string().trim().min(16).max(191).parse(input.idempotencyKey);
|
|
418
429
|
const files = verifyFiles(bundle, input.files);
|
|
419
430
|
const evaluationSource = qualification ? null : TrainingEvaluationSourceSchema.parse(input.evaluationSource);
|
|
431
|
+
if (recipe.method === "sft" && evaluationSource) {
|
|
432
|
+
const dataset = ManagedSftRecipeSchema.parse(recipe).dataset;
|
|
433
|
+
if (selectSftValidationTasks(evaluationSource.tasks, dataset).length !== evaluationSource.tasks.length)
|
|
434
|
+
throw new Error(
|
|
435
|
+
"The evaluation artifact must contain exactly the selected SFT validation tasks."
|
|
436
|
+
);
|
|
437
|
+
}
|
|
420
438
|
const evaluationFile = files.find((file) => file.path === TRAINING_EVALUATION_SOURCE_PATH);
|
|
421
439
|
if (evaluationSource && (!evaluationFile || contentHash(JSON.parse(Buffer.from(evaluationFile.content, "base64").toString("utf8"))) !== contentHash(evaluationSource))) {
|
|
422
440
|
throw new Error("The evaluation source differs from the immutable training bundle.");
|
|
423
441
|
}
|
|
424
442
|
if (qualification && (evaluationFile || files.some((file) => file.path === "dataset/train.json") || !files.some((file) => file.path === "dataset/qualification.json") || !files.some((file) => file.path === "qualification-source.json"))) {
|
|
425
|
-
throw new Error(
|
|
443
|
+
throw new Error(
|
|
444
|
+
"Qualification requires its dedicated dataset and no training/evaluation datasets."
|
|
445
|
+
);
|
|
426
446
|
}
|
|
427
|
-
if (!qualification && files.some(
|
|
447
|
+
if (!qualification && files.some(
|
|
448
|
+
(file) => file.path === "dataset/qualification.json" || file.path === "qualification-source.json"
|
|
449
|
+
)) {
|
|
428
450
|
throw new Error("Qualification datasets cannot be prepared as training.");
|
|
429
451
|
}
|
|
430
452
|
const evaluation = evaluationSource ? await trainingEvaluationSourceRef(evaluationSource) : null;
|
|
@@ -488,7 +510,11 @@ async function prepareManagedTrainingSubmission(raw) {
|
|
|
488
510
|
resumeFrom: input.resumeFrom
|
|
489
511
|
},
|
|
490
512
|
requestedCapabilities: [
|
|
491
|
-
{
|
|
513
|
+
{
|
|
514
|
+
id: qualification ? "managed_rl.policy.qualification" : recipe.method === "sft" ? "managed_training.sft" : "managed_rl.policy.grpo",
|
|
515
|
+
version: "1",
|
|
516
|
+
required: true
|
|
517
|
+
},
|
|
492
518
|
...gpuSelection?.gpuCount === 2 ? [{ id: "managed_rl.policy.data_parallel", version: "1", required: true }] : [],
|
|
493
519
|
{
|
|
494
520
|
id: `managed_rl.rollouts.${manifest.runtimeTarget.placement}`,
|