openpond-sdk 0.1.14 → 0.2.1
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/MODEL_STARTERS.md +47 -0
- package/dist/model-starter-catalog.js +86 -54
- package/dist/model-starter-catalog.js.map +4 -4
- package/dist/model-starters.js +212 -47
- package/dist/model-starters.js.map +4 -4
- package/dist/types/packages/sdk/src/model-starter-attempts.d.ts +10 -10
- package/dist/types/packages/sdk/src/model-starter-catalog.d.ts +8 -0
- package/dist/types/packages/sdk/src/model-starter-catalog.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-starter-execution.d.ts +2 -2
- package/dist/types/packages/sdk/src/model-starters.d.ts +22 -0
- package/dist/types/packages/sdk/src/model-starters.d.ts.map +1 -1
- package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts +987 -0
- package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts.map +1 -0
- package/dist/types/packages/sdk/src/model-taskset-resources.d.ts +198 -0
- package/dist/types/packages/sdk/src/model-taskset-resources.d.ts.map +1 -0
- package/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/model-starters.ts", "../src/model-projects.ts", "../src/protocol.ts", "../src/model-starter-execution.ts"],
|
|
4
|
-
"sourcesContent": ["import { z } from \"zod\";\nimport { TasksetReleaseSchema, assertTasksetRelease } from \"@openpond/evals/tasksets\";\nimport { LearningTextAssetSchema, TaskDefinitionSchema, learningRef, sameLearningRef, sealLearningContent } from \"@openpond/evals/learning\";\nimport { RewardBindingSchema, RewardReleaseSchema, compileBoundGraders } from \"@openpond/evals/rewards\";\nimport { assertBoundedTaskJson, validateTaskValue } from \"@openpond/evals/task-schema\";\n\nimport { ModelProjectBaseModelSchema, ModelProjectTrainingMethodSchema, ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { canonicalSha256 } from \"./protocol.js\";\nimport { ModelStarterExecutionSchema, validateModelStarterExecution } from \"./model-starter-execution.js\";\n\nexport { ModelStarterExecutionSchema, ModelStarterEnvironmentAttemptSchema, verifyModelStarterEnvironmentAttempt, ModelStarterToolFixtureScriptSchema, createModelStarterExecutionAsset, modelStarterExecutionAssetId, resolveModelStarterExecutionAsset, type ModelStarterExecution, type ModelStarterExecutionContext } from \"./model-starter-execution.js\";\n\nconst IdSchema = z.string().trim().min(1).max(500);\nconst RefSchema = ModelProjectVersionedRefSchema;\n\n/** Catalog records contain references and previews, never the private task rows. */\nexport const ModelStarterContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelStarter.v1\"),\n id: IdSchema,\n revision: z.number().int().positive(),\n name: z.string().trim().min(1).max(200),\n description: z.string().trim().min(1).max(2_000),\n category: z.enum([\"extraction\", \"support\", \"operations\", \"knowledge\", \"coding\", \"writing\", \"classification\"]),\n taskset: RefSchema,\n taskDefinition: RefSchema,\n rewardBinding: RefSchema,\n rewards: z.array(RefSchema).min(1).max(100),\n assets: z.array(RefSchema).max(1_000),\n previewTaskIds: z.array(IdSchema).min(1).max(8),\n startingModel: ModelProjectBaseModelSchema,\n supportedMethods: z.array(ModelProjectTrainingMethodSchema).min(1).max(8),\n defaultMethod: ModelProjectTrainingMethodSchema,\n provenance: z.object({ author: z.string().min(1).max(200), license: z.string().min(1).max(200), sourceDescription: z.string().min(1).max(2_000) }).strict(),\n // These are references to real results. Package publication does not create\n // evidence, qualify a starter, or enable continuous learning.\n evidence: z.object({ verifierFixtures: RefSchema.nullable(), baseline: RefSchema.nullable(), training: RefSchema.nullable(), evaluation: RefSchema.nullable() }).strict(),\n}).strict().superRefine((starter, context) => {\n if (!starter.supportedMethods.includes(starter.defaultMethod)) context.addIssue({ code: \"custom\", path: [\"defaultMethod\"], message: \"The default method must be supported by the package.\" });\n for (const field of [\"rewards\", \"assets\"] as const) {\n if (new Set(starter[field].map(ref => ref.id)).size !== starter[field].length) context.addIssue({ code: \"custom\", path: [field], message: \"Dependency identities must be unique.\" });\n }\n if (new Set(starter.previewTaskIds).size !== starter.previewTaskIds.length) context.addIssue({ code: \"custom\", path: [\"previewTaskIds\"], message: \"Preview tasks must be unique.\" });\n});\nexport const ModelStarterSchema = ModelStarterContentSchema.safeExtend({ contentHash: z.string().regex(/^[a-f0-9]{64}$/) });\nexport type ModelStarter = z.infer<typeof ModelStarterSchema>;\n\n/** A resolved small package, obtained separately from catalog discovery.\n * Large Tasksets remain manifest/shard resources; they are not list payloads. */\nexport const ResolvedModelStarterSchema = z.object({\n starter: ModelStarterSchema,\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 execution: ModelStarterExecutionSchema.optional(),\n}).strict();\nexport type ResolvedModelStarter = z.infer<typeof ResolvedModelStarterSchema>;\n\n/** Publisher attestation for original synthetic contact data, never a caller\n * override for arbitrary imports or for a failed secret scan. */\nexport const ModelStarterPrivacyReviewSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelStarterPrivacyReview.v1\"),\n disposition: z.literal(\"synthetic_only\"),\n reviewedBy: z.string().trim().min(1).max(500), reviewedAt: z.iso.datetime(),\n reviewedContentHash: z.string().regex(/^[a-f0-9]{64}$/),\n note: z.string().trim().min(1).max(2_000),\n}).strict();\nexport function modelStarterPrivacyContentHash(value: ResolvedModelStarter): string {\n const { contentHash: _starterHash, ...starter } = value.starter;\n const { contentHash: _tasksetHash, ...taskset } = value.taskset;\n const { contentHash: _referenceHash, ...tasksetRef } = starter.taskset;\n const metadata = { ...taskset.metadata };\n const authoring = metadata.starterAuthoring;\n if (authoring && typeof authoring === \"object\" && !Array.isArray(authoring)) {\n const { privacyReview: _review, ...content } = authoring as Record<string, unknown>;\n metadata.starterAuthoring = content;\n }\n // Exclude only the attestation and hashes that contain that attestation.\n return sealLearningContent({ ...value, starter: { ...starter, taskset: tasksetRef }, taskset: { ...taskset, metadata } }).contentHash;\n}\n\n/** Final creation intent. The server resolves package bytes from its catalog;\n * callers cannot supply executable resources or qualification receipts here. */\nexport const ModelStarterCreationIntentSchema = z.object({\n profileId: IdSchema,\n modelId: IdSchema,\n name: z.string().trim().min(1).max(200),\n starter: RefSchema,\n startingModel: ModelProjectBaseModelSchema,\n method: ModelProjectTrainingMethodSchema,\n rewardBindingRef: RefSchema.nullable().optional(),\n}).strict();\nexport const ModelStarterCreationRequestSchema = ModelStarterCreationIntentSchema.extend({\n schemaVersion: z.literal(\"openpond.modelStarterCreation.v1\"),\n operationId: IdSchema,\n}).strict();\nexport type ModelStarterCreationRequest = z.infer<typeof ModelStarterCreationRequestSchema>;\n\nexport function parseModelStarterCreationRequest(value: unknown): ModelStarterCreationRequest {\n assertBoundedTaskJson(value, 64 * 1024);\n return ModelStarterCreationRequestSchema.parse(value);\n}\n\n/** Prepare once on final confirmation and retain across uncertain transport\n * outcomes. The server must bind operationId to the complete original intent\n * and atomically commit resources, model configuration and the retry receipt. */\nexport async function createModelStarterCreationRequest(\n value: z.input<typeof ModelStarterCreationIntentSchema>,\n): Promise<ModelStarterCreationRequest> {\n assertBoundedTaskJson(value, 64 * 1024);\n const intent = ModelStarterCreationIntentSchema.parse(value);\n return parseModelStarterCreationRequest({\n ...intent,\n schemaVersion: \"openpond.modelStarterCreation.v1\",\n operationId: `model-starter:${await canonicalSha256(intent)}`,\n });\n}\n\n/** Scope authorization belongs to the API. This validates the final intent\n * against the exact trusted package before any user resources are written. */\nexport function validateModelStarterCreation(value: unknown, packageValue: unknown) {\n const request = parseModelStarterCreationRequest(value);\n const resolved = validateResolvedModelStarter(packageValue);\n if (!sameLearningRef(request.starter, learningRef(resolved.starter))) throw new Error(\"Starter creation references a different package revision.\");\n if (!resolved.starter.supportedMethods.includes(request.method)) throw new Error(\"The selected training method is not supported by this starter.\");\n return { request, resolved };\n}\n\n/** Explicit projection keeps frozen examples, expected outputs, privileged\n * context and verifier source out of read-only model-facing previews. */\nexport function previewModelStarter(value: unknown) {\n const { starter, taskset, taskDefinition, rewardBinding, rewards } = validateResolvedModelStarter(value);\n return {\n starter,\n inputSchema: taskDefinition.inputSchema,\n outputSchema: taskDefinition.outputSchema,\n reward: {\n name: rewardBinding.name,\n description: rewardBinding.description,\n checks: rewardBinding.sources.map(source => {\n const reward = rewards.find(reward => sameLearningRef(source.reward, learningRef(reward)))!;\n return { name: reward.name, description: reward.description, kind: reward.implementation.kind, role: source.role, weight: source.weight, required: source.required, hardGate: source.hardGate };\n }),\n },\n tasks: starter.previewTaskIds.map(id => {\n const task = taskset.tasks.find(task => task.id === id)!;\n return { id: task.id, input: task.input, policyVisibleContext: task.policyVisibleContext };\n }),\n counts: {\n train: taskset.tasks.filter(task => task.split === \"train\").length,\n validation: taskset.tasks.filter(task => task.split === \"validation\").length,\n frozenEvaluation: taskset.tasks.filter(task => task.split === \"frozen_eval\").length,\n },\n };\n}\n\n/** Verify the dependency graph before creating user-owned configuration.\n * A matching outer hash alone cannot authorize substituted private graders. */\nexport function validateResolvedModelStarter(value: unknown): ResolvedModelStarter {\n assertBoundedTaskJson(value, 16 * 1024 * 1024);\n const resolved = ResolvedModelStarterSchema.parse(value);\n const { starter, taskset, taskDefinition, rewardBinding, rewards, assets } = resolved;\n const authoring = taskset.metadata.starterAuthoring;\n if (authoring && typeof authoring === \"object\" && !Array.isArray(authoring) && \"privacyReview\" in authoring) {\n const review = ModelStarterPrivacyReviewSchema.parse(authoring.privacyReview);\n if (review.reviewedContentHash !== modelStarterPrivacyContentHash(resolved)) throw new Error(\"Starter privacy review differs from the published contents.\");\n }\n const resources = [starter, taskset, taskDefinition, rewardBinding, ...rewards, ...assets];\n for (const resource of resources) {\n const { contentHash, ...content } = resource;\n if (sealLearningContent(content).contentHash !== contentHash) throw new Error(`Starter resource integrity failed: ${resource.id}.`);\n }\n assertTasksetRelease(taskset);\n validateModelStarterExecution(resolved.execution, taskset, assets);\n function exact(expected: z.infer<typeof RefSchema>, resource: { id: string; revision: number; contentHash: string }) {\n if (!sameLearningRef(expected, learningRef(resource))) throw new Error(`Starter dependency mismatch: ${expected.id}.`);\n }\n exact(starter.taskset, taskset);\n exact(starter.taskDefinition, taskDefinition);\n exact(starter.rewardBinding, rewardBinding);\n exact(taskDefinition.rewardBinding, rewardBinding);\n if (rewardBinding.recipeRef) throw new Error(\"Starter binding recipes must be resolved into a standalone binding before publication.\");\n const { policy, environment, environmentRelease, tools, capabilities, verifierSetRelease } = taskset;\n const execution = { policy, environment, ...(environmentRelease ? { environmentRelease } : {}), tools, capabilities, ...(verifierSetRelease ? { verifierSetRelease } : {}) };\n if (sealLearningContent(execution).contentHash !== sealLearningContent(taskDefinition.execution).contentHash) throw new Error(\"Starter execution context differs from its task format.\");\n if (sealLearningContent({ graders: taskset.graders }).contentHash !== sealLearningContent({ graders: compileBoundGraders(rewardBinding, rewards) }).contentHash) throw new Error(\"Starter executable graders differ from its Reward binding.\");\n for (const [references, values] of [[starter.rewards, rewards], [starter.assets, assets]] as const) {\n if (references.length !== values.length || new Set(values.map(resource => resource.id)).size !== values.length) throw new Error(\"Starter dependency inventory mismatch.\");\n for (const ref of references) {\n const resource = values.find(value => value.id === ref.id);\n if (!resource) throw new Error(`Starter dependency is missing: ${ref.id}.`);\n exact(ref, resource);\n }\n }\n for (const source of rewardBinding.sources) {\n const reward = rewards.find(reward => reward.id === source.reward.id);\n if (!reward) throw new Error(`Starter Reward is missing: ${source.reward.id}.`);\n exact(source.reward, reward);\n }\n for (const reward of rewards) {\n const implementation = reward.implementation;\n const references = [...reward.assets,\n ...(\"verifierRef\" in implementation ? [implementation.verifierRef] : []),\n ...(\"rubricRef\" in implementation ? [implementation.rubricRef] : []),\n ...(\"inputContract\" in implementation ? [implementation.inputContract] : []),\n ];\n for (const ref of references) {\n const asset = assets.find(asset => asset.id === ref.id);\n if (!asset || sealLearningContent(asset.asset).contentHash !== sealLearningContent(ref).contentHash) throw new Error(`Starter Reward source is missing or changed: ${ref.id}.`);\n if (ref.visibility === \"policy\") throw new Error(`Starter Reward source must remain private to its evaluator: ${ref.id}.`);\n }\n }\n if (new Set(taskset.tasks.map(task => task.id)).size !== taskset.tasks.length) throw new Error(\"Starter task identities must be unique.\");\n const inputSplits = new Map<string, string>();\n for (const task of taskset.tasks) {\n if (task.policyVisibleContext.instructions !== taskDefinition.instructions) throw new Error(`Starter task does not carry its declared model instructions: ${task.id}.`);\n const inputHash = sealLearningContent({ input: task.input, context: task.policyVisibleContext }).contentHash;\n const priorSplit = inputSplits.get(inputHash);\n if (priorSplit && priorSplit !== task.split) throw new Error(\"Starter policy input appears in multiple splits.\");\n inputSplits.set(inputHash, task.split);\n if (!validateTaskValue(taskDefinition.inputSchema, task.input).valid) throw new Error(`Starter task input does not match its format: ${task.id}.`);\n if (task.expectedOutput !== null && !validateTaskValue(taskDefinition.outputSchema, task.expectedOutput).valid) throw new Error(`Starter expected output does not match its format: ${task.id}.`);\n }\n for (const id of starter.previewTaskIds) {\n const task = taskset.tasks.find(task => task.id === id);\n if (!task || task.split === \"frozen_eval\") throw new Error(`Starter preview task is unavailable: ${id}.`);\n }\n return resolved;\n}\n", "import { z } from \"zod\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\n\nimport {\n MODEL_PROJECT_API_RESPONSE_MAX_BYTES,\n MODEL_PROJECT_SYNC_MAX_BYTES,\n OPENPOND_MODEL_PROJECT_MEDIA_TYPE,\n OpenPondProtocolError,\n assertCanonicalPayloadSize,\n canonicalSha256,\n parseBoundedJson,\n} from \"./protocol.js\";\n\nexport {\n MODEL_PROJECT_API_RESPONSE_MAX_BYTES,\n MODEL_PROJECT_SYNC_MAX_BYTES,\n OPENPOND_MODEL_PROJECT_MEDIA_TYPE,\n} from \"./protocol.js\";\n\nconst IdSchema = z.string().trim().min(1).max(500);\nconst HashSchema = z.string().regex(/^[a-f0-9]{64}$/);\nconst TimestampSchema = z.string().datetime({ offset: true });\n\nexport const ModelProjectImmutableRefSchema = z\n .object({\n id: IdSchema,\n contentHash: HashSchema,\n })\n .strict();\n\nexport const ModelProjectVersionedRefSchema =\n ModelProjectImmutableRefSchema.extend({\n revision: z.number().int().positive(),\n }).strict();\n\nexport const ModelProjectBaseModelSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.baseModelPreference.v1\"),\n modelId: IdSchema,\n revision: z.string().trim().min(1).max(256).nullable(),\n tokenizerRevision: z.string().trim().min(1).max(256).nullable(),\n chatTemplateHash: z.string().trim().min(8).max(256).nullable(),\n modelAssetId: IdSchema.nullable(),\n source: z.enum([\"managed\", \"local\", \"builtin\"]),\n })\n .strict();\n\nexport const ModelProjectTrainingMethodSchema = z.enum([\n \"sft\",\n \"dpo\",\n \"grpo\",\n \"ppo\",\n \"sdft\",\n \"opd\",\n \"opsd\",\n \"sdpo\",\n]);\n\n/**\n * A versioned recipe document stored while a Project is still mutable.\n * The training endpoint validates the selected recipe version in full before\n * accepting an immutable Job; Project sync preserves newer recipe fields.\n */\nexport const ModelProjectRecipeDocumentSchema = z\n .object({\n schemaVersion: z.string().regex(/^openpond\\.[A-Za-z0-9]+Recipe\\.v\\d+$/),\n method: ModelProjectTrainingMethodSchema,\n parameterization: z.enum([\"lora\", \"full\"]),\n })\n .catchall(z.unknown());\n\nexport const ModelProjectTrainingSetupSchema = z\n .object({\n tasksetRef: ModelProjectVersionedRefSchema.nullable().default(null),\n rewardBindingRef: ModelProjectVersionedRefSchema.nullable().optional(),\n tasksetRelease: ModelProjectImmutableRefSchema.nullable().default(null),\n harnessRelease: ModelProjectImmutableRefSchema.nullable().default(null),\n baseModel: ModelProjectBaseModelSchema.nullable().default(null),\n method: ModelProjectTrainingMethodSchema.nullable().default(null),\n destinationId: IdSchema.nullable().default(null),\n managedRolloutPlacement: z\n .enum([\"local\", \"remote\"])\n .default(\"remote\"),\n managedGpuPlacementObjective: z\n .enum([\"fast\", \"balanced\", \"economical\"])\n .default(\"balanced\"),\n managedGpuRequirement: z\n .enum([\"any\", \"h100_hbm3\"])\n .default(\"any\"),\n runPreset: z\n .enum([\"small\", \"standard\", \"custom\", \"small_experiment\"])\n .nullable()\n .default(null),\n recipe: ModelProjectRecipeDocumentSchema.nullable().default(null),\n preferredMaximumSpendUsd: z.number().nonnegative().nullable().default(null),\n preferredRetentionDays: z\n .number()\n .int()\n .nonnegative()\n .nullable()\n .default(null),\n })\n .strict();\n\nexport const HostedModelProjectTrainingSetupSchema =\n ModelProjectTrainingSetupSchema.omit({ managedGpuRequirement: true });\n\nexport const HostedModelProjectLinkSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.hostedModelProjectLink.v1\"),\n teamId: IdSchema,\n projectId: IdSchema,\n portableProjectId: IdSchema,\n revision: z.number().int().positive(),\n etag: HashSchema,\n syncedSourceRevision: z.number().int().positive(),\n syncedAt: TimestampSchema,\n tasksets: z\n .array(\n z\n .object({\n localTasksetId: IdSchema,\n releaseId: IdSchema,\n releaseRevision: z.number().int().positive(),\n releaseHash: HashSchema,\n hostedTasksetId: IdSchema,\n syncedAt: TimestampSchema,\n })\n .strict(),\n )\n .max(10_000)\n .default([]),\n })\n .strict();\n\nexport const ModelProjectTasksetSyncSchema = z\n .object({\n localTasksetId: IdSchema,\n releaseId: IdSchema,\n releaseRevision: z.number().int().positive(),\n releaseHash: HashSchema,\n state: z.enum([\"syncing\", \"synced\", \"sync_failed\"]),\n hostedTasksetId: IdSchema.nullable().default(null),\n lastAttemptAt: TimestampSchema,\n syncedAt: TimestampSchema.nullable().default(null),\n lastError: z.string().trim().min(1).max(5_000).nullable().default(null),\n })\n .strict();\n\nexport const ModelProjectSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.modelProject.v2\"),\n id: IdSchema,\n profileId: IdSchema,\n revision: z.number().int().positive().default(1),\n name: z.string().trim().min(1).max(200),\n objective: z.string().trim().max(5_000).nullable(),\n defaultBaseModel: ModelProjectBaseModelSchema.nullable(),\n defaultDestinationId: IdSchema.nullable(),\n trainingSetup: ModelProjectTrainingSetupSchema,\n hosted: HostedModelProjectLinkSchema.nullable().default(null),\n tasksetSyncs: z\n .array(ModelProjectTasksetSyncSchema)\n .max(10_000)\n .default([]),\n createdAt: TimestampSchema,\n updatedAt: TimestampSchema,\n })\n .strict();\n\n/** User-editable configuration. Execution and hosting receipts are server-owned. */\nexport const ModelProjectEditableSchema = ModelProjectSchema.pick({\n id: true,\n profileId: true,\n name: true,\n objective: true,\n defaultBaseModel: true,\n defaultDestinationId: true,\n trainingSetup: true,\n});\n\n/** Zero creates a new Model; a positive revision updates that exact revision. */\nexport const ModelProjectSaveRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelProjectSave.v1\"),\n operationId: IdSchema,\n expectedRevision: z.number().int().nonnegative(),\n project: ModelProjectEditableSchema,\n}).strict();\n\nexport type ModelProjectSaveRequest = z.infer<typeof ModelProjectSaveRequestSchema>;\n\n/** A read-only configuration check; it does not establish training or grader quality. */\nexport const ModelProjectConfigurationCheckSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelProjectConfigurationCheck.v1\"),\n configurationHash: HashSchema,\n projectId: IdSchema,\n expectedRevision: z.number().int().nonnegative(),\n checkedAt: TimestampSchema,\n canSave: z.boolean(),\n deferred: z.array(z.enum([\"base_model\", \"taskset\"])).max(2),\n findings: z.array(z.object({\n code: IdSchema,\n severity: z.enum([\"error\", \"warning\"]),\n message: z.string().min(1).max(5000),\n field: z.string().min(1).max(500).nullable(),\n }).strict()).max(100),\n}).strict();\n\nexport type ModelProjectConfigurationCheck = z.infer<typeof ModelProjectConfigurationCheckSchema>;\n\nexport const ModelProjectBaseModelCandidateSchema = z.object({\n id: IdSchema, name: z.string().min(1).max(500), available: z.boolean(), preference: ModelProjectBaseModelSchema,\n}).strict();\n\nexport async function modelProjectConfigurationHash(request: ModelProjectSaveRequest): Promise<string> {\n const parsed = parseModelProjectSaveRequest(request);\n return canonicalSha256({ project: parsed.project, expectedRevision: parsed.expectedRevision });\n}\n\nexport function parseModelProjectSaveRequest(value: unknown): ModelProjectSaveRequest {\n try {\n assertBoundedTaskJson(value, MODEL_PROJECT_SYNC_MAX_BYTES);\n } catch {\n throw new OpenPondModelProjectApiError(400, {\n schemaVersion: \"openpond.modelProjectApiError.v2\", code: \"model_configuration_json_invalid\",\n message: \"Model configuration must be bounded JSON data.\", retryable: false, requestId: null, details: {},\n });\n }\n return ModelProjectSaveRequestSchema.parse(value);\n}\n\n/** Stable across transport retries; excludes server-owned revision/timestamps. */\nexport async function createModelProjectSaveRequest(\n project: z.input<typeof ModelProjectEditableSchema>,\n expectedRevision: number,\n): Promise<ModelProjectSaveRequest> {\n assertBoundedTaskJson(project, MODEL_PROJECT_SYNC_MAX_BYTES);\n const editable = ModelProjectEditableSchema.parse(project);\n assertCanonicalPayloadSize(editable, MODEL_PROJECT_SYNC_MAX_BYTES, \"Model configuration\");\n const hash = await canonicalSha256({ project: editable, expectedRevision });\n return parseModelProjectSaveRequest({\n schemaVersion: \"openpond.modelProjectSave.v1\",\n operationId: `model-save:${hash}`,\n expectedRevision,\n project: editable,\n });\n}\n\nexport const HostedModelProjectSyncSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.hostedModelProjectSync.v2\"),\n portableProjectId: IdSchema,\n name: z.string().trim().min(1).max(200),\n objective: z.string().trim().max(5_000).nullable(),\n defaultBaseModel: ModelProjectBaseModelSchema.nullable(),\n defaultDestinationId: IdSchema.nullable(),\n trainingSetup: HostedModelProjectTrainingSetupSchema,\n sourceRevision: z.number().int().positive(),\n sourceUpdatedAt: TimestampSchema,\n expectedEtag: HashSchema.nullable().default(null),\n })\n .strict();\n\nexport const HostedModelProjectSummarySchema = z\n .object({\n id: IdSchema,\n teamId: IdSchema,\n portableProjectId: IdSchema,\n name: z.string().trim().min(1).max(200),\n objective: z.string().trim().max(5_000).nullable(),\n defaultBaseModel: ModelProjectBaseModelSchema.nullable(),\n defaultDestinationId: IdSchema.nullable(),\n trainingSetup: HostedModelProjectTrainingSetupSchema,\n sourceRevision: z.number().int().positive(),\n sourceUpdatedAt: TimestampSchema,\n revision: z.number().int().positive(),\n etag: HashSchema,\n createdAt: TimestampSchema,\n updatedAt: TimestampSchema,\n })\n .strict();\n\nexport const ModelProjectResourceSummarySchema = z\n .object({\n kind: z.enum([\n \"taskset_release\",\n \"harness_release\",\n \"dataset_release\",\n \"evidence_set\",\n \"model_version\",\n \"reward_model_version\",\n \"evaluation_receipt\",\n ]),\n ref: ModelProjectImmutableRefSchema,\n role: z.string().trim().min(1).max(200).nullable().default(null),\n updatedAt: TimestampSchema,\n })\n .strict();\n\nexport const HostedModelProjectDetailSchema = z\n .object({\n project: HostedModelProjectSummarySchema,\n resources: z.array(ModelProjectResourceSummarySchema).max(10_000),\n jobCount: z.number().int().nonnegative(),\n latestJobIds: z.array(IdSchema).max(100),\n })\n .strict();\n\nexport const ModelProjectApiErrorSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.modelProjectApiError.v2\"),\n code: z.string().trim().min(1).max(200),\n message: z.string().trim().min(1).max(5_000),\n retryable: z.boolean().default(false),\n requestId: z.string().trim().min(1).max(500).nullable().default(null),\n details: z.record(z.string(), z.unknown()).default({}),\n })\n .strict();\n\nexport class OpenPondModelProjectApiError extends Error {\n readonly status: number;\n readonly code: string;\n readonly retryable: boolean;\n readonly requestId: string | null;\n readonly details: Record<string, unknown>;\n\n constructor(status: number, error: z.infer<typeof ModelProjectApiErrorSchema>) {\n super(error.message);\n this.name = \"OpenPondModelProjectApiError\";\n this.status = status;\n this.code = error.code;\n this.retryable = error.retryable;\n this.requestId = error.requestId;\n this.details = error.details;\n }\n}\n\nexport type ModelProject = z.infer<typeof ModelProjectSchema>;\nexport type ModelProjectTrainingSetup = z.infer<\n typeof ModelProjectTrainingSetupSchema\n>;\nexport type HostedModelProjectSync = z.infer<\n typeof HostedModelProjectSyncSchema\n>;\nexport type HostedModelProjectSummary = z.infer<\n typeof HostedModelProjectSummarySchema\n>;\nexport type HostedModelProjectDetail = z.infer<\n typeof HostedModelProjectDetailSchema\n>;\n\ntype ModelProjectsFetch = typeof fetch;\n\nfunction headersRecord(headers: HeadersInit | undefined): Record<string, string> {\n const result: Record<string, string> = {};\n new Headers(headers).forEach((value, key) => {\n result[key] = value;\n });\n return result;\n}\n\nexport function createModelProjectsClient(input: {\n baseUrl: string;\n fetch?: ModelProjectsFetch;\n headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);\n}) {\n const fetchImpl = input.fetch ?? fetch;\n const baseUrl = input.baseUrl.replace(/\\/$/, \"\");\n\n async function request(pathname: string, init?: RequestInit): Promise<unknown> {\n const configuredHeaders =\n typeof input.headers === \"function\"\n ? await input.headers()\n : (input.headers ?? {});\n const response = await fetchImpl(`${baseUrl}${pathname}`, {\n ...init,\n headers: {\n accept: OPENPOND_MODEL_PROJECT_MEDIA_TYPE,\n ...(init?.body\n ? { \"content-type\": OPENPOND_MODEL_PROJECT_MEDIA_TYPE }\n : {}),\n ...headersRecord(configuredHeaders),\n ...headersRecord(init?.headers),\n },\n });\n const body = parseBoundedJson(\n await response.text(),\n MODEL_PROJECT_API_RESPONSE_MAX_BYTES,\n \"Model Project API response\",\n );\n if (!response.ok) {\n const parsed = ModelProjectApiErrorSchema.safeParse(body);\n if (parsed.success) {\n throw new OpenPondModelProjectApiError(response.status, parsed.data);\n }\n throw new OpenPondProtocolError(\n \"invalid_error_response\",\n `Model Project request failed with HTTP ${response.status} and an invalid error envelope.`,\n );\n }\n return body;\n }\n\n return {\n async configurationCandidates() {\n return z.object({ candidates: z.array(ModelProjectBaseModelCandidateSchema).max(1000) }).strict().parse(\n await request(\"/v1/model-projects/configuration/candidates\", { headers: { accept: \"application/json\" } }),\n ).candidates;\n },\n async checkConfiguration(value: ModelProjectSaveRequest) {\n const parsed = parseModelProjectSaveRequest(value);\n return ModelProjectConfigurationCheckSchema.parse(await request(\"/v1/model-projects/configuration/check\", {\n method: \"POST\", headers: { accept: \"application/json\", \"content-type\": \"application/json\" }, body: JSON.stringify(parsed),\n }));\n },\n async saveConfiguration(value: ModelProjectSaveRequest) {\n const parsed = parseModelProjectSaveRequest(value);\n return HostedModelProjectSummarySchema.parse(await request(\"/v1/model-projects/configuration/save\", {\n method: \"POST\", headers: { accept: \"application/json\", \"content-type\": \"application/json\" }, body: JSON.stringify(parsed),\n }));\n },\n async upsert(project: HostedModelProjectSync) {\n assertCanonicalPayloadSize(\n project,\n MODEL_PROJECT_SYNC_MAX_BYTES,\n \"Model Project sync\",\n );\n const parsed = HostedModelProjectSyncSchema.parse(project);\n const body = await request(\n `/v1/model-projects/${encodeURIComponent(parsed.portableProjectId)}`,\n { method: \"PUT\", body: JSON.stringify(parsed) },\n );\n return HostedModelProjectSummarySchema.parse(\n unwrapObject(body, \"project\"),\n );\n },\n async list() {\n const body = await request(\"/v1/model-projects\");\n return z\n .array(HostedModelProjectSummarySchema)\n .parse(unwrapObject(body, \"projects\"));\n },\n async get(projectId: string) {\n const body = await request(\n `/v1/model-projects/${encodeURIComponent(IdSchema.parse(projectId))}`,\n );\n return HostedModelProjectDetailSchema.parse(body);\n },\n };\n}\n\nfunction unwrapObject(value: unknown, key: string): unknown {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return value;\n return key in value ? (value as Record<string, unknown>)[key] : value;\n}\n", "export type CanonicalJsonValue =\n | null\n | boolean\n | number\n | string\n | CanonicalJsonValue[]\n | { [key: string]: CanonicalJsonValue };\n\nexport const OPENPOND_TRAINING_PROTOCOL_MAJOR = 2 as const;\nexport const OPENPOND_TRAINING_MEDIA_TYPE =\n \"application/vnd.openpond.training+json;version=2\" as const;\nexport const OPENPOND_MODEL_PROJECT_MEDIA_TYPE =\n \"application/vnd.openpond.model-project+json;version=2\" as const;\n\nexport const TRAINING_JOB_SUBMISSION_MAX_BYTES = 1_048_576;\nexport const TRAINING_INPUT_ARTIFACT_MAX_BYTES = 67_108_864;\nexport const TRAINING_API_RESPONSE_MAX_BYTES = 8_388_608;\nexport const MODEL_PROJECT_SYNC_MAX_BYTES = 524_288;\nexport const MODEL_PROJECT_API_RESPONSE_MAX_BYTES = 8_388_608;\n\nexport class OpenPondProtocolError extends Error {\n readonly code: string;\n\n constructor(code: string, message: string) {\n super(message);\n this.name = \"OpenPondProtocolError\";\n this.code = code;\n }\n}\n\n/**\n * Deterministic JSON used for content-addressed OpenPond protocol objects.\n * Object keys are sorted by Unicode code point, arrays retain their authored\n * order, and non-JSON/non-finite values are rejected rather than coerced.\n */\nexport function canonicalJson(value: unknown): string {\n return JSON.stringify(normalizeCanonicalJson(value));\n}\n\nexport function canonicalJsonByteLength(value: unknown): number {\n return new TextEncoder().encode(canonicalJson(value)).byteLength;\n}\n\nexport async function canonicalSha256(value: unknown): Promise<string> {\n const bytes = new TextEncoder().encode(canonicalJson(value));\n const digest = await globalThis.crypto.subtle.digest(\"SHA-256\", bytes);\n return Array.from(new Uint8Array(digest), (byte) =>\n byte.toString(16).padStart(2, \"0\"),\n ).join(\"\");\n}\n\nexport function assertCanonicalPayloadSize(\n value: unknown,\n maximumBytes: number,\n label: string,\n): void {\n const actualBytes = canonicalJsonByteLength(value);\n if (actualBytes > maximumBytes) {\n throw new OpenPondProtocolError(\n \"payload_too_large\",\n `${label} is ${actualBytes} bytes; the maximum is ${maximumBytes} bytes.`,\n );\n }\n}\n\nexport function parseBoundedJson(\n text: string,\n maximumBytes: number,\n label: string,\n): unknown {\n const actualBytes = new TextEncoder().encode(text).byteLength;\n if (actualBytes > maximumBytes) {\n throw new OpenPondProtocolError(\n \"response_too_large\",\n `${label} is ${actualBytes} bytes; the maximum is ${maximumBytes} bytes.`,\n );\n }\n try {\n return JSON.parse(text) as unknown;\n } catch {\n throw new OpenPondProtocolError(\n \"invalid_json\",\n `${label} was not valid JSON.`,\n );\n }\n}\n\nfunction normalizeCanonicalJson(value: unknown): CanonicalJsonValue {\n if (\n value === null ||\n typeof value === \"string\" ||\n typeof value === \"boolean\"\n ) {\n return value;\n }\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) {\n throw new OpenPondProtocolError(\n \"non_json_value\",\n \"Canonical JSON cannot contain a non-finite number.\",\n );\n }\n return Object.is(value, -0) ? 0 : value;\n }\n if (Array.isArray(value)) {\n return value.map((entry) => normalizeCanonicalJson(entry));\n }\n if (typeof value === \"object\") {\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) {\n throw new OpenPondProtocolError(\n \"non_json_value\",\n \"Canonical JSON accepts only plain objects.\",\n );\n }\n const result: Record<string, CanonicalJsonValue> = {};\n for (const key of Object.keys(value as Record<string, unknown>).sort()) {\n const entry = (value as Record<string, unknown>)[key];\n if (entry === undefined || typeof entry === \"function\" || typeof entry === \"symbol\") {\n throw new OpenPondProtocolError(\n \"non_json_value\",\n `Canonical JSON cannot contain ${typeof entry} at ${key}.`,\n );\n }\n result[key] = normalizeCanonicalJson(entry);\n }\n return result;\n }\n throw new OpenPondProtocolError(\n \"non_json_value\",\n `Canonical JSON cannot contain ${typeof value}.`,\n );\n}\n", "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 = 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"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["z", "learningRef", "sealLearningContent", "assertBoundedTaskJson", "z", "assertBoundedTaskJson", "HashSchema", "z", "assertBoundedTaskJson", "asset", "IdSchema", "z", "sealLearningContent", "assertBoundedTaskJson", "learningRef", "reward", "task", "value", "asset"]
|
|
3
|
+
"sources": ["../src/model-starters.ts", "../src/model-projects.ts", "../src/protocol.ts", "../src/model-starter-execution.ts", "../src/model-taskset-derivation.ts", "../src/model-taskset-resources.ts"],
|
|
4
|
+
"sourcesContent": ["import { z } from \"zod\";\nimport { TasksetReleaseSchema, assertTasksetRelease } from \"@openpond/evals/tasksets\";\nimport { LearningTextAssetSchema, TaskDefinitionSchema, learningRef, sameLearningRef, sealLearningContent } from \"@openpond/evals/learning\";\nimport { RewardBindingSchema, RewardReleaseSchema, compileBoundGraders } from \"@openpond/evals/rewards\";\nimport { assertBoundedTaskJson, validateTaskValue } from \"@openpond/evals/task-schema\";\n\nimport { ModelProjectBaseModelSchema, ModelProjectTrainingMethodSchema, ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { canonicalSha256 } from \"./protocol.js\";\nimport { ModelStarterExecutionSchema, validateModelStarterExecution } from \"./model-starter-execution.js\";\n\nexport { ModelStarterExecutionSchema, ModelStarterEnvironmentAttemptSchema, verifyModelStarterEnvironmentAttempt, ModelStarterToolFixtureScriptSchema, createModelStarterExecutionAsset, modelStarterExecutionAssetId, resolveModelStarterExecutionAsset, type ModelStarterExecution, type ModelStarterExecutionContext } from \"./model-starter-execution.js\";\nexport { ModelTasksetDerivationSchema, ModelTasksetPackageSchema, deriveModelTaskset, validateModelTasksetPackage, type ModelTasksetPackage } from \"./model-taskset-derivation.js\";\nexport { ModelTasksetExecutionResourcesSchema, createModelTasksetExecutionResourcesAsset, modelTasksetExecutionResourcesAssetId, resolveModelTasksetExecutionResourcesAsset } from \"./model-taskset-resources.js\";\n\nconst IdSchema = z.string().trim().min(1).max(500);\nconst RefSchema = ModelProjectVersionedRefSchema;\n\n/** Catalog records contain references and previews, never the private task rows. */\nexport const ModelStarterContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelStarter.v1\"),\n id: IdSchema,\n revision: z.number().int().positive(),\n name: z.string().trim().min(1).max(200),\n description: z.string().trim().min(1).max(2_000),\n category: z.enum([\"extraction\", \"support\", \"operations\", \"knowledge\", \"coding\", \"writing\", \"classification\"]),\n taskset: RefSchema,\n taskDefinition: RefSchema,\n rewardBinding: RefSchema,\n rewards: z.array(RefSchema).min(1).max(100),\n assets: z.array(RefSchema).max(1_000),\n previewTaskIds: z.array(IdSchema).min(1).max(8),\n startingModel: ModelProjectBaseModelSchema,\n supportedMethods: z.array(ModelProjectTrainingMethodSchema).min(1).max(8),\n defaultMethod: ModelProjectTrainingMethodSchema,\n provenance: z.object({ author: z.string().min(1).max(200), license: z.string().min(1).max(200), sourceDescription: z.string().min(1).max(2_000) }).strict(),\n // These are references to real results. Package publication does not create\n // evidence, qualify a starter, or enable continuous learning.\n evidence: z.object({ verifierFixtures: RefSchema.nullable(), baseline: RefSchema.nullable(), training: RefSchema.nullable(), evaluation: RefSchema.nullable() }).strict(),\n}).strict().superRefine((starter, context) => {\n if (!starter.supportedMethods.includes(starter.defaultMethod)) context.addIssue({ code: \"custom\", path: [\"defaultMethod\"], message: \"The default method must be supported by the package.\" });\n for (const field of [\"rewards\", \"assets\"] as const) {\n if (new Set(starter[field].map(ref => ref.id)).size !== starter[field].length) context.addIssue({ code: \"custom\", path: [field], message: \"Dependency identities must be unique.\" });\n }\n if (new Set(starter.previewTaskIds).size !== starter.previewTaskIds.length) context.addIssue({ code: \"custom\", path: [\"previewTaskIds\"], message: \"Preview tasks must be unique.\" });\n});\nexport const ModelStarterSchema = ModelStarterContentSchema.safeExtend({ contentHash: z.string().regex(/^[a-f0-9]{64}$/) });\nexport type ModelStarter = z.infer<typeof ModelStarterSchema>;\n\n/** A resolved small package, obtained separately from catalog discovery.\n * Large Tasksets remain manifest/shard resources; they are not list payloads. */\nexport const ResolvedModelStarterSchema = z.object({\n starter: ModelStarterSchema,\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 execution: ModelStarterExecutionSchema.optional(),\n}).strict();\nexport type ResolvedModelStarter = z.infer<typeof ResolvedModelStarterSchema>;\n\n/** Publisher attestation for original synthetic contact data, never a caller\n * override for arbitrary imports or for a failed secret scan. */\nexport const ModelStarterPrivacyReviewSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelStarterPrivacyReview.v1\"),\n disposition: z.literal(\"synthetic_only\"),\n reviewedBy: z.string().trim().min(1).max(500), reviewedAt: z.iso.datetime(),\n reviewedContentHash: z.string().regex(/^[a-f0-9]{64}$/),\n note: z.string().trim().min(1).max(2_000),\n}).strict();\nexport function modelStarterPrivacyContentHash(value: ResolvedModelStarter): string {\n const { contentHash: _starterHash, ...starter } = value.starter;\n const { contentHash: _tasksetHash, ...taskset } = value.taskset;\n const { contentHash: _referenceHash, ...tasksetRef } = starter.taskset;\n const metadata = { ...taskset.metadata };\n const authoring = metadata.starterAuthoring;\n if (authoring && typeof authoring === \"object\" && !Array.isArray(authoring)) {\n const { privacyReview: _review, ...content } = authoring as Record<string, unknown>;\n metadata.starterAuthoring = content;\n }\n // Exclude only the attestation and hashes that contain that attestation.\n return sealLearningContent({ ...value, starter: { ...starter, taskset: tasksetRef }, taskset: { ...taskset, metadata } }).contentHash;\n}\n\n/** Final creation intent. The server resolves package bytes from its catalog;\n * callers cannot supply executable resources or qualification receipts here. */\nexport const ModelStarterCreationIntentSchema = z.object({\n profileId: IdSchema,\n modelId: IdSchema,\n name: z.string().trim().min(1).max(200),\n starter: RefSchema,\n startingModel: ModelProjectBaseModelSchema,\n method: ModelProjectTrainingMethodSchema,\n rewardBindingRef: RefSchema.nullable().optional(),\n}).strict();\nexport const ModelStarterCreationRequestSchema = ModelStarterCreationIntentSchema.extend({\n schemaVersion: z.literal(\"openpond.modelStarterCreation.v1\"),\n operationId: IdSchema,\n}).strict();\nexport type ModelStarterCreationRequest = z.infer<typeof ModelStarterCreationRequestSchema>;\n\nexport function parseModelStarterCreationRequest(value: unknown): ModelStarterCreationRequest {\n assertBoundedTaskJson(value, 64 * 1024);\n return ModelStarterCreationRequestSchema.parse(value);\n}\n\n/** Prepare once on final confirmation and retain across uncertain transport\n * outcomes. The server must bind operationId to the complete original intent\n * and atomically commit resources, model configuration and the retry receipt. */\nexport async function createModelStarterCreationRequest(\n value: z.input<typeof ModelStarterCreationIntentSchema>,\n): Promise<ModelStarterCreationRequest> {\n assertBoundedTaskJson(value, 64 * 1024);\n const intent = ModelStarterCreationIntentSchema.parse(value);\n return parseModelStarterCreationRequest({\n ...intent,\n schemaVersion: \"openpond.modelStarterCreation.v1\",\n operationId: `model-starter:${await canonicalSha256(intent)}`,\n });\n}\n\n/** Scope authorization belongs to the API. This validates the final intent\n * against the exact trusted package before any user resources are written. */\nexport function validateModelStarterCreation(value: unknown, packageValue: unknown) {\n const request = parseModelStarterCreationRequest(value);\n const resolved = validateResolvedModelStarter(packageValue);\n if (!sameLearningRef(request.starter, learningRef(resolved.starter))) throw new Error(\"Starter creation references a different package revision.\");\n if (!resolved.starter.supportedMethods.includes(request.method)) throw new Error(\"The selected training method is not supported by this starter.\");\n return { request, resolved };\n}\n\n/** Explicit projection keeps frozen examples, expected outputs, privileged\n * context and verifier source out of read-only model-facing previews. */\nexport function previewModelStarter(value: unknown) {\n const { starter, taskset, taskDefinition, rewardBinding, rewards } = validateResolvedModelStarter(value);\n return {\n starter,\n inputSchema: taskDefinition.inputSchema,\n outputSchema: taskDefinition.outputSchema,\n reward: {\n name: rewardBinding.name,\n description: rewardBinding.description,\n checks: rewardBinding.sources.map(source => {\n const reward = rewards.find(reward => sameLearningRef(source.reward, learningRef(reward)))!;\n return { name: reward.name, description: reward.description, kind: reward.implementation.kind, role: source.role, weight: source.weight, required: source.required, hardGate: source.hardGate };\n }),\n },\n tasks: starter.previewTaskIds.map(id => {\n const task = taskset.tasks.find(task => task.id === id)!;\n return { id: task.id, input: task.input, policyVisibleContext: task.policyVisibleContext };\n }),\n counts: {\n train: taskset.tasks.filter(task => task.split === \"train\").length,\n validation: taskset.tasks.filter(task => task.split === \"validation\").length,\n frozenEvaluation: taskset.tasks.filter(task => task.split === \"frozen_eval\").length,\n },\n };\n}\n\n/** Verify the dependency graph before creating user-owned configuration.\n * A matching outer hash alone cannot authorize substituted private graders. */\nexport function validateResolvedModelStarter(value: unknown): ResolvedModelStarter {\n assertBoundedTaskJson(value, 16 * 1024 * 1024);\n const resolved = ResolvedModelStarterSchema.parse(value);\n const { starter, taskset, taskDefinition, rewardBinding, rewards, assets } = resolved;\n const authoring = taskset.metadata.starterAuthoring;\n if (authoring && typeof authoring === \"object\" && !Array.isArray(authoring) && \"privacyReview\" in authoring) {\n const review = ModelStarterPrivacyReviewSchema.parse(authoring.privacyReview);\n if (review.reviewedContentHash !== modelStarterPrivacyContentHash(resolved)) throw new Error(\"Starter privacy review differs from the published contents.\");\n }\n const resources = [starter, taskset, taskDefinition, rewardBinding, ...rewards, ...assets];\n for (const resource of resources) {\n const { contentHash, ...content } = resource;\n if (sealLearningContent(content).contentHash !== contentHash) throw new Error(`Starter resource integrity failed: ${resource.id}.`);\n }\n assertTasksetRelease(taskset);\n validateModelStarterExecution(resolved.execution, taskset, assets);\n function exact(expected: z.infer<typeof RefSchema>, resource: { id: string; revision: number; contentHash: string }) {\n if (!sameLearningRef(expected, learningRef(resource))) throw new Error(`Starter dependency mismatch: ${expected.id}.`);\n }\n exact(starter.taskset, taskset);\n exact(starter.taskDefinition, taskDefinition);\n exact(starter.rewardBinding, rewardBinding);\n exact(taskDefinition.rewardBinding, rewardBinding);\n if (rewardBinding.recipeRef) throw new Error(\"Starter binding recipes must be resolved into a standalone binding before publication.\");\n const { policy, environment, environmentRelease, tools, capabilities, verifierSetRelease } = taskset;\n const execution = { policy, environment, ...(environmentRelease ? { environmentRelease } : {}), tools, capabilities, ...(verifierSetRelease ? { verifierSetRelease } : {}) };\n if (sealLearningContent(execution).contentHash !== sealLearningContent(taskDefinition.execution).contentHash) throw new Error(\"Starter execution context differs from its task format.\");\n if (sealLearningContent({ graders: taskset.graders }).contentHash !== sealLearningContent({ graders: compileBoundGraders(rewardBinding, rewards) }).contentHash) throw new Error(\"Starter executable graders differ from its Reward binding.\");\n for (const [references, values] of [[starter.rewards, rewards], [starter.assets, assets]] as const) {\n if (references.length !== values.length || new Set(values.map(resource => resource.id)).size !== values.length) throw new Error(\"Starter dependency inventory mismatch.\");\n for (const ref of references) {\n const resource = values.find(value => value.id === ref.id);\n if (!resource) throw new Error(`Starter dependency is missing: ${ref.id}.`);\n exact(ref, resource);\n }\n }\n for (const source of rewardBinding.sources) {\n const reward = rewards.find(reward => reward.id === source.reward.id);\n if (!reward) throw new Error(`Starter Reward is missing: ${source.reward.id}.`);\n exact(source.reward, reward);\n }\n for (const reward of rewards) {\n const implementation = reward.implementation;\n const references = [...reward.assets,\n ...(\"verifierRef\" in implementation ? [implementation.verifierRef] : []),\n ...(\"rubricRef\" in implementation ? [implementation.rubricRef] : []),\n ...(\"inputContract\" in implementation ? [implementation.inputContract] : []),\n ];\n for (const ref of references) {\n const asset = assets.find(asset => asset.id === ref.id);\n if (!asset || sealLearningContent(asset.asset).contentHash !== sealLearningContent(ref).contentHash) throw new Error(`Starter Reward source is missing or changed: ${ref.id}.`);\n if (ref.visibility === \"policy\") throw new Error(`Starter Reward source must remain private to its evaluator: ${ref.id}.`);\n }\n }\n if (new Set(taskset.tasks.map(task => task.id)).size !== taskset.tasks.length) throw new Error(\"Starter task identities must be unique.\");\n const inputSplits = new Map<string, string>();\n for (const task of taskset.tasks) {\n if (task.policyVisibleContext.instructions !== taskDefinition.instructions) throw new Error(`Starter task does not carry its declared model instructions: ${task.id}.`);\n const inputHash = sealLearningContent({ input: task.input, context: task.policyVisibleContext }).contentHash;\n const priorSplit = inputSplits.get(inputHash);\n if (priorSplit && priorSplit !== task.split) throw new Error(\"Starter policy input appears in multiple splits.\");\n inputSplits.set(inputHash, task.split);\n if (!validateTaskValue(taskDefinition.inputSchema, task.input).valid) throw new Error(`Starter task input does not match its format: ${task.id}.`);\n if (task.expectedOutput !== null && !validateTaskValue(taskDefinition.outputSchema, task.expectedOutput).valid) throw new Error(`Starter expected output does not match its format: ${task.id}.`);\n }\n for (const id of starter.previewTaskIds) {\n const task = taskset.tasks.find(task => task.id === id);\n if (!task || task.split === \"frozen_eval\") throw new Error(`Starter preview task is unavailable: ${id}.`);\n }\n return resolved;\n}\n", "import { z } from \"zod\";\nimport { assertBoundedTaskJson } from \"@openpond/evals/task-schema\";\n\nimport {\n MODEL_PROJECT_API_RESPONSE_MAX_BYTES,\n MODEL_PROJECT_SYNC_MAX_BYTES,\n OPENPOND_MODEL_PROJECT_MEDIA_TYPE,\n OpenPondProtocolError,\n assertCanonicalPayloadSize,\n canonicalSha256,\n parseBoundedJson,\n} from \"./protocol.js\";\n\nexport {\n MODEL_PROJECT_API_RESPONSE_MAX_BYTES,\n MODEL_PROJECT_SYNC_MAX_BYTES,\n OPENPOND_MODEL_PROJECT_MEDIA_TYPE,\n} from \"./protocol.js\";\n\nconst IdSchema = z.string().trim().min(1).max(500);\nconst HashSchema = z.string().regex(/^[a-f0-9]{64}$/);\nconst TimestampSchema = z.string().datetime({ offset: true });\n\nexport const ModelProjectImmutableRefSchema = z\n .object({\n id: IdSchema,\n contentHash: HashSchema,\n })\n .strict();\n\nexport const ModelProjectVersionedRefSchema =\n ModelProjectImmutableRefSchema.extend({\n revision: z.number().int().positive(),\n }).strict();\n\nexport const ModelProjectBaseModelSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.baseModelPreference.v1\"),\n modelId: IdSchema,\n revision: z.string().trim().min(1).max(256).nullable(),\n tokenizerRevision: z.string().trim().min(1).max(256).nullable(),\n chatTemplateHash: z.string().trim().min(8).max(256).nullable(),\n modelAssetId: IdSchema.nullable(),\n source: z.enum([\"managed\", \"local\", \"builtin\"]),\n })\n .strict();\n\nexport const ModelProjectTrainingMethodSchema = z.enum([\n \"sft\",\n \"dpo\",\n \"grpo\",\n \"ppo\",\n \"sdft\",\n \"opd\",\n \"opsd\",\n \"sdpo\",\n]);\n\n/**\n * A versioned recipe document stored while a Project is still mutable.\n * The training endpoint validates the selected recipe version in full before\n * accepting an immutable Job; Project sync preserves newer recipe fields.\n */\nexport const ModelProjectRecipeDocumentSchema = z\n .object({\n schemaVersion: z.string().regex(/^openpond\\.[A-Za-z0-9]+Recipe\\.v\\d+$/),\n method: ModelProjectTrainingMethodSchema,\n parameterization: z.enum([\"lora\", \"full\"]),\n })\n .catchall(z.unknown());\n\nexport const ModelProjectTrainingSetupSchema = z\n .object({\n tasksetRef: ModelProjectVersionedRefSchema.nullable().default(null),\n rewardBindingRef: ModelProjectVersionedRefSchema.nullable().optional(),\n tasksetRelease: ModelProjectImmutableRefSchema.nullable().default(null),\n harnessRelease: ModelProjectImmutableRefSchema.nullable().default(null),\n baseModel: ModelProjectBaseModelSchema.nullable().default(null),\n method: ModelProjectTrainingMethodSchema.nullable().default(null),\n destinationId: IdSchema.nullable().default(null),\n managedRolloutPlacement: z\n .enum([\"local\", \"remote\"])\n .default(\"remote\"),\n managedGpuPlacementObjective: z\n .enum([\"fast\", \"balanced\", \"economical\"])\n .default(\"balanced\"),\n managedGpuRequirement: z\n .enum([\"any\", \"h100_hbm3\"])\n .default(\"any\"),\n runPreset: z\n .enum([\"small\", \"standard\", \"custom\", \"small_experiment\"])\n .nullable()\n .default(null),\n recipe: ModelProjectRecipeDocumentSchema.nullable().default(null),\n preferredMaximumSpendUsd: z.number().nonnegative().nullable().default(null),\n preferredRetentionDays: z\n .number()\n .int()\n .nonnegative()\n .nullable()\n .default(null),\n })\n .strict();\n\nexport const HostedModelProjectTrainingSetupSchema =\n ModelProjectTrainingSetupSchema.omit({ managedGpuRequirement: true });\n\nexport const HostedModelProjectLinkSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.hostedModelProjectLink.v1\"),\n teamId: IdSchema,\n projectId: IdSchema,\n portableProjectId: IdSchema,\n revision: z.number().int().positive(),\n etag: HashSchema,\n syncedSourceRevision: z.number().int().positive(),\n syncedAt: TimestampSchema,\n tasksets: z\n .array(\n z\n .object({\n localTasksetId: IdSchema,\n releaseId: IdSchema,\n releaseRevision: z.number().int().positive(),\n releaseHash: HashSchema,\n hostedTasksetId: IdSchema,\n syncedAt: TimestampSchema,\n })\n .strict(),\n )\n .max(10_000)\n .default([]),\n })\n .strict();\n\nexport const ModelProjectTasksetSyncSchema = z\n .object({\n localTasksetId: IdSchema,\n releaseId: IdSchema,\n releaseRevision: z.number().int().positive(),\n releaseHash: HashSchema,\n state: z.enum([\"syncing\", \"synced\", \"sync_failed\"]),\n hostedTasksetId: IdSchema.nullable().default(null),\n lastAttemptAt: TimestampSchema,\n syncedAt: TimestampSchema.nullable().default(null),\n lastError: z.string().trim().min(1).max(5_000).nullable().default(null),\n })\n .strict();\n\nexport const ModelProjectSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.modelProject.v2\"),\n id: IdSchema,\n profileId: IdSchema,\n revision: z.number().int().positive().default(1),\n name: z.string().trim().min(1).max(200),\n objective: z.string().trim().max(5_000).nullable(),\n defaultBaseModel: ModelProjectBaseModelSchema.nullable(),\n defaultDestinationId: IdSchema.nullable(),\n trainingSetup: ModelProjectTrainingSetupSchema,\n hosted: HostedModelProjectLinkSchema.nullable().default(null),\n tasksetSyncs: z\n .array(ModelProjectTasksetSyncSchema)\n .max(10_000)\n .default([]),\n createdAt: TimestampSchema,\n updatedAt: TimestampSchema,\n })\n .strict();\n\n/** User-editable configuration. Execution and hosting receipts are server-owned. */\nexport const ModelProjectEditableSchema = ModelProjectSchema.pick({\n id: true,\n profileId: true,\n name: true,\n objective: true,\n defaultBaseModel: true,\n defaultDestinationId: true,\n trainingSetup: true,\n});\n\n/** Zero creates a new Model; a positive revision updates that exact revision. */\nexport const ModelProjectSaveRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelProjectSave.v1\"),\n operationId: IdSchema,\n expectedRevision: z.number().int().nonnegative(),\n project: ModelProjectEditableSchema,\n}).strict();\n\nexport type ModelProjectSaveRequest = z.infer<typeof ModelProjectSaveRequestSchema>;\n\n/** A read-only configuration check; it does not establish training or grader quality. */\nexport const ModelProjectConfigurationCheckSchema = z.object({\n schemaVersion: z.literal(\"openpond.modelProjectConfigurationCheck.v1\"),\n configurationHash: HashSchema,\n projectId: IdSchema,\n expectedRevision: z.number().int().nonnegative(),\n checkedAt: TimestampSchema,\n canSave: z.boolean(),\n deferred: z.array(z.enum([\"base_model\", \"taskset\"])).max(2),\n findings: z.array(z.object({\n code: IdSchema,\n severity: z.enum([\"error\", \"warning\"]),\n message: z.string().min(1).max(5000),\n field: z.string().min(1).max(500).nullable(),\n }).strict()).max(100),\n}).strict();\n\nexport type ModelProjectConfigurationCheck = z.infer<typeof ModelProjectConfigurationCheckSchema>;\n\nexport const ModelProjectBaseModelCandidateSchema = z.object({\n id: IdSchema, name: z.string().min(1).max(500), available: z.boolean(), preference: ModelProjectBaseModelSchema,\n}).strict();\n\nexport async function modelProjectConfigurationHash(request: ModelProjectSaveRequest): Promise<string> {\n const parsed = parseModelProjectSaveRequest(request);\n return canonicalSha256({ project: parsed.project, expectedRevision: parsed.expectedRevision });\n}\n\nexport function parseModelProjectSaveRequest(value: unknown): ModelProjectSaveRequest {\n try {\n assertBoundedTaskJson(value, MODEL_PROJECT_SYNC_MAX_BYTES);\n } catch {\n throw new OpenPondModelProjectApiError(400, {\n schemaVersion: \"openpond.modelProjectApiError.v2\", code: \"model_configuration_json_invalid\",\n message: \"Model configuration must be bounded JSON data.\", retryable: false, requestId: null, details: {},\n });\n }\n return ModelProjectSaveRequestSchema.parse(value);\n}\n\n/** Stable across transport retries; excludes server-owned revision/timestamps. */\nexport async function createModelProjectSaveRequest(\n project: z.input<typeof ModelProjectEditableSchema>,\n expectedRevision: number,\n): Promise<ModelProjectSaveRequest> {\n assertBoundedTaskJson(project, MODEL_PROJECT_SYNC_MAX_BYTES);\n const editable = ModelProjectEditableSchema.parse(project);\n assertCanonicalPayloadSize(editable, MODEL_PROJECT_SYNC_MAX_BYTES, \"Model configuration\");\n const hash = await canonicalSha256({ project: editable, expectedRevision });\n return parseModelProjectSaveRequest({\n schemaVersion: \"openpond.modelProjectSave.v1\",\n operationId: `model-save:${hash}`,\n expectedRevision,\n project: editable,\n });\n}\n\nexport const HostedModelProjectSyncSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.hostedModelProjectSync.v2\"),\n portableProjectId: IdSchema,\n name: z.string().trim().min(1).max(200),\n objective: z.string().trim().max(5_000).nullable(),\n defaultBaseModel: ModelProjectBaseModelSchema.nullable(),\n defaultDestinationId: IdSchema.nullable(),\n trainingSetup: HostedModelProjectTrainingSetupSchema,\n sourceRevision: z.number().int().positive(),\n sourceUpdatedAt: TimestampSchema,\n expectedEtag: HashSchema.nullable().default(null),\n })\n .strict();\n\nexport const HostedModelProjectSummarySchema = z\n .object({\n id: IdSchema,\n teamId: IdSchema,\n portableProjectId: IdSchema,\n name: z.string().trim().min(1).max(200),\n objective: z.string().trim().max(5_000).nullable(),\n defaultBaseModel: ModelProjectBaseModelSchema.nullable(),\n defaultDestinationId: IdSchema.nullable(),\n trainingSetup: HostedModelProjectTrainingSetupSchema,\n sourceRevision: z.number().int().positive(),\n sourceUpdatedAt: TimestampSchema,\n revision: z.number().int().positive(),\n etag: HashSchema,\n createdAt: TimestampSchema,\n updatedAt: TimestampSchema,\n })\n .strict();\n\nexport const ModelProjectResourceSummarySchema = z\n .object({\n kind: z.enum([\n \"taskset_release\",\n \"harness_release\",\n \"dataset_release\",\n \"evidence_set\",\n \"model_version\",\n \"reward_model_version\",\n \"evaluation_receipt\",\n ]),\n ref: ModelProjectImmutableRefSchema,\n role: z.string().trim().min(1).max(200).nullable().default(null),\n updatedAt: TimestampSchema,\n })\n .strict();\n\nexport const HostedModelProjectDetailSchema = z\n .object({\n project: HostedModelProjectSummarySchema,\n resources: z.array(ModelProjectResourceSummarySchema).max(10_000),\n jobCount: z.number().int().nonnegative(),\n latestJobIds: z.array(IdSchema).max(100),\n })\n .strict();\n\nexport const ModelProjectApiErrorSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.modelProjectApiError.v2\"),\n code: z.string().trim().min(1).max(200),\n message: z.string().trim().min(1).max(5_000),\n retryable: z.boolean().default(false),\n requestId: z.string().trim().min(1).max(500).nullable().default(null),\n details: z.record(z.string(), z.unknown()).default({}),\n })\n .strict();\n\nexport class OpenPondModelProjectApiError extends Error {\n readonly status: number;\n readonly code: string;\n readonly retryable: boolean;\n readonly requestId: string | null;\n readonly details: Record<string, unknown>;\n\n constructor(status: number, error: z.infer<typeof ModelProjectApiErrorSchema>) {\n super(error.message);\n this.name = \"OpenPondModelProjectApiError\";\n this.status = status;\n this.code = error.code;\n this.retryable = error.retryable;\n this.requestId = error.requestId;\n this.details = error.details;\n }\n}\n\nexport type ModelProject = z.infer<typeof ModelProjectSchema>;\nexport type ModelProjectTrainingSetup = z.infer<\n typeof ModelProjectTrainingSetupSchema\n>;\nexport type HostedModelProjectSync = z.infer<\n typeof HostedModelProjectSyncSchema\n>;\nexport type HostedModelProjectSummary = z.infer<\n typeof HostedModelProjectSummarySchema\n>;\nexport type HostedModelProjectDetail = z.infer<\n typeof HostedModelProjectDetailSchema\n>;\n\ntype ModelProjectsFetch = typeof fetch;\n\nfunction headersRecord(headers: HeadersInit | undefined): Record<string, string> {\n const result: Record<string, string> = {};\n new Headers(headers).forEach((value, key) => {\n result[key] = value;\n });\n return result;\n}\n\nexport function createModelProjectsClient(input: {\n baseUrl: string;\n fetch?: ModelProjectsFetch;\n headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);\n}) {\n const fetchImpl = input.fetch ?? fetch;\n const baseUrl = input.baseUrl.replace(/\\/$/, \"\");\n\n async function request(pathname: string, init?: RequestInit): Promise<unknown> {\n const configuredHeaders =\n typeof input.headers === \"function\"\n ? await input.headers()\n : (input.headers ?? {});\n const response = await fetchImpl(`${baseUrl}${pathname}`, {\n ...init,\n headers: {\n accept: OPENPOND_MODEL_PROJECT_MEDIA_TYPE,\n ...(init?.body\n ? { \"content-type\": OPENPOND_MODEL_PROJECT_MEDIA_TYPE }\n : {}),\n ...headersRecord(configuredHeaders),\n ...headersRecord(init?.headers),\n },\n });\n const body = parseBoundedJson(\n await response.text(),\n MODEL_PROJECT_API_RESPONSE_MAX_BYTES,\n \"Model Project API response\",\n );\n if (!response.ok) {\n const parsed = ModelProjectApiErrorSchema.safeParse(body);\n if (parsed.success) {\n throw new OpenPondModelProjectApiError(response.status, parsed.data);\n }\n throw new OpenPondProtocolError(\n \"invalid_error_response\",\n `Model Project request failed with HTTP ${response.status} and an invalid error envelope.`,\n );\n }\n return body;\n }\n\n return {\n async configurationCandidates() {\n return z.object({ candidates: z.array(ModelProjectBaseModelCandidateSchema).max(1000) }).strict().parse(\n await request(\"/v1/model-projects/configuration/candidates\", { headers: { accept: \"application/json\" } }),\n ).candidates;\n },\n async checkConfiguration(value: ModelProjectSaveRequest) {\n const parsed = parseModelProjectSaveRequest(value);\n return ModelProjectConfigurationCheckSchema.parse(await request(\"/v1/model-projects/configuration/check\", {\n method: \"POST\", headers: { accept: \"application/json\", \"content-type\": \"application/json\" }, body: JSON.stringify(parsed),\n }));\n },\n async saveConfiguration(value: ModelProjectSaveRequest) {\n const parsed = parseModelProjectSaveRequest(value);\n return HostedModelProjectSummarySchema.parse(await request(\"/v1/model-projects/configuration/save\", {\n method: \"POST\", headers: { accept: \"application/json\", \"content-type\": \"application/json\" }, body: JSON.stringify(parsed),\n }));\n },\n async upsert(project: HostedModelProjectSync) {\n assertCanonicalPayloadSize(\n project,\n MODEL_PROJECT_SYNC_MAX_BYTES,\n \"Model Project sync\",\n );\n const parsed = HostedModelProjectSyncSchema.parse(project);\n const body = await request(\n `/v1/model-projects/${encodeURIComponent(parsed.portableProjectId)}`,\n { method: \"PUT\", body: JSON.stringify(parsed) },\n );\n return HostedModelProjectSummarySchema.parse(\n unwrapObject(body, \"project\"),\n );\n },\n async list() {\n const body = await request(\"/v1/model-projects\");\n return z\n .array(HostedModelProjectSummarySchema)\n .parse(unwrapObject(body, \"projects\"));\n },\n async get(projectId: string) {\n const body = await request(\n `/v1/model-projects/${encodeURIComponent(IdSchema.parse(projectId))}`,\n );\n return HostedModelProjectDetailSchema.parse(body);\n },\n };\n}\n\nfunction unwrapObject(value: unknown, key: string): unknown {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return value;\n return key in value ? (value as Record<string, unknown>)[key] : value;\n}\n", "export type CanonicalJsonValue =\n | null\n | boolean\n | number\n | string\n | CanonicalJsonValue[]\n | { [key: string]: CanonicalJsonValue };\n\nexport const OPENPOND_TRAINING_PROTOCOL_MAJOR = 2 as const;\nexport const OPENPOND_TRAINING_MEDIA_TYPE =\n \"application/vnd.openpond.training+json;version=2\" as const;\nexport const OPENPOND_MODEL_PROJECT_MEDIA_TYPE =\n \"application/vnd.openpond.model-project+json;version=2\" as const;\n\nexport const TRAINING_JOB_SUBMISSION_MAX_BYTES = 1_048_576;\nexport const TRAINING_INPUT_ARTIFACT_MAX_BYTES = 67_108_864;\nexport const TRAINING_API_RESPONSE_MAX_BYTES = 8_388_608;\nexport const MODEL_PROJECT_SYNC_MAX_BYTES = 524_288;\nexport const MODEL_PROJECT_API_RESPONSE_MAX_BYTES = 8_388_608;\n\nexport class OpenPondProtocolError extends Error {\n readonly code: string;\n\n constructor(code: string, message: string) {\n super(message);\n this.name = \"OpenPondProtocolError\";\n this.code = code;\n }\n}\n\n/**\n * Deterministic JSON used for content-addressed OpenPond protocol objects.\n * Object keys are sorted by Unicode code point, arrays retain their authored\n * order, and non-JSON/non-finite values are rejected rather than coerced.\n */\nexport function canonicalJson(value: unknown): string {\n return JSON.stringify(normalizeCanonicalJson(value));\n}\n\nexport function canonicalJsonByteLength(value: unknown): number {\n return new TextEncoder().encode(canonicalJson(value)).byteLength;\n}\n\nexport async function canonicalSha256(value: unknown): Promise<string> {\n const bytes = new TextEncoder().encode(canonicalJson(value));\n const digest = await globalThis.crypto.subtle.digest(\"SHA-256\", bytes);\n return Array.from(new Uint8Array(digest), (byte) =>\n byte.toString(16).padStart(2, \"0\"),\n ).join(\"\");\n}\n\nexport function assertCanonicalPayloadSize(\n value: unknown,\n maximumBytes: number,\n label: string,\n): void {\n const actualBytes = canonicalJsonByteLength(value);\n if (actualBytes > maximumBytes) {\n throw new OpenPondProtocolError(\n \"payload_too_large\",\n `${label} is ${actualBytes} bytes; the maximum is ${maximumBytes} bytes.`,\n );\n }\n}\n\nexport function parseBoundedJson(\n text: string,\n maximumBytes: number,\n label: string,\n): unknown {\n const actualBytes = new TextEncoder().encode(text).byteLength;\n if (actualBytes > maximumBytes) {\n throw new OpenPondProtocolError(\n \"response_too_large\",\n `${label} is ${actualBytes} bytes; the maximum is ${maximumBytes} bytes.`,\n );\n }\n try {\n return JSON.parse(text) as unknown;\n } catch {\n throw new OpenPondProtocolError(\n \"invalid_json\",\n `${label} was not valid JSON.`,\n );\n }\n}\n\nfunction normalizeCanonicalJson(value: unknown): CanonicalJsonValue {\n if (\n value === null ||\n typeof value === \"string\" ||\n typeof value === \"boolean\"\n ) {\n return value;\n }\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) {\n throw new OpenPondProtocolError(\n \"non_json_value\",\n \"Canonical JSON cannot contain a non-finite number.\",\n );\n }\n return Object.is(value, -0) ? 0 : value;\n }\n if (Array.isArray(value)) {\n return value.map((entry) => normalizeCanonicalJson(entry));\n }\n if (typeof value === \"object\") {\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) {\n throw new OpenPondProtocolError(\n \"non_json_value\",\n \"Canonical JSON accepts only plain objects.\",\n );\n }\n const result: Record<string, CanonicalJsonValue> = {};\n for (const key of Object.keys(value as Record<string, unknown>).sort()) {\n const entry = (value as Record<string, unknown>)[key];\n if (entry === undefined || typeof entry === \"function\" || typeof entry === \"symbol\") {\n throw new OpenPondProtocolError(\n \"non_json_value\",\n `Canonical JSON cannot contain ${typeof entry} at ${key}.`,\n );\n }\n result[key] = normalizeCanonicalJson(entry);\n }\n return result;\n }\n throw new OpenPondProtocolError(\n \"non_json_value\",\n `Canonical JSON cannot contain ${typeof value}.`,\n );\n}\n", "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 = 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 { 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 (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", "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"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["z", "TasksetReleaseSchema", "assertTasksetRelease", "LearningTextAssetSchema", "TaskDefinitionSchema", "learningRef", "sameLearningRef", "sealLearningContent", "RewardBindingSchema", "RewardReleaseSchema", "compileBoundGraders", "assertBoundedTaskJson", "validateTaskValue", "z", "assertBoundedTaskJson", "HashSchema", "z", "assertBoundedTaskJson", "asset", "z", "verifyEnvironmentRelease", "verifyVerifierSetRelease", "learningRef", "sealLearningContent", "verifyLearningTextAsset", "z", "EnvironmentReleaseSchema", "VerifierSetReleaseSchema", "createLearningTextAsset", "sealLearningContent", "verifyLearningTextAsset", "z", "EnvironmentReleaseSchema", "VerifierSetReleaseSchema", "sealLearningContent", "createLearningTextAsset", "verifyLearningTextAsset", "z", "sealLearningContent", "learningRef", "verifyEnvironmentRelease", "verifyVerifierSetRelease", "verifyLearningTextAsset", "asset", "IdSchema", "z", "TasksetReleaseSchema", "TaskDefinitionSchema", "RewardBindingSchema", "RewardReleaseSchema", "LearningTextAssetSchema", "sealLearningContent", "assertBoundedTaskJson", "sameLearningRef", "learningRef", "reward", "task", "assertTasksetRelease", "compileBoundGraders", "value", "asset", "validateTaskValue"]
|
|
7
7
|
}
|
|
@@ -104,9 +104,9 @@ export declare const ModelStarterAttemptSummarySchema: z.ZodObject<{
|
|
|
104
104
|
running: "running";
|
|
105
105
|
failed: "failed";
|
|
106
106
|
queued: "queued";
|
|
107
|
+
completed: "completed";
|
|
107
108
|
cancelled: "cancelled";
|
|
108
109
|
cancelling: "cancelling";
|
|
109
|
-
completed: "completed";
|
|
110
110
|
}>;
|
|
111
111
|
policySnapshot: z.ZodNullable<z.ZodObject<{
|
|
112
112
|
modelId: z.ZodString;
|
|
@@ -171,9 +171,9 @@ export declare const ModelStarterAttemptPageSchema: z.ZodObject<{
|
|
|
171
171
|
running: "running";
|
|
172
172
|
failed: "failed";
|
|
173
173
|
queued: "queued";
|
|
174
|
+
completed: "completed";
|
|
174
175
|
cancelled: "cancelled";
|
|
175
176
|
cancelling: "cancelling";
|
|
176
|
-
completed: "completed";
|
|
177
177
|
}>;
|
|
178
178
|
policySnapshot: z.ZodNullable<z.ZodObject<{
|
|
179
179
|
modelId: z.ZodString;
|
|
@@ -235,9 +235,9 @@ export declare const ModelStarterAttemptResultSchema: z.ZodObject<{
|
|
|
235
235
|
running: "running";
|
|
236
236
|
failed: "failed";
|
|
237
237
|
queued: "queued";
|
|
238
|
+
completed: "completed";
|
|
238
239
|
cancelled: "cancelled";
|
|
239
240
|
cancelling: "cancelling";
|
|
240
|
-
completed: "completed";
|
|
241
241
|
}>;
|
|
242
242
|
policySnapshot: z.ZodNullable<z.ZodObject<{
|
|
243
243
|
modelId: z.ZodString;
|
|
@@ -320,8 +320,8 @@ export declare const ModelStarterAttemptResultSchema: z.ZodObject<{
|
|
|
320
320
|
}, z.core.$strict>>;
|
|
321
321
|
environment: z.ZodObject<{
|
|
322
322
|
status: z.ZodEnum<{
|
|
323
|
-
cancelled: "cancelled";
|
|
324
323
|
completed: "completed";
|
|
324
|
+
cancelled: "cancelled";
|
|
325
325
|
budget_exhausted: "budget_exhausted";
|
|
326
326
|
timed_out: "timed_out";
|
|
327
327
|
policy_failure: "policy_failure";
|
|
@@ -383,7 +383,7 @@ export declare class OpenPondModelStarterAttemptsClient {
|
|
|
383
383
|
fixtureId: string;
|
|
384
384
|
};
|
|
385
385
|
};
|
|
386
|
-
status: "running" | "failed" | "queued" | "
|
|
386
|
+
status: "running" | "failed" | "queued" | "completed" | "cancelled" | "cancelling";
|
|
387
387
|
policySnapshot: {
|
|
388
388
|
modelId: string;
|
|
389
389
|
provider: string;
|
|
@@ -433,7 +433,7 @@ export declare class OpenPondModelStarterAttemptsClient {
|
|
|
433
433
|
fixtureId: string;
|
|
434
434
|
};
|
|
435
435
|
};
|
|
436
|
-
status: "running" | "failed" | "queued" | "
|
|
436
|
+
status: "running" | "failed" | "queued" | "completed" | "cancelled" | "cancelling";
|
|
437
437
|
policySnapshot: {
|
|
438
438
|
modelId: string;
|
|
439
439
|
provider: string;
|
|
@@ -509,7 +509,7 @@ export declare class OpenPondModelStarterAttemptsClient {
|
|
|
509
509
|
fixtureId: string;
|
|
510
510
|
};
|
|
511
511
|
};
|
|
512
|
-
status: "running" | "failed" | "queued" | "
|
|
512
|
+
status: "running" | "failed" | "queued" | "completed" | "cancelled" | "cancelling";
|
|
513
513
|
policySnapshot: {
|
|
514
514
|
modelId: string;
|
|
515
515
|
provider: string;
|
|
@@ -561,7 +561,7 @@ export declare class OpenPondModelStarterAttemptsClient {
|
|
|
561
561
|
fixtureId: string;
|
|
562
562
|
};
|
|
563
563
|
};
|
|
564
|
-
status: "running" | "failed" | "queued" | "
|
|
564
|
+
status: "running" | "failed" | "queued" | "completed" | "cancelled" | "cancelling";
|
|
565
565
|
policySnapshot: {
|
|
566
566
|
modelId: string;
|
|
567
567
|
provider: string;
|
|
@@ -621,7 +621,7 @@ export declare class OpenPondModelStarterAttemptsClient {
|
|
|
621
621
|
contentHash: string;
|
|
622
622
|
} | null;
|
|
623
623
|
environment: {
|
|
624
|
-
status: "
|
|
624
|
+
status: "completed" | "cancelled" | "budget_exhausted" | "timed_out" | "policy_failure" | "environment_failure";
|
|
625
625
|
collected: boolean;
|
|
626
626
|
definition: {
|
|
627
627
|
id: string;
|
|
@@ -665,7 +665,7 @@ export declare class OpenPondModelStarterAttemptsClient {
|
|
|
665
665
|
fixtureId: string;
|
|
666
666
|
};
|
|
667
667
|
};
|
|
668
|
-
status: "running" | "failed" | "queued" | "
|
|
668
|
+
status: "running" | "failed" | "queued" | "completed" | "cancelled" | "cancelling";
|
|
669
669
|
policySnapshot: {
|
|
670
670
|
modelId: string;
|
|
671
671
|
provider: string;
|
|
@@ -745,6 +745,14 @@ export declare class OpenPondModelStarterCatalogClient {
|
|
|
745
745
|
visibility: "policy" | "verifier" | "host_private";
|
|
746
746
|
}[];
|
|
747
747
|
contentHash: string;
|
|
748
|
+
fixtureSetRef?: {
|
|
749
|
+
id: string;
|
|
750
|
+
path: string;
|
|
751
|
+
contentHash: string;
|
|
752
|
+
sizeBytes: number;
|
|
753
|
+
mediaType: string;
|
|
754
|
+
visibility: "policy" | "verifier" | "host_private";
|
|
755
|
+
} | undefined;
|
|
748
756
|
}[];
|
|
749
757
|
assets: {
|
|
750
758
|
schemaVersion: "openpond.learningTextAsset.v1";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-starter-catalog.d.ts","sourceRoot":"","sources":["../../../../../src/model-starter-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAGrE,eAAO,MAAM,8BAA8B;;;kBAGhC,CAAC;AACZ,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAExC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAG/B,CAAC;AACZ,eAAO,MAAM,8BAA8B;;;kBAAiG,CAAC;AAE7I,qBAAa,gCAAiC,SAAQ,KAAK;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAArC,MAAM,EAAE,MAAM,EAAW,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAC5E;AAED;+EAC+E;AAC/E,qBAAa,iCAAiC;;gBAEhC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;KAAE;IAOnG,IAAI,CAAC,KAAK,GAAE,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAM,EAAE,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASvG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,EAAE,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO
|
|
1
|
+
{"version":3,"file":"model-starter-catalog.d.ts","sourceRoot":"","sources":["../../../../../src/model-starter-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAGrE,eAAO,MAAM,8BAA8B;;;kBAGhC,CAAC;AACZ,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAExC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAG/B,CAAC;AACZ,eAAO,MAAM,8BAA8B;;;kBAAiG,CAAC;AAE7I,qBAAa,gCAAiC,SAAQ,KAAK;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAArC,MAAM,EAAE,MAAM,EAAW,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAC5E;AAED;+EAC+E;AAC/E,qBAAa,iCAAiC;;gBAEhC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;KAAE;IAOnG,IAAI,CAAC,KAAK,GAAE,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAM,EAAE,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASvG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,EAAE,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiChH"}
|
|
@@ -6,8 +6,8 @@ export declare const ModelStarterEnvironmentAttemptSchema: z.ZodObject<{
|
|
|
6
6
|
schemaVersion: z.ZodLiteral<"openpond.javascriptEnvironmentAttempt.v1">;
|
|
7
7
|
taskId: z.ZodString;
|
|
8
8
|
status: z.ZodEnum<{
|
|
9
|
-
cancelled: "cancelled";
|
|
10
9
|
completed: "completed";
|
|
10
|
+
cancelled: "cancelled";
|
|
11
11
|
budget_exhausted: "budget_exhausted";
|
|
12
12
|
timed_out: "timed_out";
|
|
13
13
|
policy_failure: "policy_failure";
|
|
@@ -43,7 +43,7 @@ export declare function verifyModelStarterEnvironmentAttempt(value: unknown, con
|
|
|
43
43
|
}): {
|
|
44
44
|
schemaVersion: "openpond.javascriptEnvironmentAttempt.v1";
|
|
45
45
|
taskId: string;
|
|
46
|
-
status: "
|
|
46
|
+
status: "completed" | "cancelled" | "budget_exhausted" | "timed_out" | "policy_failure" | "environment_failure";
|
|
47
47
|
output: string | null;
|
|
48
48
|
collected: boolean;
|
|
49
49
|
environmentCleanupComplete: boolean;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export { ModelStarterExecutionSchema, ModelStarterEnvironmentAttemptSchema, verifyModelStarterEnvironmentAttempt, ModelStarterToolFixtureScriptSchema, createModelStarterExecutionAsset, modelStarterExecutionAssetId, resolveModelStarterExecutionAsset, type ModelStarterExecution, type ModelStarterExecutionContext } from "./model-starter-execution.js";
|
|
3
|
+
export { ModelTasksetDerivationSchema, ModelTasksetPackageSchema, deriveModelTaskset, validateModelTasksetPackage, type ModelTasksetPackage } from "./model-taskset-derivation.js";
|
|
4
|
+
export { ModelTasksetExecutionResourcesSchema, createModelTasksetExecutionResourcesAsset, modelTasksetExecutionResourcesAssetId, resolveModelTasksetExecutionResourcesAsset } from "./model-taskset-resources.js";
|
|
3
5
|
/** Catalog records contain references and previews, never the private task rows. */
|
|
4
6
|
export declare const ModelStarterContentSchema: z.ZodObject<{
|
|
5
7
|
schemaVersion: z.ZodLiteral<"openpond.modelStarter.v1">;
|
|
@@ -761,6 +763,18 @@ export declare const ResolvedModelStarterSchema: z.ZodObject<{
|
|
|
761
763
|
host_private: "host_private";
|
|
762
764
|
}>;
|
|
763
765
|
}, z.core.$strict>>;
|
|
766
|
+
fixtureSetRef: z.ZodOptional<z.ZodObject<{
|
|
767
|
+
id: z.ZodString;
|
|
768
|
+
path: z.ZodString;
|
|
769
|
+
contentHash: z.ZodString;
|
|
770
|
+
sizeBytes: z.ZodNumber;
|
|
771
|
+
mediaType: z.ZodString;
|
|
772
|
+
visibility: z.ZodEnum<{
|
|
773
|
+
policy: "policy";
|
|
774
|
+
verifier: "verifier";
|
|
775
|
+
host_private: "host_private";
|
|
776
|
+
}>;
|
|
777
|
+
}, z.core.$strict>>;
|
|
764
778
|
contentHash: z.ZodString;
|
|
765
779
|
}, z.core.$strict>>;
|
|
766
780
|
assets: z.ZodArray<z.ZodObject<{
|
|
@@ -1590,6 +1604,14 @@ export declare function validateModelStarterCreation(value: unknown, packageValu
|
|
|
1590
1604
|
visibility: "policy" | "verifier" | "host_private";
|
|
1591
1605
|
}[];
|
|
1592
1606
|
contentHash: string;
|
|
1607
|
+
fixtureSetRef?: {
|
|
1608
|
+
id: string;
|
|
1609
|
+
path: string;
|
|
1610
|
+
contentHash: string;
|
|
1611
|
+
sizeBytes: number;
|
|
1612
|
+
mediaType: string;
|
|
1613
|
+
visibility: "policy" | "verifier" | "host_private";
|
|
1614
|
+
} | undefined;
|
|
1593
1615
|
}[];
|
|
1594
1616
|
assets: {
|
|
1595
1617
|
schemaVersion: "openpond.learningTextAsset.v1";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-starters.d.ts","sourceRoot":"","sources":["../../../../../src/model-starters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,OAAO,EAAE,2BAA2B,EAAE,oCAAoC,EAAE,oCAAoC,EAAE,mCAAmC,EAAE,gCAAgC,EAAE,4BAA4B,EAAE,iCAAiC,EAAE,KAAK,qBAAqB,EAAE,KAAK,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"model-starters.d.ts","sourceRoot":"","sources":["../../../../../src/model-starters.ts"],"names":[],"mappings":"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"}
|