openpond-sdk 0.12.2 → 0.12.3
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/advanced-refiner-evaluations.js +5 -5
- package/dist/candidate-evaluations.js +4 -4
- package/dist/{chunk-VSRTJDVB.js → chunk-36WJTS5V.js} +3 -3
- package/dist/{chunk-O5ARJVT5.js → chunk-77N3QEIL.js} +2 -2
- package/dist/{chunk-WNH4DOEC.js → chunk-BFR3VC25.js} +16 -285
- package/dist/chunk-BFR3VC25.js.map +7 -0
- package/dist/{chunk-DBRRQASP.js → chunk-BSK3VLM3.js} +2 -2
- package/dist/{chunk-B7VYE7YQ.js → chunk-CTVKI3BV.js} +2 -2
- package/dist/{chunk-7AZDNZP6.js → chunk-CWXM57QR.js} +350 -87
- package/dist/chunk-CWXM57QR.js.map +7 -0
- package/dist/chunk-FY7NHCEH.js +255 -0
- package/dist/chunk-FY7NHCEH.js.map +7 -0
- package/dist/{chunk-YSKUXQ2N.js → chunk-G53MA5XX.js} +3 -3
- package/dist/{chunk-AV5JV26B.js → chunk-G6Y6CQYV.js} +2 -2
- package/dist/{chunk-ENLQCKY6.js → chunk-K5WRVSOL.js} +5 -5
- package/dist/{chunk-OEPYLZXK.js → chunk-MLPPSCDQ.js} +2 -2
- package/dist/{chunk-7GYXC2AI.js → chunk-QEIT5VXJ.js} +2 -2
- package/dist/{chunk-L5PQPAU6.js → chunk-QTJQIHDZ.js} +5 -2
- package/dist/{chunk-L5PQPAU6.js.map → chunk-QTJQIHDZ.js.map} +2 -2
- package/dist/{chunk-YVFERCUC.js → chunk-TMUAKJWX.js} +71 -2
- package/dist/chunk-TMUAKJWX.js.map +7 -0
- package/dist/{chunk-D4WTE6ZA.js → chunk-TSMGMA6R.js} +2 -2
- package/dist/{chunk-VOL3WES2.js → chunk-UPS52OPZ.js} +10 -165
- package/dist/chunk-UPS52OPZ.js.map +7 -0
- package/dist/{chunk-MLFKQ7E7.js → chunk-VY5AFE7A.js} +2 -2
- package/dist/{chunk-WVISXXIL.js → chunk-XYQD4LDI.js} +2 -2
- package/dist/{chunk-DG5CRENU.js → chunk-YUKV7RCD.js} +2 -2
- package/dist/{chunk-7WUJBFCH.js → chunk-ZJ3H3VS7.js} +18 -1
- package/dist/chunk-ZJ3H3VS7.js.map +7 -0
- package/dist/connected-evidence.js +10 -10
- package/dist/dataset-workspaces.js +13 -12
- package/dist/dataset-workspaces.js.map +1 -1
- package/dist/experiment-evaluation-schedules.js +13 -13
- package/dist/experiment-improvements.js +5 -5
- package/dist/experiments.js +17 -13
- package/dist/index.js +19 -19
- package/dist/model-starter-catalog.js +5 -5
- package/dist/model-starters.js +5 -5
- package/dist/model-taskset-runs.js +1 -1
- package/dist/post-training.js +4 -4
- package/dist/taskset-drafts.js +16 -16
- package/dist/taskset-packages.js +14 -14
- package/dist/training-bundle.js +161 -25
- package/dist/training-bundle.js.map +4 -4
- package/dist/training.js +11 -5
- package/dist/types/packages/sdk/src/candidate-evaluation-client.d.ts +9 -0
- package/dist/types/packages/sdk/src/candidate-evaluation-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/candidate-evaluations.d.ts +6 -0
- package/dist/types/packages/sdk/src/candidate-evaluations.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/experiment-client.d.ts +33 -0
- package/dist/types/packages/sdk/src/experiment-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/experiment-contracts.d.ts +12 -0
- package/dist/types/packages/sdk/src/experiment-contracts.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/experiment-evaluation-schedules.d.ts +21 -0
- package/dist/types/packages/sdk/src/experiment-evaluation-schedules.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/experiment-run-contracts.d.ts +3 -0
- 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 +15 -0
- package/dist/types/packages/sdk/src/experiment-run-details.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/harness-experiment-policy.d.ts +17 -0
- package/dist/types/packages/sdk/src/harness-experiment-policy.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/managed-training-preparation.d.ts +3 -1
- package/dist/types/packages/sdk/src/managed-training-preparation.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts +12 -0
- 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 +12 -0
- package/dist/types/packages/sdk/src/model-taskset-runs.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/post-training.d.ts +15 -0
- package/dist/types/packages/sdk/src/post-training.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training-bundle-contracts.d.ts +4 -0
- package/dist/types/packages/sdk/src/training-bundle-contracts.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training-bundle.d.ts +4 -0
- package/dist/types/packages/sdk/src/training-bundle.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/training-qualification-preparation.d.ts +364 -0
- package/dist/types/packages/sdk/src/training-qualification-preparation.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/training.d.ts +161 -0
- package/dist/types/packages/sdk/src/training.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-7AZDNZP6.js.map +0 -7
- package/dist/chunk-7WUJBFCH.js.map +0 -7
- package/dist/chunk-PGBFI5HC.js +0 -98
- package/dist/chunk-PGBFI5HC.js.map +0 -7
- package/dist/chunk-VOL3WES2.js.map +0 -7
- package/dist/chunk-WNH4DOEC.js.map +0 -7
- package/dist/chunk-YVFERCUC.js.map +0 -7
- /package/dist/{chunk-VSRTJDVB.js.map → chunk-36WJTS5V.js.map} +0 -0
- /package/dist/{chunk-O5ARJVT5.js.map → chunk-77N3QEIL.js.map} +0 -0
- /package/dist/{chunk-DBRRQASP.js.map → chunk-BSK3VLM3.js.map} +0 -0
- /package/dist/{chunk-B7VYE7YQ.js.map → chunk-CTVKI3BV.js.map} +0 -0
- /package/dist/{chunk-YSKUXQ2N.js.map → chunk-G53MA5XX.js.map} +0 -0
- /package/dist/{chunk-AV5JV26B.js.map → chunk-G6Y6CQYV.js.map} +0 -0
- /package/dist/{chunk-ENLQCKY6.js.map → chunk-K5WRVSOL.js.map} +0 -0
- /package/dist/{chunk-OEPYLZXK.js.map → chunk-MLPPSCDQ.js.map} +0 -0
- /package/dist/{chunk-7GYXC2AI.js.map → chunk-QEIT5VXJ.js.map} +0 -0
- /package/dist/{chunk-D4WTE6ZA.js.map → chunk-TSMGMA6R.js.map} +0 -0
- /package/dist/{chunk-MLFKQ7E7.js.map → chunk-VY5AFE7A.js.map} +0 -0
- /package/dist/{chunk-WVISXXIL.js.map → chunk-XYQD4LDI.js.map} +0 -0
- /package/dist/{chunk-DG5CRENU.js.map → chunk-YUKV7RCD.js.map} +0 -0
|
@@ -7,6 +7,7 @@ export { TrainingCandidateDecisionRequestSchema, TrainingCandidateDecisionSchema
|
|
|
7
7
|
export { deterministicTrainingRewardSource } from "./training-grading-plan.js";
|
|
8
8
|
export { TRAINING_EVALUATION_SOURCE_PATH, TrainingEvaluationSourceSchema, assertTrainingEvaluationIsolation, trainingEvaluationSourceRef, type TrainingEvaluationSource, } from "./training-evaluation-source.js";
|
|
9
9
|
export { TrainingEvaluationTaskResultSchema, TrainingEvaluationTaskPageSchema, trainingEvaluationTaskPageHash, parseAndVerifyTrainingEvaluationTaskPage, type TrainingEvaluationTaskResult, type TrainingEvaluationTaskPage, } from "./training-evaluation-results.js";
|
|
10
|
+
import { ModelProjectBaseModelSchema } from "./model-projects.js";
|
|
10
11
|
export { OPENPOND_TRAINING_MEDIA_TYPE, OPENPOND_TRAINING_PROTOCOL_MAJOR, TRAINING_API_RESPONSE_MAX_BYTES, TRAINING_INPUT_ARTIFACT_MAX_BYTES, TRAINING_JOB_SUBMISSION_MAX_BYTES, OpenPondProtocolError, assertCanonicalPayloadSize, canonicalJson, canonicalJsonByteLength, canonicalSha256, parseBoundedJson, } from "./protocol.js";
|
|
11
12
|
/**
|
|
12
13
|
* Stages a content-addressed immutable input before Job admission. The payload
|
|
@@ -336,8 +337,22 @@ export declare const RewardModelTrainingRequestSchema: z.ZodObject<{
|
|
|
336
337
|
parameterization: z.ZodLiteral<"lora_with_scalar_head">;
|
|
337
338
|
}, z.core.$catchall<z.ZodUnknown>>;
|
|
338
339
|
}, z.core.$strict>;
|
|
340
|
+
export declare const TrainingQualificationBaseModelSchema: z.ZodObject<{
|
|
341
|
+
schemaVersion: z.ZodLiteral<"openpond.baseModelPreference.v1">;
|
|
342
|
+
modelId: z.ZodString;
|
|
343
|
+
modelAssetId: z.ZodNullable<z.ZodString>;
|
|
344
|
+
source: z.ZodEnum<{
|
|
345
|
+
local: "local";
|
|
346
|
+
managed: "managed";
|
|
347
|
+
builtin: "builtin";
|
|
348
|
+
}>;
|
|
349
|
+
revision: z.ZodString;
|
|
350
|
+
tokenizerRevision: z.ZodString;
|
|
351
|
+
chatTemplateHash: z.ZodString;
|
|
352
|
+
}, z.core.$strict>;
|
|
339
353
|
export declare const PolicyOptimizationRequestSchema: z.ZodObject<{
|
|
340
354
|
kind: z.ZodLiteral<"policy_optimize">;
|
|
355
|
+
executionMode: z.ZodOptional<z.ZodLiteral<"qualification">>;
|
|
341
356
|
baseModel: z.ZodObject<{
|
|
342
357
|
schemaVersion: z.ZodLiteral<"openpond.baseModelPreference.v1">;
|
|
343
358
|
modelId: z.ZodString;
|
|
@@ -444,6 +459,7 @@ export declare const TrainingJobRequestSchema: z.ZodDiscriminatedUnion<[z.ZodObj
|
|
|
444
459
|
}, z.core.$catchall<z.ZodUnknown>>;
|
|
445
460
|
}, z.core.$strict>, z.ZodObject<{
|
|
446
461
|
kind: z.ZodLiteral<"policy_optimize">;
|
|
462
|
+
executionMode: z.ZodOptional<z.ZodLiteral<"qualification">>;
|
|
447
463
|
baseModel: z.ZodObject<{
|
|
448
464
|
schemaVersion: z.ZodLiteral<"openpond.baseModelPreference.v1">;
|
|
449
465
|
modelId: z.ZodString;
|
|
@@ -804,6 +820,7 @@ export declare const TrainingJobSubmissionSchema: z.ZodObject<{
|
|
|
804
820
|
}, z.core.$catchall<z.ZodUnknown>>;
|
|
805
821
|
}, z.core.$strict>, z.ZodObject<{
|
|
806
822
|
kind: z.ZodLiteral<"policy_optimize">;
|
|
823
|
+
executionMode: z.ZodOptional<z.ZodLiteral<"qualification">>;
|
|
807
824
|
baseModel: z.ZodObject<{
|
|
808
825
|
schemaVersion: z.ZodLiteral<"openpond.baseModelPreference.v1">;
|
|
809
826
|
modelId: z.ZodString;
|
|
@@ -914,6 +931,7 @@ export declare const TrainingJobSchema: z.ZodObject<{
|
|
|
914
931
|
reward_model_train: "reward_model_train";
|
|
915
932
|
policy_optimize: "policy_optimize";
|
|
916
933
|
}>;
|
|
934
|
+
executionMode: z.ZodOptional<z.ZodLiteral<"qualification">>;
|
|
917
935
|
modelProjectId: z.ZodString;
|
|
918
936
|
portableProjectId: z.ZodString;
|
|
919
937
|
sourceProjectRevision: z.ZodNumber;
|
|
@@ -954,6 +972,7 @@ export declare const TrainingJobPageSchema: z.ZodObject<{
|
|
|
954
972
|
reward_model_train: "reward_model_train";
|
|
955
973
|
policy_optimize: "policy_optimize";
|
|
956
974
|
}>;
|
|
975
|
+
executionMode: z.ZodOptional<z.ZodLiteral<"qualification">>;
|
|
957
976
|
modelProjectId: z.ZodString;
|
|
958
977
|
portableProjectId: z.ZodString;
|
|
959
978
|
sourceProjectRevision: z.ZodNumber;
|
|
@@ -1032,6 +1051,38 @@ export declare const TrainingJobOutputSchema: z.ZodObject<{
|
|
|
1032
1051
|
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1033
1052
|
createdAt: z.ZodString;
|
|
1034
1053
|
}, z.core.$strict>;
|
|
1054
|
+
/** Evidence that collection used the pinned original learner and never updated it. */
|
|
1055
|
+
export declare const TrainingQualificationEvidenceSchema: z.ZodObject<{
|
|
1056
|
+
schemaVersion: z.ZodLiteral<"openpond.trainingQualificationEvidence.v1">;
|
|
1057
|
+
baseModel: z.ZodObject<{
|
|
1058
|
+
schemaVersion: z.ZodLiteral<"openpond.baseModelPreference.v1">;
|
|
1059
|
+
modelId: z.ZodString;
|
|
1060
|
+
modelAssetId: z.ZodNullable<z.ZodString>;
|
|
1061
|
+
source: z.ZodEnum<{
|
|
1062
|
+
local: "local";
|
|
1063
|
+
managed: "managed";
|
|
1064
|
+
builtin: "builtin";
|
|
1065
|
+
}>;
|
|
1066
|
+
revision: z.ZodString;
|
|
1067
|
+
tokenizerRevision: z.ZodString;
|
|
1068
|
+
chatTemplateHash: z.ZodString;
|
|
1069
|
+
}, z.core.$strict>;
|
|
1070
|
+
group: z.ZodObject<{
|
|
1071
|
+
id: z.ZodString;
|
|
1072
|
+
contentHash: z.ZodString;
|
|
1073
|
+
}, z.core.$strict>;
|
|
1074
|
+
rolloutReceipts: z.ZodArray<z.ZodObject<{
|
|
1075
|
+
id: z.ZodString;
|
|
1076
|
+
contentHash: z.ZodString;
|
|
1077
|
+
}, z.core.$strict>>;
|
|
1078
|
+
rewardEvidenceHash: z.ZodString;
|
|
1079
|
+
groupsCompleted: z.ZodLiteral<1>;
|
|
1080
|
+
optimizerUpdatesApplied: z.ZodLiteral<0>;
|
|
1081
|
+
optimizerUpdatesSkipped: z.ZodLiteral<0>;
|
|
1082
|
+
trainingStepsCreated: z.ZodLiteral<0>;
|
|
1083
|
+
checkpointsCreated: z.ZodLiteral<0>;
|
|
1084
|
+
artifactsCreated: z.ZodLiteral<0>;
|
|
1085
|
+
}, z.core.$strict>;
|
|
1035
1086
|
export declare const TrainingExecutionReceiptSchema: z.ZodObject<{
|
|
1036
1087
|
schemaVersion: z.ZodLiteral<"openpond.trainingExecutionReceipt.v2">;
|
|
1037
1088
|
id: z.ZodString;
|
|
@@ -1056,6 +1107,37 @@ export declare const TrainingExecutionReceiptSchema: z.ZodObject<{
|
|
|
1056
1107
|
spendUsd: z.ZodNumber;
|
|
1057
1108
|
durationSeconds: z.ZodNumber;
|
|
1058
1109
|
cleanupComplete: z.ZodBoolean;
|
|
1110
|
+
qualification: z.ZodOptional<z.ZodObject<{
|
|
1111
|
+
schemaVersion: z.ZodLiteral<"openpond.trainingQualificationEvidence.v1">;
|
|
1112
|
+
baseModel: z.ZodObject<{
|
|
1113
|
+
schemaVersion: z.ZodLiteral<"openpond.baseModelPreference.v1">;
|
|
1114
|
+
modelId: z.ZodString;
|
|
1115
|
+
modelAssetId: z.ZodNullable<z.ZodString>;
|
|
1116
|
+
source: z.ZodEnum<{
|
|
1117
|
+
local: "local";
|
|
1118
|
+
managed: "managed";
|
|
1119
|
+
builtin: "builtin";
|
|
1120
|
+
}>;
|
|
1121
|
+
revision: z.ZodString;
|
|
1122
|
+
tokenizerRevision: z.ZodString;
|
|
1123
|
+
chatTemplateHash: z.ZodString;
|
|
1124
|
+
}, z.core.$strict>;
|
|
1125
|
+
group: z.ZodObject<{
|
|
1126
|
+
id: z.ZodString;
|
|
1127
|
+
contentHash: z.ZodString;
|
|
1128
|
+
}, z.core.$strict>;
|
|
1129
|
+
rolloutReceipts: z.ZodArray<z.ZodObject<{
|
|
1130
|
+
id: z.ZodString;
|
|
1131
|
+
contentHash: z.ZodString;
|
|
1132
|
+
}, z.core.$strict>>;
|
|
1133
|
+
rewardEvidenceHash: z.ZodString;
|
|
1134
|
+
groupsCompleted: z.ZodLiteral<1>;
|
|
1135
|
+
optimizerUpdatesApplied: z.ZodLiteral<0>;
|
|
1136
|
+
optimizerUpdatesSkipped: z.ZodLiteral<0>;
|
|
1137
|
+
trainingStepsCreated: z.ZodLiteral<0>;
|
|
1138
|
+
checkpointsCreated: z.ZodLiteral<0>;
|
|
1139
|
+
artifactsCreated: z.ZodLiteral<0>;
|
|
1140
|
+
}, z.core.$strict>>;
|
|
1059
1141
|
issuer: z.ZodString;
|
|
1060
1142
|
issuedAt: z.ZodString;
|
|
1061
1143
|
signature: z.ZodNullable<z.ZodString>;
|
|
@@ -1067,7 +1149,14 @@ export declare function parseAndVerifyTrainingExecutionReceipt(value: unknown, e
|
|
|
1067
1149
|
teamId?: string;
|
|
1068
1150
|
jobId?: string;
|
|
1069
1151
|
requireCleanup?: boolean;
|
|
1152
|
+
qualificationSubmission?: TrainingJobSubmission;
|
|
1153
|
+
outputs?: TrainingJobOutput[];
|
|
1070
1154
|
}): Promise<TrainingExecutionReceipt>;
|
|
1155
|
+
export declare function assertTrainingQualificationReceipt(receipt: TrainingExecutionReceipt, expected: {
|
|
1156
|
+
submissionHash: string;
|
|
1157
|
+
baseModel?: z.infer<typeof ModelProjectBaseModelSchema>;
|
|
1158
|
+
outputs?: TrainingJobOutput[];
|
|
1159
|
+
}): Promise<void>;
|
|
1071
1160
|
export declare const TrainingJobOutputsSchema: z.ZodObject<{
|
|
1072
1161
|
schemaVersion: z.ZodLiteral<"openpond.trainingJobOutputs.v2">;
|
|
1073
1162
|
outputs: z.ZodArray<z.ZodObject<{
|
|
@@ -1113,6 +1202,37 @@ export declare const TrainingJobOutputsSchema: z.ZodObject<{
|
|
|
1113
1202
|
spendUsd: z.ZodNumber;
|
|
1114
1203
|
durationSeconds: z.ZodNumber;
|
|
1115
1204
|
cleanupComplete: z.ZodBoolean;
|
|
1205
|
+
qualification: z.ZodOptional<z.ZodObject<{
|
|
1206
|
+
schemaVersion: z.ZodLiteral<"openpond.trainingQualificationEvidence.v1">;
|
|
1207
|
+
baseModel: z.ZodObject<{
|
|
1208
|
+
schemaVersion: z.ZodLiteral<"openpond.baseModelPreference.v1">;
|
|
1209
|
+
modelId: z.ZodString;
|
|
1210
|
+
modelAssetId: z.ZodNullable<z.ZodString>;
|
|
1211
|
+
source: z.ZodEnum<{
|
|
1212
|
+
local: "local";
|
|
1213
|
+
managed: "managed";
|
|
1214
|
+
builtin: "builtin";
|
|
1215
|
+
}>;
|
|
1216
|
+
revision: z.ZodString;
|
|
1217
|
+
tokenizerRevision: z.ZodString;
|
|
1218
|
+
chatTemplateHash: z.ZodString;
|
|
1219
|
+
}, z.core.$strict>;
|
|
1220
|
+
group: z.ZodObject<{
|
|
1221
|
+
id: z.ZodString;
|
|
1222
|
+
contentHash: z.ZodString;
|
|
1223
|
+
}, z.core.$strict>;
|
|
1224
|
+
rolloutReceipts: z.ZodArray<z.ZodObject<{
|
|
1225
|
+
id: z.ZodString;
|
|
1226
|
+
contentHash: z.ZodString;
|
|
1227
|
+
}, z.core.$strict>>;
|
|
1228
|
+
rewardEvidenceHash: z.ZodString;
|
|
1229
|
+
groupsCompleted: z.ZodLiteral<1>;
|
|
1230
|
+
optimizerUpdatesApplied: z.ZodLiteral<0>;
|
|
1231
|
+
optimizerUpdatesSkipped: z.ZodLiteral<0>;
|
|
1232
|
+
trainingStepsCreated: z.ZodLiteral<0>;
|
|
1233
|
+
checkpointsCreated: z.ZodLiteral<0>;
|
|
1234
|
+
artifactsCreated: z.ZodLiteral<0>;
|
|
1235
|
+
}, z.core.$strict>>;
|
|
1116
1236
|
issuer: z.ZodString;
|
|
1117
1237
|
issuedAt: z.ZodString;
|
|
1118
1238
|
signature: z.ZodNullable<z.ZodString>;
|
|
@@ -1142,6 +1262,10 @@ export declare const TrainingCapabilitiesSchema: z.ZodObject<{
|
|
|
1142
1262
|
policy_optimize: "policy_optimize";
|
|
1143
1263
|
}>>;
|
|
1144
1264
|
methods: z.ZodArray<z.ZodString>;
|
|
1265
|
+
executionModes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
1266
|
+
training: "training";
|
|
1267
|
+
qualification: "qualification";
|
|
1268
|
+
}>>>;
|
|
1145
1269
|
placements: z.ZodArray<z.ZodEnum<{
|
|
1146
1270
|
local: "local";
|
|
1147
1271
|
remote: "remote";
|
|
@@ -1162,6 +1286,7 @@ export declare const TrainingCapabilitiesSchema: z.ZodObject<{
|
|
|
1162
1286
|
expiresAt: z.ZodString;
|
|
1163
1287
|
}, z.core.$strict>;
|
|
1164
1288
|
export type TrainingJobSubmission = z.infer<typeof TrainingJobSubmissionSchema>;
|
|
1289
|
+
export type TrainingQualificationEvidence = z.infer<typeof TrainingQualificationEvidenceSchema>;
|
|
1165
1290
|
export type TrainingInputArtifactUpload = z.infer<typeof TrainingInputArtifactUploadSchema>;
|
|
1166
1291
|
export type TrainingInputArtifact = z.infer<typeof TrainingInputArtifactSchema>;
|
|
1167
1292
|
export type TrainingJob = z.infer<typeof TrainingJobSchema>;
|
|
@@ -1195,6 +1320,7 @@ export declare function createTrainingClient(input: {
|
|
|
1195
1320
|
};
|
|
1196
1321
|
checkedAt: string;
|
|
1197
1322
|
expiresAt: string;
|
|
1323
|
+
executionModes?: ("training" | "qualification")[] | undefined;
|
|
1198
1324
|
}>;
|
|
1199
1325
|
stageArtifact(upload: TrainingInputArtifactUpload): Promise<{
|
|
1200
1326
|
schemaVersion: "openpond.trainingInputArtifact.v2";
|
|
@@ -1232,6 +1358,7 @@ export declare function createTrainingClient(input: {
|
|
|
1232
1358
|
createdAt: string;
|
|
1233
1359
|
updatedAt: string;
|
|
1234
1360
|
completedAt: string | null;
|
|
1361
|
+
executionMode?: "qualification" | undefined;
|
|
1235
1362
|
}>;
|
|
1236
1363
|
listJobs(options?: {
|
|
1237
1364
|
modelProjectId?: string;
|
|
@@ -1263,6 +1390,7 @@ export declare function createTrainingClient(input: {
|
|
|
1263
1390
|
createdAt: string;
|
|
1264
1391
|
updatedAt: string;
|
|
1265
1392
|
completedAt: string | null;
|
|
1393
|
+
executionMode?: "qualification" | undefined;
|
|
1266
1394
|
}[];
|
|
1267
1395
|
nextCursor: string | null;
|
|
1268
1396
|
}>;
|
|
@@ -1290,6 +1418,7 @@ export declare function createTrainingClient(input: {
|
|
|
1290
1418
|
createdAt: string;
|
|
1291
1419
|
updatedAt: string;
|
|
1292
1420
|
completedAt: string | null;
|
|
1421
|
+
executionMode?: "qualification" | undefined;
|
|
1293
1422
|
}>;
|
|
1294
1423
|
cancelJob(jobId: string, expectedVersion: number): Promise<{
|
|
1295
1424
|
schemaVersion: "openpond.trainingJob.v2";
|
|
@@ -1315,6 +1444,7 @@ export declare function createTrainingClient(input: {
|
|
|
1315
1444
|
createdAt: string;
|
|
1316
1445
|
updatedAt: string;
|
|
1317
1446
|
completedAt: string | null;
|
|
1447
|
+
executionMode?: "qualification" | undefined;
|
|
1318
1448
|
}>;
|
|
1319
1449
|
stopAfterGroup(jobId: string, expectedVersion: number): Promise<{
|
|
1320
1450
|
schemaVersion: "openpond.trainingJob.v2";
|
|
@@ -1340,6 +1470,7 @@ export declare function createTrainingClient(input: {
|
|
|
1340
1470
|
createdAt: string;
|
|
1341
1471
|
updatedAt: string;
|
|
1342
1472
|
completedAt: string | null;
|
|
1473
|
+
executionMode?: "qualification" | undefined;
|
|
1343
1474
|
}>;
|
|
1344
1475
|
events(jobId: string): Promise<{
|
|
1345
1476
|
schemaVersion: "openpond.trainingJobEvent.v2";
|
|
@@ -1392,6 +1523,33 @@ export declare function createTrainingClient(input: {
|
|
|
1392
1523
|
issuer: string;
|
|
1393
1524
|
issuedAt: string;
|
|
1394
1525
|
signature: string | null;
|
|
1526
|
+
qualification?: {
|
|
1527
|
+
schemaVersion: "openpond.trainingQualificationEvidence.v1";
|
|
1528
|
+
baseModel: {
|
|
1529
|
+
schemaVersion: "openpond.baseModelPreference.v1";
|
|
1530
|
+
modelId: string;
|
|
1531
|
+
modelAssetId: string | null;
|
|
1532
|
+
source: "local" | "managed" | "builtin";
|
|
1533
|
+
revision: string;
|
|
1534
|
+
tokenizerRevision: string;
|
|
1535
|
+
chatTemplateHash: string;
|
|
1536
|
+
};
|
|
1537
|
+
group: {
|
|
1538
|
+
id: string;
|
|
1539
|
+
contentHash: string;
|
|
1540
|
+
};
|
|
1541
|
+
rolloutReceipts: {
|
|
1542
|
+
id: string;
|
|
1543
|
+
contentHash: string;
|
|
1544
|
+
}[];
|
|
1545
|
+
rewardEvidenceHash: string;
|
|
1546
|
+
groupsCompleted: 1;
|
|
1547
|
+
optimizerUpdatesApplied: 0;
|
|
1548
|
+
optimizerUpdatesSkipped: 0;
|
|
1549
|
+
trainingStepsCreated: 0;
|
|
1550
|
+
checkpointsCreated: 0;
|
|
1551
|
+
artifactsCreated: 0;
|
|
1552
|
+
} | undefined;
|
|
1395
1553
|
} | null;
|
|
1396
1554
|
}>;
|
|
1397
1555
|
evaluationTasks(jobId: string, evaluation: {
|
|
@@ -4226,6 +4384,9 @@ export declare function createTrainingClient(input: {
|
|
|
4226
4384
|
};
|
|
4227
4385
|
modelConfigurationHash: string;
|
|
4228
4386
|
packageHash: string;
|
|
4387
|
+
maxOutputTokens?: number | undefined;
|
|
4388
|
+
temperature?: number | undefined;
|
|
4389
|
+
topP?: number | undefined;
|
|
4229
4390
|
candidate?: {
|
|
4230
4391
|
artifactId: string;
|
|
4231
4392
|
contentHash: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"training.d.ts","sourceRoot":"","sources":["../../../../../src/training.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,sCAAsC,EACtC,oCAAoC,EACpC,iCAAiC,EACjC,kCAAkC,EAClC,KAAK,gCAAgC,EACrC,KAAK,8BAA8B,EACnC,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,GAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,gCAAgC,EAChC,oCAAoC,EACpC,6BAA6B,EAC7B,gCAAgC,EAChC,gCAAgC,EAChC,wCAAwC,EACxC,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,GAChC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,kCAAkC,EAClC,6BAA6B,EAC7B,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,GAC7B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,sCAAsC,EAAE,MAAM,+BAA+B,CAAC;AAEvF,OAAO,EACL,sCAAsC,EACtC,+BAA+B,EAC/B,6BAA6B,EAC7B,uCAAuC,EACvC,KAAK,gCAAgC,EACrC,KAAK,yBAAyB,EAC9B,KAAK,+BAA+B,GACrC,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,iCAAiC,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EACL,+BAA+B,EAC/B,8BAA8B,EAC9B,iCAAiC,EACjC,2BAA2B,EAC3B,KAAK,wBAAwB,GAC9B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,kCAAkC,EAClC,gCAAgC,EAChC,8BAA8B,EAC9B,wCAAwC,EACxC,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,GAChC,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"training.d.ts","sourceRoot":"","sources":["../../../../../src/training.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAisBN"}
|
package/package.json
CHANGED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/taskset-authored-contracts.ts", "../src/taskset-authored-validation.ts"],
|
|
4
|
-
"sourcesContent": ["import { z } from \"zod\";\nimport { VersionedReleaseRefSchema } from \"@openpond/harness\";\nimport { ChatModelRefSchema } from \"@openpond/harness/models\";\nimport { TasksetMetricPolicySchema } from \"@openpond/evals/metrics\";\nimport { DatasetArtifactManifestSchema } from \"./taskset-draft-dataset-artifacts.js\";\nimport {\n TasksetPurposeSchema,\n TasksetBenchmarkBindingSchema,\n TasksetPreferenceComparisonBindingSchema,\n TasksetSourceRefSchema,\n TaskPolicyBoundarySchema,\n TasksetEnvironmentContractSchema,\n TasksetCapabilityManifestSchema,\n TaskDataRecordSchema,\n GraderSpecSchema,\n GraderFixtureSchema,\n LearningSignalInventorySchema,\n type TasksetSourceRef, type TrainingSourceRef,\n} from \"./taskset-draft-core.js\";\n\nconst IdSchema = z.string().trim().min(1).max(240);\nconst TimestampSchema = z.string().trim().min(1);\nconst HashSchema = z.string().trim().min(8).max(256);\nconst MetadataSchema = z.record(z.string(), z.unknown()).default({});\nconst NullableIdSchema = IdSchema.nullable();\n\nexport const TASKSET_WORK_TOOL_NAMES = [\n \"work_capabilities\",\n \"work_environment\",\n \"work_list_files\",\n \"work_read_file\",\n \"work_read_document\",\n \"work_write_file\",\n \"work_write_docx\",\n \"work_edit_file\",\n \"work_delete_file\",\n \"work_exec\",\n \"work_save_output\",\n \"work_stop\",\n] as const;\n\nexport const TasksetStatusSchema = z.enum([\n \"draft\",\n \"awaiting_disclosure_approval\",\n \"awaiting_materialization_approval\",\n \"materializing\",\n \"validating\",\n \"needs_review\",\n \"baselining\",\n \"ready\",\n \"blocked\",\n \"failed\",\n \"archived\",\n]);\n\nexport const DatasetBuildIntentSchema = z.enum([\n \"demonstrations\",\n \"preferences\",\n \"verifiable_reward\",\n \"rubric\",\n \"discovery\",\n]);\n\nconst DatasetEvidenceTextSchema = z.string().trim().max(100_000);\n\nexport const DatasetBuildSpecificationSchema = z.discriminatedUnion(\"kind\", [\n z.object({\n kind: z.literal(\"demonstrations\"),\n behavior: DatasetEvidenceTextSchema,\n examples: z.array(z.object({\n id: IdSchema,\n prompt: DatasetEvidenceTextSchema,\n response: DatasetEvidenceTextSchema,\n })).max(1_000).default([]),\n }),\n z.object({\n kind: z.literal(\"preferences\"),\n preference: DatasetEvidenceTextSchema,\n pairs: z.array(z.object({\n id: IdSchema,\n prompt: DatasetEvidenceTextSchema,\n chosen: DatasetEvidenceTextSchema,\n rejected: DatasetEvidenceTextSchema,\n rationale: DatasetEvidenceTextSchema,\n })).max(1_000).default([]),\n }),\n z.object({\n kind: z.literal(\"verifiable_reward\"),\n task: DatasetEvidenceTextSchema,\n rules: z.array(z.object({\n id: IdSchema,\n points: z.number().finite(),\n condition: DatasetEvidenceTextSchema,\n })).max(1_000).default([]),\n otherwisePoints: z.number().finite().default(0),\n }),\n z.object({\n kind: z.literal(\"rubric\"),\n task: DatasetEvidenceTextSchema,\n criteria: z.array(z.object({\n id: IdSchema,\n label: z.string().trim().max(500),\n description: DatasetEvidenceTextSchema,\n })).max(1_000).default([]),\n positiveExample: DatasetEvidenceTextSchema,\n negativeExample: DatasetEvidenceTextSchema,\n boundaryExample: DatasetEvidenceTextSchema,\n }),\n]);\n\nexport const GeneratedTaskFileSchema = z.object({\n path: z.string().trim().min(1).max(1_000),\n role: z.enum([\"environment\", \"verifier\", \"fixture\"]),\n content: z.string().max(250_000),\n});\n\nexport const TrainingPathRecommendationSchema = z.object({\n primaryMethod: z.enum([\"sft\", \"dpo\", \"grpo\", \"ppo\", \"sdft\", \"opsd\", \"sdpo\"]),\n bootstrap: z.object({\n method: z.literal(\"sft\"),\n purpose: z.literal(\"trajectory_bootstrap\"),\n demonstrationRefs: z.array(IdSchema).min(1).max(100_000),\n limitations: z.array(z.string().trim().min(1).max(5_000)).min(1).max(100),\n }).nullable(),\n});\n\nexport const TrainingMethodReadinessReasonCodeSchema = z.enum([\n \"taskset_not_ready\",\n \"demonstrations_missing\",\n \"preference_pairs_missing\",\n \"preference_pairs_invalid\",\n \"executable_reward_missing\",\n \"reward_not_calibrated\",\n \"reward_model_missing\",\n \"value_model_required\",\n \"frozen_eval_missing\",\n]);\n\nexport const TrainingMethodReadinessSchema = z.object({\n method: z.enum([\"sft\", \"dpo\", \"grpo\", \"ppo\"]),\n status: z.enum([\"recommended\", \"compatible\", \"needs_dataset_work\"]),\n reasonCodes: z.array(TrainingMethodReadinessReasonCodeSchema).default([]),\n reasons: z.array(z.string().trim().min(1).max(5_000)).default([]),\n});\n\nexport const TasksetReadinessFindingSchema = z.object({\n code: IdSchema,\n message: z.string().trim().min(1).max(5_000),\n path: z.string().trim().max(2_000).nullable(),\n});\n\nexport const TasksetReadinessReportSchema = z.object({\n schemaVersion: z.literal(\"openpond.tasksetReadiness.v1\"),\n tasksetId: IdSchema,\n tasksetHash: HashSchema,\n ready: z.boolean(),\n recommendedMethod: z.enum([\"none\", \"retrieval\", \"sft\", \"dpo\", \"grpo\", \"ppo\", \"sdft\", \"opd\", \"opsd\", \"sdpo\"]),\n trainingPath: TrainingPathRecommendationSchema.nullable().default(null),\n methodReadiness: z.array(TrainingMethodReadinessSchema).default([]),\n compatibleDestinationClasses: z.array(\n z.enum([\"export\", \"custom\", \"hosted_managed\"]),\n ),\n blockers: z.array(TasksetReadinessFindingSchema).default([]),\n advisories: z.array(TasksetReadinessFindingSchema).default([]),\n warnings: z.array(z.string().trim().min(1).max(5_000)).default([]),\n generatedAt: TimestampSchema,\n});\n\nexport const AuthoringRepairSchema = z.object({ attempt: z.number().int().positive(), summary: z.string().trim().min(1).max(5_000), createdAt: TimestampSchema });\n\nexport const AuthoringProvenanceSchema = z.object({\n schemaVersion: z.literal(\"openpond.taskAuthoringProvenance.v1\"),\n model: ChatModelRefSchema.nullable(),\n modelConfig: MetadataSchema,\n skillHash: HashSchema,\n promptTemplateVersion: z.string().trim().min(1).max(200),\n buildIntent: DatasetBuildIntentSchema.default(\"demonstrations\"),\n buildSpecification: DatasetBuildSpecificationSchema.nullable().default(null),\n evidenceHashes: z.array(HashSchema).max(100_000),\n tasksetSdkVersion: z.string().trim().min(1).max(100),\n sourceCommit: z.string().trim().min(1).max(256).nullable(),\n repairHistory: z.array(AuthoringRepairSchema).max(1_000),\n createdAt: TimestampSchema,\n});\n\nexport const TasksetSchema = z.object({\n schemaVersion: z.literal(\"openpond.taskset.v1\"),\n id: IdSchema,\n revision: z.number().int().positive().default(1),\n profileId: IdSchema,\n profileRelease: VersionedReleaseRefSchema.nullable().optional(),\n createImproveRunId: NullableIdSchema.default(null),\n name: z.string().trim().min(1).max(500),\n // Portable tasks may carry all instructions in their individual inputs.\n // Preserve an absent package prompt; draft publication validates its objective.\n objective: z.string().trim().max(20_000),\n purpose: TasksetPurposeSchema.default(\"general\"),\n benchmark: TasksetBenchmarkBindingSchema.nullable().default(null),\n preferenceComparison: TasksetPreferenceComparisonBindingSchema.nullable().default(null),\n status: TasksetStatusSchema,\n sourceRefs: z.array(TasksetSourceRefSchema).min(1).max(100_000),\n datasetArtifact: DatasetArtifactManifestSchema.nullable().optional(),\n policy: TaskPolicyBoundarySchema,\n environment: TasksetEnvironmentContractSchema,\n capabilities: TasksetCapabilityManifestSchema,\n metrics: TasksetMetricPolicySchema.optional(),\n tasks: z.array(TaskDataRecordSchema).max(1_000_000),\n graders: z.array(GraderSpecSchema).max(1_000),\n // Imported releases are inspectable before local calibration. Admission\n // requires real fixtures separately in validateTaskset.\n graderFixtures: z.array(GraderFixtureSchema).max(100_000),\n learningSignals: LearningSignalInventorySchema,\n authoringProvenance: AuthoringProvenanceSchema,\n readiness: TasksetReadinessReportSchema.nullable(),\n contentHash: HashSchema,\n createdAt: TimestampSchema,\n updatedAt: TimestampSchema,\n metadata: MetadataSchema,\n}).superRefine((taskset, context) => {\n if (taskset.purpose === \"benchmark\" && !taskset.benchmark) {\n context.addIssue({\n code: \"custom\",\n message: \"Benchmark Tasksets require an immutable benchmark binding.\",\n path: [\"benchmark\"],\n });\n }\n if (taskset.purpose !== \"benchmark\" && taskset.benchmark) {\n context.addIssue({\n code: \"custom\",\n message: \"Only benchmark Tasksets may carry a benchmark binding.\",\n path: [\"benchmark\"],\n });\n }\n if (taskset.datasetArtifact && taskset.tasks.length > 0) {\n context.addIssue({\n code: \"custom\",\n message:\n \"Artifact-backed Tasksets may not duplicate canonical rows inline.\",\n path: [\"tasks\"],\n });\n }\n if (!taskset.datasetArtifact && taskset.tasks.length === 0) {\n context.addIssue({\n code: \"custom\",\n message: \"A Taskset requires inline tasks or a Dataset artifact manifest.\",\n path: [\"tasks\"],\n });\n }\n});\n\nexport type DatasetBuildIntent = z.infer<typeof DatasetBuildIntentSchema>;\nexport type DatasetBuildSpecification = z.infer<typeof DatasetBuildSpecificationSchema>;\nexport type GeneratedTaskFile = z.infer<typeof GeneratedTaskFileSchema>;\nexport type TrainingPathRecommendation = z.infer<typeof TrainingPathRecommendationSchema>;\nexport type TrainingMethodReadinessReasonCode = z.infer<typeof TrainingMethodReadinessReasonCodeSchema>;\nexport type TrainingMethodReadiness = z.infer<typeof TrainingMethodReadinessSchema>;\nexport type TasksetReadinessReport = z.infer<typeof TasksetReadinessReportSchema>;\nexport type AuthoringProvenance = z.infer<typeof AuthoringProvenanceSchema>;\nexport type AuthoringRepair = z.infer<typeof AuthoringRepairSchema>;\nexport type Taskset = z.infer<typeof TasksetSchema>;\n\nexport function isTrainingSourceRef(\n source: TasksetSourceRef,\n): source is TrainingSourceRef {\n return source.schemaVersion === \"openpond.trainingSource.v1\";\n}\n", "import type { TasksetCapabilityManifest } from \"./taskset-draft-core.js\";\nimport {\n isTrainingSourceRef,\n TASKSET_WORK_TOOL_NAMES,\n TasksetSchema,\n type Taskset,\n} from \"./taskset-authored-contracts.js\";\nimport { contentHash } from \"@openpond/harness\";\n\nexport type TasksetValidationIssue = {\n code: string;\n severity: \"warning\" | \"error\";\n message: string;\n path: string | null;\n};\n\nexport type TasksetValidationReport = {\n valid: boolean;\n taskset: Taskset | null;\n computedHash: string | null;\n issues: TasksetValidationIssue[];\n};\n\nexport function validateTaskset(input: unknown, options: { allowUnscoredOnlineRewardBatch?: boolean; purpose?: \"publication\" | \"execution\" } = {}): TasksetValidationReport {\n const parsed = TasksetSchema.safeParse(input);\n if (!parsed.success) {\n return {\n valid: false,\n taskset: null,\n computedHash: null,\n issues: parsed.error.issues.map((issue) => ({\n code: \"schema_invalid\",\n severity: \"error\",\n message: issue.message,\n path: issue.path.join(\".\"),\n })),\n };\n }\n\n const taskset = parsed.data;\n const issues: TasksetValidationIssue[] = [];\n validateSourceConsent(taskset, issues);\n validateDatasetArtifact(taskset, issues);\n validateSplitIsolation(taskset, issues);\n validatePolicyBoundary(taskset, issues);\n validateGraders(taskset, issues);\n if (options.purpose !== \"publication\") {\n if (!taskset.graders.length) issues.push({ code: \"graders_required\", severity: \"error\", message: \"Scored execution requires at least one grader.\", path: \"graders\" });\n validateGraderFixtures(taskset, issues, options);\n }\n validateLearningSignals(taskset, issues);\n validateCapabilities(taskset.capabilities, issues, taskset);\n validateWorkExecution(taskset, issues);\n\n const computedHash = tasksetContentHash(taskset);\n if (taskset.contentHash !== computedHash) {\n issues.push({\n code: \"content_hash_mismatch\",\n severity: \"error\",\n message: `Taskset contentHash is ${taskset.contentHash}, expected ${computedHash}.`,\n path: \"contentHash\",\n });\n }\n\n return {\n valid: !issues.some((issue) => issue.severity === \"error\"),\n taskset,\n computedHash,\n issues,\n };\n}\n\nfunction validateGraderFixtures(taskset: Taskset, issues: TasksetValidationIssue[], options: { allowUnscoredOnlineRewardBatch?: boolean }): void {\n // The hosted learning boundary checks the sealed batch and executable Reward\n // before opting into fresh-rollout GRPO. Human-only review has no automated\n // grader to calibrate; every mixed/automated taskset retains fixture gates.\n const humanReviewOnly = taskset.graders.length > 0 && taskset.graders.every(grader => grader.kind === \"human\");\n if (!humanReviewOnly && !taskset.graderFixtures.length && !(options.allowUnscoredOnlineRewardBatch && taskset.metadata.trainingMethod === \"grpo\" && taskset.metadata.learning)) {\n issues.push({ code: \"grader_fixtures_required\", severity: \"error\", message: \"Taskset admission requires authored grader fixtures.\", path: \"graderFixtures\" });\n }\n const taskIds = new Set(taskset.tasks.map((task) => task.id));\n const required = new Set([\"positive\", \"negative\", \"boundary\", \"adversarial\", \"prompt_injection\", \"infrastructure_failure\"]);\n for (const fixture of taskset.graderFixtures) {\n if (!taskset.datasetArtifact && !taskIds.has(fixture.taskId)) issues.push({ code: \"grader_fixture_task_missing\", severity: \"warning\", message: `Fixture ${fixture.id} references a task outside this Taskset revision (${fixture.taskId}).`, path: `graderFixtures.${fixture.id}.taskId` });\n required.delete(fixture.label);\n if (fixture.label === \"infrastructure_failure\" && !fixture.infrastructureError) issues.push({ code: \"infrastructure_fixture_error_missing\", severity: \"error\", message: `Infrastructure fixture ${fixture.id} must declare an infrastructure error.`, path: `graderFixtures.${fixture.id}.infrastructureError` });\n }\n for (const label of humanReviewOnly ? [] : required) issues.push({ code: \"grader_fixture_missing\", severity: \"warning\", message: `Taskset does not include the optional ${label} grader calibration fixture.`, path: \"graderFixtures\" });\n}\n\nfunction validateDatasetArtifact(\n taskset: Taskset,\n issues: TasksetValidationIssue[],\n): void {\n const artifact = taskset.datasetArtifact;\n if (!artifact) return;\n if (\n artifact.tasksetId !== taskset.id\n || artifact.tasksetRevision !== taskset.revision\n ) {\n issues.push({\n code: \"dataset_artifact_taskset_mismatch\",\n severity: \"error\",\n message: \"Dataset artifact identity does not match its Taskset revision.\",\n path: \"datasetArtifact\",\n });\n }\n const splitTotal = Object.values(artifact.splitCounts)\n .reduce((total, count) => total + count, 0);\n const shardTotal = artifact.shards\n .reduce((total, shard) => total + shard.rowCount, 0);\n if (splitTotal !== artifact.rowCount || shardTotal !== artifact.rowCount) {\n issues.push({\n code: \"dataset_artifact_row_count_mismatch\",\n severity: \"error\",\n message: \"Dataset artifact row, split, and shard counts do not agree.\",\n path: \"datasetArtifact.rowCount\",\n });\n }\n const shardSplitCounts = new Map<string, number>();\n for (const shard of artifact.shards) {\n shardSplitCounts.set(\n shard.split,\n (shardSplitCounts.get(shard.split) ?? 0) + shard.rowCount,\n );\n }\n for (const [split, count] of Object.entries(artifact.splitCounts)) {\n if ((shardSplitCounts.get(split) ?? 0) !== count) {\n issues.push({\n code: \"dataset_artifact_split_count_mismatch\",\n severity: \"error\",\n message: `Dataset artifact ${split} shard counts do not match its manifest.`,\n path: `datasetArtifact.splitCounts.${split}`,\n });\n }\n }\n const { contentHash: _contentHash, ...hashable } = artifact;\n if (contentHash(hashable) !== artifact.contentHash) {\n issues.push({\n code: \"dataset_artifact_hash_mismatch\",\n severity: \"error\",\n message: \"Dataset artifact manifest content hash is invalid.\",\n path: \"datasetArtifact.contentHash\",\n });\n }\n}\n\nexport function computeTasksetHash(taskset: Omit<Taskset, \"contentHash\"> | Taskset): string {\n return tasksetContentHash(taskset);\n}\n\nfunction tasksetContentHash(taskset: Omit<Taskset, \"contentHash\"> | Taskset): string {\n const { contentHash: _contentHash, status: _status, readiness: _readiness, updatedAt: _updatedAt, ...source } = taskset as Taskset;\n return contentHash(source);\n}\n\nexport function validatePortability(capabilities: TasksetCapabilityManifest): TasksetValidationIssue[] {\n const issues: TasksetValidationIssue[] = [];\n validateCapabilities(capabilities, issues, null);\n return issues;\n}\n\nfunction validateSourceConsent(taskset: Taskset, issues: TasksetValidationIssue[]): void {\n for (const [index, source] of taskset.sourceRefs.entries()) {\n if (isTrainingSourceRef(source) && source.consent.status !== \"granted\") {\n issues.push({ code: \"source_consent_missing\", severity: \"error\", message: `Source ${source.id} is not consented.`, path: `sourceRefs.${index}.consent.status` });\n }\n if (source.secretScanStatus !== \"passed\") {\n issues.push({ code: \"source_secret_scan\", severity: \"error\", message: `Source ${source.id} did not pass secret scanning.`, path: `sourceRefs.${index}.secretScanStatus` });\n }\n if (source.piiScanStatus !== \"passed\") {\n issues.push({ code: \"source_pii_scan\", severity: \"error\", message: `Source ${source.id} has unresolved PII policy.`, path: `sourceRefs.${index}.piiScanStatus` });\n }\n if (source.licensingStatus !== \"approved\") {\n issues.push({ code: \"source_license\", severity: \"error\", message: `Source ${source.id} has unresolved licensing policy.`, path: `sourceRefs.${index}.licensingStatus` });\n }\n }\n}\n\nfunction validateSplitIsolation(taskset: Taskset, issues: TasksetValidationIssue[]): void {\n const clusterSplits = new Map<string, Set<string>>();\n for (const task of taskset.tasks) {\n const splits = clusterSplits.get(task.clusterKey) ?? new Set<string>();\n splits.add(task.split);\n clusterSplits.set(task.clusterKey, splits);\n }\n for (const [cluster, splits] of clusterSplits) {\n if (splits.size > 1) {\n issues.push({ code: \"split_cluster_contamination\", severity: \"error\", message: `Source cluster ${cluster} appears in multiple splits: ${[...splits].join(\", \")}.`, path: \"tasks\" });\n }\n }\n const frozenCount = taskset.datasetArtifact\n ? taskset.datasetArtifact.splitCounts.frozen_eval ?? 0\n : taskset.tasks.filter((task) => task.split === \"frozen_eval\").length;\n if (frozenCount === 0) issues.push({ code: \"frozen_eval_missing\", severity: \"warning\", message: \"Add an independent test example before training.\", path: \"tasks\" });\n}\n\nfunction validateWorkExecution(\n taskset: Taskset,\n issues: TasksetValidationIssue[],\n): void {\n if (taskset.environment.kind !== \"work\") return;\n if (taskset.environment.entrypoint !== \"openpond-work-v1\") {\n issues.push({\n code: \"work_entrypoint_invalid\",\n severity: \"error\",\n message: \"Work Tasksets must use the openpond-work-v1 entrypoint.\",\n path: \"environment.entrypoint\",\n });\n }\n if (!taskset.environment.lifecycle.includes(\"reset\") || !taskset.environment.lifecycle.includes(\"cleanup\")) {\n issues.push({\n code: \"work_reset_lifecycle_missing\",\n severity: \"error\",\n message: \"Work attempts require reset and cleanup; filesystem state belongs to one attempt.\",\n path: \"environment.lifecycle\",\n });\n }\n const allowedTools = new Set<string>(TASKSET_WORK_TOOL_NAMES);\n const unknownTools = taskset.environment.toolNames.filter(\n (name) => !allowedTools.has(name),\n );\n if (unknownTools.length) {\n issues.push({\n code: \"work_tool_unknown\",\n severity: \"error\",\n message: `Work Taskset declares unknown tools: ${unknownTools.join(\", \")}.`,\n path: \"environment.toolNames\",\n });\n }\n if (!taskset.environment.toolNames.includes(\"work_save_output\")) {\n issues.push({\n code: \"work_output_tool_missing\",\n severity: \"error\",\n message: \"Work Tasksets must declare work_save_output.\",\n path: \"environment.toolNames\",\n });\n }\n for (const lifecycle of [\"create\", \"reset\", \"step\", \"grade\", \"cleanup\"] as const) {\n if (!taskset.environment.lifecycle.includes(lifecycle)) {\n issues.push({\n code: \"work_lifecycle_incomplete\",\n severity: \"error\",\n message: `Work Tasksets require the ${lifecycle} lifecycle stage.`,\n path: \"environment.lifecycle\",\n });\n }\n }\n\n const sourceById = new Map(\n taskset.sourceRefs.map((source) => [source.id, source]),\n );\n for (const [taskIndex, task] of taskset.tasks.entries()) {\n const assetIds = new Set<string>();\n const fileNames = new Set<string>();\n for (const [assetIndex, asset] of (task.assets ?? []).entries()) {\n const path = `tasks.${taskIndex}.assets.${assetIndex}`;\n if (assetIds.has(asset.id)) {\n issues.push({\n code: \"work_asset_duplicate_id\",\n severity: \"error\",\n message: `Task ${task.id} repeats asset id ${asset.id}.`,\n path: `${path}.id`,\n });\n }\n const stagedPath = asset.stagingPath ?? asset.fileName;\n if (fileNames.has(stagedPath)) {\n issues.push({\n code: \"work_asset_duplicate_name\",\n severity: \"error\",\n message: `Task ${task.id} repeats staged path ${stagedPath}.`,\n path: `${path}.fileName`,\n });\n }\n assetIds.add(asset.id);\n fileNames.add(stagedPath);\n if (!task.sourceRefs.includes(asset.sourceRefId)) {\n issues.push({\n code: \"work_asset_task_source_missing\",\n severity: \"error\",\n message: `Asset ${asset.id} references source ${asset.sourceRefId} outside task ${task.id}.`,\n path: `${path}.sourceRefId`,\n });\n }\n const source = sourceById.get(asset.sourceRefId);\n if (!source) {\n issues.push({\n code: \"work_asset_source_missing\",\n severity: \"error\",\n message: `Asset ${asset.id} references missing source ${asset.sourceRefId}.`,\n path: `${path}.sourceRefId`,\n });\n } else if (\n \"sourceFileHashes\" in source\n && !source.sourceFileHashes?.includes(asset.sha256)\n ) {\n issues.push({\n code: \"work_asset_hash_unregistered\",\n severity: \"error\",\n message: `Asset ${asset.id} hash is not registered by source ${asset.sourceRefId}.`,\n path: `${path}.sha256`,\n });\n }\n if (\n source\n && \"kind\" in source\n && source.kind === \"uploaded_file\"\n && !source.originalFileNames.includes(asset.fileName)\n ) {\n issues.push({\n code: \"work_asset_name_unregistered\",\n severity: \"error\",\n message: `Asset ${asset.id} file name is not registered by source ${asset.sourceRefId}.`,\n path: `${path}.fileName`,\n });\n }\n if (\n source\n && \"kind\" in source\n && source.kind === \"uploaded_file\"\n && !source.mediaTypes.includes(asset.mediaType)\n ) {\n issues.push({\n code: \"work_asset_media_type_unregistered\",\n severity: \"error\",\n message: `Asset ${asset.id} media type is not registered by source ${asset.sourceRefId}.`,\n path: `${path}.mediaType`,\n });\n }\n if (asset.split !== task.split) {\n issues.push({\n code: \"work_asset_split_mismatch\",\n severity: \"error\",\n message: `Asset ${asset.id} is assigned to ${asset.split}, not task split ${task.split}.`,\n path: `${path}.split`,\n });\n }\n }\n\n const outputPaths = new Set<string>();\n for (const [outputIndex, output] of (task.requiredOutputs ?? []).entries()) {\n const normalized = output.path.replaceAll(\"\\\\\", \"/\");\n const path = `tasks.${taskIndex}.requiredOutputs.${outputIndex}.path`;\n if (outputPaths.has(normalized)) {\n issues.push({\n code: \"work_output_duplicate_path\",\n severity: \"error\",\n message: `Task ${task.id} repeats required output path ${normalized}.`,\n path,\n });\n }\n outputPaths.add(normalized);\n }\n if ((task.requiredOutputs ?? []).length === 0) {\n issues.push({\n code: \"work_output_missing\",\n severity: \"error\",\n message: `Work task ${task.id} must declare at least one required output.`,\n path: `tasks.${taskIndex}.requiredOutputs`,\n });\n }\n }\n}\n\nfunction validatePolicyBoundary(taskset: Taskset, issues: TasksetValidationIssue[]): void {\n const visible = new Set(taskset.policy.policyVisibleFields);\n for (const field of taskset.policy.privilegedFields) {\n if (visible.has(field)) issues.push({ code: \"privileged_field_visible\", severity: \"error\", message: `Field ${field} is both policy-visible and privileged.`, path: \"policy\" });\n }\n for (const task of taskset.tasks) {\n if (task.privilegedContextRef && Object.keys(task.policyVisibleContext).includes(task.privilegedContextRef)) {\n issues.push({ code: \"privileged_context_leak\", severity: \"error\", message: `Task ${task.id} exposes its privileged context reference.`, path: `tasks.${task.id}.policyVisibleContext` });\n }\n }\n}\n\nfunction validateGraders(taskset: Taskset, issues: TasksetValidationIssue[]): void {\n const taskIds = new Set(taskset.tasks.map(task => task.id));\n const ids = new Set<string>();\n for (const grader of taskset.graders) {\n if (grader.taskIds?.some(id => !taskIds.has(id))) issues.push({ code: \"grader_task_missing\", severity: \"error\", message: `Grader ${grader.id} refers to a task outside this Dataset.`, path: \"graders\" });\n if (ids.has(grader.id)) issues.push({ code: \"grader_duplicate\", severity: \"error\", message: `Duplicate grader id ${grader.id}.`, path: \"graders\" });\n ids.add(grader.id);\n if (grader.kind === \"model_judge\" && grader.rewardEligible && grader.calibrationStatus !== \"passed\") {\n issues.push({ code: \"judge_calibration_pending\", severity: \"warning\", message: `Model judge ${grader.id} is selected for reward without a passing advisory calibration report.`, path: `graders.${grader.id}` });\n }\n if (grader.kind === \"model_judge\" && grader.calibrationStatus === \"passed\" && typeof grader.metadata.calibrationEvidenceHash !== \"string\") {\n issues.push({ code: \"judge_calibration_evidence_missing\", severity: \"warning\", message: `Model judge ${grader.id} declares calibration without an OpenPond fixture evidence hash.`, path: `graders.${grader.id}.metadata.calibrationEvidenceHash` });\n }\n if (grader.kind === \"human\" && grader.rewardEligible) {\n issues.push({ code: \"human_online_reward\", severity: \"error\", message: `Human grader ${grader.id} cannot be an online optimizer reward.`, path: `graders.${grader.id}` });\n }\n }\n}\n\nfunction validateLearningSignals(taskset: Taskset, issues: TasksetValidationIssue[]): void {\n const taskIds = new Set(taskset.tasks.map((task) => task.id));\n const sourceIds = new Set(taskset.sourceRefs.map((source) => source.id));\n for (const signal of [\n ...taskset.learningSignals.demonstrations,\n ...taskset.learningSignals.preferences,\n ...taskset.learningSignals.corrections,\n ...taskset.learningSignals.feedback,\n ...taskset.learningSignals.rewards,\n ...taskset.learningSignals.labels,\n ]) {\n if (signal.taskId && !taskset.datasetArtifact && !taskIds.has(signal.taskId)) {\n issues.push({ code: \"learning_signal_task_missing\", severity: \"error\", message: `Signal ${signal.id} references missing task ${signal.taskId}.`, path: `learningSignals.${signal.kind}.${signal.id}.taskId` });\n }\n if (signal.sourceRefs.some((sourceId) => !sourceIds.has(sourceId))) {\n issues.push({ code: \"learning_signal_source_missing\", severity: \"error\", message: `Signal ${signal.id} references a source outside the Dataset.`, path: `learningSignals.${signal.kind}.${signal.id}.sourceRefs` });\n }\n }\n for (const preference of taskset.learningSignals.preferences) {\n if (preference.chosen.trim() === preference.rejected.trim()) {\n issues.push({ code: \"preference_pair_identical\", severity: \"error\", message: `Preference ${preference.id} has identical chosen and rejected responses.`, path: `learningSignals.preferences.${preference.id}` });\n }\n }\n for (const reward of taskset.learningSignals.rewards) {\n if (!reward.executable) {\n issues.push({ code: \"reward_not_executable\", severity: \"warning\", message: `Reward ${reward.id} is a reviewed specification but has no executable verifier yet.`, path: `learningSignals.rewards.${reward.id}.executable` });\n }\n }\n}\n\nfunction validateCapabilities(\n capabilities: TasksetCapabilityManifest,\n issues: TasksetValidationIssue[],\n taskset: Taskset | null,\n): void {\n if (!capabilities.exportable && capabilities.portabilityBlockers.length === 0) {\n issues.push({ code: \"portability_reason_missing\", severity: \"error\", message: \"Non-exportable Tasksets must declare a portability blocker.\", path: \"capabilities.portabilityBlockers\" });\n }\n if (capabilities.compatibleMethods.includes(\"grpo\") && !capabilities.rewardKinds.some((kind) => kind === \"exact\" || kind === \"deterministic\" || kind === \"model_judge\")) {\n issues.push({ code: \"grpo_reward_missing\", severity: \"error\", message: \"GRPO compatibility requires a scalar reward kind.\", path: \"capabilities.rewardKinds\" });\n }\n if (taskset?.capabilities.compatibleMethods.includes(\"sft\") && taskset.learningSignals.demonstrations.length === 0) {\n issues.push({ code: \"sft_demonstrations_missing\", severity: \"error\", message: \"SFT compatibility requires approved demonstrations.\", path: \"learningSignals.demonstrations\" });\n }\n if (taskset?.capabilities.compatibleMethods.includes(\"dpo\") && taskset.learningSignals.preferences.length === 0) {\n issues.push({ code: \"dpo_preferences_missing\", severity: \"error\", message: \"DPO compatibility requires chosen and rejected response pairs.\", path: \"learningSignals.preferences\" });\n }\n if (\n taskset\n && (taskset.capabilities.compatibleMethods.includes(\"grpo\") || taskset.capabilities.compatibleMethods.includes(\"ppo\"))\n && !taskset.learningSignals.rewards.some((reward) => reward.executable)\n && !taskset.graders.some(grader => grader.rewardEligible && grader.weight > 0 && grader.kind !== \"human\")\n ) {\n issues.push({ code: \"online_reward_not_executable\", severity: \"error\", message: \"GRPO/PPO compatibility requires an executable scalar reward.\", path: \"learningSignals.rewards\" });\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/harness-experiment-policy.ts", "../src/model-taskset-runs-contracts.ts"],
|
|
4
|
-
"sourcesContent": ["import { z } from \"zod\";\nimport { ProfileEvaluationRunSourceSchema, ProfileExternalDatasetBindingSchema } from \"@openpond/evals\";\n\nconst Id = z.string().trim().min(1).max(240);\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\n\n/** The host admits this released component through its native Harness engine.\n * Chat prompt/settings are owned by the released source, not replaced here. */\nexport const HarnessExperimentPolicySchema = z.object({\n kind: z.literal(\"hosted_harness\"),\n modelId: Id,\n candidate:z.object({artifactId:Id,contentHash:Hash,preparationId:Id,dispatchId:Id,baseProfileId:Id,workerImageDigest:z.string().regex(/^sha256:[a-f0-9]{64}$/)}).strict().optional(),\n sourceCandidate:ProfileEvaluationRunSourceSchema.shape.sourceCandidate,\n reasoningEffort: z.enum([\"off\", \"low\", \"medium\", \"high\", \"xhigh\", \"max\"]).optional(),\n profileRepositoryId: Id,\n source: ProfileEvaluationRunSourceSchema,\n modelConfigurationHash: Hash,\n packageHash: Hash,\n externalDatasetBinding: ProfileExternalDatasetBindingSchema.optional(),\n}).strict().superRefine((value,context)=>{if(JSON.stringify(value.externalDatasetBinding??null)!==JSON.stringify(value.source.externalDatasetBinding??null))context.addIssue({code:\"custom\",message:\"The policy and source must bind the same external Dataset recipe.\"});if(JSON.stringify(value.sourceCandidate??null)!==JSON.stringify(value.source.sourceCandidate??null))context.addIssue({code:\"custom\",message:\"The policy and prepared source must bind the same actual source candidate.\"});});\nexport type HarnessExperimentPolicy = z.infer<typeof HarnessExperimentPolicySchema>;\n", "import { z } from \"zod\";\nimport { EvaluationProjectContextSchema } from \"./evaluation-project-context.js\";\nimport { assertContentHash, contentHash } from \"@openpond/harness\";\nimport { TasksetRunManifestSchema, TasksetRunMemberSchema, TasksetMetricResultSchema, assertTasksetMetricResult, orderTasksetRunReceipts } from \"@openpond/evals/metrics\";\nimport { AttemptReceiptSchema } from \"@openpond/evals/runs\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { ModelStarterAttemptPolicySchema, ModelStarterAttemptSummarySchema } from \"./model-starter-attempts.js\";\nimport { canonicalJson, canonicalSha256 } from \"./protocol.js\";\nimport { HarnessExperimentPolicySchema } from \"./harness-experiment-policy.js\";\nexport { HarnessExperimentPolicySchema, type HarnessExperimentPolicy } from \"./harness-experiment-policy.js\";\n\nconst IdSchema = z.string().trim().min(1).max(200);\nconst HashSchema = z.string().regex(/^[a-f0-9]{64}$/);\nexport const ModelTasksetRunPolicySchema = z.discriminatedUnion(\"kind\", [\n ModelStarterAttemptPolicySchema.options[0],\n z.object({ kind: z.literal(\"fixture\") }).strict(),\n HarnessExperimentPolicySchema,\n]);\nexport const ModelTasksetRunRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelTasksetRunRequest.v1\"),\n operationId: IdSchema, teamId: IdSchema, modelProjectId: IdSchema.nullable(),\n name: z.string().trim().min(1).max(200).optional(),\n project: EvaluationProjectContextSchema.optional(),\n taskset: ModelProjectVersionedRefSchema, policy: ModelTasksetRunPolicySchema,\n population: z.array(TasksetRunMemberSchema).min(1).max(10_000),\n}).strict().superRefine((value, context) => {\n if (new Set(value.population.map(member => member.receiptId)).size !== value.population.length) context.addIssue({ code: \"custom\", path: [\"population\"], message: \"Run receipt identities must be unique.\" });\n if (value.population.some(member => (member.fixtureId !== null) !== (value.policy.kind === \"fixture\"))) context.addIssue({ code: \"custom\", path: [\"population\"], message: \"Only fixture runs require a fixture identity for every member.\" });\n if (value.population.some(member => !/^(0|[1-9][0-9]*)$/.test(member.seed) || Number(member.seed) > 2_147_483_647)) context.addIssue({ code: \"custom\", path: [\"population\"], message: \"Hosted environment seeds must be integers from 0 to 2147483647.\" });\n if (value.policy.kind === \"hosted_harness\" && value.modelProjectId !== null)\n context.addIssue({ code: \"custom\", path: [\"modelProjectId\"], message: \"A Harness target retains its released Profile binding separately from Model artifacts.\" });\n if (value.policy.kind === \"hosted_harness\"\n && new Set(value.population.map(member => canonicalJson([member.taskId, member.seed]))).size !== value.population.length)\n context.addIssue({ code: \"custom\", path: [\"population\"], message: \"Harness case identities must be unique for each task and seed.\" });\n});\nexport type ModelTasksetRunRequest = z.infer<typeof ModelTasksetRunRequestSchema>;\nexport const ModelTasksetRunSummarySchema = z.object({\n schemaVersion: z.literal(\"openpond.modelTasksetRunSummary.v1\"),\n id: IdSchema, revision: z.number().int().positive(), teamId: IdSchema, modelProjectId: IdSchema.nullable(),\n name: z.string().trim().min(1).max(200).optional(),\n project: EvaluationProjectContextSchema.optional(),\n operationId: IdSchema, taskset: ModelProjectVersionedRefSchema, policyKind: z.enum([\"hosted_chat\", \"fixture\", \"hosted_harness\"]),\n manifestHash: HashSchema,\n status: z.enum([\"queued\", \"running\", \"cancelling\", \"completed\", \"failed\", \"cancelled\"]),\n totalCount: z.number().int().min(1).max(10_000),\n counts: z.object({ pending: z.number().int().nonnegative(), running: z.number().int().nonnegative(), completed: z.number().int().nonnegative(), failed: z.number().int().nonnegative(), cancelled: z.number().int().nonnegative() }).strict(),\n createdAt: z.iso.datetime(), startedAt: z.iso.datetime().nullable(), completedAt: z.iso.datetime().nullable(),\n cleanupComplete: z.boolean(), resultAvailable: z.boolean(), score: z.number().min(0).max(1).nullable(),\n metricName: z.string().min(1).max(240),\n error: z.object({ code: IdSchema, message: z.string().max(2_000) }).strict().nullable(),\n}).strict().superRefine((value, context) => {\n if (Object.values(value.counts).reduce((sum, count) => sum + count, 0) !== value.totalCount) context.addIssue({ code: \"custom\", path: [\"counts\"], message: \"Run counts must account for the complete population.\" });\n if (value.status !== \"completed\" && value.score !== null) context.addIssue({ code: \"custom\", path: [\"score\"], message: \"Only completed evaluations publish a metric value.\" });\n if ([\"completed\", \"failed\", \"cancelled\"].includes(value.status) && (!value.completedAt || value.counts.pending || value.counts.running)) context.addIssue({ code: \"custom\", message: \"Terminal runs require complete population accounting.\" });\n if (value.status === \"cancelled\" && !value.cleanupComplete) context.addIssue({ code: \"custom\", message: \"Cancelled runs require confirmed cleanup.\" });\n if (value.resultAvailable && ![\"completed\", \"failed\", \"cancelled\"].includes(value.status)) context.addIssue({ code: \"custom\", message: \"Run results require terminal population accounting.\" });\n if (value.status === \"completed\" && (!value.cleanupComplete || !value.resultAvailable)) context.addIssue({ code: \"custom\", message: \"Completed evaluations require retained results and confirmed cleanup.\" });\n});\nexport type ModelTasksetRunSummary = z.infer<typeof ModelTasksetRunSummarySchema>;\nexport const ModelTasksetRunDetailsSchema = z.object({\n summary: ModelTasksetRunSummarySchema,\n request: ModelTasksetRunRequestSchema,\n manifest: TasksetRunManifestSchema,\n policySnapshot: ModelStarterAttemptSummarySchema.shape.policySnapshot,\n}).strict();\nexport type ModelTasksetRunDetails = z.infer<typeof ModelTasksetRunDetailsSchema>;\nexport const ModelTasksetRunListQuerySchema = z.object({ modelProjectId: IdSchema.optional(), projectId: EvaluationProjectContextSchema.shape.id.optional(), afterId: IdSchema.optional(), limit: z.number().int().min(1).max(100).default(25) }).strict();\nexport const ModelTasksetRunPageSchema = z.object({ items: z.array(ModelTasksetRunSummarySchema).max(100), nextCursor: IdSchema.nullable() }).strict();\nexport const ModelTasksetRunResultSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelTasksetRunResult.v1\"),\n run: ModelTasksetRunDetailsSchema,\n receipts: z.array(AttemptReceiptSchema).min(1).max(10_000),\n metric: TasksetMetricResultSchema.nullable(),\n contentHash: HashSchema,\n}).strict();\nexport type ModelTasksetRunResult = z.infer<typeof ModelTasksetRunResultSchema>;\n\nexport function verifyHarnessExperimentManifest(request: ModelTasksetRunRequest, manifest: z.infer<typeof TasksetRunManifestSchema>) {\n assertContentHash(manifest, \"Taskset run manifest\");\n const policy = request.policy;\n if (policy.kind !== \"hosted_harness\" || manifest.execution.kind !== \"harness\"\n || canonicalJson(manifest.profileEvaluation) !== canonicalJson(policy.source)\n || canonicalJson(manifest.execution.harnessRelease) !== canonicalJson(policy.source.harnessRelease)\n || manifest.metadata.profileRepositoryId !== policy.profileRepositoryId\n || manifest.packageHash !== policy.packageHash || manifest.policy.kind !== \"model\"\n || manifest.policy.model.provider !== \"openpond\" || manifest.policy.model.model !== policy.modelId\n || manifest.policy.model.revision !== null || manifest.policy.model.artifactHash !== (policy.candidate?.contentHash??null)\n || manifest.policy.model.tokenizerRevision !== null || manifest.policy.model.chatTemplateHash !== null\n || manifest.policy.configurationHash !== policy.modelConfigurationHash\n || manifest.tasksetRelease.id !== request.taskset.id || manifest.tasksetRelease.contentHash !== request.taskset.contentHash\n || canonicalJson(manifest.population) !== canonicalJson(request.population)\n || manifest.population.some(member => member.receiptId !== `evaluation-${contentHash(manifest.profileEvaluation?.externalDatasetBinding\n ? [manifest.id, member.taskId, member.seed, member.fixtureId]\n : [manifest.id, member.taskId, member.seed]).slice(0, 32)}`))\n throw new Error(\"Harness evaluation differs from its admitted source, package or model configuration.\");\n}\n\n/** Server artifact ownership authenticates the producer. These checks bind all\n * portable projections to the admitted request, population and policy. */\nexport async function verifyModelTasksetRunDetails(value: unknown): Promise<ModelTasksetRunDetails> {\n const result = ModelTasksetRunDetailsSchema.parse(value);\n const { summary, request, manifest, policySnapshot } = result;\n assertContentHash(manifest, \"Taskset run manifest\");\n if (manifest.contentHash !== summary.manifestHash\n || manifest.id !== summary.id || manifest.createdAt !== summary.createdAt || summary.teamId !== request.teamId || summary.modelProjectId !== request.modelProjectId\n || canonicalJson(summary.project ?? null) !== canonicalJson(request.project ?? null)\n || canonicalJson(manifest.metadata.project ?? null) !== canonicalJson(request.project ?? null)\n || (summary.name ?? null) !== (request.name ?? null)\n || summary.operationId !== request.operationId || summary.policyKind !== request.policy.kind\n || summary.totalCount !== request.population.length || summary.metricName !== manifest.metricPolicy.primaryMetric\n || canonicalJson(summary.taskset) !== canonicalJson(request.taskset)\n || manifest.tasksetRelease.id !== request.taskset.id || manifest.tasksetRelease.contentHash !== request.taskset.contentHash\n || canonicalJson(manifest.population) !== canonicalJson(request.population)) throw new Error(\"Evaluation run differs from its admitted request or manifest.\");\n if (request.policy.kind === \"fixture\") {\n if (manifest.policy.kind !== \"fixture\" || policySnapshot !== null) throw new Error(\"Fixture checks cannot claim a model identity.\");\n } else if (request.policy.kind === \"hosted_harness\") {\n verifyHarnessExperimentManifest(request, manifest);\n if (policySnapshot !== null) throw new Error(\"Harness evaluations retain the native host model configuration.\");\n } else if (manifest.policy.kind !== \"model\" || !policySnapshot || policySnapshot.modelId !== request.policy.modelId\n || manifest.policy.model.provider !== policySnapshot.provider || manifest.policy.model.model !== policySnapshot.upstreamModelId\n || manifest.policy.model.revision !== null || manifest.policy.model.artifactHash !== (request.policy.candidate?.contentHash ?? null) || manifest.policy.model.tokenizerRevision !== null || manifest.policy.model.chatTemplateHash !== null\n || manifest.policy.configurationHash !== await canonicalSha256({ policy: request.policy, snapshot: policySnapshot })) throw new Error(\"Evaluation model differs from its admitted policy.\");\n return result;\n}\n\nexport async function verifyModelTasksetRunResult(value: unknown): Promise<ModelTasksetRunResult> {\n const result = ModelTasksetRunResultSchema.parse(value);\n const { contentHash: actual, ...content } = result;\n if (await canonicalSha256(content) !== actual) throw new Error(\"Evaluation result integrity failed.\");\n const { summary, manifest } = await verifyModelTasksetRunDetails(result.run);\n if (!summary.resultAvailable || ![\"completed\", \"failed\", \"cancelled\"].includes(summary.status)) throw new Error(\"Evaluation result is not terminal.\");\n const ordered = orderTasksetRunReceipts(manifest, result.receipts);\n if (canonicalJson(ordered) !== canonicalJson(result.receipts)) throw new Error(\"Evaluation receipts differ from the admitted order.\");\n if ((summary.status === \"completed\") !== (result.metric !== null)) throw new Error(\"Only completed evaluations retain a metric.\");\n if (result.metric) {\n assertTasksetMetricResult(result.metric);\n if (result.metric.runManifest.id !== manifest.id || result.metric.runManifest.contentHash !== manifest.contentHash\n || canonicalJson(result.metric.tasksetRelease) !== canonicalJson(manifest.tasksetRelease)\n || canonicalJson(result.metric.policy) !== canonicalJson(manifest.metricPolicy)\n || canonicalJson(result.metric.receiptRefs) !== canonicalJson(result.receipts.map(({ id, contentHash }) => ({ id, contentHash })))\n || result.metric.value !== summary.score) throw new Error(\"Evaluation metric differs from its admitted run or receipt population.\");\n }\n return result;\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["z", "z", "contentHash"]
|
|
7
|
-
}
|
package/dist/chunk-PGBFI5HC.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
GraderSpecSchema,
|
|
3
|
-
decodeTasksetPackageFile
|
|
4
|
-
} from "./chunk-FHCSDXIA.js";
|
|
5
|
-
|
|
6
|
-
// src/taskset-package-grader-projection.ts
|
|
7
|
-
import { compileBoundGraders, resolveBoundRewards } from "@openpond/evals/rewards";
|
|
8
|
-
import { learningRef, verifyLearningTextAsset, RewardFixtureAuthoringFieldsSchema } from "@openpond/evals/learning";
|
|
9
|
-
import { z } from "zod";
|
|
10
|
-
function importedPackageGraders(value) {
|
|
11
|
-
const authoring = value.taskset.metadata.ordinaryAuthoring;
|
|
12
|
-
const calibrationFixtures = z.record(z.string(), z.array(z.string().min(1)).max(1e5)).parse(authoring?.judgeCalibrationFixtures ?? {});
|
|
13
|
-
return value.taskset.graders.map((grader) => {
|
|
14
|
-
const base = { ...grader, label: grader.id, metadata: { portableGrader: grader } };
|
|
15
|
-
if (grader.kind === "custom_verifier") return GraderSpecSchema.parse({
|
|
16
|
-
...base,
|
|
17
|
-
module: grader.verifierRef.path,
|
|
18
|
-
exportName: grader.exportName ?? "verify",
|
|
19
|
-
metadata: { ...base.metadata, portableVerifierRef: grader.verifierRef }
|
|
20
|
-
});
|
|
21
|
-
if (grader.kind === "human" || grader.kind === "model_judge") {
|
|
22
|
-
const file = value.files.find((file2) => file2.asset.id === grader.rubricRef.id);
|
|
23
|
-
if (!file) throw new Error(`Imported rubric is missing: ${grader.id}.`);
|
|
24
|
-
const rubric = new TextDecoder("utf-8", { fatal: true }).decode(decodeTasksetPackageFile(file));
|
|
25
|
-
const metadata = { ...base.metadata, portableRubricRef: grader.rubricRef };
|
|
26
|
-
if (grader.kind === "human") return GraderSpecSchema.parse({ ...base, rubric, metadata });
|
|
27
|
-
if (!grader.model) throw new Error(`Imported judge ${grader.id} requires its declared model before local preparation.`);
|
|
28
|
-
return GraderSpecSchema.parse({
|
|
29
|
-
...base,
|
|
30
|
-
rubric,
|
|
31
|
-
metadata,
|
|
32
|
-
judge: grader.model,
|
|
33
|
-
temperature: grader.temperature ?? 0,
|
|
34
|
-
calibrationStatus: "pending",
|
|
35
|
-
calibrationFixtureRefs: calibrationFixtures[grader.id] ?? []
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
return GraderSpecSchema.parse({
|
|
39
|
-
...base,
|
|
40
|
-
kind: grader.kind === "artifact" ? "file" : grader.kind,
|
|
41
|
-
config: grader.kind === "artifact" ? { ...grader.config, ...grader.config.refIncludes === void 0 ? {} : { pathIncludes: grader.config.refIncludes } } : grader.config
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
function projectLearningBatchGraders(binding, rewards, assets = []) {
|
|
46
|
-
const resolved = resolveBoundRewards(binding, rewards);
|
|
47
|
-
return compileBoundGraders(binding, rewards).map((grader) => {
|
|
48
|
-
const reward = resolved.find(({ source }) => source.graderId === grader.id).reward;
|
|
49
|
-
const base = { ...grader, label: reward.name, metadata: { rewardBinding: learningRef(binding) } };
|
|
50
|
-
if (grader.kind === "model_judge") {
|
|
51
|
-
if (!grader.model || grader.calibrationStatus !== "passed" || !reward.calibrationCheckRef || !reward.fixtureSetRef) throw new Error(`Reward ${grader.id} needs a retained passing calibration check before preparation.`);
|
|
52
|
-
const rubric = assets.find((asset) => asset.id === grader.rubricRef.id);
|
|
53
|
-
const fixtures = assets.find((asset) => asset.id === reward.fixtureSetRef.id);
|
|
54
|
-
if (!rubric || !fixtures) throw new Error(`Reward ${grader.id} is missing its immutable rubric or calibration fixtures.`);
|
|
55
|
-
const fields = RewardFixtureAuthoringFieldsSchema.array().min(1).max(50).parse(JSON.parse(verifyLearningTextAsset(fixtures, reward.fixtureSetRef)));
|
|
56
|
-
return GraderSpecSchema.parse({
|
|
57
|
-
...base,
|
|
58
|
-
rubric: verifyLearningTextAsset(rubric, grader.rubricRef),
|
|
59
|
-
judge: grader.model,
|
|
60
|
-
temperature: grader.temperature ?? 0,
|
|
61
|
-
calibrationFixtureRefs: fields.map((fixture) => fixture.id),
|
|
62
|
-
metadata: {
|
|
63
|
-
...base.metadata,
|
|
64
|
-
portableGrader: grader,
|
|
65
|
-
portableRubricRef: grader.rubricRef,
|
|
66
|
-
calibrationEvidenceHash: reward.calibrationCheckRef.contentHash,
|
|
67
|
-
calibrationCheckRef: reward.calibrationCheckRef
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
if (grader.kind === "custom_verifier") return GraderSpecSchema.parse({
|
|
72
|
-
...base,
|
|
73
|
-
module: grader.verifierRef.path,
|
|
74
|
-
exportName: grader.exportName ?? "verify",
|
|
75
|
-
metadata: { ...base.metadata, portableVerifierRef: grader.verifierRef }
|
|
76
|
-
});
|
|
77
|
-
if (grader.kind === "human") {
|
|
78
|
-
const asset = assets.find((asset2) => asset2.id === grader.rubricRef.id);
|
|
79
|
-
if (!asset) throw new Error(`Reward ${grader.id} is missing its immutable rubric.`);
|
|
80
|
-
return GraderSpecSchema.parse({
|
|
81
|
-
...base,
|
|
82
|
-
rubric: verifyLearningTextAsset(asset, grader.rubricRef),
|
|
83
|
-
metadata: { ...base.metadata, portableGrader: grader, portableRubricRef: grader.rubricRef }
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
return GraderSpecSchema.parse({ ...base, kind: grader.kind === "artifact" ? "file" : grader.kind });
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
function learningVerifierModule(hash) {
|
|
90
|
-
return `graders/reward-${hash}.js`;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
export {
|
|
94
|
-
importedPackageGraders,
|
|
95
|
-
projectLearningBatchGraders,
|
|
96
|
-
learningVerifierModule
|
|
97
|
-
};
|
|
98
|
-
//# sourceMappingURL=chunk-PGBFI5HC.js.map
|