openpond-sdk 0.5.23 → 0.5.25

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.
Files changed (47) hide show
  1. package/dist/{chunk-NHMZCVZO.js → chunk-7PCER4VL.js} +23 -4
  2. package/dist/{chunk-NHMZCVZO.js.map → chunk-7PCER4VL.js.map} +2 -2
  3. package/dist/{chunk-NZ35HEEK.js → chunk-GFVMIDP5.js} +3 -3
  4. package/dist/chunk-GFVMIDP5.js.map +7 -0
  5. package/dist/{chunk-SMWHGQ5W.js → chunk-GRGVOTZV.js} +2 -2
  6. package/dist/{chunk-TLXDZ4VG.js → chunk-S5UZTXXB.js} +2 -2
  7. package/dist/{chunk-IIZV2N5F.js → chunk-YVOKMF45.js} +2 -2
  8. package/dist/model-starter-catalog.js +2 -2
  9. package/dist/model-starters.js +2 -2
  10. package/dist/taskset-drafts.js +3 -3
  11. package/dist/taskset-packages.js +4 -4
  12. package/dist/training-bundle.js +5 -5
  13. package/dist/training-bundle.js.map +2 -2
  14. package/dist/types/packages/sdk/src/model-batch-review-contracts.d.ts +64 -0
  15. package/dist/types/packages/sdk/src/model-batch-review-contracts.d.ts.map +1 -1
  16. package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts +5 -0
  17. package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts.map +1 -1
  18. package/dist/types/packages/sdk/src/model-batch-review.d.ts +50 -0
  19. package/dist/types/packages/sdk/src/model-batch-review.d.ts.map +1 -1
  20. package/dist/types/packages/sdk/src/model-starter-attempts.d.ts +86 -5
  21. package/dist/types/packages/sdk/src/model-starter-attempts.d.ts.map +1 -1
  22. package/dist/types/packages/sdk/src/model-starter-catalog.d.ts +5 -0
  23. package/dist/types/packages/sdk/src/model-starter-catalog.d.ts.map +1 -1
  24. package/dist/types/packages/sdk/src/model-starter-execution.d.ts +3 -3
  25. package/dist/types/packages/sdk/src/model-starter-execution.d.ts.map +1 -1
  26. package/dist/types/packages/sdk/src/model-starters.d.ts +10 -0
  27. package/dist/types/packages/sdk/src/model-starters.d.ts.map +1 -1
  28. package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts +5 -0
  29. package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts.map +1 -1
  30. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts +1 -1
  31. package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts +55 -0
  32. package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts.map +1 -1
  33. package/dist/types/packages/sdk/src/taskset-package-client.d.ts +207 -0
  34. package/dist/types/packages/sdk/src/taskset-package-client.d.ts.map +1 -1
  35. package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts +138 -0
  36. package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts.map +1 -1
  37. package/dist/types/packages/sdk/src/taskset-package-grader-projection.d.ts.map +1 -1
  38. package/dist/types/packages/sdk/src/taskset-package-learning.d.ts +114 -0
  39. package/dist/types/packages/sdk/src/taskset-package-learning.d.ts.map +1 -1
  40. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts +55 -0
  41. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts.map +1 -1
  42. package/dist/types/packages/sdk/src/training-bundle.d.ts.map +1 -1
  43. package/package.json +2 -2
  44. package/dist/chunk-NZ35HEEK.js.map +0 -7
  45. /package/dist/{chunk-SMWHGQ5W.js.map → chunk-GRGVOTZV.js.map} +0 -0
  46. /package/dist/{chunk-TLXDZ4VG.js.map → chunk-S5UZTXXB.js.map} +0 -0
  47. /package/dist/{chunk-IIZV2N5F.js.map → chunk-YVOKMF45.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  GraderSpecSchema,
3
3
  decodeTasksetPackageFile
4
- } from "./chunk-TLXDZ4VG.js";
4
+ } from "./chunk-S5UZTXXB.js";
5
5
  import {
6
6
  CapabilityRequirementSchema,
7
7
  ToolDeclarationSchema
@@ -372,7 +372,7 @@ function segment(value) {
372
372
 
373
373
  // src/taskset-package-grader-projection.ts
374
374
  import { compileBoundGraders as compileBoundGraders2, resolveBoundRewards } from "@openpond/evals/rewards";
375
- import { learningRef, verifyLearningTextAsset } from "@openpond/evals/learning";
375
+ import { learningRef, verifyLearningTextAsset, RewardFixtureAuthoringFieldsSchema } from "@openpond/evals/learning";
376
376
  import { z } from "zod";
377
377
  function importedPackageGraders(value) {
378
378
  const authoring = value.taskset.metadata.ordinaryAuthoring;
@@ -414,7 +414,26 @@ function projectLearningBatchGraders(binding, rewards, assets = []) {
414
414
  return compileBoundGraders2(binding, rewards).map((grader) => {
415
415
  const reward = resolved.find(({ source }) => source.graderId === grader.id).reward;
416
416
  const base = { ...grader, label: reward.name, metadata: { rewardBinding: learningRef(binding) } };
417
- if (grader.kind === "model_judge") throw new Error(`Reward ${grader.id} needs a calibrated model execution adapter before preparation.`);
417
+ if (grader.kind === "model_judge") {
418
+ if (!grader.model || grader.calibrationStatus !== "passed" || !reward.calibrationCheckRef || !reward.fixtureSetRef) throw new Error(`Reward ${grader.id} needs a retained passing calibration check before preparation.`);
419
+ const rubric = assets.find((asset) => asset.id === grader.rubricRef.id);
420
+ const fixtures = assets.find((asset) => asset.id === reward.fixtureSetRef.id);
421
+ if (!rubric || !fixtures) throw new Error(`Reward ${grader.id} is missing its immutable rubric or calibration fixtures.`);
422
+ const fields = RewardFixtureAuthoringFieldsSchema.array().min(1).max(50).parse(JSON.parse(verifyLearningTextAsset(fixtures, reward.fixtureSetRef)));
423
+ return GraderSpecSchema.parse({
424
+ ...base,
425
+ rubric: verifyLearningTextAsset(rubric, grader.rubricRef),
426
+ judge: grader.model,
427
+ temperature: grader.temperature ?? 0,
428
+ calibrationFixtureRefs: fields.map((fixture) => fixture.id),
429
+ metadata: {
430
+ ...base.metadata,
431
+ portableRubricRef: grader.rubricRef,
432
+ calibrationEvidenceHash: reward.calibrationCheckRef.contentHash,
433
+ calibrationCheckRef: reward.calibrationCheckRef
434
+ }
435
+ });
436
+ }
418
437
  if (grader.kind === "custom_verifier") return GraderSpecSchema.parse({
419
438
  ...base,
420
439
  module: learningVerifierModule(grader.verifierRef.contentHash),
@@ -444,4 +463,4 @@ export {
444
463
  projectLearningBatchGraders,
445
464
  learningVerifierModule
446
465
  };
447
- //# sourceMappingURL=chunk-NHMZCVZO.js.map
466
+ //# sourceMappingURL=chunk-7PCER4VL.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/taskset-authored-portable-release.ts", "../src/taskset-package-grader-projection.ts"],
4
- "sourcesContent": ["import type { Taskset } from \"./taskset-authored-contracts.js\";\nimport type {\n GraderSpec,\n TaskDataRecord,\n} from \"./taskset-draft-core.js\";\nimport {\n TaskRecordSchema,\n GraderSpecSchema as PortableGraderSpecSchema,\n TasksetReleaseContentSchema,\n TasksetReleaseSchema,\n bindTasksetExecutionReleases,\n createEnvironmentRelease,\n createVerifierSetRelease,\n EnvironmentReleaseSchema,\n VerifierSetReleaseSchema,\n verifyEnvironmentRelease,\n verifyVerifierSetRelease,\n verifyPreferenceComparisonRelease,\n type EnvironmentContract,\n type GraderSpec as PortableGraderSpec,\n type PreferenceComparisonRelease,\n type TasksetRelease,\n} from \"@openpond/evals\";\nimport type {\n ImmutableAssetRef,\n ToolDeclaration,\n} from \"@openpond/harness\";\nimport {\n CapabilityRequirementSchema,\n ImmutableAssetRefSchema,\n ToolDeclarationSchema,\n} from \"@openpond/harness\";\n\nimport { contentHash, sha256 } from \"@openpond/harness\";\nimport { TaskBatchPackageMetadataSchema } from \"@openpond/evals/learning\";\nimport { compileBoundGraders, RewardBindingSchema, RewardReleaseSchema, type RewardBinding, type RewardRelease } from \"@openpond/evals/rewards\";\nimport { portableDeterministicCheck } from \"@openpond/evals/graders\";\n\nexport type TasksetRewardExecution = { binding: RewardBinding; rewards: RewardRelease[] };\n\nexport function resolvePortableTasksetRewardExecution(taskset: Taskset, supplied?: TasksetRewardExecution): TasksetRewardExecution | null {\n const learning = taskset.metadata.learning === undefined ? null : TaskBatchPackageMetadataSchema.parse(taskset.metadata.learning);\n const embedded = taskset.metadata.rewardExecution as { binding?: unknown; rewards?: unknown } | undefined;\n const execution = supplied ?? (embedded ? {\n binding: RewardBindingSchema.parse(embedded.binding),\n rewards: RewardReleaseSchema.array().parse(embedded.rewards),\n } : learning);\n if (taskset.metadata.rewardBinding !== undefined) {\n const reference = taskset.metadata.rewardBinding as Partial<RewardBinding> | null;\n if (!execution || !reference || reference.id !== execution.binding.id\n || reference.revision !== execution.binding.revision || reference.contentHash !== execution.binding.contentHash) {\n throw new Error(\"Portable Taskset requires its exact published Reward binding.\");\n }\n }\n if (execution) compileBoundGraders(execution.binding, execution.rewards);\n return execution ? { binding: execution.binding, rewards: execution.rewards } : null;\n}\n\nexport function materializePortableTasksetRelease(input: {\n taskset: Taskset;\n selectedTasks?: TaskDataRecord[];\n adapterId: string;\n admittedTasksetRelease?: TasksetRelease | null;\n rewardExecution?: TasksetRewardExecution;\n}): {\n environmentRelease: ReturnType<typeof createEnvironmentRelease>;\n verifierSetRelease: ReturnType<typeof createVerifierSetRelease>;\n tasksetRelease: TasksetRelease;\n} {\n const environment = portableEnvironment(input.taskset);\n const tools = portableTools(input.taskset);\n const learning = input.taskset.metadata.learning === undefined ? null : TaskBatchPackageMetadataSchema.parse(input.taskset.metadata.learning);\n const embedded = input.taskset.metadata.rewardExecution;\n const rewardExecution = resolvePortableTasksetRewardExecution(input.taskset, input.rewardExecution);\n const graders = rewardExecution ? compileBoundGraders(rewardExecution.binding, rewardExecution.rewards) : input.taskset.graders.map(portableGrader);\n const tasks = input.selectedTasks?.length\n ? input.selectedTasks\n : input.taskset.tasks;\n if (!tasks.length) throw new Error(\"A portable Taskset release requires at least one task.\");\n const pinned = input.taskset.environment.metadata.portableExecutionResources as { environment?: unknown; verifierSet?: unknown } | undefined;\n if (environment.entrypoint === \"openpond.javascript-environment.v1\" && !pinned) throw new Error(\"Tool Taskset publication requires its pinned execution resources.\");\n const environmentRelease = pinned ? EnvironmentReleaseSchema.parse(pinned.environment) : createEnvironmentRelease({\n schemaVersion: \"openpond.environmentRelease.v1\",\n id: `environment-release-${input.taskset.id}-r${input.taskset.revision}`,\n revision: input.taskset.revision,\n contract: environment,\n actionSchemaRef: null,\n observationSchemaRef: null,\n stateSchemaRef: null,\n artifactCollection: {\n maxArtifacts: 100_000,\n maxTotalBytes: 250_000_000,\n },\n adapterConformanceHashes: {\n [input.adapterId]: contentHash({ adapterId: input.adapterId, environment, tools }),\n },\n metadata: {\n sourceTasksetId: input.taskset.id,\n sourcePackageHash: input.taskset.metadata.sourcePackageHash ?? null,\n resources: input.taskset.environment.resources ?? [],\n },\n });\n const verifierSetRelease = pinned?.verifierSet !== undefined ? VerifierSetReleaseSchema.parse(pinned.verifierSet) : createVerifierSetRelease({\n schemaVersion: \"openpond.verifierSetRelease.v1\",\n id: `verifier-set-release-${input.taskset.id}-r${input.taskset.revision}`,\n revision: input.taskset.revision,\n graders,\n isolation: {\n processBoundary: \"isolated_process\",\n networkPolicy: \"none\",\n defaultTimeoutMs: Math.min(input.taskset.environment.defaultTimeoutMs, 300_000),\n },\n calibrationReceiptRefs: [],\n metadata: { sourceTasksetId: input.taskset.id },\n });\n if (!verifyEnvironmentRelease(environmentRelease) || !verifyVerifierSetRelease(verifierSetRelease) ||\n contentHash(environmentRelease.contract) !== contentHash(environment) || contentHash(verifierSetRelease.graders) !== contentHash(graders)) {\n throw new Error(\"Taskset execution resources differ from its declared environment or graders.\");\n }\n const tasksetContent = TasksetReleaseContentSchema.parse({\n schemaVersion: \"openpond.tasksetRelease.v2\",\n id: input.taskset.metadata.derivedPortableMetadata === undefined ? `taskset-release-${input.taskset.id}-r${input.taskset.revision}` : input.taskset.id,\n revision: input.taskset.revision,\n policy: {\n policyVisibleFields: input.taskset.policy.policyVisibleFields,\n privilegedFields: input.taskset.policy.privilegedFields,\n hiddenGraderRefs: input.taskset.policy.hiddenGraderRefs,\n connectedAppScopes: input.taskset.policy.connectedAppScopes,\n },\n environment,\n tools,\n capabilities: portableCapabilities(input.taskset),\n tasks: tasks.map(projectPortableTaskRecord),\n graders,\n ...(input.taskset.metrics ? { metrics: input.taskset.metrics } : {}),\n metadata: input.taskset.metadata.derivedPortableMetadata ?? {\n sourceTasksetId: input.taskset.id,\n sourceTasksetHash: input.taskset.contentHash,\n sourcePackageHash: input.taskset.metadata.sourcePackageHash ?? null,\n environmentResources: input.taskset.environment.resources ?? [],\n ordinaryAuthoring: {\n instructions: input.taskset.objective,\n graderFixtures: input.taskset.graderFixtures,\n judgeCalibrationFixtures: Object.fromEntries(input.taskset.graders\n .filter(grader => grader.kind === \"model_judge\")\n .map(grader => [grader.id, grader.calibrationFixtureRefs])),\n },\n ...(learning ? { learning } : {}),\n // A sealed batch already pins these resources in learning metadata.\n // Resolving that same binding at admission must not change its release.\n ...(rewardExecution && !learning && (input.rewardExecution || embedded) ? { rewardExecution: { binding: rewardExecution.binding, rewards: rewardExecution.rewards } } : {}),\n },\n });\n const draft = input.admittedTasksetRelease\n ? TasksetReleaseSchema.parse(input.admittedTasksetRelease)\n : TasksetReleaseSchema.parse({\n ...tasksetContent,\n contentHash: contentHash(tasksetContent),\n });\n const tasksetRelease = draft.environmentRelease\n ? assertReleaseBindings({ draft, environmentRelease, verifierSetRelease })\n : bindTasksetExecutionReleases({\n taskset: draft,\n environment: environmentRelease,\n verifierSet: verifierSetRelease,\n });\n return { environmentRelease, verifierSetRelease, tasksetRelease };\n}\n\n/**\n * Admits a published comparison policy against the exact portable Taskset\n * release it names. A comparison is deliberately not embedded in that release:\n * doing so would create a content-hash cycle between Taskset and comparison.\n */\nexport function projectPreferenceComparisonRelease(input: {\n tasksetRelease: TasksetRelease;\n preferenceComparison: PreferenceComparisonRelease;\n}): PreferenceComparisonRelease {\n if (!verifyPreferenceComparisonRelease(input.preferenceComparison)) {\n throw new Error(\"Preference comparison release failed immutable content verification.\");\n }\n const release = input.preferenceComparison;\n if (\n release.tasksetRelease.id !== input.tasksetRelease.id\n || release.tasksetRelease.contentHash !== input.tasksetRelease.contentHash\n ) {\n throw new Error(\"Preference comparison release must reference the admitted portable Taskset release.\");\n }\n return release;\n}\n\nexport function portableTasksetEnvironment(taskset: Taskset): EnvironmentContract {\n return portableEnvironment(taskset);\n}\n\nexport function portableTasksetTools(taskset: Taskset): ToolDeclaration[] {\n return portableTools(taskset);\n}\n\n/** Preserve immutable file/schema references while overlaying current edits. */\nexport function projectPortableTaskRecord(task: TaskDataRecord) {\n const admitted = task.metadata.portableTaskRecord;\n if (admitted !== undefined) {\n const original = TaskRecordSchema.parse(admitted);\n const projected = TaskRecordSchema.parse({\n ...original,\n id: task.id,\n clusterKey: task.clusterKey,\n split: task.split,\n input: task.input,\n expectedOutput: portableExpectedOutput(task),\n policyVisibleContext: task.policyVisibleContext,\n privilegedContextRef: task.privilegedContextRef,\n tags: task.tags,\n artifactRefs: task.assets === undefined ? original.artifactRefs : task.assets.map((asset) => {\n const previous = original.artifactRefs.find(item => item.id === asset.id);\n return {\n id: asset.id,\n path: previous?.path ?? `tasks/${segment(task.id)}/${segment(asset.fileName)}`,\n contentHash: hash(asset.sha256),\n sizeBytes: asset.sizeBytes,\n mediaType: asset.mediaType,\n visibility: previous?.visibility ?? \"policy\",\n };\n }),\n requiredOutputs: task.requiredOutputs === undefined ? original.requiredOutputs : task.requiredOutputs.map((output) => {\n const previous = original.requiredOutputs?.find(item => item.path === output.path);\n return {\n path: output.path,\n mediaType: output.mediaType,\n schemaRef: previous?.schemaRef && previous.schemaRef.id === output.schemaRef ? previous.schemaRef : null,\n maxBytes: output.maxBytes ?? null,\n metadata: {\n ...output.metadata,\n ...(output.schemaRef && previous?.schemaRef?.id !== output.schemaRef\n ? { legacySchemaRef: output.schemaRef }\n : {}),\n },\n };\n }),\n });\n if (projected.requiredOutputs === undefined) delete projected.requiredOutputs;\n return projected;\n }\n return {\n id: task.id,\n clusterKey: task.clusterKey,\n split: task.split,\n input: task.input,\n expectedOutput: portableExpectedOutput(task),\n policyVisibleContext: task.policyVisibleContext,\n privilegedContextRef: task.privilegedContextRef,\n artifactRefs: (task.assets ?? []).map((item) => ({\n id: item.id,\n path: `tasks/${segment(task.id)}/${segment(item.fileName)}`,\n contentHash: hash(item.sha256),\n sizeBytes: item.sizeBytes,\n mediaType: item.mediaType,\n visibility: \"policy\" as const,\n })),\n requiredOutputs: (task.requiredOutputs ?? []).map((output) => ({\n path: output.path,\n mediaType: output.mediaType,\n schemaRef: null,\n maxBytes: output.maxBytes ?? null,\n metadata: {\n ...output.metadata,\n legacySchemaRef: output.schemaRef ?? null,\n },\n })),\n tags: task.tags,\n };\n}\n\nfunction portableExpectedOutput(\n task: TaskDataRecord,\n): Record<string, unknown> | null {\n if (!task.expectedOutput) return null;\n if (\"artifactRenderer\" in task.expectedOutput) {\n throw new Error(\n `Task ${task.id} embeds an artifact renderer. Put shared renderer configuration in Environment resources and reference it from the Scenario.`,\n );\n }\n return task.expectedOutput;\n}\n\nfunction portableEnvironment(taskset: Taskset): EnvironmentContract {\n const kind: EnvironmentContract[\"kind\"] = taskset.environment.kind === \"chat\"\n ? \"text\"\n : taskset.environment.kind === \"work\" ? \"work\"\n : taskset.environment.kind === \"program\" ? \"custom_program\" : \"agent\";\n return {\n protocolVersion: \"openpond.environment.v1\",\n kind,\n entrypoint: taskset.environment.entrypoint,\n stateful: taskset.environment.stateful,\n deterministicSeeds: taskset.environment.deterministicSeeds,\n lifecycle: [\"create\", \"reset\", \"step\", \"collect\", \"destroy\"],\n networkPolicy: taskset.environment.networkPolicy,\n defaultTimeoutMs: taskset.environment.defaultTimeoutMs,\n };\n}\n\nfunction portableTools(taskset: Taskset): ToolDeclaration[] {\n const admitted = taskset.environment.metadata.portableTools;\n if (admitted !== undefined) {\n return ToolDeclarationSchema.array().max(200).parse(admitted);\n }\n const bindings = taskset.environment.actionBindings ?? [];\n if (bindings.length) return bindings.map((binding) => ({\n name: binding.modelToolName,\n description: binding.description,\n inputSchema: binding.inputSchema,\n inputSchemaHash: hash(binding.actionSchemaHash),\n sideEffect: binding.sideEffect,\n timeoutMs: binding.timeoutMs,\n }));\n return taskset.environment.toolNames.map((name) => ({\n name,\n description: `Host-provided ${name} tool.`,\n inputSchema: {},\n inputSchemaHash: contentHash({}),\n sideEffect: \"write\" as const,\n timeoutMs: taskset.environment.defaultTimeoutMs,\n }));\n}\n\nfunction portableGrader(grader: GraderSpec): PortableGraderSpec {\n const base = {\n id: grader.id,\n version: grader.version,\n weight: grader.weight,\n hardGate: grader.hardGate,\n rewardEligible: grader.rewardEligible,\n privileged: grader.privileged,\n };\n if (grader.kind === \"model_judge\") return {\n ...base,\n kind: \"model_judge\",\n rubricRef: rubricAsset(grader),\n model: modelJudgeRef(grader),\n temperature: grader.temperature,\n calibrationStatus: grader.calibrationStatus,\n };\n if (grader.kind === \"custom_verifier\") {\n if (grader.metadata.portableVerifierRef === undefined) {\n throw new Error(`Custom verifier ${grader.id} requires its immutable executable asset before publication.`);\n }\n const imported = PortableGraderSpecSchema.safeParse(grader.metadata.portableGrader);\n // An omitted portable export means \"verify\". Preserve that encoding on an\n // unchanged import so executing it does not silently replace its release.\n const preserveDefault = imported.success && imported.data.kind === \"custom_verifier\"\n && imported.data.exportName === undefined && grader.exportName === \"verify\";\n return {\n ...base,\n kind: \"custom_verifier\",\n verifierRef: ImmutableAssetRefSchema.parse(grader.metadata.portableVerifierRef),\n timeoutMs: grader.timeoutMs,\n ...(preserveDefault ? {} : { exportName: grader.exportName }),\n networkPolicy: \"none\",\n };\n }\n if (grader.kind === \"human\") return {\n ...base,\n kind: \"human\",\n rubricRef: rubricAsset(grader),\n reviewerRole: grader.reviewerRole,\n };\n return {\n ...base,\n ...portableDeterministicCheck(grader),\n };\n}\n\nfunction portableCapabilities(taskset: Taskset) {\n const admitted = taskset.metadata.portableCapabilities;\n if (admitted !== undefined) {\n return CapabilityRequirementSchema.array().max(200).parse(admitted);\n }\n return [\n ...(taskset.capabilities.requiresTools\n ? [{ id: \"tools\", required: true, scopes: taskset.environment.toolNames }]\n : []),\n ...(taskset.capabilities.requiresState\n ? [{ id: \"local-state\", required: true, scopes: [] }]\n : []),\n ...(taskset.capabilities.requiresPrivilegedGrading\n ? [{ id: \"private-verifier\", required: true, scopes: taskset.policy.hiddenGraderRefs }]\n : []),\n ...taskset.policy.connectedAppScopes.map((scope) => ({\n id: `connected-app-${segment(scope)}`,\n required: true,\n scopes: [scope],\n })),\n ].map((requirement) => ({\n ...requirement,\n portability: requirement.id === \"local-state\" ? \"host_adapter\" as const : \"portable\" as const,\n }));\n}\n\nfunction assertReleaseBindings(input: {\n draft: TasksetRelease;\n environmentRelease: ReturnType<typeof createEnvironmentRelease>;\n verifierSetRelease: ReturnType<typeof createVerifierSetRelease>;\n}): TasksetRelease {\n if (\n input.draft.environmentRelease?.id !== input.environmentRelease.id\n || input.draft.environmentRelease.contentHash !== input.environmentRelease.contentHash\n ) {\n throw new Error(\"Admitted Taskset Release binds a different Environment Release.\");\n }\n if (\n input.draft.verifierSetRelease?.id !== input.verifierSetRelease.id\n || input.draft.verifierSetRelease.contentHash !== input.verifierSetRelease.contentHash\n ) {\n throw new Error(\"Admitted Taskset Release binds a different Verifier Set Release.\");\n }\n if (contentHash(input.draft.environment) !== contentHash(input.environmentRelease.contract)) {\n throw new Error(\"Admitted Taskset Environment differs from its bound Environment Release.\");\n }\n if (contentHash(input.draft.graders) !== contentHash(input.verifierSetRelease.graders)) {\n throw new Error(\"Admitted Taskset graders differ from its bound Verifier Set Release.\");\n }\n return input.draft;\n}\n\nfunction modelJudgeRef(grader: Extract<GraderSpec, { kind: \"model_judge\" }>) {\n const previous = grader.metadata.portableGrader === undefined ? null : PortableGraderSpecSchema.parse(grader.metadata.portableGrader);\n const revision = previous?.kind === \"model_judge\" && previous.model?.providerId === grader.judge.providerId && previous.model.modelId === grader.judge.modelId ? previous.model.revision : null;\n return { ...grader.judge, revision };\n}\n\nfunction rubricAsset(grader: Extract<GraderSpec, { kind: \"human\" | \"model_judge\" }>): ImmutableAssetRef {\n const contentHash = sha256(grader.rubric);\n const sizeBytes = new TextEncoder().encode(grader.rubric).byteLength;\n const reference = grader.metadata.portableRubricRef;\n if (reference !== undefined) {\n const asset = ImmutableAssetRefSchema.parse(reference);\n if (asset.contentHash !== contentHash || asset.sizeBytes !== sizeBytes || asset.visibility === \"policy\") throw new Error(\"Taskset rubric differs from its published private source.\");\n return asset;\n }\n return { id: `rubric-${grader.id}`, path: `graders/${segment(grader.id)}/rubric.md`, contentHash, sizeBytes, mediaType: \"text/markdown\", visibility: \"verifier\" };\n}\n\nfunction hash(value: string): string {\n return /^[a-f0-9]{64}$/.test(value) ? value : contentHash(value);\n}\n\nfunction segment(value: string): string {\n const normalized = value.trim().replace(/[^a-zA-Z0-9._-]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n return normalized || \"asset\";\n}\n", "import { compileBoundGraders, resolveBoundRewards, type RewardBinding, type RewardRelease } from \"@openpond/evals/rewards\";\nimport { learningRef, verifyLearningTextAsset, type LearningTextAsset } from \"@openpond/evals/learning\";\nimport type { GraderSpec } from \"./taskset-draft-core.js\";\nimport { GraderSpecSchema } from \"./taskset-draft-core.js\";\nimport { decodeTasksetPackageFile, type TasksetPackage } from \"./taskset-package-contracts.js\";\nimport { z } from \"zod\";\n\n/** Project an ordinary portable package without inventing a Reward binding. */\nexport function importedPackageGraders(value: TasksetPackage) {\n const authoring = value.taskset.metadata.ordinaryAuthoring as { judgeCalibrationFixtures?: unknown } | undefined;\n const calibrationFixtures = z.record(z.string(), z.array(z.string().min(1)).max(100_000)).parse(authoring?.judgeCalibrationFixtures ?? {});\n return value.taskset.graders.map(grader => {\n const base = { ...grader, label: grader.id, metadata: { portableGrader: grader } };\n if (grader.kind === \"custom_verifier\") return GraderSpecSchema.parse({ ...base,\n module: learningVerifierModule(grader.verifierRef.contentHash), exportName: grader.exportName ?? \"verify\",\n metadata: { ...base.metadata, portableVerifierRef: grader.verifierRef } });\n if (grader.kind === \"human\" || grader.kind === \"model_judge\") {\n const file = value.files.find(file => file.asset.id === grader.rubricRef.id);\n if (!file) throw new Error(`Imported rubric is missing: ${grader.id}.`);\n const rubric = new TextDecoder(\"utf-8\", { fatal: true }).decode(decodeTasksetPackageFile(file));\n const metadata = { ...base.metadata, portableRubricRef: grader.rubricRef };\n if (grader.kind === \"human\") return GraderSpecSchema.parse({ ...base, rubric, metadata });\n if (!grader.model) throw new Error(`Imported judge ${grader.id} requires its declared model before local preparation.`);\n return GraderSpecSchema.parse({ ...base, rubric, metadata, judge: grader.model, temperature: grader.temperature ?? 0,\n calibrationStatus: \"pending\", calibrationFixtureRefs: calibrationFixtures[grader.id] ?? [] });\n }\n return GraderSpecSchema.parse({ ...base, kind: grader.kind === \"artifact\" ? \"file\" : grader.kind,\n config: grader.kind === \"artifact\" ? { ...grader.config, ...(grader.config.refIncludes === undefined ? {} : { pathIncludes: grader.config.refIncludes }) } : grader.config });\n });\n}\n\nexport function projectLearningBatchGraders(binding: RewardBinding, rewards: RewardRelease[], assets: LearningTextAsset[] = []): GraderSpec[] {\n const resolved = resolveBoundRewards(binding, rewards);\n return compileBoundGraders(binding, rewards).map((grader) => {\n const reward = resolved.find(({ source }) => source.graderId === grader.id)!.reward;\n const base = { ...grader, label: reward.name, metadata: { rewardBinding: learningRef(binding) } };\n if (grader.kind === \"model_judge\") throw new Error(`Reward ${grader.id} needs a calibrated model execution adapter before preparation.`);\n if (grader.kind === \"custom_verifier\") return GraderSpecSchema.parse({ ...base,\n module: learningVerifierModule(grader.verifierRef.contentHash), exportName: grader.exportName ?? \"verify\",\n metadata: { ...base.metadata, portableVerifierRef: grader.verifierRef },\n });\n if (grader.kind === \"human\") {\n const asset = assets.find((asset) => asset.id === grader.rubricRef.id);\n if (!asset) throw new Error(`Reward ${grader.id} is missing its immutable rubric.`);\n return GraderSpecSchema.parse({ ...base, rubric: verifyLearningTextAsset(asset, grader.rubricRef) });\n }\n return GraderSpecSchema.parse({ ...base, kind: grader.kind === \"artifact\" ? \"file\" : grader.kind });\n });\n}\n\nexport function learningVerifierModule(hash: string) { return `graders/reward-${hash}.js`; }\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type { Taskset } from \"./taskset-authored-contracts.js\";\nimport type {\n GraderSpec,\n TaskDataRecord,\n} from \"./taskset-draft-core.js\";\nimport {\n TaskRecordSchema,\n GraderSpecSchema as PortableGraderSpecSchema,\n TasksetReleaseContentSchema,\n TasksetReleaseSchema,\n bindTasksetExecutionReleases,\n createEnvironmentRelease,\n createVerifierSetRelease,\n EnvironmentReleaseSchema,\n VerifierSetReleaseSchema,\n verifyEnvironmentRelease,\n verifyVerifierSetRelease,\n verifyPreferenceComparisonRelease,\n type EnvironmentContract,\n type GraderSpec as PortableGraderSpec,\n type PreferenceComparisonRelease,\n type TasksetRelease,\n} from \"@openpond/evals\";\nimport type {\n ImmutableAssetRef,\n ToolDeclaration,\n} from \"@openpond/harness\";\nimport {\n CapabilityRequirementSchema,\n ImmutableAssetRefSchema,\n ToolDeclarationSchema,\n} from \"@openpond/harness\";\n\nimport { contentHash, sha256 } from \"@openpond/harness\";\nimport { TaskBatchPackageMetadataSchema } from \"@openpond/evals/learning\";\nimport { compileBoundGraders, RewardBindingSchema, RewardReleaseSchema, type RewardBinding, type RewardRelease } from \"@openpond/evals/rewards\";\nimport { portableDeterministicCheck } from \"@openpond/evals/graders\";\n\nexport type TasksetRewardExecution = { binding: RewardBinding; rewards: RewardRelease[] };\n\nexport function resolvePortableTasksetRewardExecution(taskset: Taskset, supplied?: TasksetRewardExecution): TasksetRewardExecution | null {\n const learning = taskset.metadata.learning === undefined ? null : TaskBatchPackageMetadataSchema.parse(taskset.metadata.learning);\n const embedded = taskset.metadata.rewardExecution as { binding?: unknown; rewards?: unknown } | undefined;\n const execution = supplied ?? (embedded ? {\n binding: RewardBindingSchema.parse(embedded.binding),\n rewards: RewardReleaseSchema.array().parse(embedded.rewards),\n } : learning);\n if (taskset.metadata.rewardBinding !== undefined) {\n const reference = taskset.metadata.rewardBinding as Partial<RewardBinding> | null;\n if (!execution || !reference || reference.id !== execution.binding.id\n || reference.revision !== execution.binding.revision || reference.contentHash !== execution.binding.contentHash) {\n throw new Error(\"Portable Taskset requires its exact published Reward binding.\");\n }\n }\n if (execution) compileBoundGraders(execution.binding, execution.rewards);\n return execution ? { binding: execution.binding, rewards: execution.rewards } : null;\n}\n\nexport function materializePortableTasksetRelease(input: {\n taskset: Taskset;\n selectedTasks?: TaskDataRecord[];\n adapterId: string;\n admittedTasksetRelease?: TasksetRelease | null;\n rewardExecution?: TasksetRewardExecution;\n}): {\n environmentRelease: ReturnType<typeof createEnvironmentRelease>;\n verifierSetRelease: ReturnType<typeof createVerifierSetRelease>;\n tasksetRelease: TasksetRelease;\n} {\n const environment = portableEnvironment(input.taskset);\n const tools = portableTools(input.taskset);\n const learning = input.taskset.metadata.learning === undefined ? null : TaskBatchPackageMetadataSchema.parse(input.taskset.metadata.learning);\n const embedded = input.taskset.metadata.rewardExecution;\n const rewardExecution = resolvePortableTasksetRewardExecution(input.taskset, input.rewardExecution);\n const graders = rewardExecution ? compileBoundGraders(rewardExecution.binding, rewardExecution.rewards) : input.taskset.graders.map(portableGrader);\n const tasks = input.selectedTasks?.length\n ? input.selectedTasks\n : input.taskset.tasks;\n if (!tasks.length) throw new Error(\"A portable Taskset release requires at least one task.\");\n const pinned = input.taskset.environment.metadata.portableExecutionResources as { environment?: unknown; verifierSet?: unknown } | undefined;\n if (environment.entrypoint === \"openpond.javascript-environment.v1\" && !pinned) throw new Error(\"Tool Taskset publication requires its pinned execution resources.\");\n const environmentRelease = pinned ? EnvironmentReleaseSchema.parse(pinned.environment) : createEnvironmentRelease({\n schemaVersion: \"openpond.environmentRelease.v1\",\n id: `environment-release-${input.taskset.id}-r${input.taskset.revision}`,\n revision: input.taskset.revision,\n contract: environment,\n actionSchemaRef: null,\n observationSchemaRef: null,\n stateSchemaRef: null,\n artifactCollection: {\n maxArtifacts: 100_000,\n maxTotalBytes: 250_000_000,\n },\n adapterConformanceHashes: {\n [input.adapterId]: contentHash({ adapterId: input.adapterId, environment, tools }),\n },\n metadata: {\n sourceTasksetId: input.taskset.id,\n sourcePackageHash: input.taskset.metadata.sourcePackageHash ?? null,\n resources: input.taskset.environment.resources ?? [],\n },\n });\n const verifierSetRelease = pinned?.verifierSet !== undefined ? VerifierSetReleaseSchema.parse(pinned.verifierSet) : createVerifierSetRelease({\n schemaVersion: \"openpond.verifierSetRelease.v1\",\n id: `verifier-set-release-${input.taskset.id}-r${input.taskset.revision}`,\n revision: input.taskset.revision,\n graders,\n isolation: {\n processBoundary: \"isolated_process\",\n networkPolicy: \"none\",\n defaultTimeoutMs: Math.min(input.taskset.environment.defaultTimeoutMs, 300_000),\n },\n calibrationReceiptRefs: [],\n metadata: { sourceTasksetId: input.taskset.id },\n });\n if (!verifyEnvironmentRelease(environmentRelease) || !verifyVerifierSetRelease(verifierSetRelease) ||\n contentHash(environmentRelease.contract) !== contentHash(environment) || contentHash(verifierSetRelease.graders) !== contentHash(graders)) {\n throw new Error(\"Taskset execution resources differ from its declared environment or graders.\");\n }\n const tasksetContent = TasksetReleaseContentSchema.parse({\n schemaVersion: \"openpond.tasksetRelease.v2\",\n id: input.taskset.metadata.derivedPortableMetadata === undefined ? `taskset-release-${input.taskset.id}-r${input.taskset.revision}` : input.taskset.id,\n revision: input.taskset.revision,\n policy: {\n policyVisibleFields: input.taskset.policy.policyVisibleFields,\n privilegedFields: input.taskset.policy.privilegedFields,\n hiddenGraderRefs: input.taskset.policy.hiddenGraderRefs,\n connectedAppScopes: input.taskset.policy.connectedAppScopes,\n },\n environment,\n tools,\n capabilities: portableCapabilities(input.taskset),\n tasks: tasks.map(projectPortableTaskRecord),\n graders,\n ...(input.taskset.metrics ? { metrics: input.taskset.metrics } : {}),\n metadata: input.taskset.metadata.derivedPortableMetadata ?? {\n sourceTasksetId: input.taskset.id,\n sourceTasksetHash: input.taskset.contentHash,\n sourcePackageHash: input.taskset.metadata.sourcePackageHash ?? null,\n environmentResources: input.taskset.environment.resources ?? [],\n ordinaryAuthoring: {\n instructions: input.taskset.objective,\n graderFixtures: input.taskset.graderFixtures,\n judgeCalibrationFixtures: Object.fromEntries(input.taskset.graders\n .filter(grader => grader.kind === \"model_judge\")\n .map(grader => [grader.id, grader.calibrationFixtureRefs])),\n },\n ...(learning ? { learning } : {}),\n // A sealed batch already pins these resources in learning metadata.\n // Resolving that same binding at admission must not change its release.\n ...(rewardExecution && !learning && (input.rewardExecution || embedded) ? { rewardExecution: { binding: rewardExecution.binding, rewards: rewardExecution.rewards } } : {}),\n },\n });\n const draft = input.admittedTasksetRelease\n ? TasksetReleaseSchema.parse(input.admittedTasksetRelease)\n : TasksetReleaseSchema.parse({\n ...tasksetContent,\n contentHash: contentHash(tasksetContent),\n });\n const tasksetRelease = draft.environmentRelease\n ? assertReleaseBindings({ draft, environmentRelease, verifierSetRelease })\n : bindTasksetExecutionReleases({\n taskset: draft,\n environment: environmentRelease,\n verifierSet: verifierSetRelease,\n });\n return { environmentRelease, verifierSetRelease, tasksetRelease };\n}\n\n/**\n * Admits a published comparison policy against the exact portable Taskset\n * release it names. A comparison is deliberately not embedded in that release:\n * doing so would create a content-hash cycle between Taskset and comparison.\n */\nexport function projectPreferenceComparisonRelease(input: {\n tasksetRelease: TasksetRelease;\n preferenceComparison: PreferenceComparisonRelease;\n}): PreferenceComparisonRelease {\n if (!verifyPreferenceComparisonRelease(input.preferenceComparison)) {\n throw new Error(\"Preference comparison release failed immutable content verification.\");\n }\n const release = input.preferenceComparison;\n if (\n release.tasksetRelease.id !== input.tasksetRelease.id\n || release.tasksetRelease.contentHash !== input.tasksetRelease.contentHash\n ) {\n throw new Error(\"Preference comparison release must reference the admitted portable Taskset release.\");\n }\n return release;\n}\n\nexport function portableTasksetEnvironment(taskset: Taskset): EnvironmentContract {\n return portableEnvironment(taskset);\n}\n\nexport function portableTasksetTools(taskset: Taskset): ToolDeclaration[] {\n return portableTools(taskset);\n}\n\n/** Preserve immutable file/schema references while overlaying current edits. */\nexport function projectPortableTaskRecord(task: TaskDataRecord) {\n const admitted = task.metadata.portableTaskRecord;\n if (admitted !== undefined) {\n const original = TaskRecordSchema.parse(admitted);\n const projected = TaskRecordSchema.parse({\n ...original,\n id: task.id,\n clusterKey: task.clusterKey,\n split: task.split,\n input: task.input,\n expectedOutput: portableExpectedOutput(task),\n policyVisibleContext: task.policyVisibleContext,\n privilegedContextRef: task.privilegedContextRef,\n tags: task.tags,\n artifactRefs: task.assets === undefined ? original.artifactRefs : task.assets.map((asset) => {\n const previous = original.artifactRefs.find(item => item.id === asset.id);\n return {\n id: asset.id,\n path: previous?.path ?? `tasks/${segment(task.id)}/${segment(asset.fileName)}`,\n contentHash: hash(asset.sha256),\n sizeBytes: asset.sizeBytes,\n mediaType: asset.mediaType,\n visibility: previous?.visibility ?? \"policy\",\n };\n }),\n requiredOutputs: task.requiredOutputs === undefined ? original.requiredOutputs : task.requiredOutputs.map((output) => {\n const previous = original.requiredOutputs?.find(item => item.path === output.path);\n return {\n path: output.path,\n mediaType: output.mediaType,\n schemaRef: previous?.schemaRef && previous.schemaRef.id === output.schemaRef ? previous.schemaRef : null,\n maxBytes: output.maxBytes ?? null,\n metadata: {\n ...output.metadata,\n ...(output.schemaRef && previous?.schemaRef?.id !== output.schemaRef\n ? { legacySchemaRef: output.schemaRef }\n : {}),\n },\n };\n }),\n });\n if (projected.requiredOutputs === undefined) delete projected.requiredOutputs;\n return projected;\n }\n return {\n id: task.id,\n clusterKey: task.clusterKey,\n split: task.split,\n input: task.input,\n expectedOutput: portableExpectedOutput(task),\n policyVisibleContext: task.policyVisibleContext,\n privilegedContextRef: task.privilegedContextRef,\n artifactRefs: (task.assets ?? []).map((item) => ({\n id: item.id,\n path: `tasks/${segment(task.id)}/${segment(item.fileName)}`,\n contentHash: hash(item.sha256),\n sizeBytes: item.sizeBytes,\n mediaType: item.mediaType,\n visibility: \"policy\" as const,\n })),\n requiredOutputs: (task.requiredOutputs ?? []).map((output) => ({\n path: output.path,\n mediaType: output.mediaType,\n schemaRef: null,\n maxBytes: output.maxBytes ?? null,\n metadata: {\n ...output.metadata,\n legacySchemaRef: output.schemaRef ?? null,\n },\n })),\n tags: task.tags,\n };\n}\n\nfunction portableExpectedOutput(\n task: TaskDataRecord,\n): Record<string, unknown> | null {\n if (!task.expectedOutput) return null;\n if (\"artifactRenderer\" in task.expectedOutput) {\n throw new Error(\n `Task ${task.id} embeds an artifact renderer. Put shared renderer configuration in Environment resources and reference it from the Scenario.`,\n );\n }\n return task.expectedOutput;\n}\n\nfunction portableEnvironment(taskset: Taskset): EnvironmentContract {\n const kind: EnvironmentContract[\"kind\"] = taskset.environment.kind === \"chat\"\n ? \"text\"\n : taskset.environment.kind === \"work\" ? \"work\"\n : taskset.environment.kind === \"program\" ? \"custom_program\" : \"agent\";\n return {\n protocolVersion: \"openpond.environment.v1\",\n kind,\n entrypoint: taskset.environment.entrypoint,\n stateful: taskset.environment.stateful,\n deterministicSeeds: taskset.environment.deterministicSeeds,\n lifecycle: [\"create\", \"reset\", \"step\", \"collect\", \"destroy\"],\n networkPolicy: taskset.environment.networkPolicy,\n defaultTimeoutMs: taskset.environment.defaultTimeoutMs,\n };\n}\n\nfunction portableTools(taskset: Taskset): ToolDeclaration[] {\n const admitted = taskset.environment.metadata.portableTools;\n if (admitted !== undefined) {\n return ToolDeclarationSchema.array().max(200).parse(admitted);\n }\n const bindings = taskset.environment.actionBindings ?? [];\n if (bindings.length) return bindings.map((binding) => ({\n name: binding.modelToolName,\n description: binding.description,\n inputSchema: binding.inputSchema,\n inputSchemaHash: hash(binding.actionSchemaHash),\n sideEffect: binding.sideEffect,\n timeoutMs: binding.timeoutMs,\n }));\n return taskset.environment.toolNames.map((name) => ({\n name,\n description: `Host-provided ${name} tool.`,\n inputSchema: {},\n inputSchemaHash: contentHash({}),\n sideEffect: \"write\" as const,\n timeoutMs: taskset.environment.defaultTimeoutMs,\n }));\n}\n\nfunction portableGrader(grader: GraderSpec): PortableGraderSpec {\n const base = {\n id: grader.id,\n version: grader.version,\n weight: grader.weight,\n hardGate: grader.hardGate,\n rewardEligible: grader.rewardEligible,\n privileged: grader.privileged,\n };\n if (grader.kind === \"model_judge\") return {\n ...base,\n kind: \"model_judge\",\n rubricRef: rubricAsset(grader),\n model: modelJudgeRef(grader),\n temperature: grader.temperature,\n calibrationStatus: grader.calibrationStatus,\n };\n if (grader.kind === \"custom_verifier\") {\n if (grader.metadata.portableVerifierRef === undefined) {\n throw new Error(`Custom verifier ${grader.id} requires its immutable executable asset before publication.`);\n }\n const imported = PortableGraderSpecSchema.safeParse(grader.metadata.portableGrader);\n // An omitted portable export means \"verify\". Preserve that encoding on an\n // unchanged import so executing it does not silently replace its release.\n const preserveDefault = imported.success && imported.data.kind === \"custom_verifier\"\n && imported.data.exportName === undefined && grader.exportName === \"verify\";\n return {\n ...base,\n kind: \"custom_verifier\",\n verifierRef: ImmutableAssetRefSchema.parse(grader.metadata.portableVerifierRef),\n timeoutMs: grader.timeoutMs,\n ...(preserveDefault ? {} : { exportName: grader.exportName }),\n networkPolicy: \"none\",\n };\n }\n if (grader.kind === \"human\") return {\n ...base,\n kind: \"human\",\n rubricRef: rubricAsset(grader),\n reviewerRole: grader.reviewerRole,\n };\n return {\n ...base,\n ...portableDeterministicCheck(grader),\n };\n}\n\nfunction portableCapabilities(taskset: Taskset) {\n const admitted = taskset.metadata.portableCapabilities;\n if (admitted !== undefined) {\n return CapabilityRequirementSchema.array().max(200).parse(admitted);\n }\n return [\n ...(taskset.capabilities.requiresTools\n ? [{ id: \"tools\", required: true, scopes: taskset.environment.toolNames }]\n : []),\n ...(taskset.capabilities.requiresState\n ? [{ id: \"local-state\", required: true, scopes: [] }]\n : []),\n ...(taskset.capabilities.requiresPrivilegedGrading\n ? [{ id: \"private-verifier\", required: true, scopes: taskset.policy.hiddenGraderRefs }]\n : []),\n ...taskset.policy.connectedAppScopes.map((scope) => ({\n id: `connected-app-${segment(scope)}`,\n required: true,\n scopes: [scope],\n })),\n ].map((requirement) => ({\n ...requirement,\n portability: requirement.id === \"local-state\" ? \"host_adapter\" as const : \"portable\" as const,\n }));\n}\n\nfunction assertReleaseBindings(input: {\n draft: TasksetRelease;\n environmentRelease: ReturnType<typeof createEnvironmentRelease>;\n verifierSetRelease: ReturnType<typeof createVerifierSetRelease>;\n}): TasksetRelease {\n if (\n input.draft.environmentRelease?.id !== input.environmentRelease.id\n || input.draft.environmentRelease.contentHash !== input.environmentRelease.contentHash\n ) {\n throw new Error(\"Admitted Taskset Release binds a different Environment Release.\");\n }\n if (\n input.draft.verifierSetRelease?.id !== input.verifierSetRelease.id\n || input.draft.verifierSetRelease.contentHash !== input.verifierSetRelease.contentHash\n ) {\n throw new Error(\"Admitted Taskset Release binds a different Verifier Set Release.\");\n }\n if (contentHash(input.draft.environment) !== contentHash(input.environmentRelease.contract)) {\n throw new Error(\"Admitted Taskset Environment differs from its bound Environment Release.\");\n }\n if (contentHash(input.draft.graders) !== contentHash(input.verifierSetRelease.graders)) {\n throw new Error(\"Admitted Taskset graders differ from its bound Verifier Set Release.\");\n }\n return input.draft;\n}\n\nfunction modelJudgeRef(grader: Extract<GraderSpec, { kind: \"model_judge\" }>) {\n const previous = grader.metadata.portableGrader === undefined ? null : PortableGraderSpecSchema.parse(grader.metadata.portableGrader);\n const revision = previous?.kind === \"model_judge\" && previous.model?.providerId === grader.judge.providerId && previous.model.modelId === grader.judge.modelId ? previous.model.revision : null;\n return { ...grader.judge, revision };\n}\n\nfunction rubricAsset(grader: Extract<GraderSpec, { kind: \"human\" | \"model_judge\" }>): ImmutableAssetRef {\n const contentHash = sha256(grader.rubric);\n const sizeBytes = new TextEncoder().encode(grader.rubric).byteLength;\n const reference = grader.metadata.portableRubricRef;\n if (reference !== undefined) {\n const asset = ImmutableAssetRefSchema.parse(reference);\n if (asset.contentHash !== contentHash || asset.sizeBytes !== sizeBytes || asset.visibility === \"policy\") throw new Error(\"Taskset rubric differs from its published private source.\");\n return asset;\n }\n return { id: `rubric-${grader.id}`, path: `graders/${segment(grader.id)}/rubric.md`, contentHash, sizeBytes, mediaType: \"text/markdown\", visibility: \"verifier\" };\n}\n\nfunction hash(value: string): string {\n return /^[a-f0-9]{64}$/.test(value) ? value : contentHash(value);\n}\n\nfunction segment(value: string): string {\n const normalized = value.trim().replace(/[^a-zA-Z0-9._-]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n return normalized || \"asset\";\n}\n", "import { compileBoundGraders, resolveBoundRewards, type RewardBinding, type RewardRelease } from \"@openpond/evals/rewards\";\nimport { learningRef, verifyLearningTextAsset, RewardFixtureAuthoringFieldsSchema, type LearningTextAsset } from \"@openpond/evals/learning\";\nimport type { GraderSpec } from \"./taskset-draft-core.js\";\nimport { GraderSpecSchema } from \"./taskset-draft-core.js\";\nimport { decodeTasksetPackageFile, type TasksetPackage } from \"./taskset-package-contracts.js\";\nimport { z } from \"zod\";\n\n/** Project an ordinary portable package without inventing a Reward binding. */\nexport function importedPackageGraders(value: TasksetPackage) {\n const authoring = value.taskset.metadata.ordinaryAuthoring as { judgeCalibrationFixtures?: unknown } | undefined;\n const calibrationFixtures = z.record(z.string(), z.array(z.string().min(1)).max(100_000)).parse(authoring?.judgeCalibrationFixtures ?? {});\n return value.taskset.graders.map(grader => {\n const base = { ...grader, label: grader.id, metadata: { portableGrader: grader } };\n if (grader.kind === \"custom_verifier\") return GraderSpecSchema.parse({ ...base,\n module: learningVerifierModule(grader.verifierRef.contentHash), exportName: grader.exportName ?? \"verify\",\n metadata: { ...base.metadata, portableVerifierRef: grader.verifierRef } });\n if (grader.kind === \"human\" || grader.kind === \"model_judge\") {\n const file = value.files.find(file => file.asset.id === grader.rubricRef.id);\n if (!file) throw new Error(`Imported rubric is missing: ${grader.id}.`);\n const rubric = new TextDecoder(\"utf-8\", { fatal: true }).decode(decodeTasksetPackageFile(file));\n const metadata = { ...base.metadata, portableRubricRef: grader.rubricRef };\n if (grader.kind === \"human\") return GraderSpecSchema.parse({ ...base, rubric, metadata });\n if (!grader.model) throw new Error(`Imported judge ${grader.id} requires its declared model before local preparation.`);\n return GraderSpecSchema.parse({ ...base, rubric, metadata, judge: grader.model, temperature: grader.temperature ?? 0,\n calibrationStatus: \"pending\", calibrationFixtureRefs: calibrationFixtures[grader.id] ?? [] });\n }\n return GraderSpecSchema.parse({ ...base, kind: grader.kind === \"artifact\" ? \"file\" : grader.kind,\n config: grader.kind === \"artifact\" ? { ...grader.config, ...(grader.config.refIncludes === undefined ? {} : { pathIncludes: grader.config.refIncludes }) } : grader.config });\n });\n}\n\nexport function projectLearningBatchGraders(binding: RewardBinding, rewards: RewardRelease[], assets: LearningTextAsset[] = []): GraderSpec[] {\n const resolved = resolveBoundRewards(binding, rewards);\n return compileBoundGraders(binding, rewards).map((grader) => {\n const reward = resolved.find(({ source }) => source.graderId === grader.id)!.reward;\n const base = { ...grader, label: reward.name, metadata: { rewardBinding: learningRef(binding) } };\n if (grader.kind === \"model_judge\") {\n if (!grader.model || grader.calibrationStatus !== \"passed\" || !reward.calibrationCheckRef || !reward.fixtureSetRef) throw new Error(`Reward ${grader.id} needs a retained passing calibration check before preparation.`);\n const rubric = assets.find(asset => asset.id === grader.rubricRef.id);\n const fixtures = assets.find(asset => asset.id === reward.fixtureSetRef!.id);\n if (!rubric || !fixtures) throw new Error(`Reward ${grader.id} is missing its immutable rubric or calibration fixtures.`);\n const fields = RewardFixtureAuthoringFieldsSchema.array().min(1).max(50).parse(JSON.parse(verifyLearningTextAsset(fixtures, reward.fixtureSetRef)));\n return GraderSpecSchema.parse({ ...base, rubric: verifyLearningTextAsset(rubric, grader.rubricRef), judge: grader.model,\n temperature: grader.temperature ?? 0, calibrationFixtureRefs: fields.map(fixture => fixture.id),\n metadata: { ...base.metadata, portableRubricRef: grader.rubricRef,\n calibrationEvidenceHash: reward.calibrationCheckRef.contentHash, calibrationCheckRef: reward.calibrationCheckRef },\n });\n }\n if (grader.kind === \"custom_verifier\") return GraderSpecSchema.parse({ ...base,\n module: learningVerifierModule(grader.verifierRef.contentHash), exportName: grader.exportName ?? \"verify\",\n metadata: { ...base.metadata, portableVerifierRef: grader.verifierRef },\n });\n if (grader.kind === \"human\") {\n const asset = assets.find((asset) => asset.id === grader.rubricRef.id);\n if (!asset) throw new Error(`Reward ${grader.id} is missing its immutable rubric.`);\n return GraderSpecSchema.parse({ ...base, rubric: verifyLearningTextAsset(asset, grader.rubricRef) });\n }\n return GraderSpecSchema.parse({ ...base, kind: grader.kind === \"artifact\" ? \"file\" : grader.kind });\n });\n}\n\nexport function learningVerifierModule(hash: string) { return `graders/reward-${hash}.js`; }\n"],
5
+ "mappings": "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",
6
6
  "names": ["contentHash", "compileBoundGraders", "file", "compileBoundGraders", "asset", "hash"]
7
7
  }
@@ -10,7 +10,7 @@ import { JavaScriptEnvironmentDefinitionSchema, assertJavaScriptEnvironmentDefin
10
10
  import { createLearningTextAsset, learningRef, sealLearningContent, verifyLearningTextAsset } from "@openpond/evals/learning";
11
11
  import { assertBoundedTaskJson } from "@openpond/evals/task-schema";
12
12
  var HashSchema = z.string().regex(/^[a-f0-9]{64}$/);
13
- var ModelStarterEnvironmentAttemptSchema = z.object({
13
+ var ModelStarterEnvironmentAttemptSchema = /* @__PURE__ */ (() => z.object({
14
14
  schemaVersion: z.literal("openpond.javascriptEnvironmentAttempt.v1"),
15
15
  taskId: z.string(),
16
16
  status: z.enum(["completed", "budget_exhausted", "cancelled", "timed_out", "policy_failure", "environment_failure"]),
@@ -21,7 +21,7 @@ var ModelStarterEnvironmentAttemptSchema = z.object({
21
21
  messages: z.array(z.unknown()),
22
22
  error: z.string().nullable(),
23
23
  contentHash: HashSchema
24
- }).strict();
24
+ }).strict())();
25
25
  function verifyModelStarterEnvironmentAttempt(value, context) {
26
26
  assertBoundedTaskJson(value, 16777216);
27
27
  const result = ModelStarterEnvironmentAttemptSchema.parse(value);
@@ -271,4 +271,4 @@ export {
271
271
  deriveModelTaskset,
272
272
  validateModelTasksetPackage
273
273
  };
274
- //# sourceMappingURL=chunk-NZ35HEEK.js.map
274
+ //# sourceMappingURL=chunk-GFVMIDP5.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/model-starter-execution.ts", "../src/model-taskset-resources.ts", "../src/model-taskset-derivation.ts"],
4
+ "sourcesContent": ["import { z } from \"zod\";\nimport { EnvironmentReleaseSchema, VerifierSetReleaseSchema } from \"@openpond/evals\";\nimport { JavaScriptEnvironmentDefinitionSchema, assertJavaScriptEnvironmentDefinition } from \"@openpond/evals/javascript-environment\";\nimport { createLearningTextAsset, learningRef, sealLearningContent, verifyLearningTextAsset, type LearningTextAsset } from \"@openpond/evals/learning\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\nimport type { TasksetRelease } from \"@openpond/evals/tasksets\";\nimport { canonicalJson } from \"./protocol.js\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\n\nconst HashSchema = z.string().regex(/^[a-f0-9]{64}$/);\nexport const ModelStarterEnvironmentAttemptSchema = /* @__PURE__ */ (() => z.object({\n schemaVersion: z.literal(\"openpond.javascriptEnvironmentAttempt.v1\"), taskId: z.string(),\n status: z.enum([\"completed\", \"budget_exhausted\", \"cancelled\", \"timed_out\", \"policy_failure\", \"environment_failure\"]),\n output: z.string().nullable(), collected: z.boolean(), environmentCleanupComplete: z.boolean(),\n snapshot: z.object({ definition: ModelProjectVersionedRefSchema, inputHash: HashSchema, seed: z.number().int(), initialStateHash: HashSchema, finalStateHash: HashSchema, state: z.record(z.string(), z.unknown()), events: z.array(z.record(z.string(), z.unknown())) }).strict().nullable(),\n messages: z.array(z.unknown()), error: z.string().nullable(), contentHash: HashSchema,\n}).strict())();\n\n/** Validate an owner-recorded runtime artifact against the admitted task.\n * Provenance/ownership of the artifact remains the execution host's concern. */\nexport function verifyModelStarterEnvironmentAttempt(value: unknown, context: { taskId: string; input: Record<string, unknown>; seed: number; javascript: z.infer<typeof ModelProjectVersionedRefSchema> }) {\n assertBoundedTaskJson(value, 16_777_216);\n const result = ModelStarterEnvironmentAttemptSchema.parse(value);\n const { contentHash, ...content } = result;\n if (sealLearningContent(content).contentHash !== contentHash || result.taskId !== context.taskId || (result.snapshot && (\n !equal(result.snapshot.definition, context.javascript) || result.snapshot.inputHash !== sealLearningContent(context.input).contentHash || result.snapshot.seed !== context.seed || result.snapshot.finalStateHash !== sealLearningContent(result.snapshot.state).contentHash\n ))) throw new Error(\"Starter environment attempt differs from its admitted task or recorded bytes.\");\n return result;\n}\n\nexport const ModelStarterExecutionSchema = z.object({\n environment: EnvironmentReleaseSchema,\n verifierSet: VerifierSetReleaseSchema,\n javascript: JavaScriptEnvironmentDefinitionSchema,\n}).strict();\nexport type ModelStarterExecution = z.infer<typeof ModelStarterExecutionSchema>;\nexport const ModelStarterToolFixtureScriptSchema = z.object({\n actions: z.array(z.object({ name: z.string().min(1).max(64), arguments: z.record(z.string(), z.unknown()) }).strict()).max(1_000),\n}).strict();\nexport type ModelStarterExecutionContext = Pick<TasksetRelease, \"environment\" | \"environmentRelease\" | \"verifierSetRelease\" | \"tools\" | \"capabilities\" | \"policy\" | \"graders\" | \"tasks\">;\n\n/** Derivable from immutable Taskset refs, without putting private code in its metadata. */\nexport function modelStarterExecutionAssetId(context: Pick<ModelStarterExecutionContext, \"environmentRelease\" | \"verifierSetRelease\">): string {\n if (!context.environmentRelease || !context.verifierSetRelease) throw new Error(\"Starter execution release references are missing.\");\n return `starter-execution-${sealLearningContent({ environment: context.environmentRelease, verifiers: context.verifierSetRelease }).contentHash}`;\n}\n\n/** Persist alongside the package's private assets in the same creation transaction.\n * The existing authored-text resource bound also applies to this small closure. */\nexport function createModelStarterExecutionAsset(value: ModelStarterExecution): LearningTextAsset {\n const execution = ModelStarterExecutionSchema.parse(value);\n assertExecutionIntegrity(execution);\n const id = modelStarterExecutionAssetId({ environmentRelease: { id: execution.environment.id, contentHash: execution.environment.contentHash }, verifierSetRelease: { id: execution.verifierSet.id, contentHash: execution.verifierSet.contentHash } });\n const generated = createLearningTextAsset({ text: canonicalJson(execution), path: \"environment/execution.json\", mediaType: \"application/json\", visibility: \"host_private\" });\n const { contentHash: _hash, ...content } = generated;\n return sealLearningContent({ ...content, id, asset: { ...content.asset, id } });\n}\n\n/** The caller owns and verifies the Taskset manifest; this verifies its private\n * resource graph. Passing selected immutable task rows permits bounded hydration. */\nexport function resolveModelStarterExecutionAsset(context: ModelStarterExecutionContext, asset: LearningTextAsset, assets: LearningTextAsset[]): ModelStarterExecution {\n if (asset.id !== modelStarterExecutionAssetId(context) || asset.asset.visibility !== \"host_private\" || asset.asset.mediaType !== \"application/json\") throw new Error(\"Starter execution asset differs from its Taskset references.\");\n const execution = ModelStarterExecutionSchema.parse(JSON.parse(verifyLearningTextAsset(asset, asset.asset)));\n validateModelStarterExecution(execution, context, assets);\n return execution;\n}\n\nfunction equal(left: unknown, right: unknown): boolean {\n return sealLearningContent({ value: left }).contentHash === sealLearningContent({ value: right }).contentHash;\n}\n\nfunction assertExecutionIntegrity(execution: ModelStarterExecution): void {\n assertJavaScriptEnvironmentDefinition(execution.javascript);\n for (const resource of [execution.environment, execution.verifierSet]) {\n const { contentHash, ...content } = resource;\n if (sealLearningContent(content).contentHash !== contentHash) throw new Error(`Starter execution resource integrity failed: ${resource.id}.`);\n }\n if (!equal(execution.environment.metadata.javascriptEnvironment, learningRef(execution.javascript))) throw new Error(\"Starter execution resources differ from its declared task context.\");\n}\n\n/** Close executable dependencies before a host persists or runs a package. */\nexport function validateModelStarterExecution(\n execution: ModelStarterExecution | undefined,\n taskset: ModelStarterExecutionContext,\n assets: LearningTextAsset[],\n): void {\n if (!execution) {\n if (taskset.environment.entrypoint === \"openpond.javascript-environment.v1\") throw new Error(\"Starter JavaScript execution resources are missing.\");\n return;\n }\n const { environment, verifierSet, javascript } = execution;\n assertExecutionIntegrity(execution);\n if (!equal(taskset.environmentRelease, { id: environment.id, contentHash: environment.contentHash }) ||\n !equal(taskset.verifierSetRelease, { id: verifierSet.id, contentHash: verifierSet.contentHash }) ||\n !equal(environment.contract, taskset.environment) || !equal(verifierSet.graders, taskset.graders) ||\n !equal(taskset.tools, javascript.tools) || !equal(environment.metadata.javascriptEnvironment, learningRef(javascript))) {\n throw new Error(\"Starter execution resources differ from its declared task context.\");\n }\n const contract = environment.contract;\n if (contract.entrypoint !== \"openpond.javascript-environment.v1\" || contract.kind !== \"agent\" ||\n !contract.stateful || !contract.deterministicSeeds || contract.networkPolicy !== \"none\" ||\n new Set(contract.lifecycle).size !== 5 || taskset.capabilities.length || taskset.policy.connectedAppScopes.length) {\n throw new Error(\"Starter JavaScript environment declares unsupported host capabilities.\");\n }\n for (const reference of [javascript.module, environment.actionSchemaRef, environment.observationSchemaRef, environment.stateSchemaRef]) {\n if (!reference) continue;\n const asset = assets.find(asset => asset.id === reference.id);\n if (!asset) throw new Error(`Starter environment asset is missing: ${reference.id}.`);\n verifyLearningTextAsset(asset, reference);\n }\n for (const task of taskset.tasks) {\n const asset = assets.find(asset => asset.id === task.privilegedContextRef);\n if (!asset || asset.asset.visibility !== \"host_private\" || asset.asset.mediaType !== \"application/json\") {\n throw new Error(`Starter private initial state is missing: ${task.id}.`);\n }\n const state: unknown = JSON.parse(verifyLearningTextAsset(asset, asset.asset));\n if (!state || typeof state !== \"object\" || Array.isArray(state)) throw new Error(`Starter initial state must be a JSON object: ${task.id}.`);\n assertBoundedTaskJson(state, javascript.maxStateBytes);\n }\n}\n", "import { z } from \"zod\";\nimport { EnvironmentReleaseSchema, VerifierSetReleaseSchema, verifyEnvironmentRelease, verifyVerifierSetRelease } from \"@openpond/evals\";\nimport { createLearningTextAsset, sealLearningContent, verifyLearningTextAsset, type LearningTextAsset } from \"@openpond/evals/learning\";\nimport type { TasksetRelease } from \"@openpond/evals/tasksets\";\nimport { canonicalJson } from \"./protocol.js\";\n\nexport const ModelTasksetExecutionResourcesSchema = z.object({ environment: EnvironmentReleaseSchema, verifierSet: VerifierSetReleaseSchema }).strict();\ntype Resources = z.infer<typeof ModelTasksetExecutionResourcesSchema>;\ntype Context = Pick<TasksetRelease, \"environmentRelease\" | \"verifierSetRelease\" | \"environment\" | \"graders\">;\n\n/** Private resource identity follows the exact published execution references. */\nexport function modelTasksetExecutionResourcesAssetId(context: Pick<Context, \"environmentRelease\" | \"verifierSetRelease\">): string {\n if (!context.environmentRelease || !context.verifierSetRelease) throw new Error(\"Taskset execution references are missing.\");\n return `taskset-execution-${sealLearningContent({ environment: context.environmentRelease, verifiers: context.verifierSetRelease }).contentHash}`;\n}\n\nexport function createModelTasksetExecutionResourcesAsset(value: Resources): LearningTextAsset {\n const resources = ModelTasksetExecutionResourcesSchema.parse({ environment: value.environment, verifierSet: value.verifierSet });\n assertIntegrity(resources);\n const id = modelTasksetExecutionResourcesAssetId({ environmentRelease: { id: resources.environment.id, contentHash: resources.environment.contentHash }, verifierSetRelease: { id: resources.verifierSet.id, contentHash: resources.verifierSet.contentHash } });\n const { contentHash: _hash, ...asset } = createLearningTextAsset({ text: canonicalJson(resources), path: \"environment/resources.json\", mediaType: \"application/json\", visibility: \"host_private\" });\n return sealLearningContent({ ...asset, id, asset: { ...asset.asset, id } });\n}\n\n/** Resolve text or tool execution resources without trusting an asset's ID alone. */\nexport function resolveModelTasksetExecutionResourcesAsset(context: Context, asset: LearningTextAsset): Resources {\n if (asset.id !== modelTasksetExecutionResourcesAssetId(context) || asset.asset.visibility !== \"host_private\" || asset.asset.mediaType !== \"application/json\") throw new Error(\"Taskset execution asset differs from its published references.\");\n const resources = ModelTasksetExecutionResourcesSchema.parse(JSON.parse(verifyLearningTextAsset(asset, asset.asset)));\n assertIntegrity(resources);\n if (asset.id !== createModelTasksetExecutionResourcesAsset(resources).id || canonicalJson(context.environment) !== canonicalJson(resources.environment.contract) || canonicalJson(context.graders) !== canonicalJson(resources.verifierSet.graders)) throw new Error(\"Taskset differs from its execution resources.\");\n return resources;\n}\n\nfunction assertIntegrity(resources: Resources): void {\n if (!verifyEnvironmentRelease(resources.environment) || !verifyVerifierSetRelease(resources.verifierSet)) throw new Error(\"Taskset execution resource integrity failed.\");\n}\n", "import { z } from \"zod\";\nimport { createEnvironmentRelease, createVerifierSetRelease, verifyEnvironmentRelease, verifyVerifierSetRelease } from \"@openpond/evals\";\nimport { LearningTextAssetSchema, TaskDefinitionSchema, assertLearningContentHash, learningRef, sameLearningRef, sealLearningContent, verifyLearningTextAsset } from \"@openpond/evals/learning\";\nimport { RewardBindingSchema, RewardReleaseSchema, compileBoundGraders } from \"@openpond/evals/rewards\";\nimport { TasksetReleaseSchema, assertTasksetRelease } from \"@openpond/evals/tasksets\";\nimport { validateTaskValue } from \"@openpond/evals/task-schema\";\n\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { ModelStarterExecutionSchema, validateModelStarterExecution } from \"./model-starter-execution.js\";\nimport { ModelTasksetExecutionResourcesSchema } from \"./model-taskset-resources.js\";\n\nconst OwnerSchema = z.object({ scopeId: z.string().trim().min(1).max(500), modelId: z.string().trim().min(1).max(500) }).strict();\nexport const ModelTasksetDerivationSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelTasksetDerivation.v1\"),\n owner: OwnerSchema,\n root: ModelProjectVersionedRefSchema,\n parent: ModelProjectVersionedRefSchema,\n}).strict();\n\n/** Immutable executable resources, independent of a catalog listing. */\nexport const ModelTasksetPackageSchema = z.object({\n taskset: TasksetReleaseSchema,\n taskDefinition: TaskDefinitionSchema,\n rewardBinding: RewardBindingSchema,\n rewards: z.array(RewardReleaseSchema).min(1).max(100),\n assets: z.array(LearningTextAssetSchema).max(1_000),\n executionResources: ModelTasksetExecutionResourcesSchema.optional(),\n execution: ModelStarterExecutionSchema.optional(),\n}).strict();\nexport type ModelTasksetPackage = z.infer<typeof ModelTasksetPackageSchema>;\n\nconst same = (left: unknown, right: unknown) => sealLearningContent({ value: left }).contentHash === sealLearningContent({ value: right }).contentHash;\nconst identity = (owner: z.infer<typeof OwnerSchema>, root: z.infer<typeof ModelProjectVersionedRefSchema>) => `model-taskset-${sealLearningContent({ owner, root }).contentHash}`;\n\n/** Hosts authorize the source and owner, upload immutable files, then commit\n * this result together with the model CAS and operation receipt. This pure\n * compiler neither allocates a new identity on retry nor changes a consumer. */\nexport function deriveModelTaskset(input: {\n owner: z.input<typeof OwnerSchema>;\n source: ModelTasksetPackage;\n rewardBinding: z.infer<typeof RewardBindingSchema>;\n rewards: z.infer<typeof RewardReleaseSchema>[];\n assets: z.infer<typeof LearningTextAssetSchema>[];\n}): ModelTasksetPackage {\n const owner = OwnerSchema.parse(input.owner);\n const source = validateModelTasksetPackage(input.source);\n const previous = source.taskset.metadata.modelTasksetDerivation === undefined ? null : ModelTasksetDerivationSchema.parse(source.taskset.metadata.modelTasksetDerivation);\n if (previous && source.taskset.id !== identity(previous.owner, previous.root)) throw new Error(\"Derived Taskset identity differs from its ownership lineage.\");\n const owned = previous && same(previous.owner, owner);\n const root = owned ? previous.root : learningRef(source.taskset);\n const id = owned ? source.taskset.id : identity(owner, root);\n const revision = owned ? source.taskset.revision + 1 : 1;\n const rewardBinding = RewardBindingSchema.parse(input.rewardBinding);\n const rewards = input.rewards.map(reward => RewardReleaseSchema.parse(reward));\n const graders = compileBoundGraders(rewardBinding, rewards);\n if (rewardBinding.recipeRef) throw new Error(\"Resolve the Reward recipe into one standalone binding before deriving a Taskset.\");\n const policy = { ...source.taskset.policy, hiddenGraderRefs: graders.filter(grader => grader.privileged).map(grader => grader.id) };\n const previousResources = source.executionResources ?? source.execution;\n const environment = previousResources?.environment ?? createEnvironmentRelease({\n schemaVersion: \"openpond.environmentRelease.v1\", id: `${id}-environment`, revision: 1,\n contract: source.taskset.environment, actionSchemaRef: null, observationSchemaRef: null, stateSchemaRef: null,\n artifactCollection: { maxArtifacts: 100_000, maxTotalBytes: 250_000_000 }, adapterConformanceHashes: {}, metadata: {},\n });\n const verifierSet = createVerifierSetRelease({\n schemaVersion: \"openpond.verifierSetRelease.v1\", id: `${id}-verifiers`, revision, graders,\n isolation: previousResources?.verifierSet.isolation ?? { processBoundary: \"isolated_process\", networkPolicy: \"none\", defaultTimeoutMs: Math.min(source.taskset.environment.defaultTimeoutMs, 300_000) },\n calibrationReceiptRefs: [], metadata: previousResources ? { sourceVerifierSet: learningRef(previousResources.verifierSet) } : {},\n });\n const executionResources = { environment, verifierSet };\n const execution = source.execution ? { ...source.execution, verifierSet } : undefined;\n const { contentHash: _taskHash, ...taskContent } = source.taskset;\n const { contentHash: _definitionHash, ...definitionContent } = source.taskDefinition;\n const taskExecution = { ...definitionContent.execution, policy, environmentRelease: { id: environment.id, contentHash: environment.contentHash }, verifierSetRelease: { id: verifierSet.id, contentHash: verifierSet.contentHash } };\n const taskDefinition = TaskDefinitionSchema.parse(sealLearningContent({ ...definitionContent, id: `${id}-definition`, revision, rewardBinding: learningRef(rewardBinding), execution: taskExecution }));\n const authoring = source.taskset.metadata.starterAuthoring;\n const graderFixtures = authoring && typeof authoring === \"object\" && !Array.isArray(authoring) && \"graderFixtures\" in authoring ? authoring.graderFixtures : undefined;\n // Keep provenance through exact lineage. Source package qualifications and\n // privacy attestations describe different bytes and must not be copied.\n const taskset = TasksetReleaseSchema.parse(sealLearningContent({\n ...taskContent, ...taskExecution, id, revision, graders,\n metadata: {\n starter: { taskDefinition: learningRef(taskDefinition), rewardBinding: learningRef(rewardBinding) },\n rewardExecution: { binding: rewardBinding, rewards },\n ...(graderFixtures === undefined ? {} : { starterAuthoring: { graderFixtures } }),\n modelTasksetDerivation: { schemaVersion: \"openpond.modelTasksetDerivation.v1\", owner, root, parent: learningRef(source.taskset) },\n },\n }));\n return validateModelTasksetPackage({ taskset, taskDefinition, rewardBinding, rewards, assets: input.assets, executionResources, ...(execution ? { execution } : {}) });\n}\n\nexport function validateModelTasksetPackage(value: unknown): ModelTasksetPackage {\n const result = ModelTasksetPackageSchema.parse(value);\n const { taskset, taskDefinition, rewardBinding, rewards, assets, execution } = result;\n for (const resource of [taskset, taskDefinition, rewardBinding, ...rewards, ...assets]) assertLearningContentHash(resource);\n assertTasksetRelease(taskset);\n if (rewardBinding.recipeRef) throw new Error(\"Resolve the Reward recipe into one standalone binding before deriving a Taskset.\");\n if (!sameLearningRef(taskDefinition.rewardBinding, learningRef(rewardBinding))) throw new Error(\"Taskset definition differs from its Reward binding.\");\n const { policy, environment, environmentRelease, tools, capabilities, verifierSetRelease } = taskset;\n if (!same(taskDefinition.execution, { policy, environment, ...(environmentRelease ? { environmentRelease } : {}), tools, capabilities, ...(verifierSetRelease ? { verifierSetRelease } : {}) })) throw new Error(\"Taskset definition differs from its execution resources.\");\n if (!same(taskset.graders, compileBoundGraders(rewardBinding, rewards))) throw new Error(\"Taskset graders differ from its Reward binding.\");\n if (taskset.metadata.starter !== undefined) {\n const metadata = z.object({ taskDefinition: ModelProjectVersionedRefSchema, rewardBinding: ModelProjectVersionedRefSchema }).passthrough().parse(taskset.metadata.starter);\n if (!sameLearningRef(metadata.taskDefinition, learningRef(taskDefinition)) || !sameLearningRef(metadata.rewardBinding, learningRef(rewardBinding))) throw new Error(\"Taskset metadata differs from its immutable grading resources.\");\n }\n if (taskset.metadata.rewardExecution !== undefined && !same(taskset.metadata.rewardExecution, { binding: rewardBinding, rewards })) throw new Error(\"Taskset embedded Rewards differ from its immutable grading resources.\");\n if (taskset.metadata.rewardBinding !== undefined && !sameLearningRef(ModelProjectVersionedRefSchema.parse(taskset.metadata.rewardBinding), learningRef(rewardBinding))) throw new Error(\"Taskset Reward reference differs from its immutable grading resources.\");\n const resources = result.executionResources ?? execution;\n if (taskset.environmentRelease && !resources) throw new Error(\"Deriving a Taskset requires its pinned execution resources.\");\n if (resources && (!verifyEnvironmentRelease(resources.environment) || !verifyVerifierSetRelease(resources.verifierSet) ||\n !same(taskset.environmentRelease, { id: resources.environment.id, contentHash: resources.environment.contentHash }) ||\n !same(taskset.verifierSetRelease, { id: resources.verifierSet.id, contentHash: resources.verifierSet.contentHash }) ||\n !same(taskset.environment, resources.environment.contract) || !same(taskset.graders, resources.verifierSet.graders))) throw new Error(\"Taskset differs from its pinned execution resources.\");\n validateModelStarterExecution(execution, taskset, assets);\n if (new Set(assets.map(asset => asset.id)).size !== assets.length) throw new Error(\"Taskset asset identities must be unique.\");\n for (const asset of assets) verifyLearningTextAsset(asset, asset.asset);\n for (const reference of resources ? [resources.environment.actionSchemaRef, resources.environment.observationSchemaRef, resources.environment.stateSchemaRef] : []) {\n if (!reference) continue;\n const asset = assets.find(asset => asset.id === reference.id);\n if (!asset) throw new Error(`Taskset environment asset is missing: ${reference.id}.`);\n verifyLearningTextAsset(asset, reference);\n }\n for (const task of taskset.tasks) {\n if (taskDefinition.requiredOutputs && !same(task.requiredOutputs, taskDefinition.requiredOutputs)) throw new Error(`Taskset outputs differ from its reviewed definition: ${task.id}.`);\n if (task.policyVisibleContext.instructions !== taskDefinition.instructions || !validateTaskValue(taskDefinition.inputSchema, task.input).valid ||\n (task.expectedOutput !== null && !validateTaskValue(taskDefinition.outputSchema, task.expectedOutput).valid)) throw new Error(`Taskset task differs from its declared format: ${task.id}.`);\n if (task.privilegedContextRef && !assets.some(asset => asset.id === task.privilegedContextRef && asset.asset.visibility === \"host_private\")) throw new Error(`Taskset private context is missing: ${task.id}.`);\n }\n for (const reward of rewards) {\n const implementation = reward.implementation;\n const references = [...reward.assets, ...(\"verifierRef\" in implementation ? [implementation.verifierRef] : []), ...(\"rubricRef\" in implementation ? [implementation.rubricRef] : []), ...(\"inputContract\" in implementation ? [implementation.inputContract] : [])];\n for (const reference of references) {\n const asset = assets.find(asset => asset.id === reference.id);\n if (!asset || reference.visibility === \"policy\") throw new Error(`Taskset Reward requires its private asset: ${reference.id}.`);\n verifyLearningTextAsset(asset, reference);\n }\n }\n return result;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["asset", "z", "EnvironmentReleaseSchema", "VerifierSetReleaseSchema", "createLearningTextAsset", "sealLearningContent", "verifyLearningTextAsset", "z", "EnvironmentReleaseSchema", "VerifierSetReleaseSchema", "sealLearningContent", "createLearningTextAsset", "verifyLearningTextAsset", "z", "verifyEnvironmentRelease", "verifyVerifierSetRelease", "learningRef", "sealLearningContent", "verifyLearningTextAsset", "z", "sealLearningContent", "learningRef", "verifyEnvironmentRelease", "verifyVerifierSetRelease", "verifyLearningTextAsset", "asset"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ModelStarterExecutionSchema,
3
3
  validateModelStarterExecution
4
- } from "./chunk-NZ35HEEK.js";
4
+ } from "./chunk-GFVMIDP5.js";
5
5
  import {
6
6
  ModelProjectBaseModelSchema,
7
7
  ModelProjectTrainingMethodSchema,
@@ -219,4 +219,4 @@ export {
219
219
  previewModelStarter,
220
220
  validateResolvedModelStarter
221
221
  };
222
- //# sourceMappingURL=chunk-SMWHGQ5W.js.map
222
+ //# sourceMappingURL=chunk-GRGVOTZV.js.map
@@ -5,7 +5,7 @@ import {
5
5
  modelStarterExecutionAssetId,
6
6
  validateModelStarterExecution,
7
7
  validateModelTasksetPackage
8
- } from "./chunk-NZ35HEEK.js";
8
+ } from "./chunk-GFVMIDP5.js";
9
9
  import {
10
10
  ModelTasksetAuthoringSchema
11
11
  } from "./chunk-S7I45WJQ.js";
@@ -1523,4 +1523,4 @@ export {
1523
1523
  validateTasksetPackage,
1524
1524
  createTasksetPackage
1525
1525
  };
1526
- //# sourceMappingURL=chunk-TLXDZ4VG.js.map
1526
+ //# sourceMappingURL=chunk-S5UZTXXB.js.map
@@ -18,7 +18,7 @@ import {
18
18
  tasksetPackageRewardBinding,
19
19
  validateTaskset,
20
20
  validateTasksetPackage
21
- } from "./chunk-TLXDZ4VG.js";
21
+ } from "./chunk-S5UZTXXB.js";
22
22
  import {
23
23
  ModelTasksetDraftPreparationSchema,
24
24
  TasksetDraftFileContentSchema,
@@ -907,4 +907,4 @@ export {
907
907
  saveTasksetDraftWorkspaceFile,
908
908
  decodeTasksetDraftWorkspaceFile
909
909
  };
910
- //# sourceMappingURL=chunk-IIZV2N5F.js.map
910
+ //# sourceMappingURL=chunk-YVOKMF45.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  ModelStarterSchema,
3
3
  validateResolvedModelStarter
4
- } from "./chunk-SMWHGQ5W.js";
5
- import "./chunk-NZ35HEEK.js";
4
+ } from "./chunk-GRGVOTZV.js";
5
+ import "./chunk-GFVMIDP5.js";
6
6
  import {
7
7
  ModelProjectVersionedRefSchema
8
8
  } from "./chunk-ZNFOVV7B.js";
@@ -11,7 +11,7 @@ import {
11
11
  previewModelStarter,
12
12
  validateModelStarterCreation,
13
13
  validateResolvedModelStarter
14
- } from "./chunk-SMWHGQ5W.js";
14
+ } from "./chunk-GRGVOTZV.js";
15
15
  import {
16
16
  ModelStarterEnvironmentAttemptSchema,
17
17
  ModelStarterExecutionSchema,
@@ -28,7 +28,7 @@ import {
28
28
  resolveModelTasksetExecutionResourcesAsset,
29
29
  validateModelTasksetPackage,
30
30
  verifyModelStarterEnvironmentAttempt
31
- } from "./chunk-NZ35HEEK.js";
31
+ } from "./chunk-GFVMIDP5.js";
32
32
  import "./chunk-ZNFOVV7B.js";
33
33
  export {
34
34
  ModelStarterContentSchema,
@@ -27,7 +27,7 @@ import {
27
27
  saveTasksetDraftWorkspaceFile,
28
28
  tasksetDraftFromTaskset,
29
29
  validateTasksetDraftWorkspace
30
- } from "./chunk-IIZV2N5F.js";
30
+ } from "./chunk-YVOKMF45.js";
31
31
  import {
32
32
  AuthoringProvenanceSchema,
33
33
  AuthoringRepairSchema,
@@ -97,8 +97,8 @@ import {
97
97
  isTrainingSourceRef,
98
98
  validatePortability,
99
99
  validateTaskset
100
- } from "./chunk-TLXDZ4VG.js";
101
- import "./chunk-NZ35HEEK.js";
100
+ } from "./chunk-S5UZTXXB.js";
101
+ import "./chunk-GFVMIDP5.js";
102
102
  import {
103
103
  ModelTasksetDraftRequestSchema,
104
104
  TasksetDraftFileInfoSchema,
@@ -13,7 +13,7 @@ import {
13
13
  projectPortableTaskRecord,
14
14
  projectPreferenceComparisonRelease,
15
15
  resolvePortableTasksetRewardExecution
16
- } from "./chunk-NHMZCVZO.js";
16
+ } from "./chunk-7PCER4VL.js";
17
17
  import {
18
18
  OpenPondTasksetPackageClient,
19
19
  OpenPondTasksetPackageError,
@@ -30,7 +30,7 @@ import {
30
30
  publishTasksetDraft,
31
31
  renderTasksetDraftManifests,
32
32
  validateTasksetDraftWorkspace
33
- } from "./chunk-IIZV2N5F.js";
33
+ } from "./chunk-YVOKMF45.js";
34
34
  import {
35
35
  GraderFixtureSchema,
36
36
  MAX_TASKSET_PACKAGE_BYTES,
@@ -53,11 +53,11 @@ import {
53
53
  tasksetPackageRewardBinding,
54
54
  validateTasksetLearningResources,
55
55
  validateTasksetPackage
56
- } from "./chunk-TLXDZ4VG.js";
56
+ } from "./chunk-S5UZTXXB.js";
57
57
  import {
58
58
  ModelStarterExecutionSchema,
59
59
  modelStarterExecutionAssetId
60
- } from "./chunk-NZ35HEEK.js";
60
+ } from "./chunk-GFVMIDP5.js";
61
61
  import {
62
62
  ModelTasksetAuthoringOwnerSchema,
63
63
  ModelTasksetAuthoringSchema,
@@ -2,14 +2,14 @@ import {
2
2
  learningVerifierModule,
3
3
  projectLearningBatchGraders,
4
4
  resolvePortableTasksetRewardExecution
5
- } from "./chunk-NHMZCVZO.js";
5
+ } from "./chunk-7PCER4VL.js";
6
6
  import {
7
7
  LearningBatchDatasetSourceRefSchema,
8
8
  MAX_TASKSET_PACKAGE_BYTES,
9
9
  TasksetSchema,
10
10
  computeTasksetHash
11
- } from "./chunk-TLXDZ4VG.js";
12
- import "./chunk-NZ35HEEK.js";
11
+ } from "./chunk-S5UZTXXB.js";
12
+ import "./chunk-GFVMIDP5.js";
13
13
  import "./chunk-S7I45WJQ.js";
14
14
  import {
15
15
  TRAINING_EVALUATION_SOURCE_PATH,
@@ -276,7 +276,7 @@ function materializeLearningBatchTaskset(input) {
276
276
  datasetArtifact: null,
277
277
  policy: release.policy,
278
278
  environment: { protocolVersion: "openpond.taskEnvironment.v1", kind: work ? "work" : "chat", entrypoint: release.environment.entrypoint, stateful: release.environment.stateful, deterministicSeeds: release.environment.deterministicSeeds, toolNames: release.tools.map((tool) => tool.name), lifecycle: ["create", "reset", "step", "grade", "cleanup"], defaultTimeoutMs: release.environment.defaultTimeoutMs, networkPolicy: release.environment.networkPolicy, metadata: { portableEnvironment: release.environment, portableTools: release.tools } },
279
- capabilities: { schemaVersion: "openpond.tasksetCapabilities.v1", taskKind: work ? "single_agent" : "chat", supportedSignals: signals.demonstrations.length ? ["demonstration", "reward"] : ["reward"], compatibleMethods: input.batch.purpose === "supervised_training" ? ["sft"] : input.batch.purpose === "reward_training" ? ["grpo", "ppo"] : ["none"], rewardKinds: ["deterministic"], requiresTools: release.tools.length > 0, requiresState: release.environment.stateful, requiresPrivilegedGrading: true, environmentPlacements: ["local", "remote"], exportable: true, portabilityBlockers: [] },
279
+ capabilities: { schemaVersion: "openpond.tasksetCapabilities.v1", taskKind: work ? "single_agent" : "chat", supportedSignals: signals.demonstrations.length ? ["demonstration", "reward"] : ["reward"], compatibleMethods: input.batch.purpose === "supervised_training" ? ["sft"] : input.batch.purpose === "reward_training" ? ["grpo", "ppo"] : ["none"], rewardKinds: [...new Set(release.graders.map((grader) => grader.kind === "human" ? "human" : grader.kind === "model_judge" ? "model_judge" : "deterministic"))], requiresTools: release.tools.length > 0, requiresState: release.environment.stateful, requiresPrivilegedGrading: true, environmentPlacements: ["local", "remote"], exportable: true, portabilityBlockers: [] },
280
280
  tasks: materialized.tasks.map((task) => ({ ...task, schemaVersion: "openpond.taskData.v1", sourceRefs: [sourceId], metadata: { admission: metadata.admissions.find((entry) => entry.taskId === task.id), exampleOrigin: input.evidence.find((evidence) => evidence.id === task.id)?.correctionFeedbackId ? "corrected" : "extracted" } })),
281
281
  graders,
282
282
  graderFixtures: fixtures,
@@ -749,7 +749,7 @@ function buildTasksetTrainingBundle(input) {
749
749
  const rewardExecution = resolvePortableTasksetRewardExecution(taskset, input.rewardExecution);
750
750
  if (rewardExecution) {
751
751
  const verifierAssets = input.verifierAssets ?? [];
752
- const references = compileBoundGraders(rewardExecution.binding, rewardExecution.rewards).flatMap((grader) => grader.kind === "custom_verifier" ? [grader.verifierRef] : []);
752
+ const references = compileBoundGraders(rewardExecution.binding, rewardExecution.rewards).flatMap((grader) => grader.kind === "custom_verifier" ? [grader.verifierRef] : grader.kind === "model_judge" ? [grader.rubricRef] : []);
753
753
  const expected = new Set(references.map((reference) => reference.id));
754
754
  if (new Set(verifierAssets.map((asset2) => asset2.id)).size !== verifierAssets.length || verifierAssets.some((asset2) => !expected.has(asset2.id))) throw new Error("Unexpected or duplicate private verifier asset.");
755
755
  for (const reference of references) {