openpond-sdk 0.5.26 → 0.5.28
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/TASKSETS.md +20 -4
- package/dist/{chunk-S7I45WJQ.js → chunk-2U54EOXJ.js} +3 -2
- package/dist/chunk-2U54EOXJ.js.map +7 -0
- package/dist/{chunk-GFVMIDP5.js → chunk-B3CH4V35.js} +318 -18
- package/dist/chunk-B3CH4V35.js.map +7 -0
- package/dist/{chunk-YVOKMF45.js → chunk-FFRYTXGF.js} +18 -8
- package/dist/chunk-FFRYTXGF.js.map +7 -0
- package/dist/{chunk-7PCER4VL.js → chunk-O27OEXXB.js} +5 -3
- package/dist/{chunk-7PCER4VL.js.map → chunk-O27OEXXB.js.map} +1 -1
- package/dist/{chunk-S5UZTXXB.js → chunk-WT7JU2CT.js} +4 -305
- package/dist/chunk-WT7JU2CT.js.map +7 -0
- package/dist/{chunk-AMBW4UHN.js → chunk-ZIMHPYXL.js} +13 -8
- package/dist/{chunk-AMBW4UHN.js.map → chunk-ZIMHPYXL.js.map} +2 -2
- package/dist/model-starter-catalog.js +4 -2
- package/dist/model-starter-catalog.js.map +1 -1
- package/dist/model-starters.js +4 -2
- package/dist/model-taskset-authoring.js +1 -1
- package/dist/taskset-drafts.js +4 -4
- package/dist/taskset-packages.js +214 -52
- package/dist/taskset-packages.js.map +4 -4
- package/dist/training-bundle.js +6 -5
- package/dist/training-bundle.js.map +1 -1
- package/dist/types/packages/sdk/src/model-bound-taskset-authoring.d.ts +10 -0
- package/dist/types/packages/sdk/src/model-bound-taskset-authoring.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/model-ordinary-taskset-reward.d.ts +16 -0
- package/dist/types/packages/sdk/src/model-ordinary-taskset-reward.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/model-taskset-authoring-contracts.d.ts +1 -0
- package/dist/types/packages/sdk/src/model-taskset-authoring-contracts.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-taskset-authoring.d.ts +1 -0
- package/dist/types/packages/sdk/src/model-taskset-authoring.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts +11 -0
- package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-training-defaults.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts +2 -0
- package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-client.d.ts +6 -0
- package/dist/types/packages/sdk/src/taskset-draft-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-document.d.ts +1 -0
- package/dist/types/packages/sdk/src/taskset-draft-document.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts +3 -0
- package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-publication.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-source.d.ts +2 -0
- package/dist/types/packages/sdk/src/taskset-draft-source.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts +2 -0
- package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-package-client.d.ts +3 -0
- package/dist/types/packages/sdk/src/taskset-package-client.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts +2 -0
- package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/taskset-package-projection.d.ts +1 -0
- package/dist/types/packages/sdk/src/taskset-package-projection.d.ts.map +1 -1
- 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/package.json +1 -1
- package/dist/chunk-GFVMIDP5.js.map +0 -7
- package/dist/chunk-S5UZTXXB.js.map +0 -7
- package/dist/chunk-S7I45WJQ.js.map +0 -7
- package/dist/chunk-YVOKMF45.js.map +0 -7
|
@@ -1,29 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ModelStarterExecutionSchema,
|
|
3
|
-
ModelTasksetPackageSchema,
|
|
4
|
-
createModelStarterExecutionAsset,
|
|
5
|
-
modelStarterExecutionAssetId,
|
|
6
|
-
validateModelStarterExecution,
|
|
7
|
-
validateModelTasksetPackage
|
|
8
|
-
} from "./chunk-GFVMIDP5.js";
|
|
9
|
-
import {
|
|
10
|
-
ModelTasksetAuthoringSchema
|
|
11
|
-
} from "./chunk-S7I45WJQ.js";
|
|
12
1
|
import {
|
|
13
2
|
ChatModelRefSchema
|
|
14
3
|
} from "./chunk-5FBPNWT4.js";
|
|
15
4
|
import {
|
|
16
|
-
ImmutableAssetRefSchema,
|
|
17
5
|
ImmutableReleaseRefSchema,
|
|
18
6
|
ReleaseHashSchema,
|
|
19
7
|
ReleaseIdSchema,
|
|
20
8
|
VersionedReleaseRefSchema,
|
|
21
|
-
contentHash
|
|
22
|
-
sha256
|
|
9
|
+
contentHash
|
|
23
10
|
} from "./chunk-QUOW6URQ.js";
|
|
24
|
-
import {
|
|
25
|
-
canonicalJson
|
|
26
|
-
} from "./chunk-ZNFOVV7B.js";
|
|
27
11
|
|
|
28
12
|
// src/taskset-draft-dataset-artifacts.ts
|
|
29
13
|
import { z } from "zod";
|
|
@@ -1163,280 +1147,11 @@ function validateCapabilities(capabilities, issues, taskset) {
|
|
|
1163
1147
|
if (taskset?.capabilities.compatibleMethods.includes("dpo") && taskset.learningSignals.preferences.length === 0) {
|
|
1164
1148
|
issues.push({ code: "dpo_preferences_missing", severity: "error", message: "DPO compatibility requires chosen and rejected response pairs.", path: "learningSignals.preferences" });
|
|
1165
1149
|
}
|
|
1166
|
-
if (taskset && (taskset.capabilities.compatibleMethods.includes("grpo") || taskset.capabilities.compatibleMethods.includes("ppo")) && !taskset.learningSignals.rewards.some((reward) => reward.executable)) {
|
|
1150
|
+
if (taskset && (taskset.capabilities.compatibleMethods.includes("grpo") || taskset.capabilities.compatibleMethods.includes("ppo")) && !taskset.learningSignals.rewards.some((reward) => reward.executable) && !taskset.graders.some((grader) => grader.rewardEligible && grader.weight > 0 && grader.kind !== "human")) {
|
|
1167
1151
|
issues.push({ code: "online_reward_not_executable", severity: "error", message: "GRPO/PPO compatibility requires an executable scalar reward.", path: "learningSignals.rewards" });
|
|
1168
1152
|
}
|
|
1169
1153
|
}
|
|
1170
1154
|
|
|
1171
|
-
// src/taskset-package-learning.ts
|
|
1172
|
-
import { z as z6 } from "zod";
|
|
1173
|
-
import {
|
|
1174
|
-
TaskBatchSchema,
|
|
1175
|
-
TaskEvidenceSchema,
|
|
1176
|
-
TaskAdmissionDecisionSchema,
|
|
1177
|
-
LearningSourceSchema,
|
|
1178
|
-
LearningTextAssetSchema,
|
|
1179
|
-
assertLearningContentHash,
|
|
1180
|
-
compileTaskBatch,
|
|
1181
|
-
learningRef,
|
|
1182
|
-
sameLearningRef,
|
|
1183
|
-
taskBatchPackageMetadata,
|
|
1184
|
-
verifyLearningTextAsset
|
|
1185
|
-
} from "@openpond/evals/learning";
|
|
1186
|
-
var TasksetPackageLearningResourcesSchema = z6.object({
|
|
1187
|
-
batch: TaskBatchSchema,
|
|
1188
|
-
evidence: z6.array(TaskEvidenceSchema).min(1).max(1e4),
|
|
1189
|
-
decisions: z6.array(TaskAdmissionDecisionSchema).min(1).max(1e4),
|
|
1190
|
-
sources: z6.array(LearningSourceSchema).min(1).max(1e4),
|
|
1191
|
-
assets: z6.array(LearningTextAssetSchema).max(1e3)
|
|
1192
|
-
}).strict();
|
|
1193
|
-
function learningPackageContextFiles(resources) {
|
|
1194
|
-
return resources.evidence.filter((evidence) => evidence.submission.evaluatorContext !== null).map((evidence) => {
|
|
1195
|
-
const text = canonicalJson(evidence.submission.evaluatorContext);
|
|
1196
|
-
const bytes = new TextEncoder().encode(text);
|
|
1197
|
-
return {
|
|
1198
|
-
asset: {
|
|
1199
|
-
id: `task-evidence:${evidence.contentHash}`,
|
|
1200
|
-
path: `learning/context/${evidence.contentHash}.json`,
|
|
1201
|
-
contentHash: sha256(bytes),
|
|
1202
|
-
sizeBytes: bytes.byteLength,
|
|
1203
|
-
mediaType: "application/json",
|
|
1204
|
-
visibility: "host_private"
|
|
1205
|
-
},
|
|
1206
|
-
base64: btoa(Array.from(bytes, (byte) => String.fromCharCode(byte)).join(""))
|
|
1207
|
-
};
|
|
1208
|
-
});
|
|
1209
|
-
}
|
|
1210
|
-
function validateTasksetLearningResources(taskset, input) {
|
|
1211
|
-
const resources = TasksetPackageLearningResourcesSchema.parse(input);
|
|
1212
|
-
const metadata = taskBatchPackageMetadata(taskset);
|
|
1213
|
-
if (!sameLearningRef(learningRef(resources.batch), metadata.batch)) throw new Error("Taskset learning batch differs from its admission metadata.");
|
|
1214
|
-
for (const collection of [resources.evidence, resources.decisions, resources.sources, resources.assets]) {
|
|
1215
|
-
const identities = /* @__PURE__ */ new Set();
|
|
1216
|
-
for (const resource of collection) {
|
|
1217
|
-
assertLearningContentHash(resource);
|
|
1218
|
-
const key = `${resource.id}:${resource.revision}`;
|
|
1219
|
-
if (identities.has(key)) throw new Error("Taskset learning resource identities must be unique.");
|
|
1220
|
-
identities.add(key);
|
|
1221
|
-
}
|
|
1222
|
-
}
|
|
1223
|
-
if (resources.evidence.length !== resources.batch.examples.length || resources.decisions.length !== resources.batch.examples.length) throw new Error("Taskset learning snapshots must match the admitted batch inventory.");
|
|
1224
|
-
for (const evidence of resources.evidence) {
|
|
1225
|
-
const source = resources.sources.find((source2) => sameLearningRef(learningRef(source2), evidence.source));
|
|
1226
|
-
if (!source || !sameLearningRef(source.taskDefinition, learningRef(metadata.definition))) throw new Error("Taskset evidence source differs from its task definition.");
|
|
1227
|
-
}
|
|
1228
|
-
if (resources.sources.some((source) => !resources.evidence.some((evidence) => sameLearningRef(evidence.source, learningRef(source))))) throw new Error("Taskset package includes an unrelated learning source.");
|
|
1229
|
-
const rewardAssets = metadata.rewards.flatMap((reward) => [
|
|
1230
|
-
...reward.assets,
|
|
1231
|
-
...reward.implementation.kind === "custom_verifier" ? [reward.implementation.verifierRef] : reward.implementation.kind === "model_judge" || reward.implementation.kind === "human" ? [reward.implementation.rubricRef] : [],
|
|
1232
|
-
..."inputContract" in reward.implementation ? [reward.implementation.inputContract] : []
|
|
1233
|
-
]);
|
|
1234
|
-
for (const ref of rewardAssets) {
|
|
1235
|
-
const asset = resources.assets.find((asset2) => asset2.id === ref.id);
|
|
1236
|
-
if (!asset) throw new Error("Taskset learning Reward asset is missing.");
|
|
1237
|
-
verifyLearningTextAsset(asset, ref);
|
|
1238
|
-
}
|
|
1239
|
-
if (resources.assets.some((asset) => !rewardAssets.some((ref) => ref.id === asset.id))) throw new Error("Taskset package includes an unrelated learning asset.");
|
|
1240
|
-
const compiled = compileTaskBatch({
|
|
1241
|
-
batch: resources.batch,
|
|
1242
|
-
definition: metadata.definition,
|
|
1243
|
-
binding: metadata.binding,
|
|
1244
|
-
rewards: metadata.rewards,
|
|
1245
|
-
evidence: resources.evidence,
|
|
1246
|
-
decisions: resources.decisions
|
|
1247
|
-
});
|
|
1248
|
-
const compiledMetadata = taskBatchPackageMetadata(compiled);
|
|
1249
|
-
if (contentHash(compiledMetadata) !== contentHash(metadata)) throw new Error("Taskset admission metadata differs from its reviewed snapshots.");
|
|
1250
|
-
const execution = (release) => ({ policy: release.policy, environment: release.environment, tools: release.tools });
|
|
1251
|
-
if (contentHash(execution(compiled)) !== contentHash(execution(taskset))) throw new Error("Taskset execution differs from its reviewed task definition.");
|
|
1252
|
-
const taskContent = (task) => ({
|
|
1253
|
-
id: task.id,
|
|
1254
|
-
clusterKey: task.clusterKey,
|
|
1255
|
-
split: task.split,
|
|
1256
|
-
input: task.input,
|
|
1257
|
-
expectedOutput: task.expectedOutput,
|
|
1258
|
-
policyVisibleContext: task.policyVisibleContext,
|
|
1259
|
-
privilegedContextRef: task.privilegedContextRef,
|
|
1260
|
-
artifactRefs: task.artifactRefs,
|
|
1261
|
-
requiredOutputs: task.requiredOutputs ?? [],
|
|
1262
|
-
tags: task.tags
|
|
1263
|
-
});
|
|
1264
|
-
if (contentHash(compiled.tasks.map(taskContent)) !== contentHash(taskset.tasks.map(taskContent))) throw new Error("Taskset rows differ from their reviewed evidence.");
|
|
1265
|
-
return resources;
|
|
1266
|
-
}
|
|
1267
|
-
|
|
1268
|
-
// src/taskset-package-files.ts
|
|
1269
|
-
import { z as z7 } from "zod";
|
|
1270
|
-
var MAX_TASKSET_PACKAGE_BYTES = 64 * 1024 * 1024;
|
|
1271
|
-
var TasksetPackageFileSchema = z7.object({
|
|
1272
|
-
asset: ImmutableAssetRefSchema,
|
|
1273
|
-
base64: z7.string().max(Math.ceil(MAX_TASKSET_PACKAGE_BYTES / 3) * 4)
|
|
1274
|
-
}).strict();
|
|
1275
|
-
function decodeTasksetPackageFile(value) {
|
|
1276
|
-
const file = TasksetPackageFileSchema.parse(value);
|
|
1277
|
-
const raw = atob(file.base64);
|
|
1278
|
-
if (btoa(raw) !== file.base64) throw new Error(`Taskset asset ${file.asset.id} has noncanonical base64.`);
|
|
1279
|
-
const bytes = Uint8Array.from(raw, (character) => character.charCodeAt(0));
|
|
1280
|
-
if (bytes.byteLength !== file.asset.sizeBytes || sha256(bytes) !== file.asset.contentHash) throw new Error(`Taskset asset ${file.asset.id} differs from its immutable bytes.`);
|
|
1281
|
-
return bytes;
|
|
1282
|
-
}
|
|
1283
|
-
|
|
1284
|
-
// src/taskset-package-execution.ts
|
|
1285
|
-
import { LearningTextAssetSchema as LearningTextAssetSchema2, sealLearningContent } from "@openpond/evals/learning";
|
|
1286
|
-
function resolveTasksetPackageExecution(input) {
|
|
1287
|
-
if (input.taskset.environment.entrypoint !== "openpond.javascript-environment.v1") return null;
|
|
1288
|
-
const byId = new Map(input.files.map((file) => [file.asset.id, file]));
|
|
1289
|
-
const read = (id) => {
|
|
1290
|
-
const file = byId.get(id);
|
|
1291
|
-
if (!file) throw new Error(`Taskset environment asset is missing: ${id}.`);
|
|
1292
|
-
if (file.asset.sizeBytes > 524288) throw new Error("Taskset environment source exceeds the authored asset limit.");
|
|
1293
|
-
const text = new TextDecoder("utf-8", { fatal: true }).decode(decodeTasksetPackageFile(file));
|
|
1294
|
-
return LearningTextAssetSchema2.parse(sealLearningContent({ schemaVersion: "openpond.learningTextAsset.v1", id, revision: 1, asset: file.asset, text }));
|
|
1295
|
-
};
|
|
1296
|
-
let execution;
|
|
1297
|
-
if (input.modelResources) {
|
|
1298
|
-
if (!input.modelResources.execution) throw new Error("Bound Taskset JavaScript execution resources are missing.");
|
|
1299
|
-
execution = ModelStarterExecutionSchema.parse(input.modelResources.execution);
|
|
1300
|
-
} else {
|
|
1301
|
-
const declaration = read(modelStarterExecutionAssetId(input.taskset));
|
|
1302
|
-
if (declaration.asset.visibility !== "host_private" || declaration.asset.mediaType !== "application/json" || declaration.asset.path !== "environment/execution.json") throw new Error("Taskset execution declaration must be private JSON at environment/execution.json.");
|
|
1303
|
-
execution = ModelStarterExecutionSchema.parse(JSON.parse(declaration.text));
|
|
1304
|
-
}
|
|
1305
|
-
const ids = /* @__PURE__ */ new Set([
|
|
1306
|
-
execution.javascript.module.id,
|
|
1307
|
-
...[execution.environment.actionSchemaRef, execution.environment.observationSchemaRef, execution.environment.stateSchemaRef].flatMap((ref) => ref ? [ref.id] : []),
|
|
1308
|
-
...input.taskset.tasks.flatMap((task) => task.privilegedContextRef ? [task.privilegedContextRef] : [])
|
|
1309
|
-
]);
|
|
1310
|
-
const assets = [...ids].map(read);
|
|
1311
|
-
validateModelStarterExecution(execution, input.taskset, assets);
|
|
1312
|
-
return { execution, assets };
|
|
1313
|
-
}
|
|
1314
|
-
function createTasksetPackageExecutionFile(execution) {
|
|
1315
|
-
const asset = createModelStarterExecutionAsset(execution);
|
|
1316
|
-
const bytes = new TextEncoder().encode(asset.text);
|
|
1317
|
-
let raw = "";
|
|
1318
|
-
for (const byte of bytes) raw += String.fromCharCode(byte);
|
|
1319
|
-
return { asset: asset.asset, base64: btoa(raw) };
|
|
1320
|
-
}
|
|
1321
|
-
|
|
1322
|
-
// src/taskset-package-contracts.ts
|
|
1323
|
-
import { z as z8 } from "zod";
|
|
1324
|
-
import { EnvironmentReleaseSchema, VerifierSetReleaseSchema, verifyEnvironmentRelease, verifyVerifierSetRelease } from "@openpond/evals";
|
|
1325
|
-
import { assertTasksetRelease, TasksetReleaseSchema } from "@openpond/evals/tasksets";
|
|
1326
|
-
import { assertBoundedTaskJson } from "@openpond/evals/task-schema";
|
|
1327
|
-
import { taskBatchPackageMetadata as taskBatchPackageMetadata2 } from "@openpond/evals/learning";
|
|
1328
|
-
|
|
1329
|
-
// src/model-taskset-authoring-lineage.ts
|
|
1330
|
-
import { sameLearningRef as sameLearningRef2 } from "@openpond/evals/learning";
|
|
1331
|
-
function modelAuthoredTasksetId(lineage) {
|
|
1332
|
-
return `model-authored-taskset-${contentHash({ owner: lineage.owner, root: lineage.root })}`;
|
|
1333
|
-
}
|
|
1334
|
-
function assertModelTasksetAuthoring(taskset) {
|
|
1335
|
-
if (taskset.metadata.modelTasksetAuthoring === void 0) return null;
|
|
1336
|
-
const lineage = ModelTasksetAuthoringSchema.parse(taskset.metadata.modelTasksetAuthoring);
|
|
1337
|
-
if (taskset.id !== modelAuthoredTasksetId(lineage) || (taskset.revision === 1 ? !sameLearningRef2(lineage.parent, lineage.root) : lineage.parent.id !== taskset.id || lineage.parent.revision !== taskset.revision - 1)) {
|
|
1338
|
-
throw new Error("Authored Taskset revision differs from its ownership lineage.");
|
|
1339
|
-
}
|
|
1340
|
-
return lineage;
|
|
1341
|
-
}
|
|
1342
|
-
|
|
1343
|
-
// src/taskset-package-contracts.ts
|
|
1344
|
-
var BoundModelResourcesSchema = ModelTasksetPackageSchema.omit({ taskset: true, executionResources: true });
|
|
1345
|
-
var TasksetPackageContentSchema = z8.object({
|
|
1346
|
-
schemaVersion: z8.literal("openpond.tasksetPackage.v1"),
|
|
1347
|
-
taskset: TasksetReleaseSchema,
|
|
1348
|
-
environment: EnvironmentReleaseSchema,
|
|
1349
|
-
verifierSet: VerifierSetReleaseSchema,
|
|
1350
|
-
files: z8.array(TasksetPackageFileSchema).max(1e4),
|
|
1351
|
-
modelResources: BoundModelResourcesSchema.optional(),
|
|
1352
|
-
learningResources: TasksetPackageLearningResourcesSchema.optional()
|
|
1353
|
-
}).strict();
|
|
1354
|
-
var TasksetPackageSchema = TasksetPackageContentSchema.extend({ contentHash: z8.string().regex(/^[a-f0-9]{64}$/) }).strict();
|
|
1355
|
-
function tasksetPackageRewardBinding(value) {
|
|
1356
|
-
return value.learningResources ? taskBatchPackageMetadata2(value.taskset).binding : value.modelResources?.rewardBinding ?? null;
|
|
1357
|
-
}
|
|
1358
|
-
function resolveTasksetPackageInstructions(value) {
|
|
1359
|
-
if (value.learningResources) return taskBatchPackageMetadata2(value.taskset).definition.instructions;
|
|
1360
|
-
if (value.modelResources) return value.modelResources.taskDefinition.instructions;
|
|
1361
|
-
const authoring = z8.object({ instructions: z8.string().max(2e4).optional() }).passthrough().parse(value.taskset.metadata.ordinaryAuthoring ?? {});
|
|
1362
|
-
return authoring.instructions ?? "";
|
|
1363
|
-
}
|
|
1364
|
-
function validateTasksetPackage(value) {
|
|
1365
|
-
assertBoundedTaskJson(value, MAX_TASKSET_PACKAGE_BYTES);
|
|
1366
|
-
const result = TasksetPackageSchema.parse(value);
|
|
1367
|
-
const { contentHash: hash, ...content } = result;
|
|
1368
|
-
if (contentHash(content) !== hash) throw new Error("Taskset package content hash differs from its bytes.");
|
|
1369
|
-
const { taskset, environment, verifierSet } = result;
|
|
1370
|
-
assertTasksetRelease(taskset);
|
|
1371
|
-
const authoring = assertModelTasksetAuthoring(taskset);
|
|
1372
|
-
if (authoring && (result.modelResources || result.learningResources)) throw new Error("Taskset package cannot declare competing authoring graphs.");
|
|
1373
|
-
if (!verifyEnvironmentRelease(environment) || !verifyVerifierSetRelease(verifierSet) || !same(taskset.environmentRelease, { id: environment.id, contentHash: environment.contentHash }) || !same(taskset.verifierSetRelease, { id: verifierSet.id, contentHash: verifierSet.contentHash }) || !same(taskset.environment, environment.contract) || !same(taskset.graders, verifierSet.graders)) {
|
|
1374
|
-
throw new Error("Taskset package execution releases do not match its Taskset.");
|
|
1375
|
-
}
|
|
1376
|
-
const files = /* @__PURE__ */ new Map();
|
|
1377
|
-
for (const file of result.files) {
|
|
1378
|
-
if (files.has(file.asset.id)) throw new Error(`Duplicate Taskset asset identity: ${file.asset.id}.`);
|
|
1379
|
-
decodeTasksetPackageFile(file);
|
|
1380
|
-
files.set(file.asset.id, file);
|
|
1381
|
-
}
|
|
1382
|
-
function requireAsset(ref) {
|
|
1383
|
-
const file = files.get(ref.id);
|
|
1384
|
-
if (!file || !same(file.asset, ref)) throw new Error(`Taskset package asset is missing or mismatched: ${ref.id}.`);
|
|
1385
|
-
}
|
|
1386
|
-
for (const task of taskset.tasks) {
|
|
1387
|
-
for (const asset of task.artifactRefs) requireAsset(asset);
|
|
1388
|
-
for (const output of task.requiredOutputs ?? []) if (output.schemaRef) requireAsset(output.schemaRef);
|
|
1389
|
-
if (task.privilegedContextRef && files.get(task.privilegedContextRef)?.asset.visibility !== "host_private") {
|
|
1390
|
-
throw new Error(`Taskset package private context is missing: ${task.id}.`);
|
|
1391
|
-
}
|
|
1392
|
-
}
|
|
1393
|
-
for (const ref of [environment.actionSchemaRef, environment.observationSchemaRef, environment.stateSchemaRef]) if (ref) requireAsset(ref);
|
|
1394
|
-
for (const grader of taskset.graders) {
|
|
1395
|
-
const ref = "verifierRef" in grader ? grader.verifierRef : "rubricRef" in grader ? grader.rubricRef : null;
|
|
1396
|
-
if (ref) {
|
|
1397
|
-
requireAsset(ref);
|
|
1398
|
-
if (ref.visibility === "policy") throw new Error(`Taskset grader asset must be private: ${ref.id}.`);
|
|
1399
|
-
}
|
|
1400
|
-
}
|
|
1401
|
-
if (taskset.metrics?.customAggregator) {
|
|
1402
|
-
const aggregator = taskset.metrics.customAggregator;
|
|
1403
|
-
const modules = result.files.filter((file) => file.asset.path === aggregator.module);
|
|
1404
|
-
if (modules.length !== 1 || modules[0].asset.contentHash !== aggregator.contentHash || modules[0].asset.sizeBytes > 524288 || modules[0].asset.visibility === "policy") {
|
|
1405
|
-
throw new Error("Taskset metric module is missing or mismatched, public, or exceeds the source limit.");
|
|
1406
|
-
}
|
|
1407
|
-
}
|
|
1408
|
-
for (const declarations of [taskset.metadata.environmentResources, environment.metadata.resources]) {
|
|
1409
|
-
if (declarations === void 0) continue;
|
|
1410
|
-
for (const resource of z8.array(z8.object({ path: z8.string().min(1) }).passthrough()).parse(declarations)) {
|
|
1411
|
-
if (!result.files.some((file) => file.asset.path === resource.path)) throw new Error(`Taskset environment resource is missing: ${resource.path}.`);
|
|
1412
|
-
}
|
|
1413
|
-
}
|
|
1414
|
-
if (result.learningResources) {
|
|
1415
|
-
if (result.modelResources) throw new Error("Taskset package cannot declare competing authoring graphs.");
|
|
1416
|
-
const learning = validateTasksetLearningResources(taskset, result.learningResources);
|
|
1417
|
-
for (const expected of learningPackageContextFiles(learning)) {
|
|
1418
|
-
if (!same(files.get(expected.asset.id), expected)) throw new Error("Taskset private context differs from its reviewed evidence.");
|
|
1419
|
-
}
|
|
1420
|
-
for (const asset of learning.assets) requireAsset(asset.asset);
|
|
1421
|
-
} else if (result.modelResources) {
|
|
1422
|
-
const model = validateModelTasksetPackage({ ...result.modelResources, taskset, executionResources: { environment, verifierSet } });
|
|
1423
|
-
for (const asset of model.assets) requireAsset(asset.asset);
|
|
1424
|
-
} else if (["starter", "rewardBinding", "rewardExecution", "modelTasksetDerivation", "learning"].some((key) => taskset.metadata[key] !== void 0)) {
|
|
1425
|
-
throw new Error("Bound Taskset publication requires its complete model resources.");
|
|
1426
|
-
}
|
|
1427
|
-
resolveTasksetPackageExecution(result);
|
|
1428
|
-
resolveTasksetPackageInstructions(result);
|
|
1429
|
-
return result;
|
|
1430
|
-
}
|
|
1431
|
-
function createTasksetPackage(value) {
|
|
1432
|
-
assertBoundedTaskJson(value, MAX_TASKSET_PACKAGE_BYTES);
|
|
1433
|
-
const content = TasksetPackageContentSchema.parse(value);
|
|
1434
|
-
return validateTasksetPackage({ ...content, contentHash: contentHash(content) });
|
|
1435
|
-
}
|
|
1436
|
-
function same(left, right) {
|
|
1437
|
-
return contentHash({ value: left }) === contentHash({ value: right });
|
|
1438
|
-
}
|
|
1439
|
-
|
|
1440
1155
|
export {
|
|
1441
1156
|
DatasetSplitSchema,
|
|
1442
1157
|
DatasetSemanticFieldSchema,
|
|
@@ -1505,22 +1220,6 @@ export {
|
|
|
1505
1220
|
isTrainingSourceRef,
|
|
1506
1221
|
validateTaskset,
|
|
1507
1222
|
computeTasksetHash,
|
|
1508
|
-
validatePortability
|
|
1509
|
-
TasksetPackageLearningResourcesSchema,
|
|
1510
|
-
learningPackageContextFiles,
|
|
1511
|
-
validateTasksetLearningResources,
|
|
1512
|
-
modelAuthoredTasksetId,
|
|
1513
|
-
assertModelTasksetAuthoring,
|
|
1514
|
-
MAX_TASKSET_PACKAGE_BYTES,
|
|
1515
|
-
TasksetPackageFileSchema,
|
|
1516
|
-
decodeTasksetPackageFile,
|
|
1517
|
-
resolveTasksetPackageExecution,
|
|
1518
|
-
createTasksetPackageExecutionFile,
|
|
1519
|
-
TasksetPackageContentSchema,
|
|
1520
|
-
TasksetPackageSchema,
|
|
1521
|
-
tasksetPackageRewardBinding,
|
|
1522
|
-
resolveTasksetPackageInstructions,
|
|
1523
|
-
validateTasksetPackage,
|
|
1524
|
-
createTasksetPackage
|
|
1223
|
+
validatePortability
|
|
1525
1224
|
};
|
|
1526
|
-
//# sourceMappingURL=chunk-
|
|
1225
|
+
//# sourceMappingURL=chunk-WT7JU2CT.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/taskset-draft-dataset-artifacts.ts", "../src/taskset-draft-dataset-sources.ts", "../src/taskset-draft-harness-actions.ts", "../src/taskset-draft-core.ts", "../src/taskset-authored-contracts.ts", "../src/taskset-authored-validation.ts"],
|
|
4
|
+
"sourcesContent": ["import { z } from \"zod\";\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 RelativePathSchema = z\n .string()\n .trim()\n .min(1)\n .max(1_000)\n .refine(\n (value) =>\n !value.startsWith(\"/\")\n && !value.startsWith(\"\\\\\")\n && !value.split(/[\\\\/]/).includes(\"..\"),\n \"Artifact paths must be relative and stay inside the Dataset.\",\n );\n\nexport const DatasetSplitSchema = z.enum([\n \"train\",\n \"validation\",\n \"test\",\n \"frozen_eval\",\n]);\n\nexport const DatasetSemanticFieldSchema = z.object({\n name: z.string().trim().min(1).max(500),\n semanticRole: z.enum([\n \"row_id\",\n \"cluster_id\",\n \"prompt\",\n \"messages\",\n \"demonstration\",\n \"chosen\",\n \"rejected\",\n \"expected_output\",\n \"privileged_context\",\n \"reward\",\n \"feedback\",\n \"tag\",\n \"metadata\",\n ]),\n logicalType: z.enum([\n \"string\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"json\",\n \"messages\",\n ]),\n nullable: z.boolean(),\n policy: z.enum([\"visible\", \"privileged\", \"metadata\"]),\n});\n\nexport const DatasetSemanticSchemaSchema = z.object({\n schemaVersion: z.literal(\"openpond.datasetSemanticSchema.v1\"),\n fields: z.array(DatasetSemanticFieldSchema).min(1).max(10_000),\n schemaHash: HashSchema,\n});\n\nexport const DatasetShardRefSchema = z.object({\n id: IdSchema,\n split: DatasetSplitSchema,\n path: RelativePathSchema,\n contentHash: HashSchema,\n schemaHash: HashSchema,\n sizeBytes: z.number().int().nonnegative(),\n rowCount: z.number().int().positive(),\n rowGroupCount: z.number().int().positive(),\n});\n\nexport const DatasetArtifactManifestSchema = z.object({\n schemaVersion: z.literal(\"openpond.datasetArtifact.v1\"),\n id: IdSchema,\n tasksetId: IdSchema,\n tasksetRevision: z.number().int().positive(),\n contentHash: HashSchema,\n format: z.literal(\"parquet\"),\n schema: DatasetSemanticSchemaSchema,\n shards: z.array(DatasetShardRefSchema).min(1).max(100_000),\n rowCount: z.number().int().positive(),\n splitCounts: z.record(DatasetSplitSchema, z.number().int().nonnegative()),\n sourceReceiptRefs: z.array(IdSchema).min(1).max(100_000),\n mappingHash: HashSchema,\n qualityReportHash: HashSchema,\n createdAt: TimestampSchema,\n});\n\nexport const DatasetArtifactSummarySchema = z.object({\n schemaVersion: z.literal(\"openpond.datasetArtifactSummary.v1\"),\n artifactId: IdSchema,\n tasksetId: IdSchema,\n tasksetRevision: z.number().int().positive(),\n format: z.literal(\"parquet\"),\n rowCount: z.number().int().positive(),\n splitCounts: z.record(DatasetSplitSchema, z.number().int().nonnegative()),\n sizeBytes: z.number().int().nonnegative(),\n contentHash: HashSchema,\n available: z.boolean(),\n unavailableReason: z.string().trim().min(1).max(2_000).nullable(),\n createdAt: TimestampSchema,\n});\n\nexport const DatasetCatalogItemSchema = z.object({\n schemaVersion: z.literal(\"openpond.datasetCatalogItem.v1\"),\n tasksetId: IdSchema,\n tasksetRevision: z.number().int().positive(),\n artifactId: IdSchema.nullable(),\n name: z.string().trim().min(1).max(500),\n status: 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 storageKind: z.enum([\"inline\", \"parquet\"]),\n rowCount: z.number().int().nonnegative(),\n splitCounts: z.record(DatasetSplitSchema, z.number().int().nonnegative()),\n sizeBytes: z.number().int().nonnegative().nullable(),\n available: z.boolean(),\n unavailableReason: z.string().trim().min(1).max(2_000).nullable(),\n createdAt: TimestampSchema,\n updatedAt: TimestampSchema,\n});\n\nexport const DatasetCatalogResponseSchema = z.object({\n schemaVersion: z.literal(\"openpond.datasetCatalog.v1\"),\n profileId: IdSchema,\n datasets: z.array(DatasetCatalogItemSchema),\n generatedAt: TimestampSchema,\n});\n\nexport const DatasetArtifactRegistryEntrySchema = z.object({\n schemaVersion: z.literal(\"openpond.datasetArtifactRegistry.v1\"),\n manifest: DatasetArtifactManifestSchema,\n profileId: IdSchema,\n storageRoot: z.string().trim().min(1).max(4_000),\n relativeManifestPath: RelativePathSchema,\n available: z.boolean(),\n unavailableReason: z.string().trim().min(1).max(2_000).nullable(),\n verifiedAt: TimestampSchema.nullable(),\n createdAt: TimestampSchema,\n updatedAt: TimestampSchema,\n});\n\nexport const DatasetRowPageRequestSchema = z.object({\n split: DatasetSplitSchema.nullable().default(null),\n cursor: z.string().trim().min(1).max(2_000).nullable().default(null),\n limit: z.number().int().min(1).max(100).default(25),\n columns: z.array(z.string().trim().min(1).max(500)).max(100).default([]),\n});\n\nexport const DatasetRowPageSchema = z.object({\n schemaVersion: z.literal(\"openpond.datasetRowPage.v1\"),\n tasksetId: IdSchema,\n tasksetRevision: z.number().int().positive(),\n artifactHash: HashSchema,\n split: DatasetSplitSchema.nullable(),\n rows: z.array(z.record(z.string(), z.unknown())).max(100),\n nextCursor: z.string().max(2_000).nullable(),\n totalRows: z.number().int().nonnegative(),\n returnedRows: z.number().int().nonnegative(),\n});\n\nexport const DatasetStorageSettingsSchema = z.object({\n schemaVersion: z.literal(\"openpond.datasetStorageSettings.v1\"),\n datasetStorePath: z.string().trim().min(1).max(4_000),\n updatedAt: TimestampSchema,\n});\n\nexport const DatasetStorageRootSchema = z.object({\n id: IdSchema,\n label: z.string().trim().min(1).max(500),\n path: z.string().trim().min(1).max(4_000),\n datasetStorePath: z.string().trim().min(1).max(4_000),\n kind: z.enum([\"local\", \"network\", \"removable\", \"cache\"]),\n configured: z.boolean(),\n mounted: z.boolean(),\n writable: z.boolean(),\n totalBytes: z.number().int().nonnegative().nullable(),\n freeBytes: z.number().int().nonnegative().nullable(),\n});\n\nexport const DatasetStorageStateSchema = z.object({\n schemaVersion: z.literal(\"openpond.datasetStorageState.v1\"),\n settings: DatasetStorageSettingsSchema,\n storageRoots: z.array(DatasetStorageRootSchema),\n});\n\nexport const UpdateDatasetStorageSettingsRequestSchema = z.object({\n datasetStorePath: z.string().trim().min(1).max(4_000),\n});\n\nexport type DatasetSplit = z.infer<typeof DatasetSplitSchema>;\nexport type DatasetSemanticField = z.infer<typeof DatasetSemanticFieldSchema>;\nexport type DatasetSemanticSchema = z.infer<typeof DatasetSemanticSchemaSchema>;\nexport type DatasetShardRef = z.infer<typeof DatasetShardRefSchema>;\nexport type DatasetArtifactManifest = z.infer<\n typeof DatasetArtifactManifestSchema\n>;\nexport type DatasetArtifactSummary = z.infer<\n typeof DatasetArtifactSummarySchema\n>;\nexport type DatasetCatalogItem = z.infer<typeof DatasetCatalogItemSchema>;\nexport type DatasetCatalogResponse = z.infer<\n typeof DatasetCatalogResponseSchema\n>;\nexport type DatasetArtifactRegistryEntry = z.infer<\n typeof DatasetArtifactRegistryEntrySchema\n>;\nexport type DatasetRowPageRequest = z.infer<\n typeof DatasetRowPageRequestSchema\n>;\nexport type DatasetRowPage = z.infer<typeof DatasetRowPageSchema>;\nexport type DatasetStorageSettings = z.infer<typeof DatasetStorageSettingsSchema>;\nexport type DatasetStorageState = z.infer<typeof DatasetStorageStateSchema>;\nexport type DatasetStorageRoot = z.infer<typeof DatasetStorageRootSchema>;\n", "import { z } from \"zod\";\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 RevisionSchema = z.string().trim().min(7).max(256);\n\nexport const DatasetSourceReviewStatusSchema = z.enum([\n \"pending\",\n \"approved\",\n \"review\",\n \"blocked\",\n]);\n\nconst ExternalDatasetSourceBaseSchema = z.object({\n id: IdSchema,\n profileId: IdSchema,\n title: z.string().trim().min(1).max(500),\n sourceHash: HashSchema,\n occurredAt: TimestampSchema,\n licensingStatus: DatasetSourceReviewStatusSchema,\n secretScanStatus: z.enum([\"pending\", \"passed\", \"blocked\"]),\n piiScanStatus: z.enum([\"pending\", \"passed\", \"review\", \"blocked\"]),\n metadata: MetadataSchema,\n});\n\nexport const HuggingFaceDatasetSourceRefSchema =\n ExternalDatasetSourceBaseSchema.extend({\n schemaVersion: z.literal(\"openpond.huggingFaceDatasetSource.v1\"),\n kind: z.literal(\"huggingface\"),\n repositoryId: z.string().trim().regex(/^[^/\\s]+\\/[^/\\s]+$/).max(500),\n repositoryUrl: z.string().url().max(2_000),\n revision: RevisionSchema,\n configuration: z.string().trim().min(1).max(500),\n upstreamSplits: z.array(z.string().trim().min(1).max(500)).min(1).max(1_000),\n gated: z.boolean(),\n private: z.boolean(),\n declaredLicense: z.string().trim().min(1).max(500).nullable(),\n sourceFileHashes: z.array(HashSchema).min(1).max(100_000),\n });\n\nexport const UploadedFileDatasetSourceRefSchema =\n ExternalDatasetSourceBaseSchema.extend({\n schemaVersion: z.literal(\"openpond.uploadedFileDatasetSource.v1\"),\n kind: z.literal(\"uploaded_file\"),\n originalFileNames: z.array(z.string().trim().min(1).max(500)).min(1).max(1_000),\n mediaTypes: z.array(z.string().trim().min(1).max(200)).min(1).max(1_000),\n sourceFileHashes: z.array(HashSchema).min(1).max(1_000),\n totalBytes: z.number().int().nonnegative(),\n parserVersion: z.string().trim().min(1).max(200),\n });\n\nexport const GeneratedDatasetSourceRefSchema =\n ExternalDatasetSourceBaseSchema.extend({\n schemaVersion: z.literal(\"openpond.generatedDatasetSource.v1\"),\n kind: z.literal(\"generated\"),\n generatorId: IdSchema,\n generatorVersion: z.string().trim().min(1).max(200),\n seed: z.number().int(),\n generatorHash: HashSchema,\n });\n\nexport const LearningBatchDatasetSourceRefSchema = ExternalDatasetSourceBaseSchema.extend({\n schemaVersion: z.literal(\"openpond.learningBatchDatasetSource.v1\"),\n kind: z.literal(\"learning_batch\"),\n batch: z.object({ id: IdSchema, revision: z.number().int().positive(), contentHash: HashSchema }).strict(),\n taskDefinition: z.object({ id: IdSchema, revision: z.number().int().positive(), contentHash: HashSchema }).strict(),\n admittedBy: IdSchema,\n});\n\nexport const ExternalDatasetSourceRefSchema = z.discriminatedUnion(\"kind\", [\n HuggingFaceDatasetSourceRefSchema,\n UploadedFileDatasetSourceRefSchema,\n GeneratedDatasetSourceRefSchema,\n LearningBatchDatasetSourceRefSchema,\n]);\n\nexport type DatasetSourceReviewStatus = z.infer<\n typeof DatasetSourceReviewStatusSchema\n>;\nexport type HuggingFaceDatasetSourceRef = z.infer<\n typeof HuggingFaceDatasetSourceRefSchema\n>;\nexport type UploadedFileDatasetSourceRef = z.infer<\n typeof UploadedFileDatasetSourceRefSchema\n>;\nexport type GeneratedDatasetSourceRef = z.infer<\n typeof GeneratedDatasetSourceRefSchema\n>;\nexport type ExternalDatasetSourceRef = z.infer<\n typeof ExternalDatasetSourceRefSchema\n>;\n", "import { z } from \"zod\";\n\nimport {\n ImmutableReleaseRefSchema,\n ReleaseHashSchema,\n ReleaseIdSchema,\n} from \"@openpond/harness\";\n\nexport const HarnessActionBindingSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.harnessActionBinding.v1\"),\n actionId: ReleaseIdSchema,\n modelToolName: z\n .string()\n .trim()\n .min(1)\n .max(64)\n .regex(/^[a-zA-Z][a-zA-Z0-9_-]*$/),\n description: z.string().trim().min(1).max(1_000),\n inputSchema: z.record(z.string(), z.unknown()),\n actionSchemaHash: ReleaseHashSchema,\n agentRelease: ImmutableReleaseRefSchema,\n implementationHash: ReleaseHashSchema,\n runtimeBindingId: ReleaseIdSchema,\n capabilityReceiptHash: ReleaseHashSchema,\n sideEffect: z.enum([\"read\", \"write\"]),\n studentVisible: z.boolean(),\n timeoutMs: z.number().int().positive().max(3_600_000),\n episodeArgumentBindings: z\n .array(\n z\n .object({\n argument: ReleaseIdSchema,\n source: z.literal(\"case_id\"),\n })\n .strict(),\n )\n .max(20)\n .default([]),\n })\n .strict();\n\nexport type HarnessActionBinding = z.infer<typeof HarnessActionBindingSchema>;\n", "import { z } from \"zod\";\nimport { ChatModelRefSchema } from \"@openpond/harness/models\";\nimport { DatasetSplitSchema } from \"./taskset-draft-dataset-artifacts.js\";\nimport { ExternalDatasetSourceRefSchema } from \"./taskset-draft-dataset-sources.js\";\nimport { HarnessActionBindingSchema } from \"./taskset-draft-harness-actions.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 Sha256Schema = z.string().trim().regex(/^[a-f0-9]{64}$/);\nconst CodeIdentifierSchema = z.string().trim().regex(/^[A-Za-z_$][A-Za-z0-9_$]*$/);\nconst MetadataSchema = z.record(z.string(), z.unknown()).default({});\nconst NullableIdSchema = IdSchema.nullable();\n\nfunction safeRelativeFilePath(value: string): boolean {\n const normalized = value.trim().replaceAll(\"\\\\\", \"/\");\n if (\n !normalized\n || normalized.startsWith(\"/\")\n || normalized === \".\"\n || normalized === \"..\"\n ) {\n return false;\n }\n return !normalized.split(\"/\").some((segment) =>\n !segment || segment === \".\" || segment === \"..\"\n );\n}\n\nfunction safeFileName(value: string): boolean {\n const normalized = value.trim();\n return (\n normalized.length > 0\n && normalized !== \".\"\n && normalized !== \"..\"\n && !normalized.includes(\"/\")\n && !normalized.includes(\"\\\\\")\n && !normalized.includes(\"\\0\")\n );\n}\n\nexport const TasksetSplitSchema = DatasetSplitSchema;\n\nexport const TasksetPurposeSchema = z.enum([\"general\", \"benchmark\"]);\n\nexport const TasksetBenchmarkBindingSchema = z.object({\n schemaVersion: z.literal(\"openpond.tasksetBenchmark.v1\"),\n definitionId: IdSchema,\n releaseId: IdSchema,\n releaseHash: Sha256Schema,\n managedReleasePath: z.string().trim().min(1).max(1_000)\n .refine(safeRelativeFilePath, \"Benchmark release paths must remain relative.\"),\n adaptationSplit: TasksetSplitSchema,\n evaluationSplit: TasksetSplitSchema,\n primaryMetric: z.enum([\n \"foreground_tokens\",\n \"success_rate\",\n \"latency_ms\",\n \"cost_usd\",\n ]),\n qualityGate: z.enum([\"none\", \"non_regression\", \"all_pass\"]),\n source: z.enum([\"builtin\", \"imported\"]),\n metadata: MetadataSchema,\n});\n\nexport const TasksetPreferenceComparisonBindingSchema = z.object({\n schemaVersion: z.literal(\"openpond.tasksetPreferenceComparisonBinding.v1\"),\n releaseId: IdSchema,\n releaseHash: Sha256Schema,\n publishedAt: TimestampSchema,\n metadata: MetadataSchema,\n});\n\nexport const TrainingSourceConsentSchema = z.object({\n status: z.enum([\"pending\", \"granted\", \"denied\", \"revoked\"]),\n scope: z.enum([\"metadata_only\", \"selected_turns\", \"full_session\"]),\n grantedBy: NullableIdSchema,\n grantedAt: TimestampSchema.nullable(),\n purpose: z.literal(\"task_authoring_and_evaluation\"),\n});\n\nexport const TrainingSourceRefSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingSource.v1\"),\n id: IdSchema,\n profileId: IdSchema,\n sessionId: IdSchema,\n turnIds: z.array(IdSchema).max(1_000).default([]),\n workspaceId: NullableIdSchema,\n sourceHash: HashSchema,\n clusterKey: IdSchema,\n title: z.string().trim().min(1).max(500),\n occurredAt: TimestampSchema,\n consent: TrainingSourceConsentSchema,\n connectedAppIds: z.array(IdSchema).max(100).default([]),\n secretScanStatus: z.enum([\"pending\", \"passed\", \"blocked\"]),\n piiScanStatus: z.enum([\"pending\", \"passed\", \"review\", \"blocked\"]),\n licensingStatus: z.enum([\"pending\", \"approved\", \"review\", \"blocked\"]),\n metadata: MetadataSchema,\n});\n\nexport const TasksetSourceRefSchema = z.union([\n TrainingSourceRefSchema,\n ExternalDatasetSourceRefSchema,\n]);\n\nexport const TaskPolicyBoundarySchema = z.object({\n policyVisibleFields: z.array(IdSchema).max(1_000).default([]),\n privilegedFields: z.array(IdSchema).max(1_000).default([]),\n hiddenGraderRefs: z.array(IdSchema).max(100).default([]),\n connectedAppScopes: z.array(IdSchema).max(100).default([]),\n});\n\nexport const TaskAssetRefSchema = z.object({\n id: IdSchema,\n sourceRefId: IdSchema,\n artifactRef: z.string().trim().min(1).max(4_000)\n .refine(safeRelativeFilePath, \"Task asset references must be safe relative paths.\"),\n fileName: z.string().trim().min(1).max(500)\n .refine(safeFileName, \"Task asset file names must not contain path separators.\"),\n mediaType: z.string().trim().min(1).max(200),\n sha256: Sha256Schema,\n sizeBytes: z.number().int().nonnegative().max(250_000_000),\n split: TasksetSplitSchema,\n metadata: MetadataSchema,\n});\n\nexport const TaskRequiredOutputSchema = z.object({\n path: z.string().trim().min(1).max(1_000)\n .refine(safeRelativeFilePath, \"Required output paths must stay inside the Work output directory.\"),\n mediaType: z.string().trim().min(1).max(200),\n schemaRef: IdSchema.nullable().optional(),\n maxBytes: z.number().int().positive().max(10_000_000).optional(),\n metadata: MetadataSchema,\n});\n\nexport const TaskDataRecordSchema = z.object({\n schemaVersion: z.literal(\"openpond.taskData.v1\"),\n id: IdSchema,\n clusterKey: IdSchema,\n split: TasksetSplitSchema,\n input: z.record(z.string(), z.unknown()),\n expectedOutput: z.record(z.string(), z.unknown()).nullable(),\n policyVisibleContext: z.record(z.string(), z.unknown()).default({}),\n privilegedContextRef: NullableIdSchema,\n sourceRefs: z.array(IdSchema).min(1).max(100),\n assets: z.array(TaskAssetRefSchema).max(1_000).optional(),\n resourceRefs: z.array(IdSchema).max(1_000).optional(),\n requiredOutputs: z.array(TaskRequiredOutputSchema).max(100).optional(),\n tags: z.array(IdSchema).max(100).default([]),\n metadata: MetadataSchema,\n});\n\nexport const TasksetEnvironmentResourceSchema = z.object({\n id: IdSchema,\n kind: z.enum([\"file\", \"catalog\", \"configuration\", \"code_module\"]),\n path: z.string().trim().min(1).max(1_000)\n .refine(safeRelativeFilePath, \"Environment resource paths must remain relative.\"),\n mediaType: z.string().trim().min(1).max(200).nullable().optional(),\n visibility: z.enum([\"policy_visible\", \"policy_hidden\", \"privileged\"]),\n required: z.boolean(),\n metadata: MetadataSchema,\n});\n\nconst LearningSignalBaseSchema = z.object({\n id: IdSchema,\n taskId: NullableIdSchema,\n sourceRefs: z.array(IdSchema).min(1).max(100),\n artifactRef: IdSchema,\n approved: z.boolean(),\n confidence: z.number().min(0).max(1),\n metadata: MetadataSchema,\n});\n\nexport const DemonstrationSignalSchema = LearningSignalBaseSchema.extend({\n kind: z.literal(\"demonstration\"),\n prompt: z.string().max(100_000).nullable().default(null),\n response: z.string().max(200_000).nullable().default(null),\n});\n\nexport const PreferenceSignalSchema = LearningSignalBaseSchema.extend({\n kind: z.literal(\"preference\"),\n prompt: z.string().max(100_000),\n chosen: z.string().max(200_000),\n rejected: z.string().max(200_000),\n rationale: z.string().max(100_000).nullable().default(null),\n});\n\nexport const CorrectionSignalSchema = LearningSignalBaseSchema.extend({\n kind: z.literal(\"correction\"),\n original: z.string().max(200_000),\n corrected: z.string().max(200_000),\n rationale: z.string().max(100_000).nullable().default(null),\n});\n\nexport const FeedbackSignalSchema = LearningSignalBaseSchema.extend({\n kind: z.literal(\"feedback\"),\n feedback: z.string().max(100_000),\n polarity: z.enum([\"positive\", \"negative\", \"mixed\", \"neutral\"]),\n});\n\nexport const RewardSignalSchema = LearningSignalBaseSchema.extend({\n kind: z.literal(\"reward\"),\n task: z.string().max(100_000),\n rules: z.array(z.object({\n id: IdSchema,\n points: z.number().finite(),\n condition: z.string().trim().min(1).max(100_000),\n })).min(1).max(1_000),\n otherwisePoints: z.number().finite(),\n executable: z.boolean(),\n});\n\nexport const LabelSignalSchema = LearningSignalBaseSchema.extend({\n kind: z.literal(\"label\"),\n labelKind: z.literal(\"rubric\"),\n task: z.string().max(100_000),\n criteria: z.array(z.object({\n id: IdSchema,\n label: z.string().trim().min(1).max(500),\n description: z.string().trim().min(1).max(100_000),\n })).min(1).max(1_000),\n calibrationExamples: z.object({\n positive: z.string().trim().min(1).max(200_000),\n negative: z.string().trim().min(1).max(200_000),\n boundary: z.string().trim().min(1).max(200_000),\n }),\n});\n\nexport const LearningSignalRefSchema = z.discriminatedUnion(\"kind\", [\n DemonstrationSignalSchema,\n PreferenceSignalSchema,\n CorrectionSignalSchema,\n FeedbackSignalSchema,\n RewardSignalSchema,\n LabelSignalSchema,\n]);\n\nexport const LearningSignalInventorySchema = z.object({\n demonstrations: z.array(DemonstrationSignalSchema).max(100_000).default([]),\n preferences: z.array(PreferenceSignalSchema).max(100_000).default([]),\n corrections: z.array(CorrectionSignalSchema).max(100_000).default([]),\n feedback: z.array(FeedbackSignalSchema).max(100_000).default([]),\n rewards: z.array(RewardSignalSchema).max(100_000).default([]),\n labels: z.array(LabelSignalSchema).max(100_000).default([]),\n});\n\nexport const TasksetEnvironmentContractSchema = z.object({\n protocolVersion: z.literal(\"openpond.taskEnvironment.v1\"),\n kind: z.enum([\"chat\", \"agent\", \"program\", \"stateful_harness\", \"work\"]),\n entrypoint: z.string().trim().min(1).max(1_000),\n stateful: z.boolean(),\n deterministicSeeds: z.boolean(),\n toolNames: z.array(IdSchema).max(200).default([]),\n actionBindings: z.array(HarnessActionBindingSchema).max(200).optional(),\n lifecycle: z.array(z.enum([\"create\", \"reset\", \"step\", \"grade\", \"cleanup\"])).min(1),\n defaultTimeoutMs: z.number().int().positive().max(3_600_000),\n networkPolicy: z.enum([\"none\", \"declared_read_only\", \"declared_scoped\"]),\n resources: z.array(TasksetEnvironmentResourceSchema).max(10_000).optional(),\n metadata: MetadataSchema,\n});\n\nexport const TasksetCapabilityManifestSchema = z.object({\n schemaVersion: z.literal(\"openpond.tasksetCapabilities.v1\"),\n taskKind: z.enum([\"chat\", \"single_agent\", \"multi_agent\", \"custom_program\"]),\n supportedSignals: z.array(z.enum([\"demonstration\", \"preference\", \"correction\", \"feedback\", \"reward\", \"label\"])),\n compatibleMethods: z.array(z.enum([\"none\", \"retrieval\", \"sft\", \"dpo\", \"grpo\", \"ppo\", \"sdft\", \"opd\", \"opsd\", \"sdpo\"])),\n rewardKinds: z.array(z.enum([\"none\", \"exact\", \"deterministic\", \"model_judge\", \"human\"])),\n requiresTools: z.boolean(),\n requiresState: z.boolean(),\n requiresPrivilegedGrading: z.boolean(),\n environmentPlacements: z.array(z.enum([\"local\", \"remote\", \"colocated\", \"provider_native\"])),\n exportable: z.boolean(),\n portabilityBlockers: z.array(z.string().trim().min(1).max(2_000)).default([]),\n});\n\nconst GraderBaseSchema = z.object({\n id: IdSchema,\n version: z.string().trim().min(1).max(100),\n label: z.string().trim().min(1).max(500),\n weight: z.number().min(0).max(1_000).default(1),\n hardGate: z.boolean().default(false),\n rewardEligible: z.boolean().default(false),\n privileged: z.boolean().default(false),\n metadata: MetadataSchema,\n});\n\nexport const DeterministicGraderSpecSchema = GraderBaseSchema.extend({\n kind: z.enum([\"content\", \"schema\", \"file\", \"diff\", \"test\", \"runtime_event\", \"state\"]),\n config: z.record(z.string(), z.unknown()),\n});\n\nexport const RubricGraderSpecSchema = GraderBaseSchema.extend({\n kind: z.literal(\"model_judge\"),\n rubric: z.string().trim().min(1).max(50_000),\n judge: ChatModelRefSchema,\n calibrationFixtureRefs: z.array(IdSchema).min(1).max(500),\n calibrationStatus: z.enum([\"pending\", \"passed\", \"failed\"]),\n temperature: z.number().min(0).max(2).default(0),\n});\n\nexport const HumanGraderSpecSchema = GraderBaseSchema.extend({\n kind: z.literal(\"human\"),\n rubric: z.string().trim().min(1).max(50_000),\n reviewerRole: z.string().trim().min(1).max(500),\n});\n\nexport const CustomVerifierGraderSpecSchema = GraderBaseSchema.extend({\n kind: z.literal(\"custom_verifier\"),\n module: z.string().trim().min(1).max(1_000)\n .refine(safeRelativeFilePath, \"Custom verifier modules must use a safe relative path.\"),\n exportName: CodeIdentifierSchema,\n timeoutMs: z.number().int().positive().max(300_000),\n networkPolicy: z.literal(\"none\"),\n});\n\nexport const GraderSpecSchema = z.union([\n DeterministicGraderSpecSchema,\n RubricGraderSpecSchema,\n HumanGraderSpecSchema,\n CustomVerifierGraderSpecSchema,\n]);\n\nexport const GraderFixtureLabelSchema = z.enum([\n \"positive\",\n \"negative\",\n \"boundary\",\n \"adversarial\",\n \"prompt_injection\",\n \"infrastructure_failure\",\n]);\n\nexport const GraderFixtureSchema = z.object({\n id: IdSchema,\n taskId: IdSchema,\n label: GraderFixtureLabelSchema,\n output: z.record(z.string(), z.unknown()),\n infrastructureError: z.string().trim().min(1).max(10_000).nullable(),\n expectedPassed: z.boolean(),\n expectedRewardEligible: z.boolean(),\n metadata: MetadataSchema,\n});\n\nexport type TrainingSourceRef = z.infer<typeof TrainingSourceRefSchema>;\nexport type TasksetSourceRef = z.infer<typeof TasksetSourceRefSchema>;\nexport type TaskAssetRef = z.infer<typeof TaskAssetRefSchema>;\nexport type TaskRequiredOutput = z.infer<typeof TaskRequiredOutputSchema>;\nexport type TaskDataRecord = z.infer<typeof TaskDataRecordSchema>;\nexport type TasksetEnvironmentResource = z.infer<typeof TasksetEnvironmentResourceSchema>;\nexport type DemonstrationSignal = z.infer<typeof DemonstrationSignalSchema>;\nexport type PreferenceSignal = z.infer<typeof PreferenceSignalSchema>;\nexport type CorrectionSignal = z.infer<typeof CorrectionSignalSchema>;\nexport type FeedbackSignal = z.infer<typeof FeedbackSignalSchema>;\nexport type RewardSignal = z.infer<typeof RewardSignalSchema>;\nexport type LabelSignal = z.infer<typeof LabelSignalSchema>;\nexport type LearningSignalInventory = z.infer<typeof LearningSignalInventorySchema>;\nexport type TasksetEnvironmentContract = z.infer<typeof TasksetEnvironmentContractSchema>;\nexport type TasksetCapabilityManifest = z.infer<typeof TasksetCapabilityManifestSchema>;\nexport type GraderSpec = z.infer<typeof GraderSpecSchema>;\nexport type GraderFixture = z.infer<typeof GraderFixtureSchema>;\nexport type TasksetPurpose = z.infer<typeof TasksetPurposeSchema>;\nexport type TasksetBenchmarkBinding = z.infer<typeof TasksetBenchmarkBindingSchema>;\n", "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).min(1).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): 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 validateGraderFixtures(taskset, issues);\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[]): void {\n if (!taskset.graderFixtures.length) issues.push({ code: \"grader_fixtures_required\", severity: \"error\", message: \"Taskset admission requires authored grader fixtures.\", path: \"graderFixtures\" });\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 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 if (fileNames.has(asset.fileName)) {\n issues.push({\n code: \"work_asset_duplicate_name\",\n severity: \"error\",\n message: `Task ${task.id} repeats staged file name ${asset.fileName}.`,\n path: `${path}.fileName`,\n });\n }\n assetIds.add(asset.id);\n fileNames.add(asset.fileName);\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 ids = new Set<string>();\n for (const grader of taskset.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": ["z", "IdSchema", "TimestampSchema", "HashSchema", "z", "z", "z", "IdSchema", "z", "TimestampSchema", "HashSchema", "MetadataSchema", "z", "IdSchema", "z", "TimestampSchema", "HashSchema", "MetadataSchema", "NullableIdSchema"]
|
|
7
|
+
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ModelStarterExecutionSchema,
|
|
3
3
|
validateModelStarterExecution,
|
|
4
|
-
validateModelTasksetPackage
|
|
5
|
-
|
|
4
|
+
validateModelTasksetPackage,
|
|
5
|
+
validateTasksetPackage
|
|
6
|
+
} from "./chunk-B3CH4V35.js";
|
|
6
7
|
import {
|
|
7
8
|
contentHash
|
|
8
9
|
} from "./chunk-QUOW6URQ.js";
|
|
@@ -25,17 +26,21 @@ import { assertBoundedTaskJson, validateTaskValue } from "@openpond/evals/task-s
|
|
|
25
26
|
import { compileBoundGraders } from "@openpond/evals/rewards";
|
|
26
27
|
function prepareModelTrainingDefaults(input) {
|
|
27
28
|
const setup = ModelProjectTrainingSetupSchema.parse(input.setup);
|
|
28
|
-
const
|
|
29
|
-
|
|
29
|
+
const portable = typeof input.package === "object" && input.package !== null && "schemaVersion" in input.package && input.package.schemaVersion === "openpond.tasksetPackage.v1" ? validateTasksetPackage(input.package) : null;
|
|
30
|
+
const bound = portable ? null : validateModelTasksetPackage(input.package);
|
|
31
|
+
const source = portable ?? bound;
|
|
32
|
+
const ref = setup.tasksetRef;
|
|
33
|
+
const selected = ref && ref.revision === source.taskset.revision && (portable ? ref.id === portable.taskset.id && ref.contentHash === portable.taskset.contentHash || ref.id === portable.taskset.metadata.sourceTasksetId && ref.contentHash === portable.taskset.metadata.sourceTasksetHash : ref.id === source.taskset.id);
|
|
34
|
+
if (!selected) return setup;
|
|
30
35
|
if (!setup.evaluationTasksetRef && source.taskset.tasks.some((task) => task.split === "frozen_eval" || task.split === "validation")) {
|
|
31
36
|
setup.evaluationTasksetRef = setup.tasksetRef;
|
|
32
37
|
}
|
|
33
38
|
const base = setup.baseModel;
|
|
34
39
|
if (setup.method !== "grpo" || setup.recipe || !base?.revision || !base.tokenizerRevision || !base.chatTemplateHash) return setup;
|
|
35
40
|
const training = source.taskset.tasks.filter((task) => task.split === "train");
|
|
36
|
-
const graders = compileBoundGraders(
|
|
37
|
-
const grader = graders.find((candidate) => candidate.rewardEligible);
|
|
38
|
-
const environment =
|
|
41
|
+
const graders = portable ? portable.taskset.graders : compileBoundGraders(bound.rewardBinding, bound.rewards);
|
|
42
|
+
const grader = graders.find((candidate) => candidate.rewardEligible && candidate.weight > 0);
|
|
43
|
+
const environment = portable?.environment ?? bound?.executionResources?.environment ?? bound?.execution?.environment;
|
|
39
44
|
if (!training.length || !grader || !environment) return setup;
|
|
40
45
|
const groupSize = 8;
|
|
41
46
|
const maxSteps = 8;
|
|
@@ -299,4 +304,4 @@ export {
|
|
|
299
304
|
previewModelStarter,
|
|
300
305
|
validateResolvedModelStarter
|
|
301
306
|
};
|
|
302
|
-
//# sourceMappingURL=chunk-
|
|
307
|
+
//# sourceMappingURL=chunk-ZIMHPYXL.js.map
|